markdowny/src/scanner.ts
2021-02-03 23:15:00 -06:00

30 lines
872 B
TypeScript

import * as fs from "fs";
import * as path from "path";
import * as yamlFrontMatter from "yaml-front-matter";
/**
* Parses the input files and returns a list of YAML metadata with special
* columns for calculated values.
*/
export function scanFiles(argv, files: string[]) {
var list: any[] = [];
for (var file of files) {
// Load the metadata from the given file.
var contents = fs.readFileSync(file, "utf8");
var metadata = yamlFrontMatter.loadFront(contents);
// Add in the standard fields as "_" entries.
metadata._filename = file.replace(argv.prefix, "");
metadata._basename = path.basename(file);
metadata._words = metadata.__content
.replace("'", "")
.split(/\s+/g).length;
// Add the metadata to the list.
list.push(metadata);
}
return list;
}