[marked] Initial import
Jamie Nguyen
jamielinux at fedoraproject.org
Tue Mar 12 15:24:57 UTC 2013
commit 08256eca5b8a848b002ef8bfb1bfae3e5bd84c45
Author: Jamie Nguyen <j at jamielinux.com>
Date: Tue Mar 12 15:24:45 2013 +0000
Initial import
.gitignore | 2 +
dl-tests.sh | 23 ++++++
marked-0.2.8-fix-link-defs-after-blocks.patch | 61 ++++++++++++++++
marked.spec | 97 +++++++++++++++++++++++++
sources | 2 +
5 files changed, 185 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..a45c9cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/marked-0.2.8.tgz
+/tests-v0.2.8.tar.bz2
diff --git a/dl-tests.sh b/dl-tests.sh
new file mode 100755
index 0000000..b25b1b2
--- /dev/null
+++ b/dl-tests.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+tag=v0.2.8
+
+set -e
+
+tmp=$(mktemp -d)
+
+trap cleanup EXIT
+cleanup() {
+ set +e
+ [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp"
+}
+
+unset CDPATH
+pwd=$(pwd)
+
+pushd "$tmp"
+git clone git://github.com/chjj/marked.git
+cd marked
+git archive --prefix="test/" --format=tar tags/${tag}:test/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+popd
diff --git a/marked-0.2.8-fix-link-defs-after-blocks.patch b/marked-0.2.8-fix-link-defs-after-blocks.patch
new file mode 100644
index 0000000..d32bebf
--- /dev/null
+++ b/marked-0.2.8-fix-link-defs-after-blocks.patch
@@ -0,0 +1,61 @@
+--- a/lib/marked.js
++++ b/lib/marked.js
+@@ -18,8 +18,8 @@
+ heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
+ nptable: noop,
+ lheading: /^([^\n]+)\n *(=|-){3,} *\n*/,
+- blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
+- list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
++ blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,
++ list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
+ html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
+ table: noop,
+@@ -36,6 +36,11 @@
+ block.list = replace(block.list)
+ (/bull/g, block.bullet)
+ ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
++ ('def', '\\n+(?=' + block.def.source + ')')
++ ();
++
++block.blockquote = replace(block.blockquote)
++ ('def', block.def)
+ ();
+
+ block._tag = '(?!(?:'
+@@ -139,7 +144,7 @@
+ * Lexing
+ */
+
+-Lexer.prototype.token = function(src, top) {
++Lexer.prototype.token = function(src, top, bq) {
+ var src = src.replace(/^ +$/gm, '')
+ , next
+ , loose
+@@ -262,7 +267,7 @@
+ // Pass `top` to keep the current
+ // "toplevel" state. This is exactly
+ // how markdown.pl works.
+- this.token(cap, top);
++ this.token(cap, top, true);
+
+ this.tokens.push({
+ type: 'blockquote_end'
+@@ -335,7 +340,7 @@
+ });
+
+ // Recurse.
+- this.token(item, false);
++ this.token(item, false, bq);
+
+ this.tokens.push({
+ type: 'list_item_end'
+@@ -363,7 +368,7 @@
+ }
+
+ // def
+- if (top && (cap = this.rules.def.exec(src))) {
++ if ((!bq && top) && (cap = this.rules.def.exec(src))) {
+ src = src.substring(cap[0].length);
+ this.tokens.links[cap[1].toLowerCase()] = {
+ href: cap[2],
diff --git a/marked.spec b/marked.spec
new file mode 100644
index 0000000..287f48a
--- /dev/null
+++ b/marked.spec
@@ -0,0 +1,97 @@
+%global enable_tests 1
+
+Name: marked
+Version: 0.2.8
+Release: 2%{?dist}
+Summary: A markdown parser for Node.js built for speed
+License: MIT
+Group: System Environment/Libraries
+URL: https://github.com/chjj/marked
+Source0: http://registry.npmjs.org/marked/-/marked-%{version}.tgz
+# The test files are not included in the npm tarball.
+# Source1 is generated by running Source10, which pulls from the upstream
+# version control repository.
+Source1: tests-v%{version}.tar.bz2
+Source10: dl-tests.sh
+BuildArch: noarch
+
+Patch0: %{name}-0.2.8-fix-link-defs-after-blocks.patch
+
+BuildRequires: nodejs-devel
+
+%if 0%{?enable_tests}
+BuildRequires: npm(express)
+%endif
+
+%description
+marked is a full-featured markdown compiler that can parse huge chunks of
+markdown without having to worry about caching the compiled output or
+blocking for an unnecessarily long time.
+
+marked is extremely fast and frequently outperforms similar markdown parsers.
+marked is very concise and still implements all markdown features, as well
+as GitHub Flavored Markdown features.
+
+marked more or less passes the official markdown test suite in its entirety.
+This is important because a surprising number of markdown compilers cannot
+pass more than a few tests.
+
+
+%prep
+%setup -q -n package
+%setup -q -T -D -a 1 -n package
+%patch0 -p1
+
+
+%build
+#nothing to do
+
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/marked
+cp -pr package.json lib/ \
+ %{buildroot}%{nodejs_sitelib}/marked
+mkdir -p %{buildroot}%{nodejs_sitelib}/marked/bin
+install -p -D -m0755 bin/marked \
+ %{buildroot}%{nodejs_sitelib}/marked/bin/marked
+mkdir -p %{buildroot}/%{_bindir}
+ln -sf %{nodejs_sitelib}/marked/bin/marked \
+ %{buildroot}%{_bindir}/marked
+
+mkdir -p %{buildroot}%{_mandir}/man1
+install -p -D -m0644 man/marked.1 \
+ %{buildroot}%{_mandir}/man1/marked.1
+
+%nodejs_symlink_deps
+
+
+%if 0%{?enable_tests}
+%check
+# gfm_break test will always fail due to author's choice not to include gfm
+# line breaks: https://github.com/chjj/marked/issues/49
+
+# gfm_code_hr_list test is known to fail but the author has not yet arrived
+# at a satisfactory solution: https://github.com/chjj/marked/pull/118
+
+# def_blocks and double_link tests also fail and author has been queried
+# about whether these are meant to fail or not:
+# https://github.com/chjj/marked/issues/136
+
+cp -pr %{nodejs_sitelib} .
+%__nodejs ./test/
+%endif
+
+
+%files
+%doc LICENSE README.md
+%{nodejs_sitelib}/marked
+%{_bindir}/marked
+%{_mandir}/man1/marked.1*
+
+
+%changelog
+* Tue Mar 12 2013 Jamie Nguyen <jamielinux at fedoraproject.org> - 0.2.8-2
+- add information about test failures
+
+* Thu Feb 14 2013 Jamie Nguyen <jamielinux at fedoraproject.org> - 0.2.8-1
+- initial package
diff --git a/sources b/sources
index e69de29..95ece2d 100644
--- a/sources
+++ b/sources
@@ -0,0 +1,2 @@
+729305a61c3c739039ede41c802a75c6 marked-0.2.8.tgz
+ebc9669eadecbc1b839528dbf40e4e3f tests-v0.2.8.tar.bz2
More information about the scm-commits
mailing list