Factor out and clean up site-header

This commit is contained in:
Nathan McCarty 2025-02-07 02:44:35 -05:00
parent 72bd2a238c
commit 87e18dbf60
3 changed files with 37 additions and 58 deletions

View file

@ -9,55 +9,6 @@ use DB::Post;
unit class Config;
method site-header(BlogMeta:D $meta) {
header :class<site-header>, [
div :class<site-logo>, [
# TODO: Use a real image here
$meta.title
];
div :class<site-tagline>, [
$meta.tagline
];
div :class<header-links>, [
a :href</index.html>, [
icon 'home';
' ';
span [
'Home';
];
];
a :href</archive.html>, [
icon 'archive';
' ';
span [
'Archive';
];
];
a :href</tags.html>, [
icon 'purchase-tag-alt';
' ';
span [
'Tags';
];
];
a :href</about.html>, [
icon 'info-circle';
' ';
span [
'About';
];
];
a :href</atom.xml>, [
icon 'rss';
' ';
span [
'Feed';
];
];
];
]
}
method post-date(Post:D $post) {
my $datetime = $post.posted-at;
my $timestamp = sprintf(
@ -173,7 +124,7 @@ method generate-post(Post:D $post, BlogMeta:D $meta) {
my $head = generate-head($meta, $post.title, $post.description);
my $body =
body [
self.site-header: $meta;
site-header $meta;
article :class<post>, [
self.post-header: $post;
div :class<post-body>, [
@ -224,7 +175,7 @@ method generate-index($db) {
my $head = generate-head($db.meta);
my $body = body [
self.site-header: $db.meta;
site-header $db.meta;
div :class<post-blurbs>, [
h1 "Recent Posts"
], @most-recent;
@ -249,7 +200,7 @@ method generate-archive($db) {
my $head = generate-head($db.meta);
my $body = body [
self.site-header: $db.meta;
site-header $db.meta;
div :class<post-blurbs>, [
h1 "All Posts"
], @most-recent;
@ -307,7 +258,7 @@ method generate-tag-blurb($db, $tag, $limit?) {
method generate-tags-page($db, @tags) {
my $head = generate-head($db.meta);
my $body = body [
self.site-header: $db.meta;
site-header $db.meta;
div :class<tags>, [
h1 "Tags";
], @tags.map(-> $tag {self.generate-tag-blurb($db, $tag, 4)});
@ -325,7 +276,7 @@ method generate-tags-page($db, @tags) {
method generate-tag-page($db, $tag) {
my $head = generate-head($db.meta);
my $body = body [
self.site-header: $db.meta;
site-header $db.meta;
self.generate-tag-blurb($db, $tag, 4);
];
@ -337,7 +288,3 @@ method generate-tag-page($db, $tag) {
"<!doctype html>$html"
}
sub icon($icon) {
i(:class("bx bx-$icon"))
}