Skip to content

Commit

Permalink
Merge 855b648 into c1969b6
Browse files Browse the repository at this point in the history
  • Loading branch information
mrkkrp committed Jan 27, 2018
2 parents c1969b6 + 855b648 commit d27a0dd
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 20 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
@@ -1,6 +1,10 @@
## MMark 0.0.5.3

* Now HTML is escaped properly inside inline code spans.

## MMark 0.0.5.2

* Fix the bug that prevented application of rendering extensions to
* Fixed the bug that prevented application of rendering extensions to
sub-blocks (blocks contained inside other blocks) and sub-inlines (inlines
contained inside other inlines).

Expand Down
2 changes: 1 addition & 1 deletion Text/MMark/Render.hs
Expand Up @@ -164,7 +164,7 @@ defaultInlineRender inlineRender = \case
Superscript inner ->
sup_ (mapM_ inlineRender inner)
CodeSpan txt ->
code_ (toHtmlRaw txt)
code_ (toHtml txt)
Link inner dest mtitle ->
let title = maybe [] (pure . title_) mtitle
in a_ (href_ (URI.render dest) : title) (mapM_ inlineRender inner)
Expand Down
41 changes: 23 additions & 18 deletions tests/Text/MMarkSpec.hs
Expand Up @@ -66,8 +66,8 @@ spec = parallel $ do
it "CM12" $
let s = "- `one\n- two`"
in s ~~->
[ err (posN 6 s) (ueib <> etok '`' <> elabel "code span content")
, err (posN 13 s) (ueib <> etok '`' <> elabel "code span content") ]
[ err (posN 6 s) (ueib <> etok '`' <> ecsc)
, err (posN 13 s) (ueib <> etok '`' <> ecsc) ]
context "4.1 Thematic breaks" $ do
it "CM13" $
"***\n---\n___" ==-> "<hr>\n<hr>\n<hr>\n"
Expand Down Expand Up @@ -204,8 +204,8 @@ spec = parallel $ do
it "CM60" $
let s = "`Foo\n----\n`\n\n<a title=\"a lot\n---\nof dashes\"/>\n"
in s ~~->
[ err (posN 4 s) (ueib <> etok '`' <> elabel "code span content")
, err (posN 11 s) (ueib <> etok '`' <> elabel "code span content") ]
[ err (posN 4 s) (ueib <> etok '`' <> ecsc)
, err (posN 11 s) (ueib <> etok '`' <> ecsc) ]
it "CM61" $
"> Foo\n---" ==->
"<blockquote>\n<p>Foo</p>\n</blockquote>\n<hr>\n"
Expand Down Expand Up @@ -313,7 +313,7 @@ spec = parallel $ do
it "CM95" $
let s = "```"
in s ~-> err (posN 3 s)
(ueib <> etok '`' <> elabel "code span content")
(ueib <> etok '`' <> ecsc)
it "CM96" $
let s = "`````\n\n```\naaa\n"
in s ~-> err (posN 15 s)
Expand Down Expand Up @@ -786,7 +786,7 @@ spec = parallel $ do
context "6 Inlines" $
it "CM288" $
let s = "`hi`lo`\n"
in s ~-> err (posN 7 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 7 s) (ueib <> etok '`' <> ecsc)
context "6.1 Blackslash escapes" $ do
it "CM289" $
"\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\n"
Expand Down Expand Up @@ -881,7 +881,7 @@ spec = parallel $ do
"<pre><code class=\"language-f\246\246\">foo\n</code></pre>\n"
it "CM312" $
"`f&ouml;&ouml;`" ==->
"<p><code>f&ouml;&ouml;</code></p>\n"
"<p><code>f&amp;ouml;&amp;ouml;</code></p>\n"
it "CM313" $
" f&ouml;f&ouml;" ==->
"<pre><code>f&amp;ouml;f&amp;ouml;\n</code></pre>\n"
Expand All @@ -903,7 +903,7 @@ spec = parallel $ do
"`foo `` bar`" ==-> "<p><code>foo `` bar</code></p>\n"
it "CM321" $
let s = "`foo\\`bar`\n"
in s ~-> err (posN 10 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 10 s) (ueib <> etok '`' <> ecsc)
it "CM322" $
let s = "*foo`*`\n"
in s ~-> err (posN 7 s) (ueib <> etok '*' <> eic)
Expand All @@ -912,25 +912,25 @@ spec = parallel $ do
in s ~-> err (posN 20 s) (ueib <> etok ']' <> eic)
it "CM324" $
let s = "`<a href=\"`\">`\n"
in s ~-> err (posN 14 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 14 s) (ueib <> etok '`' <> ecsc)
it "CM325" $
"<a href=\"`\">`" ==->
"<p>&lt;a href=&quot;<code>\"></code></p>\n"
"<p>&lt;a href=&quot;<code>&quot;&gt;</code></p>\n"
it "CM326" $
let s = "`<http://foo.bar.`baz>`\n"
in s ~-> err (posN 23 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 23 s) (ueib <> etok '`' <> ecsc)
it "CM327" $
"<http://foo.bar.`baz>`" ==->
"<p>&lt;http://foo.bar.<code>baz></code></p>\n"
"<p>&lt;http://foo.bar.<code>baz&gt;</code></p>\n"
it "CM328" $
let s = "```foo``\n"
in s ~-> err (posN 8 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 8 s) (ueib <> etok '`' <> ecsc)
it "CM329" $
let s = "`foo\n"
in s ~-> err (posN 4 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 4 s) (ueib <> etok '`' <> ecsc)
it "CM330" $
let s = "`foo``bar``\n"
in s ~-> err (posN 11 s) (ueib <> etok '`' <> elabel "code span content")
in s ~-> err (posN 11 s) (ueib <> etok '`' <> ecsc)
context "6.4 Emphasis and strong emphasis" $ do
it "CM331" $
"*foo bar*" ==-> "<p><em>foo bar</em></p>\n"
Expand Down Expand Up @@ -1849,8 +1849,8 @@ spec = parallel $ do
it "multi-line code spans are disallowed in table cells" $
let s = "Foo | Bar\n--- | ---\n`foo\nbar` | bar"
in s ~~->
[ err (posN 24 s) (utok '\n' <> etok '`' <> elabel "code span content")
, err (posN 35 s) (ueib <> etok '`' <> elabel "code span content")
[ err (posN 24 s) (utok '\n' <> etok '`' <> ecsc)
, err (posN 35 s) (ueib <> etok '`' <> ecsc)
]
it "parses tables with just header row" $
"Foo | Bar\n--- | ---" ==->
Expand Down Expand Up @@ -1885,7 +1885,7 @@ spec = parallel $ do
context "multiple parse errors" $ do
it "they are reported in correct order" $ do
let s = "Foo `\n\nBar `.\n"
pe = ueib <> etok '`' <> elabel "code span content"
pe = ueib <> etok '`' <> ecsc
s ~~->
[ err (posN 5 s) pe
, err (posN 13 s) pe ]
Expand Down Expand Up @@ -2064,6 +2064,11 @@ eic = elabel "inline content"
ews :: Ord t => ET t
ews = elabel "white space"

-- | Expecting code span content.

ecsc :: Ord t => ET t
ecsc = elabel "code span content"

-- | Error component complaining that the given 'Text' is not in left- or
-- right- flanking position.

Expand Down

0 comments on commit d27a0dd

Please sign in to comment.