vim-begin / vim-begin / jekyll-prototype / CONVERT.pl

#!/usr/bin/perl

use strict;
use warnings;

use IO::All;

use 5.0016;

foreach my $fn (@ARGV)
{
    my $text = io($fn)->utf8->slurp;

    if ($text !~ s/\A-+\nlayout: *default\ntitle: *([^\n]+)\n-+\n+//ms)
    {
        die "Failed in $fn.";
    }
    my $title = $1;

    my $bp = '../' x scalar(() = $fn =~ m#/#g);

    io("$fn.tt2")->utf8->print(<<"EOF");
[%- PROCESS "blocks.tt2" -%]
[%- SET title = '$title' -%]
[%- SET base_path = '$bp' -%]
[%- PROCESS start_html -%]
$text

[% PROCESS "footer.tt2" %]
EOF
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.