#!/usr/bin/perl use strict; use warnings; use autodie; use List::Util qw(pairs); use Config::Tiny; use Path::Tiny; use Text::Hogan::Compiler; =head1 NAME mkdocs-prep - mkdocs preprocessor expanding mustache tokens =head1 VERSION Version 0.01 =head1 SYNOPSIS =head1 DESCRIPTION B prepares a markdown document for B processing. The document is treated as a mustache template and resolved using an external set of single-word tokens. Template tokens are gathered from external config file F, where each line lists a token, an equals sign, and replacement string. Each token in the document, wrapped with double curly brackets {{like_this}}, is replaced (including brackets) with corresponding string. =cut my ( $infile, $outfile ) = @ARGV; my $config = Config::Tiny->new; $config = Config::Tiny->read( 'site.mk', 'utf8' ); my $content = path($infile)->slurp_utf8; my $compiler = Text::Hogan::Compiler->new; my $template = $compiler->compile($content); path($outfile)->spew_utf8( $template->render( $config->{_} ) ); 1;