diff --git a/js/test_cases/missing_reference/input1.json b/js/test_cases/missing_reference/input1.json new file mode 100644 index 0000000..8bffc80 --- /dev/null +++ b/js/test_cases/missing_reference/input1.json @@ -0,0 +1 @@ +{"rank": "Admiral"} diff --git a/js/test_cases/missing_reference/main.dust b/js/test_cases/missing_reference/main.dust new file mode 100644 index 0000000..09f2e19 --- /dev/null +++ b/js/test_cases/missing_reference/main.dust @@ -0,0 +1 @@ +Hello {name}! diff --git a/src/renderer/renderer.rs b/src/renderer/renderer.rs index dcdbc8a..e28aa94 100644 --- a/src/renderer/renderer.rs +++ b/src/renderer/renderer.rs @@ -87,8 +87,13 @@ impl<'a> DustRenderer<'a> { match tag { DustTag::DTComment(_comment) => (), DustTag::DTReference(reference) => { - let val = walk_path(context, &reference.path.keys)?; - return val.render(); + let val = walk_path(context, &reference.path.keys); + if let Err(RenderError::WontWalk { .. }) = val { + // If reference does not exist in the context, it becomes an empty string + return Ok("".to_owned()); + } else { + return val?.render(); + } } _ => (), // TODO: Implement the rest }