From: Ian Jackson Date: Fri, 19 Jun 2020 17:20:22 +0000 (+0100) Subject: README.md: wip TOC, seems to generate nice output X-Git-Tag: nailing-cargo/1.0.0~134 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=557dcfa4e081b0133dc7d02360e5d43ad3116f25;p=nailing-cargo.git README.md: wip TOC, seems to generate nice output Signed-off-by: Ian Jackson --- diff --git a/markdown-toc-filter b/markdown-toc-filter index ec75972..8bb87f7 100755 --- a/markdown-toc-filter +++ b/markdown-toc-filter @@ -6,24 +6,32 @@ 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 +sub scanline () { 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"; + my $text = $last; + $text = 'Introduction' if $. == 2; + push @toc, "${lev}* [$text](#$href)\n"; } $last = $_; chomp $last; +} + +if (1..(m/^[A-Z]/ && m/table of contents/i)) { + # before TOC + scanline(); + print; +} elsif (m/^\w/..0) { + # after TOC + push @doc, $_; + scanline(); } else { # in TOC print if m/^===|^---/; + scanline(); } END {