diff options
| author | gennyble <gen@nyble.dev> | 2026-10-01 00:38:50 -0500 |
|---|---|---|
| committer | gennyble <gen@nyble.dev> | 2026-10-01 00:38:50 -0500 |
| commit | 19a61236c3c94e66731bf30853156770ab39f2a3 (patch) | |
| tree | d12e57829955d08786f273c4d8d7481694bef2a4 /markup/src | |
| parent | 980363bb80fb5384ccb431e25132906954a75ae1 (diff) | |
add horizontal lines
Diffstat (limited to 'markup/src')
| -rw-r--r-- | markup/src/breakdown.rs | 17 | ||||
| -rw-r--r-- | markup/src/lineup/mod.rs | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/markup/src/breakdown.rs b/markup/src/breakdown.rs index 8e32408..f110bb0 100644 --- a/markup/src/breakdown.rs +++ b/markup/src/breakdown.rs @@ -24,6 +24,7 @@ fn process<'raw>(raw: &'raw str) -> Document<'raw> { Token::Blank => (), Token::Header { level, text } => blocks.push(Block::header(level, text)), Token::Escaped { text } => blocks.push(Block::Paragraph(text)), + Token::HorizontalLine => blocks.push(Block::HorizontalLine), Token::ListItem { text } => { let mut mur = map_until(&curr[1..], extract_listitem); mur.items.insert(0, text); @@ -145,6 +146,7 @@ enum Token<'raw> { Escaped { text: &'raw str }, Header { level: u8, text: &'raw str }, CodeFence { lang: Option<&'raw str> }, + HorizontalLine, ListItem { text: &'raw str }, } @@ -182,6 +184,11 @@ impl<'raw> Token<'raw> { }; } + if working.trim_end().eq("---") { + maybe_escaped!(); + return Token::HorizontalLine; + } + if let Some(stripped) = working.strip_prefix('-') { maybe_escaped!(); return Token::ListItem { text: stripped }; @@ -312,6 +319,7 @@ pub enum Block<'raw> { text: &'raw str, }, Paragraph(&'raw str), + HorizontalLine, List { items: Vec<&'raw str>, }, @@ -395,6 +403,15 @@ mod test { } #[test] + pub fn horizontal_line() { + let raw = "---"; + let actual = process(raw); + let expected = doc!(1 Block::HorizontalLine); + + assert_eq!(actual, expected) + } + + #[test] pub fn list_item() { let raw = "- list item"; let actual = process(raw); diff --git a/markup/src/lineup/mod.rs b/markup/src/lineup/mod.rs index 2f7ebff..8a3713e 100644 --- a/markup/src/lineup/mod.rs +++ b/markup/src/lineup/mod.rs @@ -767,7 +767,7 @@ mod test { let expected = "<i>italics <b>bold</b> after</i>"; let rcsolve = Rc::new(EchoInterlinkSolver); let doc = process(raw, rcsolve); - let html = doc.html(); + let html = doc.into_html(); assert_eq!(html, expected) } |
