summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/gitbook-markdown/lib/index.js3
-rw-r--r--packages/gitbook-markdown/lib/langs.js24
-rw-r--r--packages/gitbook-markdown/test/fixtures/LANGS.md4
-rw-r--r--packages/gitbook-markdown/test/langs.js18
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');
+ });
+});