#!/usr/bin/perl -wn use strict; use autodie; our (@doc, @toc); our $last; if (1..(m/^[A-Z]/ && m/table of contents/i)) { # before TOC print; } elsif (m/^\w/..0) { push @doc, $_; # after TOC if (m/^-+$/ || m/^=+$/) { my $lev = $& =~ m/^=/ ? ' ' : ' '; my $href = $last; $href =~ y/ A-Z/-a-z/; $href =~ y/-._a-z//cd; push @toc, "${lev}* [$last](#$href)\n"; } $last = $_; chomp $last; } else { # in TOC print if m/^===|^---/; } END { print "\n", @toc, "\n"; print @doc; }