mmark 0.0.5.2 → 0.0.5.3
raw patch · 4 files changed
+30/−21 lines, 4 files
Files
- CHANGELOG.md +5/−1
- Text/MMark/Render.hs +1/−1
- mmark.cabal +1/−1
- tests/Text/MMarkSpec.hs +23/−18
CHANGELOG.md view
@@ -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).
Text/MMark/Render.hs view
@@ -164,7 +164,7 @@ 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)
mmark.cabal view
@@ -1,5 +1,5 @@ name: mmark-version: 0.0.5.2+version: 0.0.5.3 cabal-version: >= 1.18 tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.2.2 license: BSD3
tests/Text/MMarkSpec.hs view
@@ -66,8 +66,8 @@ 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"@@ -204,8 +204,8 @@ 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"@@ -313,7 +313,7 @@ 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)@@ -786,7 +786,7 @@ 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"@@ -881,7 +881,7 @@ "<pre><code class=\"language-f\246\246\">foo\n</code></pre>\n" it "CM312" $ "`föö`" ==->- "<p><code>föö</code></p>\n"+ "<p><code>f&ouml;&ouml;</code></p>\n" it "CM313" $ " föfö" ==-> "<pre><code>f&ouml;f&ouml;\n</code></pre>\n"@@ -903,7 +903,7 @@ "`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)@@ -912,25 +912,25 @@ 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><a href="<code>\"></code></p>\n"+ "<p><a href="<code>"></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><http://foo.bar.<code>baz></code></p>\n"+ "<p><http://foo.bar.<code>baz></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"@@ -1849,8 +1849,8 @@ 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--- | ---" ==->@@ -1885,7 +1885,7 @@ 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 ]@@ -2063,6 +2063,11 @@ 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.