diff options
Diffstat (limited to 'library/src')
| -rw-r--r-- | library/src/lib.rs | 1 | ||||
| -rw-r--r-- | library/src/text/raw.rs | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/library/src/lib.rs b/library/src/lib.rs index 94b3e0c4..36afdb2b 100644 --- a/library/src/lib.rs +++ b/library/src/lib.rs @@ -182,6 +182,7 @@ fn items() -> LangItems { } node.pack() }, + raw_languages: text::RawNode::languages, link: |url| meta::LinkNode::from_url(url).pack(), ref_: |target| meta::RefNode::new(target).pack(), heading: |level, title| meta::HeadingNode::new(title).with_level(level).pack(), diff --git a/library/src/text/raw.rs b/library/src/text/raw.rs index 72dd1782..99fb89d2 100644 --- a/library/src/text/raw.rs +++ b/library/src/text/raw.rs @@ -103,6 +103,23 @@ pub struct RawNode { pub lang: Option<EcoString>, } +impl RawNode { + /// The supported language names and tags. + pub fn languages() -> Vec<(&'static str, Vec<&'static str>)> { + SYNTAXES + .syntaxes() + .iter() + .map(|syntax| { + ( + syntax.name.as_str(), + syntax.file_extensions.iter().map(|s| s.as_str()).collect(), + ) + }) + .chain([("Typst", vec!["typ"]), ("Typst (code)", vec!["typc"])]) + .collect() + } +} + impl Prepare for RawNode { fn prepare(&self, _: &mut Vt, styles: StyleChain) -> SourceResult<Content> { let mut node = self.clone().pack(); |
