diff options
Diffstat (limited to 'lib/models/parser.js')
-rw-r--r-- | lib/models/parser.js | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/lib/models/parser.js b/lib/models/parser.js deleted file mode 100644 index d64542f..0000000 --- a/lib/models/parser.js +++ /dev/null @@ -1,122 +0,0 @@ -var Immutable = require('immutable'); -var Promise = require('../utils/promise'); - -var Parser = Immutable.Record({ - name: String(), - - // List of extensions that can be processed using this parser - extensions: Immutable.List(), - - // Parsing functions - readme: Function(), - langs: Function(), - summary: Function(), - glossary: Function(), - page: Function(), - inline: Function() -}); - -Parser.prototype.getName = function() { - return this.get('name'); -}; - -Parser.prototype.getExtensions = function() { - return this.get('extensions'); -}; - -// PARSE - -Parser.prototype.parseReadme = function(content) { - var readme = this.get('readme'); - return Promise(readme(content)); -}; - -Parser.prototype.parseSummary = function(content) { - var summary = this.get('summary'); - return Promise(summary(content)); -}; - -Parser.prototype.parseGlossary = function(content) { - var glossary = this.get('glossary'); - return Promise(glossary(content)); -}; - -Parser.prototype.preparePage = function(content) { - var page = this.get('page'); - if (!page.prepare) { - return Promise(content); - } - - return Promise(page.prepare(content)); -}; - -Parser.prototype.parsePage = function(content) { - var page = this.get('page'); - return Promise(page(content)); -}; - -Parser.prototype.parseInline = function(content) { - var inline = this.get('inline'); - return Promise(inline(content)); -}; - -Parser.prototype.parseLanguages = function(content) { - var langs = this.get('langs'); - return Promise(langs(content)); -}; - -Parser.prototype.parseInline = function(content) { - var inline = this.get('inline'); - return Promise(inline(content)); -}; - -// TO TEXT - -Parser.prototype.renderLanguages = function(content) { - var langs = this.get('langs'); - return Promise(langs.toText(content)); -}; - -Parser.prototype.renderSummary = function(content) { - var summary = this.get('summary'); - return Promise(summary.toText(content)); -}; - -Parser.prototype.renderGlossary = function(content) { - var glossary = this.get('glossary'); - return Promise(glossary.toText(content)); -}; - -/** - Test if this parser matches an extension - - @param {String} ext - @return {Boolean} -*/ -Parser.prototype.matchExtension = function(ext) { - var exts = this.getExtensions(); - return exts.includes(ext.toLowerCase()); -}; - -/** - Create a new parser using a module (gitbook-markdown, etc) - - @param {String} name - @param {Array<String>} extensions - @param {Object} module - @return {Parser} -*/ -Parser.create = function(name, extensions, module) { - return new Parser({ - name: name, - extensions: Immutable.List(extensions), - readme: module.readme, - langs: module.langs, - summary: module.summary, - glossary: module.glossary, - page: module.page, - inline: module.inline - }); -}; - -module.exports = Parser; |