website/lib/Config.rakumod

44 lines
1.2 KiB
Raku
Raw Normal View History

2025-02-03 21:36:07 -05:00
use v6.e.PREVIEW;
use HTML::Functional;
use DB::BlogMeta;
unit class Config;
2025-02-04 04:17:34 -05:00
# TODO: Support GFM admonitions
2025-02-03 21:36:07 -05:00
method generate-post(Str:D $title, Str:D $content, BlogMeta:D $meta) {
2025-02-04 03:10:40 -05:00
my $head = head [
2025-02-03 21:36:07 -05:00
meta :charset<utf-8>;
meta :name<viewport>, :content<width=device-width, initial-scale=1>;
2025-02-03 21:51:09 -05:00
title "{$meta.title} $title";
# TODO: Add style sheets
2025-02-04 03:10:40 -05:00
# Use Iosevka Alie as the monospace font
link :rel<stylesheet>,
:href<https://static.stranger.systems/fonts/IosevkaAlie/IosevkaAile.css>;
2025-02-04 04:17:34 -05:00
# Use open sans as the content font
link :rel<preconnect> :href<https://fonts.googleapis.com>;
link :rel<preconnect> :href<https://fonts.gstatic.com> :crossorigin;
link :rel<stylesheet>,
:href<https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap>;
2025-02-04 03:18:19 -05:00
style %?RESOURCES<main.css>.slurp;
2025-02-04 03:10:40 -05:00
style %?RESOURCES<code.css>.slurp;
2025-02-03 21:51:09 -05:00
# TODO: Add description
# TODO: Add header links
2025-02-03 21:36:07 -05:00
];
2025-02-03 21:51:09 -05:00
my $body =
body [
div :class<post-body>, [
$content
]
];
# TODO: Setup footer
2025-02-03 21:36:07 -05:00
# my $footer;
my $html = html :lang<en>, [
$head,
$body
];
"<!doctype html>$html"
}