summaryrefslogtreecommitdiff
path: root/docs/src
diff options
context:
space:
mode:
authorEric Biedert <github@ericbiedert.de>2023-05-23 12:36:54 +0200
committerGitHub <noreply@github.com>2023-05-23 12:36:54 +0200
commitff903674f95205cb51fb7f5489e9f15610dd6820 (patch)
treedf2e6c9254162c7e7ca517dec78234e51b49e79e /docs/src
parent2cbeeae5da0b5c3d8c50d1dd522f900a1f86b8fa (diff)
Fix tests on windows (#1222)
Diffstat (limited to 'docs/src')
-rw-r--r--docs/src/html.rs15
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;
+ }
}
_ => {}