markdown-to-html-cli
Version:
Command line tool generates markdown as html.
49 lines • 2.33 kB
JavaScript
import fs from 'fs-extra';
import path from 'path';
export function formatConfig(opts) {
let options = { ...opts };
if (!options.document) {
options.document = { title: opts.title, meta: [], link: [], style: [] };
}
const projectPkg = path.resolve(process.cwd(), opts.config || 'package.json');
let pgkData = {};
if (fs.existsSync(projectPkg)) {
pgkData = fs.readJSONSync(projectPkg);
if (pgkData['markdown-to-html']) {
const mth = pgkData['markdown-to-html'];
const { title, meta, link } = options.document;
options = { ...options, ...mth, document: { ...options.document, title, meta, link, ...mth.document } };
}
else {
options.reurls = { ...options.reurls, ...pgkData.reurls };
options.document = { ...options.document, ...pgkData.document };
}
options.document.title = options.document.title ?? pgkData.name;
options['github-corners'] = opts['github-corners'] ?? options['github-corners'] ?? (typeof pgkData.repository === 'string' ? pgkData.repository : (typeof pgkData.repository === 'object' && pgkData.repository?.url ? pgkData.repository.url : undefined));
}
if (opts['github-corners'] && typeof opts['github-corners'] === 'string') {
options['github-corners'] = opts['github-corners'].replace(/^git[+]/, '');
}
if (Array.isArray(options.document.link) && options.favicon) {
options.document.link.push({ rel: 'icon', href: options.favicon, type: 'image/x-icon' });
}
if (Array.isArray(options.document.meta)) {
if (options.description) {
options.document.meta.push({ description: options.description });
}
else if (pgkData.description) {
options.document.meta.push({ description: pgkData.description });
}
if (options.keywords) {
options.document.meta.push({ keywords: options.keywords });
}
else if (pgkData.keywords && Array.isArray(pgkData.keywords)) {
options.document.meta.push({ keywords: pgkData.keywords.join(',') });
}
if (typeof options.author === 'string') {
options.document.meta.push({ author: options.author });
}
}
return options;
}
//# sourceMappingURL=utils.js.map