diff --git a/rb/gen_user_guide.rb b/rb/gen_user_guide.rb index 15af9c7..0f83b1e 100644 --- a/rb/gen_user_guide.rb +++ b/rb/gen_user_guide.rb @@ -37,7 +37,7 @@ class Generator def initialize(input, output_file, multi_file) current_page = if multi_file - "index.html" + nil else File.basename(output_file) end @@ -54,7 +54,7 @@ class Generator new_page = !new_page_text.nil? section_number = get_next_section_number(level) anchor = make_anchor(section_number, title_text) - if new_page + if new_page or current_page.nil? current_page = anchor end @sections << Section.new(section_number, title_text, current_page, anchor) @@ -66,16 +66,9 @@ class Generator renderer = Redcarpet::Render::HTML.new @markdown_renderer = Redcarpet::Markdown.new(renderer) - content = %[

Table of Contents

\n] + content = render_toc @sections.each do |section| - indent = section.number.split(".").size - 1 - content += %[] - content += %[#{section.number} #{section.title}
\n] - content += %[
] - end - @sections.each do |section| - content += %[] - content += @markdown_renderer.render(section.contents) + content += render_section(section) end changelog = @markdown_renderer.render(File.read("CHANGELOG.md")) content.gsub!("${changelog}", changelog) @@ -93,6 +86,22 @@ class Generator end end + def render_toc + toc_content = %[

Table of Contents

\n] + @sections.each do |section| + indent = section.number.split(".").size - 1 + toc_content += %[] + toc_content += %[
#{section.number} #{section.title}
\n] + toc_content += %[] + end + toc_content + end + + def render_section(section) + content = %[] + content + @markdown_renderer.render(section.contents) + end + def make_anchor(section_number, section_title) "s" + ("#{section_number} #{section_title}").gsub(/[^a-zA-Z0-9]/, "_") end