ruby-changes:53212
From: nobu <ko1@a...>
Date: Mon, 29 Oct 2018 15:23:26 +0900 (JST)
Subject: [ruby-changes:53212] nobu:r65427 (trunk): Mark up code inside link text as <code>
nobu 2018-10-29 15:23:21 +0900 (Mon, 29 Oct 2018) New Revision: 65427 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=65427 Log: Mark up code inside link text as <code> Merged https://github.com/ruby/rdoc/pull/660 Modified files: trunk/lib/rdoc/markup/to_html_crossref.rb trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb Index: lib/rdoc/markup/to_html_crossref.rb =================================================================== --- lib/rdoc/markup/to_html_crossref.rb (revision 65426) +++ lib/rdoc/markup/to_html_crossref.rb (revision 65427) @@ -49,16 +49,19 @@ class RDoc::Markup::ToHtmlCrossref < RDo https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markup/to_html_crossref.rb#L49 # Creates a link to the reference +name+ if the name exists. If +text+ is # given it is used as the link text, otherwise +name+ is used. - def cross_reference name, text = nil + def cross_reference name, text = nil, code = true lookup = name name = name[1..-1] unless @show_hash if name[0, 1] == '#' - name = "#{CGI.unescape $'} at #{$1}" if name =~ /(.*[^#:])@/ - - text = name unless text + if name =~ /(.*[^#:])@/ + text ||= "#{CGI.unescape $'} at <code>#{$1}</code>" + code = false + else + text ||= name + end - link lookup, text + link lookup, text, code end ## @@ -119,13 +122,14 @@ class RDoc::Markup::ToHtmlCrossref < RDo https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markup/to_html_crossref.rb#L122 def gen_url url, text return super unless url =~ /\Ardoc-ref:/ - cross_reference $', text + name = $' + cross_reference name, text, name == text end ## # Creates an HTML link to +name+ with the given +text+. - def link name, text + def link name, text, code = true if name =~ /(.*[^#:])@/ then name = $1 label = $' @@ -139,6 +143,10 @@ class RDoc::Markup::ToHtmlCrossref < RDo https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markup/to_html_crossref.rb#L143 else path = ref.as_href @from_path + if code and RDoc::CodeObject === ref and !(RDoc::TopLevel === ref) + text = "<code>#{text}</code>" + end + if path =~ /#/ then path << "-label-#{label}" elsif ref.sections and Index: test/rdoc/test_rdoc_markup_to_html_crossref.rb =================================================================== --- test/rdoc/test_rdoc_markup_to_html_crossref.rb (revision 65426) +++ test/rdoc/test_rdoc_markup_to_html_crossref.rb (revision 65427) @@ -14,26 +14,26 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L14 def test_convert_CROSSREF result = @to.convert 'C1' - assert_equal para("<a href=\"C1.html\">C1</a>"), result + assert_equal para("<a href=\"C1.html\"><code>C1</code></a>"), result end def test_convert_CROSSREF_label result = @to.convert 'C1@foo' - assert_equal para("<a href=\"C1.html#label-foo\">foo at C1</a>"), result + assert_equal para("<a href=\"C1.html#label-foo\">foo at <code>C1</code></a>"), result result = @to.convert 'C1#m@foo' - assert_equal para("<a href=\"C1.html#method-i-m-label-foo\">foo at C1#m</a>"), + assert_equal para("<a href=\"C1.html#method-i-m-label-foo\">foo at <code>C1#m</code></a>"), result end def test_convert_CROSSREF_label_period result = @to.convert 'C1@foo.' - assert_equal para("<a href=\"C1.html#label-foo\">foo at C1</a>."), result + assert_equal para("<a href=\"C1.html#label-foo\">foo at <code>C1</code></a>."), result end def test_convert_CROSSREF_label_space result = @to.convert 'C1@foo+bar' - assert_equal para("<a href=\"C1.html#label-foo+bar\">foo bar at C1</a>"), + assert_equal para("<a href=\"C1.html#label-foo+bar\">foo bar at <code>C1</code></a>"), result end @@ -41,31 +41,31 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L41 @c1.add_section 'Section' result = @to.convert 'C1@Section' - assert_equal para("<a href=\"C1.html#Section\">Section at C1</a>"), result + assert_equal para("<a href=\"C1.html#Section\">Section at <code>C1</code></a>"), result end def test_convert_CROSSREF_constant result = @to.convert 'C1::CONST' - assert_equal para("<a href=\"C1.html#CONST\">C1::CONST</a>"), result + assert_equal para("<a href=\"C1.html#CONST\"><code>C1::CONST</code></a>"), result end def test_convert_RDOCLINK_rdoc_ref result = @to.convert 'rdoc-ref:C1' - assert_equal para("<a href=\"C1.html\">C1</a>"), result + assert_equal para("<a href=\"C1.html\"><code>C1</code></a>"), result end def test_convert_RDOCLINK_rdoc_ref_method result = @to.convert 'rdoc-ref:C1#m' - assert_equal para("<a href=\"C1.html#method-i-m\">C1#m</a>"), result + assert_equal para("<a href=\"C1.html#method-i-m\"><code>C1#m</code></a>"), result end def test_convert_RDOCLINK_rdoc_ref_method_label result = @to.convert 'rdoc-ref:C1#m@foo' - assert_equal para("<a href=\"C1.html#method-i-m-label-foo\">foo at C1#m</a>"), + assert_equal para("<a href=\"C1.html#method-i-m-label-foo\">foo at <code>C1#m</code></a>"), result, 'rdoc-ref:C1#m@foo' end @@ -75,13 +75,13 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L75 result = @to.convert 'rdoc-ref:C1#%' - assert_equal para("<a href=\"C1.html#method-i-25\">C1#%</a>"), result + assert_equal para("<a href=\"C1.html#method-i-25\"><code>C1#%</code></a>"), result m.singleton = true result = @to.convert 'rdoc-ref:C1::%' - assert_equal para("<a href=\"C1.html#method-c-25\">C1::%</a>"), result + assert_equal para("<a href=\"C1.html#method-c-25\"><code>C1::%</code></a>"), result end def test_convert_RDOCLINK_rdoc_ref_method_percent_label @@ -90,21 +90,21 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L90 result = @to.convert 'rdoc-ref:C1#%@f' - assert_equal para("<a href=\"C1.html#method-i-25-label-f\">f at C1#%</a>"), + assert_equal para("<a href=\"C1.html#method-i-25-label-f\">f at <code>C1#%</code></a>"), result m.singleton = true result = @to.convert 'rdoc-ref:C1::%@f' - assert_equal para("<a href=\"C1.html#method-c-25-label-f\">f at C1::%</a>"), + assert_equal para("<a href=\"C1.html#method-c-25-label-f\">f at <code>C1::%</code></a>"), result end def test_convert_RDOCLINK_rdoc_ref_label result = @to.convert 'rdoc-ref:C1@foo' - assert_equal para("<a href=\"C1.html#label-foo\">foo at C1</a>"), result, + assert_equal para("<a href=\"C1.html#label-foo\">foo at <code>C1</code></a>"), result, 'rdoc-ref:C1@foo' end @@ -117,18 +117,18 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L117 end def test_handle_regexp_CROSSREF - assert_equal "<a href=\"C2/C3.html\">C2::C3</a>", REGEXP_HANDLING('C2::C3') + assert_equal "<a href=\"C2/C3.html\"><code>C2::C3</code></a>", REGEXP_HANDLING('C2::C3') end def test_handle_regexp_CROSSREF_label - assert_equal "<a href=\"C1.html#method-i-m-label-foo\">foo at C1#m</a>", + assert_equal "<a href=\"C1.html#method-i-m-label-foo\">foo at <code>C1#m</code></a>", REGEXP_HANDLING('C1#m@foo') end def test_handle_regexp_CROSSREF_show_hash_false @to.show_hash = false - assert_equal "<a href=\"C1.html#method-i-m\">m</a>", + assert_equal "<a href=\"C1.html#method-i-m\"><code>m</code></a>", REGEXP_HANDLING('#m') end @@ -140,11 +140,11 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L140 link = @to.handle_regexp_HYPERLINK hyper 'C2::C3' - assert_equal '<a href="C2/C3.html">C2::C3</a>', link + assert_equal '<a href="C2/C3.html"><code>C2::C3</code></a>', link link = @to.handle_regexp_HYPERLINK hyper 'C4' - assert_equal '<a href="C4.html">C4</a>', link + assert_equal '<a href="C4.html"><code>C4</code></a>', link link = @to.handle_regexp_HYPERLINK hyper 'README.txt' @@ -200,16 +200,16 @@ class TestRDocMarkupToHtmlCrossref < Xre https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markup_to_html_crossref.rb#L200 def test_link assert_equal 'n', @to.link('n', 'n') - assert_equal '<a href="C1.html#method-c-m">m</a>', @to.link('m', 'm') + assert_equal '<a href="C1.html#method-c-m"><code>m</code></a>', @to.link('m', 'm') end def test_link_for_method_traverse @to = RDoc::Markup::ToHtmlCrossref.new @options, 'C2.html', @c9 - assert_equal '<a href="C9/A.html#method-i-foo">C9::B#foo</a>', @to.link('C9::B#foo', 'C9::B#foo') + assert_equal '<a href="C9/A.html#method-i-foo"><code>C9::B#foo</code></a>', @to.link('C9::B#foo', 'C9::B#foo') end def test_link_class_method_full - assert_equal '<a href="Parent.html#method-c-m">Parent::m</a>', + assert_equal '<a href="Parent.html#method-c-m"><code>Parent::m</code></a>', @to.link('Parent::m', 'Parent::m') end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/