sass/test/toc-check.ts
2021-09-30 20:25:38 +00:00

33 lines
816 B
TypeScript

import * as colors from 'colors/safe';
import * as diff from 'diff';
import * as fs from 'fs';
import * as toc from '../tool/toc';
toc.files.forEach(file => {
const markdown = fs.readFileSync(file).toString();
console.log('Reading: ' + file);
const currentToc = toc.getCurrent(markdown);
if (currentToc === null) {
console.log(colors.yellow("File doesn't have a table of contents"));
return;
}
const generatedToc = toc.generate(markdown);
if (currentToc === generatedToc) return;
const tocDiff = diff.diffLines(currentToc, generatedToc);
tocDiff.forEach(part => {
const color = part.added
? colors.green
: part.removed
? colors.red
: colors.grey;
process.stderr.write(color(part.value));
});
process.stderr.write('\n');
process.exitCode = 1;
});