diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-02-19 13:14:52 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 12:32:13 +0100 |
commit | 9e99b5850fd866fc2f9196993a0ae7e342311558 (patch) | |
tree | e430d039378e159f9046095e6f35285ecf6497fe /packages/gitbook-html/lib/glossary.js | |
parent | eb0bf31baa6cb903ba4242ae5a3866ff67aeb97c (diff) | |
download | gitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.zip gitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.tar.gz gitbook-9e99b5850fd866fc2f9196993a0ae7e342311558.tar.bz2 |
Base code
Diffstat (limited to 'packages/gitbook-html/lib/glossary.js')
-rwxr-xr-x | packages/gitbook-html/lib/glossary.js | 38 |
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; |