diff options
Diffstat (limited to 'lib/json/encodeBook.js')
-rw-r--r-- | lib/json/encodeBook.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/json/encodeBook.js b/lib/json/encodeBook.js new file mode 100644 index 0000000..9bcb6ee --- /dev/null +++ b/lib/json/encodeBook.js @@ -0,0 +1,35 @@ +var extend = require('extend'); + +var gitbook = require('../gitbook'); +var encodeSummary = require('./encodeSummary'); +var encodeGlossary = require('./encodeGlossary'); +var encodeReadme = require('./encodeReadme'); + +/** + Encode a book to JSON + + @param {Book} + @return {Object} +*/ +function encodeBookToJson(book) { + var config = book.getConfig(); + var language = book.getLanguage(); + + var variables = config.getValue('variables', {}); + + return { + summary: encodeSummary(book.getSummary()), + glossary: encodeGlossary(book.getGlossary()), + readme: encodeReadme(book.getReadme()), + config: book.getConfig().getValues().toJS(), + gitbook: { + version: gitbook.version, + time: gitbook.START_TIME + }, + book: extend({ + language: language? language : undefined + }, variables.toJS()) + }; +} + +module.exports = encodeBookToJson; |