esxdoc
Version:
Good Documentation Generator For JavaScript
54 lines (45 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _iceCap = require('ice-cap');
var _iceCap2 = _interopRequireDefault(_iceCap);
var _DocBuilder = require('./DocBuilder.js');
var _DocBuilder2 = _interopRequireDefault(_DocBuilder);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* File output builder class.
*/
class FileDocBuilder extends _DocBuilder2.default {
/**
* execute building output.
* @param {function(html: string, filePath: string)} callback - is called with each file.
*/
exec(callback) {
const ice = this._buildLayoutDoc();
const docs = this._find({ kind: 'file' });
for (const doc of docs) {
const fileName = this._getOutputFileName(doc);
const baseUrl = this._getBaseUrl(fileName);
const title = this._getTitle(doc);
ice.load('content', this._buildFileDoc(doc), _iceCap2.default.MODE_WRITE);
ice.attr('baseUrl', 'href', baseUrl, _iceCap2.default.MODE_WRITE);
ice.text('title', title, _iceCap2.default.MODE_WRITE);
callback(ice.html, fileName);
}
}
/**
* build file output html.
* @param {DocObject} doc - target file doc object.
* @returns {string} html of file page.
* @private
*/
_buildFileDoc(doc) {
const ice = new _iceCap2.default(this._readTemplate('file.html'));
ice.text('title', doc.longname);
ice.text('content', doc.content);
ice.drop('emptySourceCode', !!doc.content);
return ice.html;
}
}
exports.default = FileDocBuilder;