summaryrefslogtreecommitdiffstats
path: root/lib/json/encodeBook.js
blob: 9bcb6ee81d8ff0ec1b823aa8a9bd578d43b828c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;