kzykhys / Ciconia

A New Markdown parser for PHP5.4
http://ciconia.kzykhys.com/
MIT License
355 stars 31 forks source link

Wrong list parsing #30

Open DarkFighter opened 10 years ago

DarkFighter commented 10 years ago

Input:

- item1
- item2
- item3

test
1. item1
2. item2
3. item3

* item1
* item2
* item3

Output:

<ul> <li>item1</li> <li>item2</li> <li>item3</li> </ul> <p>test</p> <ol> <li>item1</li> <li>item2</li> <li><p>item3</p></li> <li><p>item1</p></li> <li>item2</li> <li>item3</li> </ol>
DarkFighter commented 10 years ago

ok, here is my dirty solution: https://gist.github.com/DarkFighter/0095077337449fdfe1ba it works but strange situations with lists are still possible

@kzykhys question: why do we need $this->markdown->emit('block') in processListItems method?

@kzykhys and yes, more tests are needed

kzykhys commented 10 years ago

why do we need $this->markdown->emit('block') in processListItems method?

* a list item can contain
   > block elements

Tested with your input on http://ciconia.kzykhys.com/ :

<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>

<p>test<br>
1. item1<br>
2. item2<br>
3. item3</p>

<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>

Are you using 1.0.x ?

DarkFighter commented 10 years ago

yes, i'm using 1.0.1

this code works wrong:

1. item1
 1. asd
  1.asdsad
  2. ddd
 2. ddd
2. item2
3. item3