From 75b13597dae3f035cfb26d75c5f2a95af5f45ea8 Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Sun, 4 Dec 2022 17:56:49 +0100 Subject: [PATCH] fixup! e18f24b99d70338014ab8e4031fad9a17b167b8f --- src/lib.rs | 11 ++++++++++- src/span.rs | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index dcd5362..f0b5ca4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -359,7 +359,16 @@ impl<'s> Iterator for Parser<'s> { tree::EventKind::Enter(block) => { if matches!(block, block::Block::Leaf(l)) { self.parser = Some(inline::Parser::new()); - self.inline_start = ev.span.start(); + } + match block { + block::Block::Leaf(block::Leaf::Paragraph) => self.inline_start = ev.span.end(), + block::Block::Leaf(block::Leaf::CodeBlock { .. }) => { + let lang = self.tree.next().unwrap(); + self.inline_start = lang.span.end(); + let lang = (!lang.span.is_empty()).then(|| lang.span.of(self.src).trim()); + return Event::Start(Container::CodeBlock { lang }, Attributes::none()); + } + _ => {} } Event::Start(Container::from_block(self.src, block), Attributes::none()) } diff --git a/src/span.rs b/src/span.rs index ec5c2c3..e81a364 100644 --- a/src/span.rs +++ b/src/span.rs @@ -47,6 +47,10 @@ impl Span { Self::new(self.start(), span.end()) } + pub fn is_empty(self) -> bool { + self.start == self.end + } + pub fn start(self) -> usize { self.start.try_into().unwrap() }