#!/usr/bin/env ruby
=begin
= RDのHeadLineの目次を作る
<<< rd-hindex2.hindex.rd
== 概要
RDからHeadLineの目次RDを作成する。
長文RDを扱うときは便利。
元々は (())
が、(())
で公開していた rd-hindex.rd を勝手に改造したもの。
+ レベル 5 のヘッダ
と
++ レベル 6 のヘッダ
も目次として取り込む仕様になっている。
== 使い方
まずこのスクリプトで目次を作成し、もとのRDに「Include」で取り込む。
(1) 目次作成
$ rd-hindex2.rb input.rd > input.hindex.rd
(2) もとのRDにIncludeで取り込む。((<実行結果>))参照。
=== 例
例えばこの rd-hindex2.rb でやってみると以下のような感じ
(1) 自身を取り込めないので、まずはテスト用にコピー
その際 「Include」行をコメントアウト。
$ sed s/^'<<<'/'#<<<'/ < rd-hindex2.rd > input.rd
(2) 目次ファイル生成。
$ ruby rd-hindex2.rb input.rd > rd-hindex2.hindex.rd
(3) 取り込んで HTML 作成。
$ rd2 rd-hindex2.rb > rd-hindex2.html
=end
puts "=begin"
puts readlines.collect {|line|
next if line =~ /^=(begin|end)$/
if line =~ /^(=+|\++)\s*(.+)$/
level = $1.length
content = $2
if $1 =~ /^\++$/
level = level + 4
end
#pp %w[level content], binding
next if level == 1
%Q[#{' ' * (level - 2)}* ((<"#{content}">))]
end
}.compact
puts "=end"