diff --git a/Cargo.lock b/Cargo.lock index 0321eec..d6ffb61 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -521,12 +521,6 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - [[package]] name = "libc" version = "0.2.153" @@ -561,16 +555,6 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "npezza93-tree-sitter-haskell" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd44dfc09a37bafbed1c28622c662be9b8fb1aaaad0444688370eae11e3d54b0" -dependencies = [ - "cc", - "tree-sitter", -] - [[package]] name = "num-traits" version = "0.2.18" @@ -899,19 +883,23 @@ dependencies = [ "hayagriva", "hypertext", "katex", - "npezza93-tree-sitter-haskell", "once_cell", "pulldown-cmark", "regex", "serde", "tree-sitter", + "tree-sitter-astro", + "tree-sitter-css", + "tree-sitter-haskell", "tree-sitter-highlight", + "tree-sitter-html", "tree-sitter-javascript", "tree-sitter-md", "tree-sitter-python", - "tree-sitter-query", + "tree-sitter-regex", "tree-sitter-rust", - "tree-sitter-scss", + "tree-sitter-toml", + "tree-sitter-typescript", ] [[package]] @@ -1022,31 +1010,68 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tree-sitter" -version = "0.22.5" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688200d842c76dd88f9a7719ecb0483f79f5a766fb1c100756d5d8a059abc71b" +checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d" dependencies = [ "cc", "regex", ] [[package]] -name = "tree-sitter-highlight" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9442daef896b114ed618a5e11c9ba9663796ab3600e544d57f2dc980fa0d2d78" +name = "tree-sitter-astro" +version = "0.0.1" +source = "git+https://github.com/virchau13/tree-sitter-astro.git?rev=e924787e12e8a03194f36a113290ac11d6dc10f3#e924787e12e8a03194f36a113290ac11d6dc10f3" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-css" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3306ddefa1d2681adda2613d11974ffabfbeb215e23235da6c862f3493a04fd" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-haskell" +version = "0.14.0" +source = "git+https://github.com/tree-sitter/tree-sitter-haskell?rev=1da347c88599faad7964e63facead5d163ac7dba#1da347c88599faad7964e63facead5d163ac7dba" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-highlight" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "042342584c5a7a0b833d9fc4e2bdab3f9868ddc6c4b339a1e01451c6720868bc" dependencies = [ - "lazy_static", "regex", "thiserror", "tree-sitter", ] [[package]] -name = "tree-sitter-javascript" -version = "0.21.0" +name = "tree-sitter-html" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26eca1925fd9518f9439ea122e3f3395abb3fcfc4b0841ef94eeef934871ec59" +checksum = "017822b6bd42843c4bd67fabb834f61ce23254e866282dd93871350fd6b7fa1d" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-javascript" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d015c02ea98b62c806f7329ff71c383286dfc3a7a7da0cc484f6e42922f73c2c" dependencies = [ "cc", "tree-sitter", @@ -1054,9 +1079,9 @@ dependencies = [ [[package]] name = "tree-sitter-md" -version = "0.2.3" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c3cfd068f2527250bbd8ff407431164e12b17863e7eafb76e311dd3f96965a" +checksum = "3c20d3ef8d202430b644a307e6299d84bf8ed87fa1b796e4638f8805a595060c" dependencies = [ "cc", "tree-sitter", @@ -1064,18 +1089,19 @@ dependencies = [ [[package]] name = "tree-sitter-python" -version = "0.21.0" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4066c6cf678f962f8c2c4561f205945c84834cce73d981e71392624fdc390a9" +checksum = "e6c93b1b1fbd0d399db3445f51fd3058e43d0b4dcff62ddbdb46e66550978aa5" dependencies = [ "cc", "tree-sitter", ] [[package]] -name = "tree-sitter-query" -version = "0.2.1" -source = "git+https://github.com/tree-sitter-grammars/tree-sitter-query?rev=608c01187fb9f525a1e4cf585bb63d73dea280b7#608c01187fb9f525a1e4cf585bb63d73dea280b7" +name = "tree-sitter-regex" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb5a53e9c990757895476216796b170fd81e4d173d08f8b082279c4e6ff8c5c" dependencies = [ "cc", "tree-sitter", @@ -1083,19 +1109,29 @@ dependencies = [ [[package]] name = "tree-sitter-rust" -version = "0.21.2" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "277690f420bf90741dea984f3da038ace46c4fe6047cba57a66822226cde1c93" +checksum = "b0832309b0b2b6d33760ce5c0e818cb47e1d72b468516bfe4134408926fa7594" dependencies = [ "cc", "tree-sitter", ] [[package]] -name = "tree-sitter-scss" -version = "1.0.0" +name = "tree-sitter-toml" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33909a9ca86390ebbf3461e9949c4bbe2767d2d024b486306d27616641d4ba24" +checksum = "ca517f578a98b23d20780247cc2688407fa81effad5b627a5a364ec3339b53e8" +dependencies = [ + "cc", + "tree-sitter", +] + +[[package]] +name = "tree-sitter-typescript" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8bc1d2c24276a48ef097a71b56888ac9db63717e8f8d0b324668a27fd619670" dependencies = [ "cc", "tree-sitter", diff --git a/Cargo.toml b/Cargo.toml index f24bcdd..50ca918 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,20 +21,18 @@ serde = { version = "1.0.197", features = ["derive"] } pulldown-cmark = { git = "https://github.com/pulldown-cmark/pulldown-cmark.git", branch = "branch_0.11" } # Treesitter -tree-sitter = "0.22" -tree-sitter-highlight = "0.22" +tree-sitter = "0.20" +tree-sitter-highlight = "0.20" # Treesitter languages -# tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" } -# tree-sitter-css = "0.20.0" -# tree-sitter-haskell = { git = "https://github.com/tree-sitter/tree-sitter-haskell", rev = "1da347c88599faad7964e63facead5d163ac7dba" } -npezza93-tree-sitter-haskell = "0.15.1" -tree-sitter-javascript = "0.21" -tree-sitter-md = "0.2" -tree-sitter-python = "0.21" -tree-sitter-query = { git = "https://github.com/tree-sitter-grammars/tree-sitter-query", rev = "608c01187fb9f525a1e4cf585bb63d73dea280b7" } -# tree-sitter-regex = "0.20.0" -tree-sitter-rust = "0.21" -tree-sitter-scss = "1" -# tree-sitter-toml = "0.20.0" -# tree-sitter-typescript = "0.20.5" +tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" } +tree-sitter-css = "0.20.0" +tree-sitter-haskell = { git = "https://github.com/tree-sitter/tree-sitter-haskell", rev = "1da347c88599faad7964e63facead5d163ac7dba" } +tree-sitter-html = "0.20" +tree-sitter-javascript = "0.20" +tree-sitter-md = "0.1" +tree-sitter-python = "0.20" +tree-sitter-regex = "0.20" +tree-sitter-rust = "0.20" +tree-sitter-toml = "0.20" +tree-sitter-typescript = "0.20" diff --git a/src/main.rs b/src/main.rs index ac2d805..58f8adc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -185,7 +185,6 @@ fn to_index(item: PipelineItem) -> PipelineItem // FIXME: clean this up let dir = meta.path.parent().unwrap(); - let ext = meta.path.extension().unwrap(); let dir = dir.strip_prefix("content").unwrap(); let dir = match meta.path.file_stem().unwrap() { "index" => dir.to_owned(), @@ -193,8 +192,8 @@ fn to_index(item: PipelineItem) -> PipelineItem }; let path = dir.join("index.html"); - match ext { - "md" | "mdx" | "lhs" => { + match meta.path.extension() { + Some("md" | "mdx" | "lhs") => { let data = fs::read_to_string(&meta.path).unwrap(); let (fm, md) = md::preflight::(&data); let link = T::as_link(&fm, Utf8Path::new("/").join(dir)); @@ -227,16 +226,20 @@ fn to_bundle(item: PipelineItem) -> PipelineItem { let dirs = meta.path.strip_prefix("content").unwrap().parent().unwrap(); let path = dirs.join(meta.path.file_name().unwrap()).to_owned(); - match meta.path.extension().unwrap() { - "jpg" | "png" | "gif" => Output { - kind: Asset { - kind: AssetKind::Image, - meta, - }.into(), - path, - link: None, - }.into(), - "bib" => { + match meta.path.extension() { + // any image + Some("jpg" | "png" | "gif") => { + Output { + kind: Asset { + kind: AssetKind::Image, + meta, + }.into(), + path, + link: None, + }.into() + }, + // bibliography + Some("bib") => { let data = fs::read_to_string(&meta.path).unwrap(); let data = hayagriva::io::from_biblatex_str(&data).unwrap(); @@ -262,7 +265,7 @@ fn main() { fs::create_dir("dist").unwrap(); - let assets: Vec = vec![ + let assets: Vec = [ gen::gather("content/about.md", &["md"].into()) .into_iter() .map(to_index:: as fn(PipelineItem) -> PipelineItem), diff --git a/src/ts/configs.rs b/src/ts/configs.rs index 49bd0f8..47e9d96 100644 --- a/src/ts/configs.rs +++ b/src/ts/configs.rs @@ -34,60 +34,57 @@ pub static EXTENSIONS: Lazy> = Lazy::new(|| fn config_for( lang: Language, - name: &str, highlights: &str, injections: &str, locals: &str, ) -> HighlightConfiguration { - let mut config = HighlightConfiguration::new(lang, name, highlights, injections, locals).unwrap(); + let mut config = HighlightConfiguration::new(lang, highlights, injections, locals).unwrap(); config.configure(captures::NAMES); config } pub static CONFIGS: Lazy> = Lazy::new(|| { HashMap::from([ - // ( - // "astro", - // config_for( - // tree_sitter_astro::language(), - // query!("astro/highlights"), - // query!("astro/injections"), - // "", - // ) - // ), - // ( - // "css", - // config_for( - // tree_sitter_css::language(), - // query!("css/highlights"), - // "", - // "", - // ) - // ), + ( + "astro", + config_for( + tree_sitter_astro::language(), + query!("astro/highlights"), + query!("astro/injections"), + "", + ) + ), + ( + "css", + config_for( + tree_sitter_css::language(), + query!("css/highlights"), + "", + "", + ) + ), ( "haskell", config_for( - npezza93_tree_sitter_haskell::language(), - "haskell", - npezza93_tree_sitter_haskell::HIGHLIGHTS_QUERY, + tree_sitter_haskell::language(), + tree_sitter_haskell::HIGHLIGHTS_QUERY, + "", + tree_sitter_haskell::LOCALS_QUERY, + ) + ), + ( + "html", + config_for( + tree_sitter_html::language(), + tree_sitter_html::HIGHLIGHTS_QUERY, + tree_sitter_html::INJECTIONS_QUERY, "", - npezza93_tree_sitter_haskell::LOCALS_QUERY, ) ), - // ( - // "html", - // config_for( - // tree_sitter_html::language(), - // tree_sitter_html::HIGHLIGHTS_QUERY, - // tree_sitter_html::INJECTIONS_QUERY, - // "", - // ) - // ), ( "javascript", config_for( tree_sitter_javascript::language(), - "javascript", &format!("{} {}", query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, @@ -100,7 +97,6 @@ pub static CONFIGS: Lazy> = Lazy:: "jsx", config_for( tree_sitter_javascript::language(), - "jsx", &format!("{} {} {}", query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, @@ -114,7 +110,6 @@ pub static CONFIGS: Lazy> = Lazy:: "markdown", config_for( tree_sitter_md::language(), - "markdown", tree_sitter_md::HIGHLIGHT_QUERY_BLOCK, tree_sitter_md::INJECTION_QUERY_BLOCK, "", @@ -124,92 +119,71 @@ pub static CONFIGS: Lazy> = Lazy:: "python", config_for( tree_sitter_python::language(), - "python", - tree_sitter_python::HIGHLIGHTS_QUERY, + tree_sitter_python::HIGHLIGHT_QUERY, "", "", ) ), ( - "query", + "regex", config_for( - tree_sitter_query::language(), - "query", - tree_sitter_query::HIGHLIGHTS_QUERY, - tree_sitter_query::INJECTIONS_QUERY, + tree_sitter_regex::language(), + query!("regex/highlights"), + "", "", ) ), - // ( - // "regex", - // config_for( - // tree_sitter_regex::language(), - // query!("regex/highlights"), - // "", - // "", - // ) - // ), ( "rust", config_for( tree_sitter_rust::language(), - "rust", - tree_sitter_rust::HIGHLIGHTS_QUERY, + tree_sitter_rust::HIGHLIGHT_QUERY, tree_sitter_rust::INJECTIONS_QUERY, "", ) ), - // ( - // "scheme", - // config_for( - // tree_sitter_scheme::language(), - // tree_sitter_scheme::HIGHLIGHTS_QUERY, - // "", - // "", - // ) - // ), - // ( - // "toml", - // config_for( - // tree_sitter_toml::language(), - // tree_sitter_toml::HIGHLIGHT_QUERY, - // "", - // "", - // ) - // ), - // ( - // "tsx", - // config_for( - // tree_sitter_typescript::language_tsx(), - // &format!("{} {} {} {}", - // query!("ecma/highlights"), - // tree_sitter_javascript::HIGHLIGHT_QUERY, - // tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, - // tree_sitter_typescript::HIGHLIGHT_QUERY, - // ), - // tree_sitter_javascript::INJECTION_QUERY, - // &format!("{} {}", - // tree_sitter_javascript::LOCALS_QUERY, - // tree_sitter_typescript::LOCALS_QUERY - // ) - // ) - // ), - // ( - // "typescript", - // config_for( - // tree_sitter_typescript::language_typescript(), - // &format!("{} {} {}", - // query!("ecma/highlights"), - // tree_sitter_javascript::HIGHLIGHT_QUERY, - // tree_sitter_typescript::HIGHLIGHT_QUERY, - // ), - // tree_sitter_javascript::INJECTION_QUERY, - // &format!("{} {}", - // tree_sitter_javascript::LOCALS_QUERY, - // tree_sitter_typescript::LOCALS_QUERY - // ), - // ) - // ), + ( + "toml", + config_for( + tree_sitter_toml::language(), + tree_sitter_toml::HIGHLIGHT_QUERY, + "", + "", + ) + ), + ( + "typescript", + config_for( + tree_sitter_typescript::language_typescript(), + &format!("{} {} {}", + query!("ecma/highlights"), + tree_sitter_javascript::HIGHLIGHT_QUERY, + tree_sitter_typescript::HIGHLIGHT_QUERY, + ), + tree_sitter_javascript::INJECTION_QUERY, + &format!("{} {}", + tree_sitter_javascript::LOCALS_QUERY, + tree_sitter_typescript::LOCALS_QUERY + ), + ) + ), + ( + "tsx", + config_for( + tree_sitter_typescript::language_tsx(), + &format!("{} {} {} {}", + query!("ecma/highlights"), + tree_sitter_javascript::HIGHLIGHT_QUERY, + tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, + tree_sitter_typescript::HIGHLIGHT_QUERY, + ), + tree_sitter_javascript::INJECTION_QUERY, + &format!("{} {}", + tree_sitter_javascript::LOCALS_QUERY, + tree_sitter_typescript::LOCALS_QUERY + ) + ) + ), ]) });