summaryrefslogtreecommitdiffstats
path: root/lib/models/glossary.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-27 14:11:45 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-27 14:11:45 +0200
commita9d558e89181b3b18151f6344a309ea444526e03 (patch)
treee8a870fb54453aeb5185816352e8afc6ba42788c /lib/models/glossary.js
parent8291eb58dffad58ab51abcdf13bc9cfd96d30b91 (diff)
downloadgitbook-a9d558e89181b3b18151f6344a309ea444526e03.zip
gitbook-a9d558e89181b3b18151f6344a309ea444526e03.tar.gz
gitbook-a9d558e89181b3b18151f6344a309ea444526e03.tar.bz2
Add method ".toText" on glossary and summary
Diffstat (limited to 'lib/models/glossary.js')
-rw-r--r--lib/models/glossary.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/models/glossary.js b/lib/models/glossary.js
index 51aa370..bb4407d 100644
--- a/lib/models/glossary.js
+++ b/lib/models/glossary.js
@@ -1,7 +1,9 @@
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(),
@@ -30,6 +32,27 @@ Glossary.prototype.getEntry = function(name) {
};
/**
+ 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.glossary.toText(entries.toJS());
+};
+
+
+/**
Add/Replace an entry to a glossary
@param {Glossary} glossary