UNPKG

dokkie

Version:

Create good looking documentation from your Readme

268 lines 8.5 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setAlternativeDefaults = exports.getDokkieVersion = exports.settings = exports.defaultSettings = void 0; const yargs_1 = __importDefault(require("yargs")); const { readFile } = require("fs").promises; const path_1 = require("path"); const steps_1 = require("./steps"); exports.defaultSettings = { type: "docs", input: ".", output: "dokkie", layout: "default", assets: {}, cleanBefore: true, theme: "feather", extensions: [".md"], excludeFolders: ["node_modules", "dist", "public"], copy: [], strip: ["pages"], codeHighlight: true, projectTitle: "", favicon: "", flatNavigation: false, skip: [], showNavigation: [ { name: "header", mobile: true, desktop: true }, { name: "footer", mobile: true, desktop: true }, ], config: "dokkie.config.json", language: "en", logging: [], showHome: false, url: "", enhance: { search: true, googleAnalytics: false, pageTransition: false, scrollClasses: false, }, }; exports.settings = () => { const cs = yargs_1.default.options({ type: { require: false, type: "string", default: exports.defaultSettings.type, }, input: { required: false, type: "string", default: exports.defaultSettings.input, alias: "i", }, output: { required: false, type: "string", default: exports.defaultSettings.output, alias: "o", }, layout: { required: false, type: "string", default: exports.defaultSettings.layout, alias: "l", }, cleanBefore: { required: false, type: "string", default: exports.defaultSettings.cleanBefore, alias: "c", }, theme: { required: false, type: "string", default: exports.defaultSettings.theme, alias: "t", }, extensions: { required: false, type: "array", default: exports.defaultSettings.extensions, alias: "ext", }, excludeFolders: { required: false, type: "array", default: exports.defaultSettings.excludeFolders, alias: "exclude", }, copy: { required: false, type: "array", default: exports.defaultSettings.copy, }, strip: { required: false, type: "array", default: exports.defaultSettings.strip, }, flatNavigation: { required: false, type: "boolean", default: exports.defaultSettings.flatNavigation, }, showNavigation: { required: false, type: "array", default: exports.defaultSettings.showNavigation, }, codeHighlight: { required: false, type: "boolean", default: exports.defaultSettings.codeHighlight, }, projectTitle: { require: false, type: "string", default: exports.defaultSettings.projectTitle, }, favicon: { require: false, type: "string", default: exports.defaultSettings.favicon, }, logo: { required: false, type: "string", default: null, }, skip: { require: false, type: "array", default: exports.defaultSettings.skip, }, config: { require: false, type: "string", default: exports.defaultSettings.config, }, language: { require: false, type: "string", default: exports.defaultSettings.language, }, logging: { require: false, type: "array", default: exports.defaultSettings.logging, }, showHome: { require: false, type: "boolean", default: exports.defaultSettings.showHome, }, url: { require: false, type: "string", default: exports.defaultSettings.url, }, googleAnalytics: { require: false, type: "string", default: exports.defaultSettings.enhance.googleAnalytics, }, pageTransition: { require: false, type: "boolean", default: exports.defaultSettings.enhance.pageTransition, }, search: { require: false, type: "boolean", default: exports.defaultSettings.enhance.search, }, scrollClasses: { require: false, type: "boolean", default: exports.defaultSettings.enhance.scrollClasses, }, }).argv; return { type: cs.type, input: cs.input, output: cs.output, layout: cs.layout, excludeFolders: cs.excludeFolders, extensions: cs.extensions, cleanBefore: cs.cleanBefore, theme: cs.theme, assets: { logo: cs.logo, favicon: cs.favicon }, copy: cs.copy, strip: cs.strip, flatNavigation: cs.flatNavigation, showNavigation: cs.showNavigation, codeHighlight: cs.codeHighlight, projectTitle: cs.projectTitle, favicon: cs.favicon, skip: cs.skip, config: cs.config, enhance: { googleAnalytics: cs.googleAnalytics, search: cs.search, pageTransition: cs.pageTransition, scrollClasses: cs.scrollClasses, }, language: cs.language, logging: cs.logging, showHome: cs.showHome, url: cs.url, }; }; exports.getDokkieVersion = (s) => __awaiter(void 0, void 0, void 0, function* () { try { const dokkiePackage = yield readFile(path_1.join(__dirname, "../package.json")); return Object.assign(Object.assign({}, s), { version: JSON.parse(dokkiePackage).version }); } catch (err) { throw new Error(err); } }); exports.setAlternativeDefaults = (s) => __awaiter(void 0, void 0, void 0, function* () { const args = process.argv .slice(2) .map((arg) => (arg = arg.split("=")[0].replace("--", ""))); switch (s.type) { case "blog": if (!args.includes("layout")) s.layout = "blog"; if (!args.includes("theme")) s.theme = "feather"; if (!args.includes("flatNavigation")) s.flatNavigation = true; if (!args.includes("showNavigation")) if (!args.includes("showNavigation")) { s.showNavigation = [ { name: "overview", desktop: true, mobile: true }, ]; } break; case "docs": if (!args.includes("input")) { const files = yield steps_1.getFileTree(s.input, s); if (files.length === 1) s.layout = "simple"; } break; case "website": if (!args.includes("layout")) s.layout = "website"; if (!args.includes("theme")) s.theme = "feather"; break; } return s; }); //# sourceMappingURL=settings.js.map