diff --git a/src/html/base.rs b/src/html/base.rs index c7ca53d..6577713 100644 --- a/src/html/base.rs +++ b/src/html/base.rs @@ -17,7 +17,7 @@ const JS_IMPORTS: &str = r#" "imports": { "splash": "/js/splash.js", "reveal": "/js/reveal.js", - "photos": "/js/photos.js", + "photos": "/js/photos.js" } } "#; @@ -99,7 +99,7 @@ pub fn footer(path: Option<&Utf8Path>) -> impl Renderable { let copy = format!("Copyright © {} Maciej Jur", &REPO.year); let mail = "maciej@kamoshi.org"; let href = format!("mailto:{}", mail); - let link = Utf8Path::new(&REPO.link).join("tree").join(&REPO.hash); + let link = Utf8Path::new(&REPO.link).join("src/commit").join(&REPO.hash); let link = match path { Some(path) => link.join(path), None => link, diff --git a/src/html.rs b/src/html/mod.rs similarity index 100% rename from src/html.rs rename to src/html/mod.rs diff --git a/src/main.rs b/src/main.rs index aa02412..b697c56 100644 --- a/src/main.rs +++ b/src/main.rs @@ -38,7 +38,6 @@ enum Mode { Watch, } - #[derive(Debug)] struct BuildInfo { pub year: i32, @@ -54,7 +53,7 @@ static REPO: Lazy = Lazy::new(|| { BuildInfo { year: time.year(), date: time.format("%Y/%m/%d %H:%M").to_string(), - link: "https://github.com/kamoshi/kamoshi.org".into(), + link: "https://git.kamoshi.org/kamov/website".into(), hash: String::from_utf8( Command::new("git") .args(["rev-parse", "--short", "HEAD"]) diff --git a/src/ts/configs.rs b/src/ts/configs.rs index ac4a26e..dcc0e0a 100644 --- a/src/ts/configs.rs +++ b/src/ts/configs.rs @@ -17,12 +17,15 @@ macro_rules! query { } macro_rules! insert { - ($_:tt $e:expr) => { $e }; + ($_:tt $str:literal) => { + $str + }; } macro_rules! merge { - ([$($e:expr),+ $(,)?]) => { &format!(concat!($(insert!($e "{} ")),*), $($e),* ) }; - ($e:expr) => { $e }; + [$($any:expr),+ $(,)?] => { + &format!(concat!($(insert!($any "{} ")),*), $($any),* ) + }; } macro_rules! language { @@ -44,7 +47,7 @@ macro_rules! language { }; } -pub static EXTENSIONS: Lazy> = Lazy::new(|| { +static EXTENSIONS: Lazy> = Lazy::new(|| HashMap::from([ ("hs", "haskell"), ("js", "javascript"), @@ -52,13 +55,12 @@ pub static EXTENSIONS: Lazy> = Lazy::new(|| ("mdx", "markdown"), ("py", "python"), ("scm", "scheme"), - ("ts", "javascript"), + ("ts", "typescript"), ("typescript", "javascript") ]) -}); +); - -pub static CONFIGS: Lazy> = Lazy::new(|| { +static CONFIGS: Lazy> = Lazy::new(|| HashMap::from([ // ( // "astro", @@ -80,7 +82,7 @@ pub static CONFIGS: Lazy> = Lazy:: "haskell", tree_sitter_haskell::language(), tree_sitter_haskell::HIGHLIGHTS_QUERY, - "", + tree_sitter_haskell::INJECTIONS_QUERY, tree_sitter_haskell::LOCALS_QUERY, ), language!( @@ -93,21 +95,21 @@ pub static CONFIGS: Lazy> = Lazy:: language!( "javascript", tree_sitter_javascript::language(), - merge!([ + merge![ query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, - ]), + ], tree_sitter_javascript::INJECTIONS_QUERY, tree_sitter_javascript::LOCALS_QUERY, ), language!( "jsx", tree_sitter_javascript::language(), - merge!([ + merge![ query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, - ]), + ], tree_sitter_javascript::INJECTIONS_QUERY, tree_sitter_javascript::LOCALS_QUERY, ), @@ -118,6 +120,13 @@ pub static CONFIGS: Lazy> = Lazy:: tree_sitter_md::INJECTION_QUERY_BLOCK, "", ), + language!( + "markdown_inline", + tree_sitter_md::inline_language(), + tree_sitter_md::HIGHLIGHT_QUERY_INLINE, + tree_sitter_md::INJECTION_QUERY_INLINE, + "", + ), language!( "python", tree_sitter_python::language(), @@ -128,7 +137,7 @@ pub static CONFIGS: Lazy> = Lazy:: language!( "regex", tree_sitter_regex::language(), - query!("regex/highlights"), + tree_sitter_regex::HIGHLIGHTS_QUERY, "", "", ), @@ -142,10 +151,10 @@ pub static CONFIGS: Lazy> = Lazy:: language!( "scss", tree_sitter_scss::language(), - merge!([ + merge![ tree_sitter_css::HIGHLIGHTS_QUERY, tree_sitter_scss::HIGHLIGHTS_QUERY, - ]), + ], "", "", ), @@ -166,34 +175,34 @@ pub static CONFIGS: Lazy> = Lazy:: language!( "typescript", tree_sitter_typescript::language_typescript(), - merge!([ + merge![ query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_typescript::HIGHLIGHTS_QUERY, - ]), + ], tree_sitter_javascript::INJECTIONS_QUERY, - merge!([ + merge![ tree_sitter_javascript::LOCALS_QUERY, tree_sitter_typescript::LOCALS_QUERY, - ]) + ] ), language!( "tsx", tree_sitter_typescript::language_tsx(), - merge!([ + merge![ query!("ecma/highlights"), tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, tree_sitter_typescript::HIGHLIGHTS_QUERY, - ]), + ], tree_sitter_javascript::INJECTIONS_QUERY, - merge!([ + merge![ tree_sitter_javascript::LOCALS_QUERY, tree_sitter_typescript::LOCALS_QUERY, - ]), + ], ), ]) -}); +); pub fn get_config(name: &str) -> Option<&'static HighlightConfiguration> {