Merge pull request #229 from russross/issue-228
Fix bug with gathering list item linespull/234/head
commit
c8875c0ed4
10
block.go
10
block.go
|
@ -1153,6 +1153,7 @@ gatherlines:
|
||||||
// and move on to the next line
|
// and move on to the next line
|
||||||
if p.isEmpty(data[line:i]) > 0 {
|
if p.isEmpty(data[line:i]) > 0 {
|
||||||
containsBlankLine = true
|
containsBlankLine = true
|
||||||
|
raw.Write(data[line:i])
|
||||||
line = i
|
line = i
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -1220,17 +1221,10 @@ gatherlines:
|
||||||
|
|
||||||
// a blank line means this should be parsed as a block
|
// a blank line means this should be parsed as a block
|
||||||
case containsBlankLine:
|
case containsBlankLine:
|
||||||
raw.WriteByte('\n')
|
|
||||||
*flags |= LIST_ITEM_CONTAINS_BLOCK
|
*flags |= LIST_ITEM_CONTAINS_BLOCK
|
||||||
}
|
}
|
||||||
|
|
||||||
// if this line was preceeded by one or more blanks,
|
containsBlankLine = false
|
||||||
// re-introduce the blank into the buffer
|
|
||||||
if containsBlankLine {
|
|
||||||
containsBlankLine = false
|
|
||||||
raw.WriteByte('\n')
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// add the line into the working buffer without prefix
|
// add the line into the working buffer without prefix
|
||||||
raw.Write(data[line+indent : i])
|
raw.Write(data[line+indent : i])
|
||||||
|
|
|
@ -702,10 +702,41 @@ func TestUnorderedList(t *testing.T) {
|
||||||
|
|
||||||
"* List\n\n * sublist\n\n normal text\n\n * another sublist\n",
|
"* List\n\n * sublist\n\n normal text\n\n * another sublist\n",
|
||||||
"<ul>\n<li><p>List</p>\n\n<ul>\n<li>sublist</li>\n</ul>\n\n<p>normal text</p>\n\n<ul>\n<li>another sublist</li>\n</ul></li>\n</ul>\n",
|
"<ul>\n<li><p>List</p>\n\n<ul>\n<li>sublist</li>\n</ul>\n\n<p>normal text</p>\n\n<ul>\n<li>another sublist</li>\n</ul></li>\n</ul>\n",
|
||||||
|
|
||||||
|
`* Foo
|
||||||
|
|
||||||
|
bar
|
||||||
|
|
||||||
|
qux
|
||||||
|
`,
|
||||||
|
`<ul>
|
||||||
|
<li><p>Foo</p>
|
||||||
|
|
||||||
|
<pre><code>bar
|
||||||
|
|
||||||
|
qux
|
||||||
|
</code></pre></li>
|
||||||
|
</ul>
|
||||||
|
`,
|
||||||
}
|
}
|
||||||
doTestsBlock(t, tests, 0)
|
doTestsBlock(t, tests, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFencedCodeBlockWithinList(t *testing.T) {
|
||||||
|
doTestsBlock(t, []string{
|
||||||
|
"* Foo\n\n ```\n bar\n\n qux\n ```\n",
|
||||||
|
`<ul>
|
||||||
|
<li><p>Foo</p>
|
||||||
|
|
||||||
|
<pre><code>bar
|
||||||
|
|
||||||
|
qux
|
||||||
|
</code></pre></li>
|
||||||
|
</ul>
|
||||||
|
`,
|
||||||
|
}, EXTENSION_FENCED_CODE)
|
||||||
|
}
|
||||||
|
|
||||||
func TestOrderedList(t *testing.T) {
|
func TestOrderedList(t *testing.T) {
|
||||||
var tests = []string{
|
var tests = []string{
|
||||||
"1. Hello\n",
|
"1. Hello\n",
|
||||||
|
@ -798,6 +829,26 @@ func TestOrderedList(t *testing.T) {
|
||||||
|
|
||||||
"1. numbers\n1. are ignored\n",
|
"1. numbers\n1. are ignored\n",
|
||||||
"<ol>\n<li>numbers</li>\n<li>are ignored</li>\n</ol>\n",
|
"<ol>\n<li>numbers</li>\n<li>are ignored</li>\n</ol>\n",
|
||||||
|
|
||||||
|
`1. Foo
|
||||||
|
|
||||||
|
bar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
qux
|
||||||
|
`,
|
||||||
|
`<ol>
|
||||||
|
<li><p>Foo</p>
|
||||||
|
|
||||||
|
<pre><code>bar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
qux
|
||||||
|
</code></pre></li>
|
||||||
|
</ol>
|
||||||
|
`,
|
||||||
}
|
}
|
||||||
doTestsBlock(t, tests, 0)
|
doTestsBlock(t, tests, 0)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue