Parsoid/Todo:Extension tag precedence

From mediawiki.org
Jump to navigation Jump to search

Tracked in bugzilla:40604.

Test case:

{{echo<ref>}}Foo{{echo|</ref>}}

The ref overrides the template syntax.

Implementation idea: Rule out the nesting of non-HTML tags within attributes in the grammar. This includes template parameters.

More test cases:

{{echo|<gallery>}}Foo....

<gallery> <!-- </gallery> -->
<gallery> <pre> </gallery> </pre>
<gallery>  </gallery> 

The gallery tag needs to have precedence over all of these.

Older notes[edit]

Make sure that (potential) extension end tags are always matched, even if parsing the content causes a switch to a plain-text parsing mode. An example would be an unclosed html comment (<!--) in content between extension tags. Idea: Treat any non-html tags as potential extension tags, and handle unbalanced comments and nowiki sections accordingly. In other words, give unknown html tags precedence over unbalanced / unclosed comments or nowiki blocks.

  • Did some statistics on a dump of the English Wikipedia: There are about 10000 non-html/wiki end-tags, and none of them is preceded by an unclosed comment on the same line. List of end tags: en:User:GWicke/Martian endtags. So this strategy looks quite safe. GWicke (talk) 20:11, 20 February 2012 (UTC)