mirror of
https://github.com/danbulant/mdsvexrs
synced 2026-06-23 16:42:15 +00:00
switch to features and handle default lang
This commit is contained in:
parent
0a3b71340e
commit
b12041b899
3 changed files with 41 additions and 3 deletions
26
Cargo.lock
generated
26
Cargo.lock
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
syntect = { version = "5.0", default-features = false }
|
||||
11
src/lib.rs
11
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!("<pre><code>{}</code></pre>", 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!("<pre><code>{}</code></pre>", html_encode(&code.code));
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue