mirror of
https://github.com/kovetskiy/mark.git
synced 2026-05-01 21:02:33 +00:00
@@ -117,7 +117,7 @@ func CompileMarkdown(
|
||||
blackfriday.EXTENSION_TITLEBLOCK |
|
||||
blackfriday.EXTENSION_BACKSLASH_LINE_BREAK |
|
||||
blackfriday.EXTENSION_DEFINITION_LISTS |
|
||||
blackfriday.EXTENSION_JOIN_LINES |
|
||||
blackfriday.EXTENSION_HARD_LINE_BREAK |
|
||||
blackfriday.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK,
|
||||
},
|
||||
)
|
||||
|
||||
50
pkg/mark/markdown_test.go
Normal file
50
pkg/mark/markdown_test.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package mark
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/kovetskiy/mark/pkg/mark/stdlib"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const (
|
||||
NL = "\n"
|
||||
)
|
||||
|
||||
func text(lines ...string) string {
|
||||
return strings.Join(lines, "\n")
|
||||
}
|
||||
|
||||
func TestCompileMarkdown(t *testing.T) {
|
||||
test := assert.New(t)
|
||||
|
||||
testcases, err := filepath.Glob("testdata/*.md")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
for _, filename := range testcases {
|
||||
basename := filepath.Base(filename)
|
||||
testname := strings.TrimSuffix(basename, ".md")
|
||||
htmlname := filepath.Join(filepath.Dir(filename), testname+".html")
|
||||
|
||||
markdown, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
html, err := ioutil.ReadFile(htmlname)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
lib, err := stdlib.New(nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
actual := CompileMarkdown(markdown, lib)
|
||||
test.EqualValues(string(html), actual, filename+" vs "+htmlname)
|
||||
}
|
||||
}
|
||||
52
pkg/mark/testdata/codes.html
vendored
Normal file
52
pkg/mark/testdata/codes.html
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<p><code>inline</code></p>
|
||||
<ac:structured-macro ac:name="expand">
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:rich-text-body>
|
||||
<ac:structured-macro ac:name="code">
|
||||
<ac:parameter ac:name="language"></ac:parameter>
|
||||
<ac:parameter ac:name="collapse">false</ac:parameter>
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:plain-text-body><![CDATA[some code
|
||||
]]></ac:plain-text-body>
|
||||
</ac:structured-macro>
|
||||
</ac:rich-text-body>
|
||||
</ac:structured-macro>
|
||||
<ac:structured-macro ac:name="expand">
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:rich-text-body>
|
||||
<ac:structured-macro ac:name="code">
|
||||
<ac:parameter ac:name="language">bash</ac:parameter>
|
||||
<ac:parameter ac:name="collapse">false</ac:parameter>
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:plain-text-body><![CDATA[code bash
|
||||
]]></ac:plain-text-body>
|
||||
</ac:structured-macro>
|
||||
</ac:rich-text-body>
|
||||
</ac:structured-macro>
|
||||
<ac:structured-macro ac:name="expand">
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:rich-text-body>
|
||||
<ac:structured-macro ac:name="code">
|
||||
<ac:parameter ac:name="language">unknown</ac:parameter>
|
||||
<ac:parameter ac:name="collapse">false</ac:parameter>
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:plain-text-body><![CDATA[unknown code
|
||||
]]></ac:plain-text-body>
|
||||
</ac:structured-macro>
|
||||
</ac:rich-text-body>
|
||||
</ac:structured-macro>
|
||||
|
||||
<p>text<br />
|
||||
text 2</p>
|
||||
<ac:structured-macro ac:name="expand">
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:rich-text-body>
|
||||
<ac:structured-macro ac:name="code">
|
||||
<ac:parameter ac:name="language">unknown</ac:parameter>
|
||||
<ac:parameter ac:name="collapse">false</ac:parameter>
|
||||
<ac:parameter ac:name="title"></ac:parameter>
|
||||
<ac:plain-text-body><![CDATA[unknown code 2
|
||||
]]></ac:plain-text-body>
|
||||
</ac:structured-macro>
|
||||
</ac:rich-text-body>
|
||||
</ac:structured-macro>
|
||||
17
pkg/mark/testdata/codes.md
vendored
Normal file
17
pkg/mark/testdata/codes.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
`inline`
|
||||
|
||||
```
|
||||
some code
|
||||
```
|
||||
```bash
|
||||
code bash
|
||||
```
|
||||
|
||||
```unknown
|
||||
unknown code
|
||||
```
|
||||
text
|
||||
text 2
|
||||
```unknown
|
||||
unknown code 2
|
||||
```
|
||||
13
pkg/mark/testdata/header.html
vendored
Normal file
13
pkg/mark/testdata/header.html
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<h1 id="a">a</h1>
|
||||
|
||||
<h2 id="b">b</h2>
|
||||
|
||||
<h3 id="c">c</h3>
|
||||
|
||||
<h4 id="d">d</h4>
|
||||
|
||||
<h5 id="e">e</h5>
|
||||
|
||||
<h1 id="f">f</h1>
|
||||
|
||||
<h2 id="g">g</h2>
|
||||
9
pkg/mark/testdata/header.md
vendored
Normal file
9
pkg/mark/testdata/header.md
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# a
|
||||
## b
|
||||
### c
|
||||
#### d
|
||||
##### e
|
||||
f
|
||||
=
|
||||
g
|
||||
-
|
||||
24
pkg/mark/testdata/lists.html
vendored
Normal file
24
pkg/mark/testdata/lists.html
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<ul>
|
||||
<li>dash 1-1<br /></li>
|
||||
<li>dash 1-2<br /></li>
|
||||
<li>dash 1-3<br />
|
||||
|
||||
<ul>
|
||||
<li>dash 1-3-1<br /></li>
|
||||
<li>dash 1-3-2<br /></li>
|
||||
<li>dash 1-3-3<br />
|
||||
|
||||
<ul>
|
||||
<li>dash 1-3-3-1<br />
|
||||
<br /></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
<p>text</p>
|
||||
|
||||
<ul>
|
||||
<li>a<br /></li>
|
||||
<li>b<br /></li>
|
||||
<li>c<br /></li>
|
||||
</ul>
|
||||
13
pkg/mark/testdata/lists.md
vendored
Normal file
13
pkg/mark/testdata/lists.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
- dash 1-1
|
||||
- dash 1-2
|
||||
- dash 1-3
|
||||
- dash 1-3-1
|
||||
- dash 1-3-2
|
||||
- dash 1-3-3
|
||||
- dash 1-3-3-1
|
||||
|
||||
text
|
||||
|
||||
* a
|
||||
* b
|
||||
* c
|
||||
16
pkg/mark/testdata/newlines.html
vendored
Normal file
16
pkg/mark/testdata/newlines.html
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<p>one-1<br />
|
||||
one-2</p>
|
||||
|
||||
<p>two-1</p>
|
||||
|
||||
<p>two-2</p>
|
||||
|
||||
<p>three-1</p>
|
||||
|
||||
<p>three-2</p>
|
||||
|
||||
<p>space-1<br />
|
||||
space-2</p>
|
||||
|
||||
<p>2space-1<br />
|
||||
2space-2</p>
|
||||
17
pkg/mark/testdata/newlines.md
vendored
Normal file
17
pkg/mark/testdata/newlines.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
one-1
|
||||
one-2
|
||||
|
||||
two-1
|
||||
|
||||
two-2
|
||||
|
||||
three-1
|
||||
|
||||
|
||||
three-2
|
||||
|
||||
space-1
|
||||
space-2
|
||||
|
||||
2space-1
|
||||
2space-2
|
||||
5
pkg/mark/testdata/tags.html
vendored
Normal file
5
pkg/mark/testdata/tags.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<p><b>bold</b><br />
|
||||
<strong>bold</strong></p>
|
||||
|
||||
<p><i>vitalik</i><br />
|
||||
<em>vitalik</em></p>
|
||||
5
pkg/mark/testdata/tags.md
vendored
Normal file
5
pkg/mark/testdata/tags.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<b>bold</b>
|
||||
**bold**
|
||||
|
||||
<i>vitalik</i>
|
||||
*vitalik*
|
||||
Reference in New Issue
Block a user