diff options
-rw-r--r-- | lib/redcloth3.rb | 4 | ||||
-rw-r--r-- | test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index e11145077..032e8bd67 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -341,7 +341,7 @@ class RedCloth3 < String A_HLGN = /(?:(?:<>|<|>|\=|[()]+)+)/ A_VLGN = /[\-^~]/ C_CLAS = '(?:\([^")]+\))' - C_LNGE = '(?:\[[^"\[\]]+\])' + C_LNGE = '(?:\[[a-z\-_]+\])' C_STYL = '(?:\{[^"}]+\})' S_CSPN = '(?:\\\\\d+)' S_RSPN = '(?:/\d+)' @@ -480,7 +480,7 @@ class RedCloth3 < String end lang = $1 if - text.sub!( /\[([^)]+?)\]/, '' ) + text.sub!( /\[([a-z\-_]+?)\]/, '' ) cls = $1 if text.sub!( /\(([^()]+?)\)/, '' ) diff --git a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb index 7a58d821d..d331dc28e 100644 --- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb @@ -110,6 +110,20 @@ class Redmine::WikiFormatting::TextileFormatterTest < ActionView::TestCase ) end + def test_lang_attribute + assert_html_output( + '*[fr]French*' => '<strong lang="fr">French</strong>', + '*[fr-fr]French*' => '<strong lang="fr-fr">French</strong>', + '*[fr_fr]French*' => '<strong lang="fr_fr">French</strong>' + ) + end + + def test_lang_attribute_should_ignore_invalid_value + assert_html_output( + '*[fr3]French*' => '<strong>[fr3]French</strong>' + ) + end + def test_nested_lists raw = <<-RAW # Item 1 |