summaryrefslogtreecommitdiffstats
path: root/lib/parse/readme.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2014-04-14 19:21:43 +0200
committerSamy Pessé <samypesse@gmail.com>2014-04-14 19:21:43 +0200
commitc0ca055bf4c5cbc776b2822afaa3a1efb1b97c19 (patch)
tree32c27c03056f7ff78085004d871451987ee4fb18 /lib/parse/readme.js
parentf43e630528be43d5aec4e6f923b0f53107f93546 (diff)
downloadgitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.zip
gitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.tar.gz
gitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.tar.bz2
Add readme parsing for extracting title and description
Diffstat (limited to 'lib/parse/readme.js')
-rw-r--r--lib/parse/readme.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/parse/readme.js b/lib/parse/readme.js
new file mode 100644
index 0000000..aab094d
--- /dev/null
+++ b/lib/parse/readme.js
@@ -0,0 +1,32 @@
+var _ = require('lodash');
+var marked = require('marked');
+
+function extractFirstNode(nodes, nType) {
+ return _.chain(nodes)
+ .filter(function(node) {
+ return node.type == nType;
+ })
+ .pluck("text")
+ .first()
+ .value();
+}
+
+
+function parseReadme(src) {
+ var nodes, title, description;
+
+ // Parse content
+ nodes = marked.lexer(src);
+
+ var title = extractFirstNode(nodes, "heading");
+ var description = extractFirstNode(nodes, "paragraph");
+
+ return {
+ title: title,
+ description: description
+ };
+}
+
+
+// Exports
+module.exports = parseReadme;