From 34bd573144883af9ace7ead32d3be8f692431718 Mon Sep 17 00:00:00 2001 From: Erwin Dokter Date: Sat, 19 Oct 2013 14:03:45 +0000 Subject: [PATCH] Have list items occupy their own line Ensures that HTML list items are on their own line, which fixes a CSS issue with .hlist; it depends on a breakable character between list items, and a newline does provide one. Should also unburden HTML Tidy, as output now matched that of Tidy. Bug: 39617 Change-Id: I82fb4d749a200cfc049b30d2ee6e96a5ff7574e2 --- includes/parser/Parser.php | 22 +- tests/parser/parserTests.txt | 1476 +++++++++++++++++++++++----------- 2 files changed, 1031 insertions(+), 467 deletions(-) diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 221a630f91..7e939eeaad 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -2281,13 +2281,13 @@ class Parser { $result = $this->closeParagraph(); if ( '*' === $char ) { - $result .= '"; } elseif ( '#' === $char ) { - $text = ''; + $text = "\n"; } elseif ( ':' === $char ) { if ( $this->mDTopen ) { $this->mDTopen = false; - $text = ''; + $text = "\n"; } else { - $text = ''; + $text = "\n"; } } else { return ''; diff --git a/tests/parser/parserTests.txt b/tests/parser/parserTests.txt index 3266b166ae..6ae5fb429b 100644 --- a/tests/parser/parserTests.txt +++ b/tests/parser/parserTests.txt @@ -403,9 +403,12 @@ Simple list * Item 1 * Item 2 !! result - + !! end @@ -428,22 +431,38 @@ Italics and bold * plain l'''italic''plain * plain l''''bold''' plain !! result - + !! end @@ -985,15 +1004,24 @@ nowiki 3 *There is not nowiki. *There is nowiki. !! result -
There is not nowiki. -
There is nowiki. -
-
  1. There is not nowiki. -
  2. There is nowiki. -
- +
+
There is not nowiki. +
+
There is nowiki. +
+
+
    +
  1. There is not nowiki. +
  2. +
  3. There is nowiki. +
  4. +
+ !! end @@ -1747,8 +1775,10 @@ Templates: Strip leading and trailing whitespace from named-param values

b

c

- + !! end @@ -1789,8 +1819,10 @@ Templates: Don't strip whitespace from positional-param values


- +


g
@@ -2240,8 +2272,11 @@ Simple definition
 !! input
 ; name : Definition
 !! result
-
name 
Definition -
+
+
name 
+
Definition +
+
!! end @@ -2250,8 +2285,10 @@ Definition list for indentation only !! input : Indented text !! result -
Indented text -
+
+
Indented text +
+
!! end @@ -2260,8 +2297,11 @@ Definition list with no space !! input ;name:Definition !! result -
name
Definition -
+
+
name
+
Definition +
+
!!end @@ -2270,8 +2310,11 @@ Definition list with URL link !! input ; http://example.com/ : definition !! result -
http://example.com/ 
definition -
+
+
http://example.com/ 
+
definition +
+
!! end @@ -2280,8 +2323,11 @@ Definition list with bracketed URL link !! input ;[http://www.example.com/ Example]:Something about it !! result -
Example
Something about it -
+
+
Example
+
Something about it +
+
!! end @@ -2290,8 +2336,11 @@ Definition list with wikilink containing colon !! input ; [[Help:FAQ]]: The least-read page on Wikipedia !! result -
Help:FAQ
The least-read page on Wikipedia -
+
+
Help:FAQ
+
The least-read page on Wikipedia +
+
!! end @@ -2301,8 +2350,11 @@ Definition list with news link containing colon !! input ; news:alt.wikipedia.rox: This isn't even a real newsgroup! !! result -
news:alt.wikipedia.rox
This isn't even a real newsgroup! -
+
+
news:alt.wikipedia.rox
+
This isn't even a real newsgroup! +
+
!! end @@ -2311,8 +2363,10 @@ Malformed definition list with colon !! input ; news:alt.wikipedia.rox -- don't crash or enter an infinite loop !! result -
news:alt.wikipedia.rox -- don't crash or enter an infinite loop -
+
+
news:alt.wikipedia.rox -- don't crash or enter an infinite loop +
+
!! end @@ -2321,8 +2375,11 @@ Definition lists: colon in external link text !! input ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up !! result -
Wikipedia : The Next Generation
OK, I made that up -
+
+
Wikipedia : The Next Generation
+
OK, I made that up +
+
!! end @@ -2331,8 +2388,10 @@ Definition lists: colon in HTML attribute !! input ;bold !! result -
bold -
+
+
bold +
+
!! end @@ -2341,8 +2400,11 @@ Definition lists: self-closed tag !! input ;one
two : two-line fun !! result -
one
two 
two-line fun -
+
+
one
two 
+
two-line fun +
+
!! end @@ -2371,16 +2433,19 @@ Definition and unordered list using wiki syntax nested in unordered list using h + !! result !! end @@ -2391,8 +2456,11 @@ Definition list with empty definition and following paragraph ; term: Paragraph text !! result -
term
-
+
+
term
+
+
+

Paragraph text

!! end @@ -2421,10 +2489,14 @@ Definition Lists: No nesting: Multiple dd's :a :b !! result -
x -
a -
b -
+
+
x +
+
a +
+
b +
+
!! end @@ -2435,12 +2507,18 @@ Definition Lists: Indentation: Regular ::i2 :::i3 !! result -
i1 -
i2 -
i3 -
-
-
+
+
i1 +
+
i2 +
+
i3 +
+
+
+
+
+
!! end @@ -2450,11 +2528,17 @@ Definition Lists: Indentation: Missing 1st level ::i2 :::i3 !! result -
i2 -
i3 -
-
-
+
+
+
i2 +
+
i3 +
+
+
+
+
+
!! end @@ -2463,10 +2547,16 @@ Definition Lists: Indentation: Multi-level indent !! input :::i3 !! result -
i3 -
-
-
+
+
+
+
i3 +
+
+
+
+
+
!! end @@ -2501,7 +2591,9 @@ parsoid |a |} !! result -
a
+
+
a
+
!! end ## The PHP parser treats : items (dd) without a corresponding ; item (dt) ## as an empty dt item. It also ignores all but the last ";" when followed @@ -2554,13 +2646,17 @@ Table / list interaction: indented table with lists in table contents a - + c - + !! end @@ -2583,18 +2679,27 @@ Table / list interaction: lists nested in tables nested in indented lists
-
a -
b -
+
+
a +
+
b +
+
-
  • c -
  • d -
+
    +
  • c +
  • +
  • d +
  • +
- + !!end @@ -2682,11 +2787,18 @@ Definition Lists: Nesting: Test 4 ::;t3 :::d3 !! result -
t3 -
d3 -
-
-
+
+
+
+
t3 +
+
d3 +
+
+
+
+
+
!! end @@ -2703,13 +2815,22 @@ php ::* bar :; baz !! result -
  • foo -
  • bar -
-
-
baz -
-
+
+
+
    +
  • foo +
  • +
  • bar +
  • +
+
+
+
+
baz +
+
+
+
!! end !! test @@ -2721,9 +2842,19 @@ parsoid ::* bar :; baz !! result -
  • foo -
  • bar -
baz
+
+
+
    +
  • foo +
  • +
+
    +
  • bar +
  • +
+
baz
+
+
!! end !! test @@ -2732,10 +2863,15 @@ Definition Lists: Mixed Lists: Test 2 *: d1 *: d2 !! result - + !! end @@ -2746,12 +2882,21 @@ Definition Lists: Mixed Lists: Test 3 *::: d1 *::: d2 !! result - + !! end @@ -2762,10 +2907,17 @@ Definition Lists: Mixed Lists: Test 4 *;d1 :d2 *;d3 :d4 !! result - + !! end @@ -2776,11 +2928,17 @@ Definition Lists: Mixed Lists: Test 5 *:d1 *:: d2 !! result - + !! end @@ -2791,13 +2949,23 @@ Definition Lists: Mixed Lists: Test 6 #*:d1 #*::: d3 !! result -
    • d1 -
      d3 -
      -
      -
      -
    -
+
    +
    • +
    • +
      d1 +
      +
      +
      d3 +
      +
      +
      +
      +
      +
      +
    • +
    +
  1. +
!! end @@ -2808,10 +2976,15 @@ Definition Lists: Mixed Lists: Test 7 :* d1 :* d2 !! result -
  • d1 -
  • d2 -
-
+
+
    +
  • d1 +
  • +
  • d2 +
  • +
+
+
!! end @@ -2822,12 +2995,20 @@ Definition Lists: Mixed Lists: Test 8 :* d1 ::* d2 !! result -
  • d1 -
-
  • d2 -
-
-
+
+
    +
  • d1 +
  • +
+
+
    +
  • d2 +
  • +
+
+
+
+
!! end @@ -2837,9 +3018,14 @@ Definition Lists: Mixed Lists: Test 9 !! input *;foo :bar !! result - + !! end @@ -2849,10 +3035,17 @@ Definition Lists: Mixed Lists: Test 10 !! input *#;foo :bar !! result - + !! end @@ -2869,17 +3062,37 @@ php *#*#;*;;foo :bar *#*#;boo :baz !! result - - - + + + + + !! end !! test @@ -2906,9 +3119,17 @@ parsoid
foo 
-
bar
+
bar
+ + +
boo 
-
baz
+
baz
+ + + + + !! end @@ -2919,15 +3140,32 @@ php !! input *#;*::;; foo : bar (who uses this?) !! result - - - - + + + + + + + !! end !! test @@ -2953,7 +3191,15 @@ parsoid
foo 
-
bar (who uses this?)
+
bar (who uses this?)
+ + + + + + + + !! end ### @@ -4427,7 +4673,9 @@ parsoid=wt2html,wt2wt !! result - +
  • a
    +
  • a
  • +
!! end @@ -5111,9 +5359,12 @@ Interwiki link encoding conversion (bug 1636) *[[Wikipedia:ro:Olteniţa]] *[[Wikipedia:ro:Olteniţa]] !! result - + !! end @@ -5541,10 +5792,14 @@ Common list * item 2 *item 3 !! result - + !! end @@ -5555,10 +5810,14 @@ Numbered list #item 2 # item 3 !! result -
  1. Numbered list -
  2. item 2 -
  3. item 3 -
+
    +
  1. Numbered list +
  2. +
  3. item 2 +
  4. +
  5. item 3 +
  6. +
!! end @@ -5581,35 +5840,67 @@ Mixed list *** Level 3 #** Level 3, but ordered !! result - -
      • Level 3, but ordered -
      -
    -
+ +
    +
    • +
      • +
      • Level 3, but ordered +
      • +
      +
    • +
    +
  1. +
!! end @@ -5619,10 +5910,14 @@ Nested lists 1 *foo **bar !! result - + !! end @@ -5632,10 +5927,15 @@ Nested lists 2 **foo *bar !! result - + !! end @@ -5645,10 +5945,14 @@ Nested lists 3 (first element empty) * **bar !! result - + !! end @@ -5658,10 +5962,15 @@ Nested lists 4 (first element empty) ** *bar !! result - + !! end @@ -5671,10 +5980,15 @@ Nested lists 5 (both elements empty) ** * !! result - + !! end @@ -5684,10 +5998,14 @@ Nested lists 6 (both elements empty) * ** !! result - + !! end @@ -5696,10 +6014,16 @@ Nested lists 7 (skip initial nesting levels) !! input *** foo !! result - + !! end @@ -5711,13 +6035,21 @@ Nested lists 8 (multiple nesting transitions) ** baz * boo !! result - + !! end @@ -5728,10 +6060,14 @@ Nested lists 8 (multiple nesting transitions) *bar *baz !! result - + !! end @@ -5741,9 +6077,12 @@ Nested lists 8 (multiple nesting transitions) *foo {{echo|bar }}*baz !! result - + !! end @@ -5754,10 +6093,14 @@ List items are not parsed correctly following a
 block (bug 785)
 * 
bar
* zar !! result -
  • foo
    -
  • bar
    -
  • zar -
+
    +
  • foo
    +
  • +
  • bar
    +
  • +
  • zar +
  • +
!! end @@ -5776,18 +6119,30 @@ List items from template * notSOL{{inner list}} * item 2 !! result -
  • item 1 -
  • item 2 -
-
  • item 0 -
  • item 1 -
  • item 2 -
-
  • item 0 -
  • notSOL -
  • item 1 -
  • item 2 -
+
    +
  • item 1 +
  • +
  • item 2 +
  • +
+
    +
  • item 0 +
  • +
  • item 1 +
  • +
  • item 2 +
  • +
+
    +
  • item 0 +
  • +
  • notSOL +
  • +
  • item 1 +
  • +
  • item 2 +
  • +
!! end @@ -5800,14 +6155,22 @@ List interrupted by empty line or heading == A heading == * Another list item !! result -
  • foo -
-
    • bar -
    -
+
    +
  • foo +
  • +
+
    +
    • +
    • bar +
    • +
    +
  • +

A heading[edit]

-
  • Another list item -
+
    +
  • Another list item +
  • +
!!end @@ -5837,11 +6200,16 @@ Single-comment whitespace lines dont break lists, and neither do multi-comment w *d !!result -
  • a -
  • b -
  • c -
  • d -
+
    +
  • a +
  • +
  • b +
  • +
  • c +
  • +
  • d +
  • +
!!end @@ -5857,11 +6225,16 @@ Replacing whitespace with tabs still doesn't break the list (gerrit 78327) either--> *d !!result -
  • a -
  • b -
  • c -
  • d -
+
    +
  • a +
  • +
  • b +
  • +
  • c +
  • +
  • d +
  • +
!!end @@ -5881,13 +6254,17 @@ parsoid=wt2html,wt2wt !!result -
  • foo
  • +
      +
    • foo
    • li-hack
    • templated li-hack
    • -
    • li-hack with preceding comments
    +
  • +
  • li-hack with preceding comments
  • +
    -
  • not a li-hack +
  • +
  • not a li-hack
!!end @@ -5904,7 +6281,19 @@ parsoid : foo :: bar !! result -
  1. foo
    1. bar
  • foo
    • bar
foo
bar
+
    +
  1. foo
      +
    1. bar
    2. +
  2. +
    +
  • foo
      +
    • bar
    • +
  • +
+
foo
+
bar
+
+
!! end !! test @@ -5935,10 +6324,14 @@ parsoid *b !! result
-
  • a -
-
  • b -
+
    +
  • a +
  • +
+
    +
  • b +
  • +
!! end !! test @@ -5953,9 +6346,12 @@ parsoid !! result

-
  • a -
  • b -
+
    +
  • a +
  • +
  • b +
  • +
!! end !! test @@ -5967,9 +6363,12 @@ parsoid # a # b !! result -
  1. a -
  2. b -
+
    +
  1. a +
  2. +
  3. b +
  4. +
!! end !!test @@ -6161,21 +6560,36 @@ Magic Words LOCAL (UTC) * {{LOCALDOW}} * {{LOCALTIMESTAMP}} !! result -
  • 01 -
  • 1 -
  • January -
  • January -
  • Jan -
  • 1 -
  • 01 -
  • Thursday -
  • 1970 -
  • 00:02 -
  • 00 -
  • 1 -
  • 4 -
  • 19700101000203 -
+
    +
  • 01 +
  • +
  • 1 +
  • +
  • January +
  • +
  • January +
  • +
  • Jan +
  • +
  • 1 +
  • +
  • 01 +
  • +
  • Thursday +
  • +
  • 1970 +
  • +
  • 00:02 +
  • +
  • 00 +
  • +
  • 1 +
  • +
  • 4 +
  • +
  • 19700101000203 +
  • +
!! end @@ -7975,9 +8389,12 @@ unused}}}} *{{echo|b {{nonexistent| unused}}}} !!result - + !!end @@ -11665,8 +12082,10 @@ disabled !! result
  • One -
  • Two -
+ +
  • Two +
  • + !! end @@ -11697,8 +12116,10 @@ disabled !! result
    1. One -
    2. Two -
    + +
  • Two +
  • + !! end @@ -11743,12 +12164,16 @@ disabled !! result
    • One -
    • Two: +
    • +
    • Two:
      • Sub-one -
      • Sub-two -
      -
    + +
  • Sub-two +
  • + + + !! end @@ -11793,21 +12218,27 @@ disabled !! result
    1. One -
    2. Two: +
    3. +
    4. Two:
      1. Sub-one -
      2. Sub-two -
      -
    + +
  • Sub-two +
  • + + + !! end !! test HTML ordered list item with parameters oddity !! input -
    1. One
    +
    1. One
    2. +
    !! result -
    1. One
    +
    1. One
    2. +
    !! end @@ -13031,9 +13462,13 @@ Handling of in URLs !! input **irc:// a !! result - + !!end @@ -13093,29 +13528,52 @@ title=[[Parser test]] * {{SUBJECTSPACEE}} * {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}} !! result -
    • Parser test -
    • Parser_test -
    • Parser test -
    • Parser_test -
    • Parser test -
    • Parser_test -
    • Parser test -
    • Parser_test -
    • Parser test -
    • Parser_test -
    • Talk:Parser test -
    • Talk:Parser_test -
    • Parser test -
    • Parser_test -
    • -
    • -
    • 0 -
    • Talk -
    • Talk -
    • -
    • -
    • Template:Dynamic -
    +
      +
    • Parser test +
    • +
    • Parser_test +
    • +
    • Parser test +
    • +
    • Parser_test +
    • +
    • Parser test +
    • +
    • Parser_test +
    • +
    • Parser test +
    • +
    • Parser_test +
    • +
    • Parser test +
    • +
    • Parser_test +
    • +
    • Talk:Parser test +
    • +
    • Talk:Parser_test +
    • +
    • Parser test +
    • +
    • Parser_test +
    • +
    • +
    • +
    • +
    • +
    • 0 +
    • +
    • Talk +
    • +
    • Talk +
    • +
    • +
    • +
    • +
    • +
    • Template:Dynamic +
    • +
    !! end ### Note: Above tests excludes the "{{NUMBEROFADMINS}}" magic word because it generates a MySQL error when included. @@ -13503,13 +13961,25 @@ disabled !! input :;;;:: !! result -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    !!end @@ -13651,10 +14121,17 @@ Definition list code coverage ; title : def ;title: def !! result -
    title  
    def -
    title 
    def -
    title
    def -
    +
    +
    title  
    +
    def +
    +
    title 
    +
    def +
    +
    title
    +
    def +
    +
    !! end @@ -14330,9 +14807,12 @@ Bug 529: Uncovered bullet !! input * Foo {{bullet}} !! result -
    • Foo -
    • Bar -
    +
      +
    • Foo +
    • +
    • Bar +
    • +
    !! end @@ -14347,15 +14827,30 @@ Bug 529: Uncovered bullet leaving empty list, normally removed by tidy !! input ******* Foo {{bullet}} !! result -
                • Foo -
                -
              -
            -
          -
        -
      -
    • Bar -
    +
      +
      • +
        • +
          • +
            • +
              • +
                • +
                • Foo +
                • +
                +
              • +
              +
            • +
            +
          • +
          +
        • +
        +
      • +
      +
    • +
    • Bar +
    • +
    !! end @@ -14387,9 +14882,12 @@ Bug 529: Uncovered bullet in parser function result !! input * Foo {{lc:{{bullet}} }} !! result -
    • Foo -
    • bar -
    +
      +
    • Foo +
    • +
    • bar +
    • +
    !! end @@ -15756,11 +16254,14 @@ parsoid=wt2html,wt2wt {{echo|:a}} !!result -
    • a
    +
    • a
    • +
    -
    1. a
    +
    1. a
    2. +
    -
    a
    +
    a
    +
    !!end #### ---------------------------------------------------------------- @@ -15835,7 +16336,8 @@ A
    1. ↑ This is a bolded link and this is a transclusion -
    + + !!end !!test @@ -15857,7 +16359,8 @@ A
  • ↑ foo bar baz -
  • + + !!end !!test @@ -15893,7 +16396,8 @@ baz booz - + + !!end !!test @@ -15908,7 +16412,8 @@ A foo {{echo| B C}}

    A [1] B C}}

      -
    1. ↑ foo {{echo|
    +
  • ↑ foo {{echo|
  • + !!end !!test @@ -15923,7 +16428,8 @@ A foo "},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref">[1] B C

      -
    1. ↑ foo
    +
  • ↑ foo
  • + !!end !!test @@ -15938,7 +16444,8 @@ A foo B C

    A [1] B C

      -
    1. ↑ foo
    +
  • ↑ foo
  • + !!end !!test @@ -16000,7 +16507,8 @@ parsoid

    [1]

      -
    1. ↑ foo <ref>bar</ref> baz
    +
  • ↑ foo <ref>bar</ref> baz
  • + !!end !!test @@ -16016,7 +16524,8 @@ B1 B2 bar

    A1 [1] A2 [1] B1 [2] B2 [2]

    -
    1. ↑ 1.0 1.1 foo
    2. ↑ 2.0 2.1 bar
    +
    1. ↑ 1.0 1.1 foo
    2. ↑ 2.0 2.1 bar
    3. +
    !!end !!test @@ -16042,7 +16551,8 @@ B bar

    A [a 1] B [b 1]

    -
    1. ↑ foo
    +
    1. ↑ foo
    2. +
    !!end !!test @@ -16060,11 +16570,13 @@ B bar !!result

    A [1]

    -
    1. ↑ foo
    +
    1. ↑ foo
    2. +

    B [1]

    -
    1. ↑ bar
    +
    1. ↑ bar
    2. +
    !!end !!test @@ -16084,11 +16596,13 @@ C cfoo

    A [a 1] B [1]

    -
    1. ↑ afoo
    +
    1. ↑ afoo
    2. +

    C [2]

    -
    1. ↑ bfoo
    2. ↑ cfoo
    +
    1. ↑ bfoo
    2. ↑ cfoo
    3. +
    !!end !!test @@ -16107,7 +16621,8 @@ This should just get lost.

    A [1] B [2]

    -
    1. ↑ foo
    2. ↑ bar
    +
    1. ↑ foo
    2. ↑ bar
    3. +
    !!end !!test @@ -16139,10 +16654,12 @@ B
  • ↑ foo bar for a
  • -
  • ↑
  • +
  • ↑
  • +
      -
    1. ↑ foo
    +
  • ↑ foo
  • + !! end #### ---------------------------------------------------------------- @@ -16438,22 +16955,38 @@ Lists: 1. Nested inside html #;foo !! result -
    • *foo -
    -
    • #foo -
    -
    • :foo -
    -
    • ;foo -
    -
    1. *foo -
    -
    1. #foo -
    -
    1. :foo -
    -
    1. ;foo -
    +
      +
    • *foo +
    • +
    +
      +
    • #foo +
    • +
    +
      +
    • :foo +
    • +
    +
      +
    • ;foo +
    • +
    +
      +
    1. *foo +
    2. +
    +
      +
    1. #foo +
    2. +
    +
      +
    1. :foo +
    2. +
    +
      +
    1. ;foo +
    2. +
    !!end @@ -16469,15 +17002,24 @@ Lists: 2. Inside definition lists ::foo !! result -
    ;foo -
    -
    :foo -
    -
    :foo -
    bar -
    -
    :foo -
    +
    +
    ;foo +
    +
    +
    +
    :foo +
    +
    +
    +
    :foo +
    +
    bar +
    +
    +
    +
    :foo +
    +
    !!end @@ -16488,10 +17030,14 @@ Lists: 3. Only bullets at start of text should be escaped **foo''it''*bar !! result -
    • *foo*bar -
    -
    • *fooit*bar -
    +
      +
    • *foo*bar +
    • +
    +
      +
    • *fooit*bar +
    • +
    !!end @@ -16506,12 +17052,18 @@ parsoid *[[Foo]]: bar !! result -
    • foo*bar -
    -
    • foo*bar -
    - +
      +
    • foo*bar +
    • +
    +
      +
    • foo*bar +
    • +
    + !!end !! test @@ -16529,18 +17081,30 @@ Lists: 5. No unnecessary escapes * : a !! result -
    • bar [[foo]] -
    -
    • =bar [[foo]] -
    -
    • [[bar [[foo]] -
    -
    • ]]bar [[foo]] -
    -
    • =bar foo]]= -
    -
    • : a -
    +
      +
    • bar [[foo]] +
    • +
    +
      +
    • =bar [[foo]] +
    • +
    +
      +
    • [[bar [[foo]] +
    • +
    +
      +
    • ]]bar [[foo]] +
    • +
    +
      +
    • =bar foo]]= +
    • +
    +
      +
    • : a +
    • +
    !!end -- 2.20.1