UNPKG

esxdoc

Version:

Good Documentation Generator For JavaScript

54 lines (45 loc) 1.56 kB
'use strict'; 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;