diff --git a/default_environment/templates/html/src_block.dust b/default_environment/templates/html/src_block.dust
index f0a6357..608f90d 100644
--- a/default_environment/templates/html/src_block.dust
+++ b/default_environment/templates/html/src_block.dust
@@ -4,7 +4,12 @@
{#.lines}
- {.} |
+ {#.children}{@select key=.type}
+ {@eq value="raw_text"}{.content} {/eq}
+ {@eq value="highlight_start"}{/eq}
+ {@eq value="highlight_end"}{/eq}
+ {@none}{!TODO: make this panic!}ERROR: Unrecognized type {.type}.{/none}
+ {/select}{/.children} |
{/.lines}
diff --git a/src/context/src_block.rs b/src/context/src_block.rs
index 1d03eef..1780914 100644
--- a/src/context/src_block.rs
+++ b/src/context/src_block.rs
@@ -17,16 +17,15 @@ pub(crate) struct RenderSrcBlock {
}
#[derive(Debug, Serialize)]
-#[serde(tag = "type")]
-#[serde(rename = "src_block")]
pub(crate) struct RenderSrcLine {
children: Vec,
}
#[derive(Debug, Serialize)]
+#[serde(tag = "type")]
pub(crate) enum RenderSrcSegment {
#[serde(rename = "raw_text")]
- RawText(String),
+ RawText { content: String },
#[serde(rename = "highlight_start")]
HighlightStart { name: String },
@@ -44,7 +43,9 @@ render!(RenderSrcBlock, ISrcBlock, original, _render_context, {
.children
.iter()
.map(|original_segment| match original_segment {
- ISrcSegment::RawText(body) => RenderSrcSegment::RawText(body.to_owned()),
+ ISrcSegment::RawText(body) => RenderSrcSegment::RawText {
+ content: body.to_owned(),
+ },
ISrcSegment::HighlightStart { name } => RenderSrcSegment::HighlightStart {
name: name.to_owned(),
},