import fs from 'fs'; import klawSync from 'klaw-sync'; import { basename } from 'path'; // tslint:disable:no-console /** * Generates the Hugo front matter with the title of the document */ export function generateFrontMatter(title: string, weight: number, showToc: boolean = true): string { return `--- title: "${title.replace(/-/g, ' ')}" weight: ${weight} date: ${new Date().toISOString()} showtoc: ${showToc} generated: true --- `; } /** * Delete all generated docs found in the outputPath. */ export function deleteGeneratedDocs(outputPath: string) { if (!fs.existsSync(outputPath)) { return; } try { let deleteCount = 0; const files = klawSync(outputPath, {nodir: true}); for (const file of files) { const content = fs.readFileSync(file.path, 'utf-8'); if (isGenerated(content)) { fs.unlinkSync(file.path); deleteCount++; } } if (deleteCount) { console.log(`Deleted ${deleteCount} generated docs from ${outputPath}`); } } catch (e) { console.error('Could not delete generated docs!'); console.log(e); process.exitCode = 1; } } /** * Returns true if the content matches that of a generated document. */ function isGenerated(content: string) { return /generated\: true\n---\n/.test(content); }