зеркало из https://github.com/github/ruby.git
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:
Родитель
b797fdc7e8
Коммит
bcd4deb6c5
|
@ -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>
|
||||
|
||||
* lib/rdoc/to_html_hyperlink.rb: Moved linking to to_html.rb, move
|
||||
|
|
|
@ -167,21 +167,20 @@ class RDoc::Markup
|
|||
# first do matching ones
|
||||
tags = MATCHING_WORD_PAIRS.keys.join("")
|
||||
|
||||
re = "(^|\\W)([#{tags}])([A-Za-z_]+?)\\2(\\W|\$)"
|
||||
# re = "(^|\\W)([#{tags}])(\\S+?)\\2(\\W|\$)"
|
||||
re = /(^|\W)([#{tags}])([#\\]?[\w.\/]+?\S?)\2(\W|$)/
|
||||
|
||||
1 while str.gsub!(Regexp.new(re)) {
|
||||
attr = MATCHING_WORD_PAIRS[$2];
|
||||
1 while str.gsub!(re) do
|
||||
attr = MATCHING_WORD_PAIRS[$2]
|
||||
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
|
||||
unless WORD_PAIR_MAP.empty?
|
||||
unless WORD_PAIR_MAP.empty? then
|
||||
WORD_PAIR_MAP.each do |regexp, attr|
|
||||
str.gsub!(regexp) {
|
||||
str.gsub!(regexp) {
|
||||
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
|
||||
|
@ -213,8 +212,7 @@ class RDoc::Markup
|
|||
# A \ in front of a character that would normally be processed turns off
|
||||
# processing. We do this by turning \< into <#{PROTECT}
|
||||
|
||||
PROTECTABLE = [ "<" << "\\" ]
|
||||
|
||||
PROTECTABLE = %w[<\\]
|
||||
|
||||
def mask_protected_sequences
|
||||
protect_pattern = Regexp.new("\\\\([#{Regexp.escape(PROTECTABLE.join(''))}])")
|
||||
|
@ -272,11 +270,15 @@ class RDoc::Markup
|
|||
@attrs = AttrSpan.new(@str.length)
|
||||
|
||||
puts("After protecting, str='#{@str.dump}'") if $DEBUG_RDOC
|
||||
|
||||
convert_attrs(@str, @attrs)
|
||||
convert_html(@str, @attrs)
|
||||
convert_specials(str, @attrs)
|
||||
|
||||
unmask_protected_sequences
|
||||
|
||||
puts("After flow, str='#{@str.dump}'") if $DEBUG_RDOC
|
||||
|
||||
return split_into_flow
|
||||
end
|
||||
|
||||
|
|
|
@ -334,6 +334,20 @@ class TestRDocMarkup < Test::Unit::TestCase
|
|||
"L1: ListEnd\n" ])
|
||||
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
|
||||
str = "1. one\n2. two\n1. three"
|
||||
|
||||
|
|
|
@ -82,6 +82,17 @@ class TestRDocMarkupAttributeManager < Test::Unit::TestCase
|
|||
|
||||
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
|
||||
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
|
||||
@am.flow("cat _and_ *dog*"))
|
||||
|
|
Загрузка…
Ссылка в новой задаче