Description generation
This commit is contained in:
parent
804b51aaa6
commit
ce364c01d8
6 changed files with 102 additions and 33 deletions
|
@ -2,29 +2,42 @@ use v6.e.PREVIEW;
|
|||
|
||||
use HTML::Functional;
|
||||
use DB::BlogMeta;
|
||||
use DB::Post;
|
||||
|
||||
unit class Config;
|
||||
|
||||
# TODO: Support GFM admonitions
|
||||
method generate-post(Str:D $title, Str:D $content, BlogMeta:D $meta) {
|
||||
my $head = head [
|
||||
method generate-head(Str:D $title, BlogMeta:D $meta, $description?) {
|
||||
head [
|
||||
meta :charset<utf-8>;
|
||||
meta :name<viewport>, :content<width=device-width, initial-scale=1>;
|
||||
meta :author :content<Nathan McCarty>;
|
||||
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>;
|
||||
# Use open sans as the content font
|
||||
# Add description, if one exists
|
||||
do if $description ~~ Str:D {
|
||||
meta :description :content($description)
|
||||
} else {
|
||||
[]
|
||||
}
|
||||
# Preconnect to all our resource sources
|
||||
link :rel<preconnect> :href<https://static.stranger.systems>;
|
||||
link :rel<preconnect> :href<https://fonts.googleapis.com>;
|
||||
link :rel<preconnect> :href<https://fonts.gstatic.com> :crossorigin;
|
||||
# Load fonts, Iosevka Alie for code, and Open Sans for content
|
||||
link :rel<stylesheet>,
|
||||
:href<https://static.stranger.systems/fonts/IosevkaAlie/IosevkaAile.css>;
|
||||
link :rel<stylesheet>,
|
||||
:href<https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap>;
|
||||
# Inline our style sheets
|
||||
style %?RESOURCES<main.css>.slurp;
|
||||
style %?RESOURCES<code.css>.slurp;
|
||||
# TODO: Add description
|
||||
# TODO: Add header links
|
||||
];
|
||||
}
|
||||
|
||||
# TODO: Support GFM admonitions
|
||||
method generate-post(Post:D $post, BlogMeta:D $meta) {
|
||||
my $content = $post.render-html;
|
||||
my $head = self.generate-head($post.title, $meta, $post.description);
|
||||
my $body =
|
||||
body [
|
||||
div :class<post-body>, [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue