summaryrefslogtreecommitdiffstats
path: root/lib/parse
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2014-05-20 23:45:35 +0200
committerSamy Pessé <samypesse@gmail.com>2014-05-20 23:45:35 +0200
commit86f05c68c581968d3f650e5df1c972d13a43268f (patch)
treedb1dedfc1d7b3fb382ab794771f1b1407e06e24a /lib/parse
parent8dd407eaa8aaf7447329afa48a3662706322732a (diff)
downloadgitbook-86f05c68c581968d3f650e5df1c972d13a43268f.zip
gitbook-86f05c68c581968d3f650e5df1c972d13a43268f.tar.gz
gitbook-86f05c68c581968d3f650e5df1c972d13a43268f.tar.bz2
Improve parsing of readme (extraction of title and description as plain text and not markdown)
Diffstat (limited to 'lib/parse')
-rw-r--r--lib/parse/readme.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/parse/readme.js b/lib/parse/readme.js
index aab094d..e3788af 100644
--- a/lib/parse/readme.js
+++ b/lib/parse/readme.js
@@ -1,5 +1,6 @@
var _ = require('lodash');
var marked = require('marked');
+var textRenderer = require('marked-text-renderer');
function extractFirstNode(nodes, nType) {
return _.chain(nodes)
@@ -14,16 +15,26 @@ function extractFirstNode(nodes, nType) {
function parseReadme(src) {
var nodes, title, description;
+ var renderer = textRenderer();
// Parse content
nodes = marked.lexer(src);
-
+
var title = extractFirstNode(nodes, "heading");
var description = extractFirstNode(nodes, "paragraph");
+ var convert = _.compose(
+ function(text) {
+ return _.unescape(text.replace(/(\r\n|\n|\r)/gm, ""));
+ },
+ _.partialRight(marked, _.extend({}, marked.defaults, {
+ renderer: renderer
+ }))
+ );
+
return {
- title: title,
- description: description
+ title: convert(title),
+ description: convert(description)
};
}