diff options
-rw-r--r-- | packages/gitbook-markdown/lib/index.js | 3 | ||||
-rw-r--r-- | packages/gitbook-markdown/lib/langs.js | 24 | ||||
-rw-r--r-- | packages/gitbook-markdown/test/fixtures/LANGS.md | 4 | ||||
-rw-r--r-- | packages/gitbook-markdown/test/langs.js | 18 |
4 files changed, 48 insertions, 1 deletions
diff --git a/packages/gitbook-markdown/lib/index.js b/packages/gitbook-markdown/lib/index.js index 48a19c6..c9e0105 100644 --- a/packages/gitbook-markdown/lib/index.js +++ b/packages/gitbook-markdown/lib/index.js @@ -3,5 +3,6 @@ var _ = require("lodash"); module.exports = { summary: require("./summary"), - glossary: require("./glossary") + glossary: require("./glossary"), + langs: require("./langs") }; diff --git a/packages/gitbook-markdown/lib/langs.js b/packages/gitbook-markdown/lib/langs.js new file mode 100644 index 0000000..4b2a9a9 --- /dev/null +++ b/packages/gitbook-markdown/lib/langs.js @@ -0,0 +1,24 @@ +var _ = require("lodash"); +var parseEntries = require("./summary").entries; + + +var parseLangs = function(content) { + var entries = parseEntries(content); + + return { + list: _.chain(entries) + .filter(function(entry) { + return Boolean(entry.path); + }) + .map(function(entry) { + return { + title: entry.title, + path: entry.path, + lang: entry.path.replace("/", "") + }; + }) + .value() + }; +}; + +module.exports = parseLangs; diff --git a/packages/gitbook-markdown/test/fixtures/LANGS.md b/packages/gitbook-markdown/test/fixtures/LANGS.md new file mode 100644 index 0000000..eb8b532 --- /dev/null +++ b/packages/gitbook-markdown/test/fixtures/LANGS.md @@ -0,0 +1,4 @@ +# Languages + +* [English](en) +* [French](fr) diff --git a/packages/gitbook-markdown/test/langs.js b/packages/gitbook-markdown/test/langs.js new file mode 100644 index 0000000..3a1f082 --- /dev/null +++ b/packages/gitbook-markdown/test/langs.js @@ -0,0 +1,18 @@ +var fs = require('fs'); +var path = require('path'); +var assert = require('assert'); + +var langs = require('../').langs; + +var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/LANGS.md'), 'utf8'); +var LEXED = langs(CONTENT); + +describe('Languages parsing', function () { + it('should detect paths and titles', function() { + assert.equal(LEXED.list[0].path,'en'); + assert.equal(LEXED.list[0].title,'English'); + + assert.equal(LEXED.list[1].path,'fr'); + assert.equal(LEXED.list[1].title,'French'); + }); +}); |