Skip to content

Commit 3a4e107

Browse files
committed
Stop generating a separate page file for main_page
When a page is used as main_page (e.g. README.md), its content is already displayed on index.html. Generating a separate page file (e.g. README_md.html) is redundant. Skip the main_page in: - darkfish generator (page file generation) - json search index (avoids linking to a nonexistent page) - aliki sidebar pages template
1 parent 08036aa commit 3a4e107

4 files changed

Lines changed: 20 additions & 2 deletions

File tree

lib/rdoc/generator/darkfish.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,8 @@ def generate_file_files
393393
@files.each do |file|
394394
current = file
395395

396+
next if file.full_name == @options.main_page
397+
396398
if file.text? and page_file.exist? then
397399
generate_page file
398400
next

lib/rdoc/generator/json_index.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def index_pages
250250
debug_msg " generating pages search index"
251251

252252
pages = @files.select do |file|
253-
file.text?
253+
file.text? && file.full_name != @options.main_page
254254
end
255255

256256
pages.each do |page|

lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<%- simple_files = @files.select { |f| f.text? } %>
1+
<%- simple_files = @files.select { |f| f.text? && f.full_name != @options.main_page } %>
22

33
<%- if defined?(current) && current.respond_to?(:page_name) %>
44
<%- dir = current.full_name[%r{\A[^/]+(?=/)}] || current.page_name %>

test/rdoc/generator/darkfish_test.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,22 @@ def test_generate_index_with_main_page
178178
assert_not_include index_html, 'This is the API documentation for My awesome Ruby project.'
179179
end
180180

181+
def test_generate_does_not_create_page_file_for_main_page
182+
top_level = @store.add_file("README.rdoc", parser: RDoc::Parser::Simple)
183+
top_level.comment = "= Main Page\nThis is the main page content."
184+
185+
other_page = @store.add_file("OTHER.rdoc", parser: RDoc::Parser::Simple)
186+
other_page.comment = "= Other Page\nThis is another page."
187+
188+
@options.main_page = "README.rdoc"
189+
190+
@g.generate
191+
192+
assert_file "index.html"
193+
refute File.exist?("README_rdoc.html"), "main_page should not be generated as a separate page"
194+
assert_file "OTHER_rdoc.html"
195+
end
196+
181197
def test_generate_index_without_main_page
182198
top_level = @store.add_file 'file.rb'
183199
top_level.comment = <<~RDOC

0 commit comments

Comments
 (0)