diff options
Diffstat (limited to 'lib/rdoc')
-rw-r--r-- | lib/rdoc/parser/changelog.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/rdoc/parser/changelog.rb b/lib/rdoc/parser/changelog.rb index 763ba03d2c..eca4b56ec9 100644 --- a/lib/rdoc/parser/changelog.rb +++ b/lib/rdoc/parser/changelog.rb @@ -229,11 +229,29 @@ class RDoc::Parser::ChangeLog < RDoc::Parser out = [] entries.each do |entry, (author, date, body)| title = RDoc::Markup::Heading.new(3, "#{date} #{author}") + title.extend(Aref) + title.aref = "label-#{entry}" out << title - out.concat RDoc::Markdown.parse(body).parts + out.concat parse_log_entry(body, entry) end out end + + def parse_log_entry(content, sha) + RDoc::Markdown.parse(content).parts.each do |body| + case body + when RDoc::Markup::Heading + body.level += 3 + label = body.aref.sub(/\Alabel-/, "label-#{sha}-") + body.extend(Aref) + body.aref = label + end + end + end + + module Aref + attr_accessor :aref + end end end |