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