38 lines
911 B
Raku
38 lines
911 B
Raku
use v6.e.PREVIEW;
|
|
|
|
use HTML::Functional;
|
|
use DB::BlogMeta;
|
|
|
|
unit class Config;
|
|
|
|
|
|
method generate-post(Str:D $title, Str:D $content, BlogMeta:D $meta) {
|
|
my $head = head [
|
|
meta :charset<utf-8>;
|
|
meta :name<viewport>, :content<width=device-width, initial-scale=1>;
|
|
title "{$meta.title} — $title";
|
|
# TODO: Add style sheets
|
|
# Use Iosevka Alie as the monospace font
|
|
link :rel<stylesheet>,
|
|
:href<https://static.stranger.systems/fonts/IosevkaAlie/IosevkaAile.css>;
|
|
style %?RESOURCES<main.css>.slurp;
|
|
style %?RESOURCES<code.css>.slurp;
|
|
# TODO: Add description
|
|
# TODO: Add header links
|
|
];
|
|
my $body =
|
|
body [
|
|
div :class<post-body>, [
|
|
$content
|
|
]
|
|
];
|
|
# TODO: Setup footer
|
|
# my $footer;
|
|
|
|
my $html = html :lang<en>, [
|
|
$head,
|
|
$body
|
|
];
|
|
|
|
"<!doctype html>$html"
|
|
}
|