Skip to content

Commit

Permalink
Merge pull request #800 from nobu/rdoc-links
Browse files Browse the repository at this point in the history
Links to document texts without "rdoc-ref:" prefix
  • Loading branch information
aycabta committed Mar 30, 2021
2 parents 3f2bd42 + f18b27b commit 2810ec5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/rdoc/markup/to_html.rb
Expand Up @@ -357,6 +357,10 @@ def gen_url url, text
url =~ /\.(gif|png|jpg|jpeg|bmp)$/ then
"<img src=\"#{url}\" />"
else
if scheme != 'link' and /\.(?:rb|rdoc|md)\z/i =~ url
url = url.sub(%r%\A([./]*)(.*)\z%) { "#$1#{$2.tr('.', '_')}.html" }
end

text = text.sub %r%^#{scheme}:/*%i, ''
text = text.sub %r%^[*\^](\d+)$%, '\1'

Expand Down
21 changes: 21 additions & 0 deletions test/rdoc/test_rdoc_markup_to_html.rb
Expand Up @@ -738,6 +738,27 @@ def test_gen_url_ssl_image_url
assert_equal '<img src="https://example.com/image.png" />', @to.gen_url('https://example.com/image.png', 'ignored')
end

def test_gen_url_rdoc_file
assert_equal '<a href="doc/example_rdoc.html">example</a>',
@to.gen_url('doc/example.rdoc', 'example')
assert_equal '<a href="../ex_doc/example_rdoc.html">example</a>',
@to.gen_url('../ex.doc/example.rdoc', 'example')
end

def test_gen_url_md_file
assert_equal '<a href="doc/example_md.html">example</a>',
@to.gen_url('doc/example.md', 'example')
assert_equal '<a href="../ex_doc/example_md.html">example</a>',
@to.gen_url('../ex.doc/example.md', 'example')
end

def test_gen_url_rb_file
assert_equal '<a href="doc/example_rb.html">example</a>',
@to.gen_url('doc/example.rb', 'example')
assert_equal '<a href="../ex_doc/example_rb.html">example</a>',
@to.gen_url('../ex.doc/example.rb', 'example')
end

def test_handle_regexp_HYPERLINK_link
target = RDoc::Markup::RegexpHandling.new 0, 'link:README.txt'

Expand Down
3 changes: 3 additions & 0 deletions test/rdoc/test_rdoc_top_level.rb
Expand Up @@ -157,6 +157,9 @@ def test_hash

def test_http_url
assert_equal 'prefix/path/top_level_rb.html', @top_level.http_url('prefix')

other_level = @store.add_file 'path.other/level.rb'
assert_equal 'prefix/path_other/level_rb.html', other_level.http_url('prefix')
end

def test_last_modified
Expand Down

0 comments on commit 2810ec5

Please sign in to comment.