igniteui-typedoc-theme
Version:
infragistics theme for typedoc API documentation
46 lines (45 loc) • 1.96 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.load = exports.IgTheme = exports.IgThemeRenderContext = void 0;
const path_1 = __importDefault(require("path"));
const fs_extra_1 = require("fs-extra");
const typedoc_1 = require("typedoc");
const default_1 = require("./layouts/default");
const breadcrumb_1 = require("./partials/breadcrumb");
function bind(fn, first) {
return (...r) => fn(first, ...r);
}
class IgThemeRenderContext extends typedoc_1.DefaultThemeRenderContext {
constructor(theme, options) {
super(theme, options);
this.breadcrumb = bind(breadcrumb_1.breadcrumb, this);
this.defaultLayout = (props) => {
return ((0, default_1.defaultLayout)(this, props));
};
}
}
exports.IgThemeRenderContext = IgThemeRenderContext;
;
class IgTheme extends typedoc_1.DefaultTheme {
constructor(renderer) {
super(renderer);
renderer.on(typedoc_1.RendererEvent.END, async () => {
const out = this.application.options.getValue('out');
await (0, fs_extra_1.copy)(path_1.default.join(process.cwd(), '/node_modules/igniteui-typedoc-theme/dist/assets'), path_1.default.join(out, '/assets'));
});
}
getRenderContext() {
this._ctx || (this._ctx = new IgThemeRenderContext(this, this.application.options));
return this._ctx;
}
}
exports.IgTheme = IgTheme;
function load(app) {
app.renderer.hooks.on('head.end', (context) => (typedoc_1.JSX.createElement("link", { rel: 'stylesheet', href: context.relativeURL('assets/css/main.css') })));
app.renderer.hooks.on('body.end', (context) => (typedoc_1.JSX.createElement("script", { src: context.relativeURL('assets/common.js') })));
app.renderer.defineTheme('igtheme', IgTheme);
}
exports.load = load;