diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 13:12:16 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 13:12:16 +0100 |
commit | 97f2c333a87b9d939b5a7dc2884590c971b53291 (patch) | |
tree | a22824b02d84a89e59c458c8af7d3494561d43f6 /packages/gitbook-html/src/glossary.js | |
parent | 627e6dd866f77ff497a21f0b706490b82e40ea0e (diff) | |
download | gitbook-97f2c333a87b9d939b5a7dc2884590c971b53291.zip gitbook-97f2c333a87b9d939b5a7dc2884590c971b53291.tar.gz gitbook-97f2c333a87b9d939b5a7dc2884590c971b53291.tar.bz2 |
Import and adapt gitbook-html
Refactor to remove lodash and q as dependencies
Diffstat (limited to 'packages/gitbook-html/src/glossary.js')
-rwxr-xr-x | packages/gitbook-html/src/glossary.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/gitbook-html/src/glossary.js b/packages/gitbook-html/src/glossary.js new file mode 100755 index 0000000..a4269fe --- /dev/null +++ b/packages/gitbook-html/src/glossary.js @@ -0,0 +1,30 @@ +const dom = require('./dom'); + +/** + * Parse an HTML content into a list of glossary entry. + * + * @param {String} html + * @return {Array} entries + */ +function parseGlossary(html) { + const $ = dom.parse(html); + + const entries = []; + + $('h2').each(function() { + const $heading = $(this); + const $next = $heading.next(); + const $p = $next.is('p') ? $next.first() : $next.find('p').first(); + + const entry = {}; + + entry.name = $heading.text(); + entry.description = $p.text(); + + entries.push(entry); + }); + + return entries; +} + +module.exports = parseGlossary; |