| 12345678910111213141516171819202122232425262728293031323334353637 |
- const fs = require('fs');
- const path = require('path');
- const { promisify } = require('util');
- const extract = require('./extract');
- // Promisified fs functions
- const readdirAsync = promisify(fs.readdir);
- const readFileAsync = promisify(fs.readFile);
- const writeFileAsync = promisify(fs.writeFile);
- // Source and destination paths
- const markdownPath = path.resolve(__dirname, '../markdown');
- const jsonPath = path.resolve(__dirname, '../../front/src/resources/markdown.json');
- async function run(filterFunc) {
- const allFiles = await readdirAsync(markdownPath);
- const tutoFiles = allFiles.filter(filterFunc);
- const promises = tutoFiles.map(async tuto => {
- const tutoPath = path.join(markdownPath, tuto);
- const buf = await readFileAsync(tutoPath);
- const md = buf.toString();
- console.log(md.split('\n').shift());
- try {
- return extract(md);
- } catch (err) {
- console.log(err.message);
- }
- });
- const tutos = await Promise.all(promises);
- const json = JSON.stringify(tutos);
- await writeFileAsync(jsonPath, json);
- process.exit();
- }
- const filterFunc = f => f.startsWith('tutor');
- run(filterFunc);
|