Markdownに目次を作る(Perlで)
最近は高級なエディターソフトが使えない環境でMarkdownを書いていて、Markdowの目次をツールで生成することができない。
Perlなら使えるのでMarkdown本文を渡して実行すると目次を作成するPerlを5分以内で書いた。
(近年稀に見る雑さ)
# 使い方:__DATA__以降にMarkdown本文貼り付けてperlスクリプト実行→ToCをターミナルに吐く use strict; use warnings; sub md2toc { my @cont = <::DATA>; my $inQuote = 0; # 引用文取り除くために今引用内の行なのか判別する for my $line (@cont) { # 引用検出 if ($line =~ m/^[`]/) { $inQuote = ! $inQuote; next; } $inQuote and next; # 引用文に興味ない ($line =~ m/^[#]/) or next; # アンカー以外興味ない $line =~ s/#\s/- /; $line =~ s/#/ /g; $line =~ s/\s{2}-\s/- [/; chomp $line; $line .= "]\n"; print $line; } } ::md2toc; __DATA__ ここにMarkdownはる