diff --git a/Cargo.lock b/Cargo.lock index 73b6b9b..2d7ace4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,6 +82,21 @@ dependencies = [ "serde", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bitflags" version = "1.3.2" @@ -179,6 +194,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set", + "regex", +] + [[package]] name = "flate2" version = "1.1.0" @@ -495,6 +520,7 @@ checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" dependencies = [ "bincode", "bitflags", + "fancy-regex", "flate2", "fnv", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 27b2d13..248e864 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,11 @@ name = "mdsvexrs" version = "0.1.0" edition = "2021" +[features] +fancy = ["syntect/default-fancy"] +onig = ["syntect/default-onig"] +default = ["onig"] + [dependencies] markdown = { version = "1.0.0-alpha.21", features = ["serde"]} itertools = "0.13" @@ -11,4 +16,4 @@ serde_yaml = "0.9.34" serde = { version = "1.0.215", features = ["derive"] } regex = "1.11.1" clap = { version = "4.5.21", features = ["derive"] } -syntect = "5.0" \ No newline at end of file +syntect = { version = "5.0", default-features = false } \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 3120cbe..5b823d1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -591,11 +591,18 @@ impl Context { let theme = &self.theme_set.themes["InspiredGitHub"]; let start = Instant::now(); - let syntax = self.syntax_set.find_syntax_by_token(&code.lang); + let mut lang = &code.lang; + if lang.is_empty() { + if let Some(default) = &self.default_lang { + lang = default; + } else { + return format!("
{}", html_encode(&code.code));
+ }
+ }
+ let syntax = self.syntax_set.find_syntax_by_token(lang);
let syntax = match syntax {
Some(t) => t,
None => {
- println!("No syntax found for {}", code.lang);
return format!("{}", html_encode(&code.code));
}
};