diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /lib/models/glossary.js | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'lib/models/glossary.js')
-rw-r--r-- | lib/models/glossary.js | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/lib/models/glossary.js b/lib/models/glossary.js deleted file mode 100644 index 0033248..0000000 --- a/lib/models/glossary.js +++ /dev/null @@ -1,109 +0,0 @@ -var Immutable = require('immutable'); - -var error = require('../utils/error'); -var File = require('./file'); -var GlossaryEntry = require('./glossaryEntry'); -var parsers = require('../parsers'); - -var Glossary = Immutable.Record({ - file: File(), - entries: Immutable.OrderedMap() -}); - -Glossary.prototype.getFile = function() { - return this.get('file'); -}; - -Glossary.prototype.getEntries = function() { - return this.get('entries'); -}; - -/** - Return an entry by its name - - @param {String} name - @return {GlossaryEntry} -*/ -Glossary.prototype.getEntry = function(name) { - var entries = this.getEntries(); - var id = GlossaryEntry.nameToID(name); - - return entries.get(id); -}; - -/** - Render glossary as text - - @return {Promise<String>} -*/ -Glossary.prototype.toText = function(parser) { - var file = this.getFile(); - var entries = this.getEntries(); - - parser = parser? parsers.getByExt(parser) : file.getParser(); - - if (!parser) { - throw error.FileNotParsableError({ - filename: file.getPath() - }); - } - - return parser.renderGlossary(entries.toJS()); -}; - - -/** - Add/Replace an entry to a glossary - - @param {Glossary} glossary - @param {GlossaryEntry} entry - @return {Glossary} -*/ -Glossary.addEntry = function addEntry(glossary, entry) { - var id = entry.getID(); - var entries = glossary.getEntries(); - - entries = entries.set(id, entry); - return glossary.set('entries', entries); -}; - -/** - Add/Replace an entry to a glossary by name/description - - @param {Glossary} glossary - @param {GlossaryEntry} entry - @return {Glossary} -*/ -Glossary.addEntryByName = function addEntryByName(glossary, name, description) { - var entry = new GlossaryEntry({ - name: name, - description: description - }); - - return Glossary.addEntry(glossary, entry); -}; - -/** - Create a glossary from a list of entries - - @param {String} filename - @param {Array|List} entries - @return {Glossary} -*/ -Glossary.createFromEntries = function createFromEntries(file, entries) { - entries = entries.map(function(entry) { - if (!(entry instanceof GlossaryEntry)) { - entry = new GlossaryEntry(entry); - } - - return [entry.getID(), entry]; - }); - - return new Glossary({ - file: file, - entries: Immutable.OrderedMap(entries) - }); -}; - - -module.exports = Glossary; |