This commit is contained in:
Maciej Jur 2024-09-30 17:09:37 +02:00
parent 70b5b6de9d
commit 062e5e105a
Signed by: kamov
GPG key ID: 191CBFF5F72ECAFD
4 changed files with 27 additions and 26 deletions

View file

@ -22,9 +22,15 @@ where
's: 'r,
{
let title = format!("{} | kamoshi.org", title);
let css = sack.get_styles("styles").expect("Missing styles");
let css_r = sack.get_styles("reveal").expect("Missing styles");
let css_p = sack.get_styles("leaflet").expect("Missing styles");
let css = sack
.get_styles("styles/styles.scss".into())
.expect("Missing styles");
let css_r = sack
.get_styles("styles/reveal/reveal.scss".into())
.expect("Missing styles");
let css_p = sack
.get_styles("styles/photos/leaflet.scss".into())
.expect("Missing styles");
let scripts = match scripts {
Some(scripts) => Some(emit_tags_script(sack, scripts)?),
@ -40,9 +46,9 @@ where
// link rel="sitemap" href="/sitemap.xml";
(render_style(css))
(render_style(css_r))
(render_style(css_p))
(render_style(&css))
(render_style(&css_r))
(render_style(&css_p))
link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png";
link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png";

View file

@ -78,26 +78,18 @@ impl TreePage {
}
/// Render the page tree
pub(crate) fn show_page_tree<'a>(
path: &'a Utf8Path,
sack: &'a MySack,
glob: &'a str,
) -> impl Renderable + 'a {
pub(crate) fn show_page_tree<'a>(slug: &'a Utf8Path, sack: &'a MySack) -> impl Renderable + 'a {
let tree = sack
.get_content_list::<Wiki>(glob)
.get_content_list::<Wiki>("**/*")
.into_iter()
.map(|query| Link {
path: Utf8Path::new("/").join(query.slug),
name: query.meta.title.clone(),
desc: None,
});
let tree = TreePage::from_iter(tree);
let parts = {
let mut parts = path.iter().skip(1).collect::<Vec<_>>();
parts.insert(0, "wiki");
parts
};
let tree = TreePage::from_iter(tree);
let parts: Vec<_> = slug.iter().collect();
maud_move!(
h2 .link-tree__heading {
@ -139,11 +131,13 @@ where
}
}
}
@if key == parts[0] && !next.subs.is_empty() {
@if let Some(part) = parts.first() {
@if key == part && !next.subs.is_empty() {
(show_page_tree_level(next, &parts[1..]))
}
}
}
}
}
)
}

View file

@ -18,18 +18,18 @@ pub fn as_html(
meta: &Wiki,
parsed: &str,
sack: &MySack,
path: &Utf8Path,
slug: &Utf8Path,
outline: Outline,
bibliography: Bibliography,
) -> String {
wiki(meta, parsed, sack, path, outline, bibliography)
wiki(meta, parsed, sack, slug, outline, bibliography)
}
fn wiki(
matter: &Wiki,
parsed: &str,
sack: &MySack,
path: &Utf8Path,
slug: &Utf8Path,
_: Outline,
bibliography: Bibliography,
) -> String {
@ -48,7 +48,7 @@ fn wiki(
// Navigation tree
section .link-tree {
div {
(crate::html::misc::show_page_tree(path, sack, "wiki/**/*.html"))
(crate::html::misc::show_page_tree(slug, sack))
}
}
}

View file

@ -79,6 +79,7 @@ fn main() {
Collection::glob_with::<Wiki>("content", "wiki/**/*", ["md"].into()),
Collection::glob_with::<Post>("content", "projects/flox.md", ["md"].into()),
])
.add_global_styles(["styles".into()])
.add_scripts(vec![
("search", "./js/search/dist/search.js"),
("photos", "./js/vanilla/photos.js"),
@ -120,13 +121,13 @@ fn main() {
})
// Task: generate wiki
.add_task(|sack| {
sack.get_content_list::<Wiki>("wiki/**/*")
sack.get_content_list::<Wiki>("**/*")
.into_iter()
.map(|query| {
let (parsed, outline, bib) =
html::wiki::parse_content(query.content, &sack, query.file, None);
let out_buff =
html::wiki::as_html(query.meta, &parsed, &sack, query.file, outline, bib);
html::wiki::as_html(query.meta, &parsed, &sack, query.slug, outline, bib);
(query.slug.join("index.html"), out_buff)
})
.collect()