mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-21 18:13:29 +00:00
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
var JSONUtils = require('../../json');
|
|
var PathUtils = require('../../utils/path');
|
|
var Modifiers = require('../modifiers');
|
|
var writeFile = require('../helper/writeFile');
|
|
var getModifiers = require('../getModifiers');
|
|
|
|
var JSON_VERSION = '3';
|
|
|
|
/**
|
|
* Write a page as a json file
|
|
*
|
|
* @param {Output} output
|
|
* @param {Page} page
|
|
*/
|
|
function onPage(output, page) {
|
|
var file = page.getFile();
|
|
var readme = output.getBook().getReadme().getFile();
|
|
|
|
return Modifiers.modifyHTML(page, getModifiers(output, page))
|
|
.then(function(resultPage) {
|
|
// Generate the JSON
|
|
var json = JSONUtils.encodeBookWithPage(output.getBook(), resultPage);
|
|
|
|
// Delete some private properties
|
|
delete json.config;
|
|
|
|
// Specify JSON output version
|
|
json.version = JSON_VERSION;
|
|
|
|
// File path in the output folder
|
|
var filePath = file.getPath() == readme.getPath()? 'README.json' : file.getPath();
|
|
filePath = PathUtils.setExtension(filePath, '.json');
|
|
|
|
// Write it to the disk
|
|
return writeFile(
|
|
output,
|
|
filePath,
|
|
JSON.stringify(json, null, 4)
|
|
);
|
|
});
|
|
}
|
|
|
|
module.exports = onPage;
|