diff options
author | Samy Pessé <samypesse@gmail.com> | 2014-04-14 19:21:43 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2014-04-14 19:21:43 +0200 |
commit | c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19 (patch) | |
tree | 32c27c03056f7ff78085004d871451987ee4fb18 /lib/parse | |
parent | f43e630528be43d5aec4e6f923b0f53107f93546 (diff) | |
download | gitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.zip gitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.tar.gz gitbook-c0ca055bf4c5cbc776b2822afaa3a1efb1b97c19.tar.bz2 |
Add readme parsing for extracting title and description
Diffstat (limited to 'lib/parse')
-rw-r--r-- | lib/parse/index.js | 1 | ||||
-rw-r--r-- | lib/parse/readme.js | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/lib/parse/index.js b/lib/parse/index.js index 0e333e4..0ebb03a 100644 --- a/lib/parse/index.js +++ b/lib/parse/index.js @@ -5,4 +5,5 @@ module.exports = { lex: require('./lex'), progress: require('./progress'), navigation: require('./navigation'), + readme: require('./readme') }; 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; |