UNPKG

markdown-to-html-cli

Version:
49 lines 2.33 kB
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