summaryrefslogtreecommitdiff
path: root/dev-haskell/cmark/metadata.xml
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-haskell/cmark/metadata.xml
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-haskell/cmark/metadata.xml')
-rw-r--r--dev-haskell/cmark/metadata.xml90
1 files changed, 90 insertions, 0 deletions
diff --git a/dev-haskell/cmark/metadata.xml b/dev-haskell/cmark/metadata.xml
new file mode 100644
index 000000000000..2d92a8edfc92
--- /dev/null
+++ b/dev-haskell/cmark/metadata.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>haskell@gentoo.org</email>
+ <name>Gentoo Haskell</name>
+ </maintainer>
+ <use>
+ <flag name='system-cmark'>use <pkg>app-text/cmark</pkg> instead of bundled copy</flag>
+ </use>
+ <longdescription>
+ This package provides Haskell bindings for
+ &lt;https://github.com/jgm/cmark libcmark&gt;, the reference
+ parser for &lt;http://commonmark.org CommonMark&gt;, a fully
+ specified variant of Markdown. It includes sources for
+ libcmark (0.19.0) and does not require prior installation of the
+ C library.
+
+ cmark provides the following advantages over existing
+ Markdown libraries for Haskell:
+
+ - Speed: Conversion speed is on par with the
+ &lt;https://hackage.haskell.org/package/sundown sundown&gt;
+ library. We were unable to measure precisely
+ against
+ &lt;https://hackage.haskell.org/package/sundown sundown&gt;,
+ which raised a malloc error when compiled into our
+ benchmark suite. Relative to other implementations:
+ cmark was 82 times faster than
+ &lt;https://hackage.haskell.org/package/cheapskate cheapskate&gt;,
+ 59 times faster than
+ &lt;https://hackage.haskell.org/package/markdown markdown&gt;,
+ 105 times faster than
+ &lt;https://hackage.haskell.org/package/pandoc pandoc&gt;,
+ and 2.8 times faster than
+ &lt;https://hackage.haskell.org/package/discount discount&gt;.
+
+ - Memory footprint: Memory footprint is on par with
+ &lt;https://hackage.haskell.org/package/sundown sundown&gt;.
+ On one sample, the library uses a fourth the memory that
+ &lt;https://hackage.haskell.org/package/markdown markdown&gt;
+ uses, and less than a tenth the memory that
+ &lt;https://hackage.haskell.org/package/pandoc pandoc&gt;
+ uses.
+
+ - Robustness: cmark can handle whatever is thrown
+ at it, without the exponential blowups in parsing
+ time one can sometimes get with other libraries.
+ (The input @bench\/full-sample.md@, for example,
+ causes both
+ &lt;https://hackage.haskell.org/package/pandoc pandoc&gt;
+ and
+ &lt;https://hackage.haskell.org/package/markdown markdown&gt;
+ to grind to a halt.)
+
+ - Accuracy: cmark passes the CommonMark spec\'s
+ suite of over 500 conformance tests.
+
+ - Standardization: Since there is a spec and a
+ comprehensive suite of tests, we can have a high
+ degree of confidence that any two CommonMark
+ implementations will behave the same. Thus, for
+ example, one could use this library for server-side
+ rendering and
+ &lt;https://github.com/jgm/commonmark.js commonmark.js&gt;
+ for client-side previewing.
+
+ - Ease of installation: cmark is portable and has
+ minimal dependencies.
+
+ cmark does not provide Haskell versions of the whole
+ &lt;https://github.com/jgm/cmark libcmark&gt; API, which is
+ built around mutable @cmark_node@ objects. Instead, it
+ provides functions for converting CommonMark to HTML
+ (and other formats), and a function for converting
+ CommonMark to a @Node@ tree that can be processed
+ further using Haskell.
+
+ A note on security: This library does not attempt
+ to sanitize HTML output. We recommend using
+ &lt;https://hackage.haskell.org/package/xss-sanitize xss-sanitize&gt;
+ to filter the output.
+
+ A note on stability: There is a good chance the API
+ will change significantly after this early release.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">jgm/commonmark-hs</remote-id>
+ </upstream>
+</pkgmetadata>