#!/usr/bin/env perl # this script is generally responsible for all html postprocessing use v5.39; use utf8; use autodie; use Mojo::DOM; use File::Basename; my $template = do { local $/; open my $fh, '<', 'template.html'; <$fh>; }; my $dom = Mojo::DOM->new($template); my $content = `md2html $ARGV[0]`; # inject content @
$dom->at('article')->content($content); # replace with the contents of the first <h1> # also append a <hr> after the first <h1> my $title_dom = $dom->at('h1'); $dom->at('title')->content($title_dom->text) if ($title_dom); $title_dom->append('<hr>'); # makes the up button go up a directory my $parent = dirname $ARGV[0]; $parent =~ s/^(?:.+?)(\/.*)/$1/; $parent = dirname $parent if (basename($ARGV[0]) eq 'index.md' or $parent eq "src"); $dom->at('#go-up')->attr(href => $parent); # give title the same contents as alt if it exists for my $img ($dom->find('img')->each) { my $alt = $img->attr('alt'); $img->attr(title => $alt) if ($alt); } say "$dom";