#!/usr/bin/env perl use strict; use warnings; use File::Cat; use File::Slurp; use Text::Markdown "markdown"; sub page { my ($pageFile, $pageTitle, $pageType, $pageContent) = @_; open my $outHandle, ">>", "output/$pageFile"; # Write header and insert page title open my $inHandle, "<", "template/header.html"; while(<$inHandle>) { $_ =~ s/\$title/$pageTitle/; print $outHandle $_; } close $inHandle; # Write content and footer print $outHandle "<$pageType>"; print $outHandle $pageContent; print $outHandle ""; cat "template/footer.html", $outHandle; close $outHandle; # Create gzip version `gzip -k output/$pageFile`; } # Build index print "Building index\n"; my $pageContent = read_file "template/index.html"; page "index.html", "blog.vdouillet.fr", "body", $pageContent; # Build about print "Building about\n"; $pageContent = read_file "static/about.md"; $pageContent = markdown $pageContent; page "about.html", "About", "body", $pageContent; # Build articles while(<*.md>) { print "Processing $_\n"; # Extract article title from the title in MD article open my $articleHandle, "<", $_; my $headLine = <$articleHandle>; $headLine = substr $headLine, 2; close $articleHandle; # Extract output file name: MD file name without the date my $pageFile = substr $_, 9, -3; $pageFile .= ".html"; # Build article my $articleContent = read_file $_; $articleContent = markdown $articleContent; page $pageFile, $headLine, "article", $articleContent; }