From 4ea1a4670501a548b1c016f1b68da995bd287e52 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 22 Feb 2025 16:13:23 -0500 Subject: [PATCH] Update dust templates to support the new source code block format. --- default_environment/templates/html/src_block.dust | 7 ++++++- src/context/src_block.rs | 9 +++++---- 2 files changed, 11 insertions(+), 5 deletions(-) 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(), },