on master help sign in
Render html <code> tags as code in markdown (#3425)
ac460acA-Walrus
helix-term/src/ui/markdown.rs+15
@@ -178,6 +178,21 @@ impl Markdown {
178 .map(|key| get_theme(key))
178 .map(|key| get_theme(key))
179 .collect();
179 .collect();
180
180
181+ // Transform text in `<code>` blocks into `Event::Code`
182+ let mut in_code = false;
183+ let parser = parser.filter_map(|event| match event {
184+ Event::Html(tag) if *tag == *"<code>" => {
185+ in_code = true;
186+ None
187+ }
188+ Event::Html(tag) if *tag == *"</code>" => {
189+ in_code = false;
190+ None
191+ }
192+ Event::Text(text) if in_code => Some(Event::Code(text)),
193+ _ => Some(event),
194+ });
195+
181 for event in parser {
196 for event in parser {
182 match event {
197 match event {
183 Event::Start(Tag::List(list)) => {
198 Event::Start(Tag::List(list)) => {