mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Allow inline markup to have a leading '#' or '\', or trailing punctuation.
i.e. *#freeze?*, *\foo?*. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b797fdc7e8
commit
bcd4deb6c5
4 changed files with 43 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Feb 13 08:57:21 2008 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
|
* lib/rdoc/markup/inline.rb: Allow inline markup to have a leading
|
||||||
|
'#' or '\', or trailing punctuation. i.e. *#freeze?*, *\foo?*.
|
||||||
|
|
||||||
Wed Feb 13 07:21:23 2008 Eric Hodel <drbrain@segment7.net>
|
Wed Feb 13 07:21:23 2008 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
* lib/rdoc/to_html_hyperlink.rb: Moved linking to to_html.rb, move
|
* lib/rdoc/to_html_hyperlink.rb: Moved linking to to_html.rb, move
|
||||||
|
|
|
@ -167,21 +167,20 @@ class RDoc::Markup
|
||||||
# first do matching ones
|
# first do matching ones
|
||||||
tags = MATCHING_WORD_PAIRS.keys.join("")
|
tags = MATCHING_WORD_PAIRS.keys.join("")
|
||||||
|
|
||||||
re = "(^|\\W)([#{tags}])([A-Za-z_]+?)\\2(\\W|\$)"
|
re = /(^|\W)([#{tags}])([#\\]?[\w.\/]+?\S?)\2(\W|$)/
|
||||||
# re = "(^|\\W)([#{tags}])(\\S+?)\\2(\\W|\$)"
|
|
||||||
|
|
||||||
1 while str.gsub!(Regexp.new(re)) {
|
1 while str.gsub!(re) do
|
||||||
attr = MATCHING_WORD_PAIRS[$2];
|
attr = MATCHING_WORD_PAIRS[$2]
|
||||||
attrs.set_attrs($`.length + $1.length + $2.length, $3.length, attr)
|
attrs.set_attrs($`.length + $1.length + $2.length, $3.length, attr)
|
||||||
$1 + NULL*$2.length + $3 + NULL*$2.length + $4
|
$1 + NULL * $2.length + $3 + NULL * $2.length + $4
|
||||||
}
|
end
|
||||||
|
|
||||||
# then non-matching
|
# then non-matching
|
||||||
unless WORD_PAIR_MAP.empty?
|
unless WORD_PAIR_MAP.empty? then
|
||||||
WORD_PAIR_MAP.each do |regexp, attr|
|
WORD_PAIR_MAP.each do |regexp, attr|
|
||||||
str.gsub!(regexp) {
|
str.gsub!(regexp) {
|
||||||
attrs.set_attrs($`.length + $1.length, $2.length, attr)
|
attrs.set_attrs($`.length + $1.length, $2.length, attr)
|
||||||
NULL*$1.length + $2 + NULL*$3.length
|
NULL * $1.length + $2 + NULL * $3.length
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -213,8 +212,7 @@ class RDoc::Markup
|
||||||
# A \ in front of a character that would normally be processed turns off
|
# A \ in front of a character that would normally be processed turns off
|
||||||
# processing. We do this by turning \< into <#{PROTECT}
|
# processing. We do this by turning \< into <#{PROTECT}
|
||||||
|
|
||||||
PROTECTABLE = [ "<" << "\\" ]
|
PROTECTABLE = %w[<\\]
|
||||||
|
|
||||||
|
|
||||||
def mask_protected_sequences
|
def mask_protected_sequences
|
||||||
protect_pattern = Regexp.new("\\\\([#{Regexp.escape(PROTECTABLE.join(''))}])")
|
protect_pattern = Regexp.new("\\\\([#{Regexp.escape(PROTECTABLE.join(''))}])")
|
||||||
|
@ -272,11 +270,15 @@ class RDoc::Markup
|
||||||
@attrs = AttrSpan.new(@str.length)
|
@attrs = AttrSpan.new(@str.length)
|
||||||
|
|
||||||
puts("After protecting, str='#{@str.dump}'") if $DEBUG_RDOC
|
puts("After protecting, str='#{@str.dump}'") if $DEBUG_RDOC
|
||||||
|
|
||||||
convert_attrs(@str, @attrs)
|
convert_attrs(@str, @attrs)
|
||||||
convert_html(@str, @attrs)
|
convert_html(@str, @attrs)
|
||||||
convert_specials(str, @attrs)
|
convert_specials(str, @attrs)
|
||||||
|
|
||||||
unmask_protected_sequences
|
unmask_protected_sequences
|
||||||
|
|
||||||
puts("After flow, str='#{@str.dump}'") if $DEBUG_RDOC
|
puts("After flow, str='#{@str.dump}'") if $DEBUG_RDOC
|
||||||
|
|
||||||
return split_into_flow
|
return split_into_flow
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -334,6 +334,20 @@ class TestRDocMarkup < Test::Unit::TestCase
|
||||||
"L1: ListEnd\n" ])
|
"L1: ListEnd\n" ])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_list_nested_number_number
|
||||||
|
str = "1. one\n1. two\n 1. cat\n 1. dog"
|
||||||
|
|
||||||
|
line_groups(str,
|
||||||
|
[ "L1: ListStart\n",
|
||||||
|
"L1: NUMBER ListItem\none",
|
||||||
|
"L1: NUMBER ListItem\ntwo",
|
||||||
|
"L2: ListStart\n",
|
||||||
|
"L2: NUMBER ListItem\ncat",
|
||||||
|
"L2: NUMBER ListItem\ndog",
|
||||||
|
"L2: ListEnd\n",
|
||||||
|
"L1: ListEnd\n" ])
|
||||||
|
end
|
||||||
|
|
||||||
def test_list_number
|
def test_list_number
|
||||||
str = "1. one\n2. two\n1. three"
|
str = "1. one\n2. two\n1. three"
|
||||||
|
|
||||||
|
|
|
@ -82,6 +82,17 @@ class TestRDocMarkupAttributeManager < Test::Unit::TestCase
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_bold
|
||||||
|
assert_equal [@bold_on, 'bold', @bold_off],
|
||||||
|
@am.flow("*bold*")
|
||||||
|
|
||||||
|
assert_equal [@bold_on, 'Bold:', @bold_off],
|
||||||
|
@am.flow("*Bold:*")
|
||||||
|
|
||||||
|
assert_equal [@bold_on, '\\bold', @bold_off],
|
||||||
|
@am.flow("*\\bold*")
|
||||||
|
end
|
||||||
|
|
||||||
def test_combined
|
def test_combined
|
||||||
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||||
@am.flow("cat _and_ *dog*"))
|
@am.flow("cat _and_ *dog*"))
|
||||||
|
|
Loading…
Add table
Reference in a new issue