Fixes Bug #30149 - Handling of parentheses for Korean, Chinese and Japanese
Adapts the pipe trick with parens for fullwidth parentheses. Adds parsertests. Patch from Dan Collins.
This commit is contained in:
parent
e08b912e5d
commit
507edf6873
2 changed files with 123 additions and 3 deletions
|
|
@ -4320,9 +4320,9 @@ class Parser {
|
|||
$tc = "[$wgLegalTitleChars]";
|
||||
$nc = '[ _0-9A-Za-z\x80-\xff-]'; # Namespaces can use non-ascii!
|
||||
|
||||
$p1 = "/\[\[(:?$nc+:|:|)($tc+?)( \\($tc+\\))\\|]]/"; # [[ns:page (context)|]]
|
||||
$p4 = "/\[\[(:?$nc+:|:|)($tc+?)(($tc+))\\|]]/"; # [[ns:page(context)|]]
|
||||
$p3 = "/\[\[(:?$nc+:|:|)($tc+?)( \\($tc+\\)|)(, $tc+|)\\|]]/"; # [[ns:page (context), context|]]
|
||||
$p1 = "/\[\[(:?$nc+:|:|)($tc+?)(\s?\\($tc+\\))\\|]]/"; # [[ns:page (context)|]]
|
||||
$p4 = "/\[\[(:?$nc+:|:|)($tc+?)(\s?($tc+))\\|]]/"; # [[ns:page(context)|]]
|
||||
$p3 = "/\[\[(:?$nc+:|:|)($tc+?)(\s?\\($tc+\\)|)(, $tc+|)\\|]]/"; # [[ns:page (context), context|]]
|
||||
$p2 = "/\[\[\\|($tc+)]]/"; # [[|page]]
|
||||
|
||||
# try $p1 first, to turn "[[A, B (C)|]]" into "[[A, B (C)|A, B]]"
|
||||
|
|
|
|||
|
|
@ -3927,6 +3927,126 @@ pst title=[[Ns:Somearticle (IGNORED), Context]]
|
|||
[[Ns:Article, Context|Article]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article(context)|]]
|
||||
[[Bar:Article(context)|]]
|
||||
[[:Bar:Article(context)|]]
|
||||
[[|Article(context)]]
|
||||
[[Bar:X (Y) Z|]]
|
||||
[[:Bar:X (Y) Z|]]
|
||||
!! result
|
||||
[[Article(context)|Article]]
|
||||
[[Bar:Article(context)|Article]]
|
||||
[[:Bar:Article(context)|Article]]
|
||||
[[Article(context)]]
|
||||
[[Bar:X (Y) Z|X (Y) Z]]
|
||||
[[:Bar:X (Y) Z|X (Y) Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article (context)|]]
|
||||
[[Bar:Article (context)|]]
|
||||
[[:Bar:Article (context)|]]
|
||||
[[|Article (context)]]
|
||||
[[Bar:X (Y) Z|]]
|
||||
[[:Bar:X (Y) Z|]]
|
||||
!! result
|
||||
[[Article (context)|Article]]
|
||||
[[Bar:Article (context)|Article]]
|
||||
[[:Bar:Article (context)|Article]]
|
||||
[[Article (context)]]
|
||||
[[Bar:X (Y) Z|X (Y) Z]]
|
||||
[[:Bar:X (Y) Z|X (Y) Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article(context)|]]
|
||||
[[Bar:Article(context)|]]
|
||||
[[:Bar:Article(context)|]]
|
||||
[[|Article(context)]]
|
||||
[[Bar:X(Y)Z|]]
|
||||
[[:Bar:X(Y)Z|]]
|
||||
!! result
|
||||
[[Article(context)|Article]]
|
||||
[[Bar:Article(context)|Article]]
|
||||
[[:Bar:Article(context)|Article]]
|
||||
[[Article(context)]]
|
||||
[[Bar:X(Y)Z|X(Y)Z]]
|
||||
[[:Bar:X(Y)Z|X(Y)Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article(context)|]]
|
||||
[[Bar:Article(context)|]]
|
||||
[[:Bar:Article(context)|]]
|
||||
[[|Article(context)]]
|
||||
[[Bar:X (Y) Z|]]
|
||||
[[:Bar:X (Y) Z|]]
|
||||
!! result
|
||||
[[Article(context)|Article]]
|
||||
[[Bar:Article(context)|Article]]
|
||||
[[:Bar:Article(context)|Article]]
|
||||
[[Article(context)]]
|
||||
[[Bar:X (Y) Z|X (Y) Z]]
|
||||
[[:Bar:X (Y) Z|X (Y) Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article (context)|]]
|
||||
[[Bar:Article (context)|]]
|
||||
[[:Bar:Article (context)|]]
|
||||
[[|Article (context)]]
|
||||
[[Bar:X (Y) Z|]]
|
||||
[[:Bar:X (Y) Z|]]
|
||||
!! result
|
||||
[[Article (context)|Article]]
|
||||
[[Bar:Article (context)|Article]]
|
||||
[[:Bar:Article (context)|Article]]
|
||||
[[Article (context)]]
|
||||
[[Bar:X (Y) Z|X (Y) Z]]
|
||||
[[:Bar:X (Y) Z|X (Y) Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149)
|
||||
!! options
|
||||
pst
|
||||
!! input
|
||||
[[Article(context)|]]
|
||||
[[Bar:Article(context)|]]
|
||||
[[:Bar:Article(context)|]]
|
||||
[[|Article(context)]]
|
||||
[[Bar:X(Y)Z|]]
|
||||
[[:Bar:X(Y)Z|]]
|
||||
!! result
|
||||
[[Article(context)|Article]]
|
||||
[[Bar:Article(context)|Article]]
|
||||
[[:Bar:Article(context)|Article]]
|
||||
[[Article(context)]]
|
||||
[[Bar:X(Y)Z|X(Y)Z]]
|
||||
[[:Bar:X(Y)Z|X(Y)Z]]
|
||||
!! end
|
||||
|
||||
!! test
|
||||
pre-save transform: trim trailing empty lines
|
||||
!! options
|
||||
|
|
|
|||
Loading…
Reference in a new issue