summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-html/lib/glossary.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-02-19 13:14:52 +0100
committerSamy Pessé <samypesse@gmail.com>2016-12-22 12:32:13 +0100
commit9e99b5850fd866fc2f9196993a0ae7e342311558 (patch)
treee430d039378e159f9046095e6f35285ecf6497fe /packages/gitbook-html/lib/glossary.js
parenteb0bf31baa6cb903ba4242ae5a3866ff67aeb97c (diff)
downloadgitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.zip
gitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.tar.gz
gitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.tar.bz2
Base code
Diffstat (limited to 'packages/gitbook-html/lib/glossary.js')
-rwxr-xr-xpackages/gitbook-html/lib/glossary.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/gitbook-html/lib/glossary.js b/packages/gitbook-html/lib/glossary.js
new file mode 100755
index 0000000..648ba1a
--- /dev/null
+++ b/packages/gitbook-html/lib/glossary.js
@@ -0,0 +1,38 @@
+var _ = require('lodash');
+var dom = require('./dom');
+
+// HTML -> Glossary
+function parseGlossary(html) {
+ var $ = dom.parse(html);
+
+ var entries = [];
+
+ $("h2").each(function() {
+ var $heading = $(this);
+ var $p = $heading.next();
+
+ var entry = {};
+
+ entry.name = $heading.text();
+ entry.description = $p.text();
+
+ entries.push(entry);
+ });
+
+ return entries;
+}
+
+// Glossary -> HTML
+function glossaryToText(glossary) {
+ var bl = '\n';
+
+ var body = _.map(glossary, function(entry) {
+ return '<h2>' + entry.name + '</h2>' + bl + bl
+ + '<p>' + entry.description + '</p>';
+ }).join(bl+bl);
+
+ return '<h1>Glossary</h1>'+bl+bl+body;
+}
+
+module.exports = parseGlossary;
+module.exports.toText = glossaryToText;