pyenv/doc/mdtoc

34 lines
671 B
Text
Raw Normal View History

#!/usr/bin/env ruby
require 'escape_utils'
start_at_level = 2
headers = Hash.new(0)
anchor = lambda { |title|
href = title.downcase
href.gsub!(/[^\w\- ]/, '') # remove punctuation
href.gsub!(' ', '-') # replace spaces with dash
href = EscapeUtils.escape_uri(href) # escape extended UTF-8 chars
uniq = (headers[href] > 0) ? "-#{headers[href]}" : ''
headers[href] += 1
href + uniq
}
ARGF.each_line do |line|
if line =~ /^(#+) (.+?)#*$/
level = $1.size
next if level < start_at_level
title = $2.strip
href = anchor.call title
puts "%s* [%s](#%s)" % [
' ' * (level - start_at_level),
title,
href
]
end
end