Progress reporting for render command
This commit is contained in:
parent
37022f7bdb
commit
5880e12b82
2 changed files with 14 additions and 2 deletions
2
blog
2
blog
|
@ -155,7 +155,7 @@ multi MAIN(
|
||||||
IO::Path(Str) :$site-dir = $default-site-dir,
|
IO::Path(Str) :$site-dir = $default-site-dir,
|
||||||
) {
|
) {
|
||||||
my $db = read-db $db-dir;
|
my $db = read-db $db-dir;
|
||||||
$db.render: $site-dir;
|
$db.render: $site-dir, :report;
|
||||||
}
|
}
|
||||||
|
|
||||||
#| Provide a table of posts, in newest to oldest order
|
#| Provide a table of posts, in newest to oldest order
|
||||||
|
|
|
@ -96,7 +96,9 @@ class PostDB {
|
||||||
}
|
}
|
||||||
|
|
||||||
#| Render the site to the provided output directory
|
#| Render the site to the provided output directory
|
||||||
method render(IO::Path:D $out-dir, Config:D :$config = Config.new) {
|
method render(IO::Path:D $out-dir,
|
||||||
|
Config:D :$config = Config.new,
|
||||||
|
Bool :$report) {
|
||||||
## Consistency checks
|
## Consistency checks
|
||||||
# Check to make sure all the slugs are unique
|
# Check to make sure all the slugs are unique
|
||||||
my @all-the-slugs = %!posts.values.map(*.all-slugs).flat;
|
my @all-the-slugs = %!posts.values.map(*.all-slugs).flat;
|
||||||
|
@ -113,6 +115,7 @@ class PostDB {
|
||||||
mkdir $by-slug unless $by-slug.e;
|
mkdir $by-slug unless $by-slug.e;
|
||||||
# Render all the posts and make symlinks
|
# Render all the posts and make symlinks
|
||||||
for %!posts.kv -> $id, $post {
|
for %!posts.kv -> $id, $post {
|
||||||
|
say "Generating post $id: {$post.title}" when $report;
|
||||||
my $html = $config.generate-post: $id, $post, self;
|
my $html = $config.generate-post: $id, $post, self;
|
||||||
my $id-path = $by-id.add: "$id.html";
|
my $id-path = $by-id.add: "$id.html";
|
||||||
$id-path.spurt: $html;
|
$id-path.spurt: $html;
|
||||||
|
@ -124,10 +127,13 @@ class PostDB {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# Render the index
|
# Render the index
|
||||||
|
say "Rendering index" when $report;
|
||||||
$out-dir.add('index.html').spurt: $config.generate-index(self);
|
$out-dir.add('index.html').spurt: $config.generate-index(self);
|
||||||
# Render the archive
|
# Render the archive
|
||||||
|
say "Rendering archive" when $report;
|
||||||
$out-dir.add('archive.html').spurt: $config.generate-archive(self);
|
$out-dir.add('archive.html').spurt: $config.generate-archive(self);
|
||||||
# Symlink the about article
|
# Symlink the about article
|
||||||
|
say "Rendering the about article" when $report;
|
||||||
my $about-path = $out-dir.add('about.html');
|
my $about-path = $out-dir.add('about.html');
|
||||||
$about-path.unlink if $about-path.l;
|
$about-path.unlink if $about-path.l;
|
||||||
$by-id.add("{$!meta.about-id}.html").symlink: $about-path;
|
$by-id.add("{$!meta.about-id}.html").symlink: $about-path;
|
||||||
|
@ -137,6 +143,7 @@ class PostDB {
|
||||||
my $tags-dir = $out-dir.add('tags/');
|
my $tags-dir = $out-dir.add('tags/');
|
||||||
mkdir $tags-dir unless $tags-dir.e;
|
mkdir $tags-dir unless $tags-dir.e;
|
||||||
for @tags -> $tag {
|
for @tags -> $tag {
|
||||||
|
say "Rendering tags page: $tag" when $report;
|
||||||
$tags-dir.add("$tag.html").spurt:
|
$tags-dir.add("$tag.html").spurt:
|
||||||
$config.generate-tag-page(self, $tag);
|
$config.generate-tag-page(self, $tag);
|
||||||
}
|
}
|
||||||
|
@ -144,17 +151,21 @@ class PostDB {
|
||||||
my $series-dir = $out-dir.add('series/');
|
my $series-dir = $out-dir.add('series/');
|
||||||
mkdir $series-dir unless $series-dir.e;
|
mkdir $series-dir unless $series-dir.e;
|
||||||
for %!series.kv -> $key, $value {
|
for %!series.kv -> $key, $value {
|
||||||
|
say "Rendering series page: $key" when $report;
|
||||||
$series-dir.add("$key.html").spurt:
|
$series-dir.add("$key.html").spurt:
|
||||||
series-page($key, self);
|
series-page($key, self);
|
||||||
}
|
}
|
||||||
# Generate the main series page
|
# Generate the main series page
|
||||||
|
say "Rendering main series list" when $report;
|
||||||
$out-dir.add('series.html').spurt:
|
$out-dir.add('series.html').spurt:
|
||||||
series-list-page self;
|
series-list-page self;
|
||||||
# Render the rss/atom feed
|
# Render the rss/atom feed
|
||||||
|
say "Rendering atom feed" when $report;
|
||||||
my $atom-path = $out-dir.add('atom.xml');
|
my $atom-path = $out-dir.add('atom.xml');
|
||||||
my $atom = posts-to-atom self;
|
my $atom = posts-to-atom self;
|
||||||
$atom-path.spurt: format-xml(~$atom);
|
$atom-path.spurt: format-xml(~$atom);
|
||||||
# Create the resources folder and copy over our style sheets
|
# Create the resources folder and copy over our style sheets
|
||||||
|
say "Creating resources folder" when $report;
|
||||||
my $res-dir = $out-dir.add('resources/');
|
my $res-dir = $out-dir.add('resources/');
|
||||||
mkdir $res-dir unless $res-dir.e;
|
mkdir $res-dir unless $res-dir.e;
|
||||||
# symlink the resources directory to make "interactive" styling eaiser
|
# symlink the resources directory to make "interactive" styling eaiser
|
||||||
|
@ -164,6 +175,7 @@ class PostDB {
|
||||||
%?RESOURCES<code.css>.IO.symlink: $res-dir.add('code.css') unless $res-dir.add('code.css').e;
|
%?RESOURCES<code.css>.IO.symlink: $res-dir.add('code.css') unless $res-dir.add('code.css').e;
|
||||||
%?RESOURCES<admonitions.css>.IO.symlink: $res-dir.add('admonitions.css') unless $res-dir.add('admonitions.css').e;
|
%?RESOURCES<admonitions.css>.IO.symlink: $res-dir.add('admonitions.css') unless $res-dir.add('admonitions.css').e;
|
||||||
%?RESOURCES<cactus.css>.IO.symlink: $res-dir.add('cactus.css') unless $res-dir.add('cactus.css').e;
|
%?RESOURCES<cactus.css>.IO.symlink: $res-dir.add('cactus.css') unless $res-dir.add('cactus.css').e;
|
||||||
|
say "Done" when $report;
|
||||||
}
|
}
|
||||||
|
|
||||||
#| Get a list of posts sorted by date
|
#| Get a list of posts sorted by date
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue