diff options
author | aycabta <aycabta@gmail.com> | 2020-04-14 19:33:45 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2020-05-24 23:47:24 +0900 |
commit | f52a4690f8fbd495e8517178a0bf95c69ccea47c (patch) | |
tree | d0a909f81c7078513afd922946405a2380c427ed /lib/rdoc | |
parent | c79f9ea606d072176533b22813653f9fd26940af (diff) |
[ruby/rdoc] Process crossref before tidylink
The crossref must be linked before tidylink because Klass.method[:sym] will be
processed as a tidylink first and will be broken.
https://github.com/ruby/rdoc/commit/0f47baf6d2
Diffstat (limited to 'lib/rdoc')
-rw-r--r-- | lib/rdoc/markup/to_html.rb | 25 | ||||
-rw-r--r-- | lib/rdoc/markup/to_html_crossref.rb | 12 |
2 files changed, 29 insertions, 8 deletions
diff --git a/lib/rdoc/markup/to_html.rb b/lib/rdoc/markup/to_html.rb index 9ae0fff8a7..3b1b0e9d40 100644 --- a/lib/rdoc/markup/to_html.rb +++ b/lib/rdoc/markup/to_html.rb @@ -52,12 +52,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter @th = nil @hard_break = "<br>\n" - # external links - @markup.add_regexp_handling(/(?:link:|https?:|mailto:|ftp:|irc:|www\.)\S+\w/, - :HYPERLINK) - - add_regexp_handling_RDOCLINK - add_regexp_handling_TIDYLINK + init_regexp_handlings init_tags end @@ -66,6 +61,24 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter # # These methods are used by regexp handling markup added by RDoc::Markup#add_regexp_handling. + ## + # Adds regexp handlings. + + def init_regexp_handlings + # external links + @markup.add_regexp_handling(/(?:link:|https?:|mailto:|ftp:|irc:|www\.)\S+\w/, + :HYPERLINK) + init_link_notation_regexp_handlings + end + + ## + # Adds regexp handlings about link notations. + + def init_link_notation_regexp_handlings + add_regexp_handling_RDOCLINK + add_regexp_handling_TIDYLINK + end + def handle_RDOCLINK url # :nodoc: case url when /^rdoc-ref:/ diff --git a/lib/rdoc/markup/to_html_crossref.rb b/lib/rdoc/markup/to_html_crossref.rb index 4a3f028135..77e3a94107 100644 --- a/lib/rdoc/markup/to_html_crossref.rb +++ b/lib/rdoc/markup/to_html_crossref.rb @@ -39,10 +39,18 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml @hyperlink_all = @options.hyperlink_all @show_hash = @options.show_hash - crossref_re = @hyperlink_all ? ALL_CROSSREF_REGEXP : CROSSREF_REGEXP + @cross_reference = RDoc::CrossReference.new @context + end + + def init_link_notation_regexp_handlings + add_regexp_handling_RDOCLINK + + # The crossref must be linked before tidylink because Klass.method[:sym] + # will be processed as a tidylink first and will be broken. + crossref_re = @options.hyperlink_all ? ALL_CROSSREF_REGEXP : CROSSREF_REGEXP @markup.add_regexp_handling crossref_re, :CROSSREF - @cross_reference = RDoc::CrossReference.new @context + add_regexp_handling_TIDYLINK end ## |