diff options
| author | Eric Biedert <github@ericbiedert.de> | 2023-05-23 12:36:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-23 12:36:54 +0200 |
| commit | ff903674f95205cb51fb7f5489e9f15610dd6820 (patch) | |
| tree | df2e6c9254162c7e7ca517dec78234e51b49e79e /docs | |
| parent | 2cbeeae5da0b5c3d8c50d1dd522f900a1f86b8fa (diff) | |
Fix tests on windows (#1222)
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/src/html.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/docs/src/html.rs b/docs/src/html.rs index e0b524ce..d02f768e 100644 --- a/docs/src/html.rs +++ b/docs/src/html.rs @@ -124,6 +124,7 @@ struct Metadata { struct Handler<'a> { resolver: &'a dyn Resolver, lang: Option<String>, + code: String, outline: Vec<OutlineItem>, id_base: String, ids: &'a Arena<String>, @@ -134,6 +135,7 @@ impl<'a> Handler<'a> { Self { resolver, lang: None, + code: String::new(), outline: vec![], id_base, ids, @@ -141,7 +143,6 @@ impl<'a> Handler<'a> { } fn handle(&mut self, event: &mut md::Event<'a>) -> bool { - let lang = self.lang.take(); match event { // Rewrite Markdown images. md::Event::Start(md::Tag::Image(_, path, _)) => { @@ -207,17 +208,21 @@ impl<'a> Handler<'a> { // Code blocks. md::Event::Start(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(lang))) => { self.lang = Some(lang.as_ref().into()); + self.code = String::new(); return false; } md::Event::End(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(_))) => { - return false; + let Some(lang) = self.lang.take() else { return false }; + let html = code_block(self.resolver, &lang, &self.code); + *event = md::Event::Html(html.raw.into()); } // Example with preview. md::Event::Text(text) => { - let Some(lang) = lang.as_deref() else { return true }; - let html = code_block(self.resolver, lang, text); - *event = md::Event::Html(html.raw.into()); + if self.lang.is_some() { + self.code.push_str(text); + return false; + } } _ => {} |
