2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-07-01 08:42:04 +00:00

feat: add color and arrow to indicate current page

This commit is contained in:
sammyette 2025-06-22 11:35:56 -04:00
parent 046755d551
commit 9e1a484cb4
Signed by: sammyette
GPG Key ID: 904FC49417B44DCD
2 changed files with 66 additions and 21 deletions

View File

@ -16,7 +16,11 @@ import jot
import post
import util
pub fn page(p: post.Post, doc_pages_list) -> element.Element(a) {
pub fn page(
p: post.Post,
this_slug: String,
doc_pages_list,
) -> element.Element(a) {
html.div([attribute.class("flex-auto flex flex-col overflow-none")], [
html.div(
[
@ -103,16 +107,37 @@ pub fn page(p: post.Post, doc_pages_list) -> element.Element(a) {
})
|> list.first()
[
html.li([attribute.class("font-bold")], [
html.li(
[
attribute.class(
"font-bold"
<> case this_slug == { parent_post.1 }.slug {
False -> {
""
}
True -> " text-pink-400"
},
),
],
[
html.a(
[
attribute.href(conf.base_url_join(
{ parent_post.1 }.slug,
)),
],
[element.text({ parent_post.1 }.title)],
[
element.text(
case this_slug == { parent_post.1 }.slug {
False -> ""
True -> " -> "
}
<> { parent_post.1 }.title,
),
],
),
],
),
]),
case list.length(group.1) {
1 -> element.none()
_ ->
@ -123,12 +148,33 @@ pub fn page(p: post.Post, doc_pages_list) -> element.Element(a) {
{ p1.1 }.title != { parent_post.1 }.title
})
|> list.map(fn(post: #(String, post.Post)) {
html.li([attribute.class("mb-2")], [
html.li(
[
attribute.class(
"mb-2"
<> case this_slug == { post.1 }.slug {
False -> {
""
}
True -> " text-pink-400"
},
),
],
[
html.a(
[attribute.href(conf.base_url_join(post.0))],
[element.text({ post.1 }.title)],
[
element.text(
case this_slug == { post.1 }.slug {
False -> ""
True -> " -> "
}
<> { post.1 }.title,
),
])
],
),
],
)
}),
)
},

View File

@ -35,7 +35,6 @@ pub fn main() {
_ -> slug
}
io.debug(path)
let assert Ok(content) = simplifile.read(path)
let frontmatter = djot.frontmatter(content)
let metadata = case frontmatter {
@ -82,10 +81,10 @@ pub fn main() {
|> ssg.add_static_route("/", create_page(index.page()))
|> list.fold(posts, _, fn(config, post) {
let page = case is_doc_page(post.0) {
True -> doc.page(post.1, doc_pages)
False -> doc.page(post.1, doc_pages)
True -> doc.page(post.1, post.0, doc_pages)
False -> doc.page(post.1, post.0, doc_pages)
}
io.debug(post.0)
//io.debug(post.0)
ssg.add_static_route(config, post.0, create_page(page))
})
|> ssg.use_index_routes