diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-01-06 12:21:06 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-01-06 17:16:24 +1300 |
commit | a78feb46aefaf8e8950e9b029984e9ff98fe69b0 (patch) | |
tree | d524c0656416e27484f8c0ae709f71558ea69bb6 /src/elements/line_element.rs | |
parent | 13cb719b87bcef41c4dd398f5a651ddb2b561e0d (diff) | |
download | markdown-1378443f84cbc8f7fbc23c0ece22a9a1c2c8a73a.zip |
Rewrite the library a second timev2.0.0
Diffstat (limited to 'src/elements/line_element.rs')
-rw-r--r-- | src/elements/line_element.rs | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/src/elements/line_element.rs b/src/elements/line_element.rs deleted file mode 100644 index cc47b4b..0000000 --- a/src/elements/line_element.rs +++ /dev/null @@ -1,61 +0,0 @@ -pub enum LineElement { - Normal(String), - Bold(String), - Italic(String), - Monospace(String), - Math(String), - InternalLink(String), - ExternalLink(ExternalLink), -} - -impl LineElement { - /// Return only the character content, with none of the styling information. - pub fn as_plain_text(&self) -> &str { - match self { - LineElement::Normal(text) => text, - LineElement::Bold(text) => text, - LineElement::Italic(text) => text, - LineElement::Monospace(text) => text, - LineElement::Math(text) => text, - LineElement::InternalLink(label) => label, - LineElement::ExternalLink(ExternalLink { label, ..}) => label, - } - } -} - -pub struct ExternalLink { - pub label: String, - pub target: String, -} - -impl std::fmt::Display for LineElement { - fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { - let string = match self { - LineElement::Normal(text) => format!("{text}"), - LineElement::Bold(text) => format!("**{text}**"), - LineElement::Italic(text) => format!("_{text}_"), - LineElement::Monospace(text) => format!("`{text}`"), - LineElement::Math(text) => format!("${text}$"), - LineElement::InternalLink(text) => format!("[[{text}]]"), - LineElement::ExternalLink(ExternalLink { label, target }) => { - format!("[{label}]({target})") } - }; - f.write_str(&string) - } -} - -impl std::fmt::Debug for LineElement { - fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { - let string = match self { - LineElement::Normal(text) => format!("Normal ('{text}')"), - LineElement::Bold(text) => format!("Bold ('{text}')"), - LineElement::Italic(text) => format!("Italic ('{text}')"), - LineElement::Monospace(text) => format!("Monospace ('{text}')"), - LineElement::Math(text) => format!("Math ('{text}')"), - LineElement::InternalLink(text) => format!("InternalLink ('{text}')"), - LineElement::ExternalLink(ExternalLink { label, target }) => { - format!("ExternalLink (label:'{label}', target:'{target}')") } - }; - f.write_str(&string) - } -} |