mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-02 19:57:25 +02:00
37 lines
907 B
JavaScript
37 lines
907 B
JavaScript
const fs = require('fs-extra');
|
|
const path = require('path');
|
|
const fm = require('front-matter');
|
|
const globby = require('globby');
|
|
const {encodePath, fileToPath} = require('./utils');
|
|
|
|
function parse(fileString) {
|
|
if (!fm.test(fileString)) {
|
|
return {metadata: null, content: fileString};
|
|
}
|
|
const {attributes: metadata, body: content} = fm(fileString);
|
|
|
|
return {metadata, content};
|
|
}
|
|
|
|
async function loadDocs(docsDir) {
|
|
const docsFiles = await globby(['**/*.md'], {
|
|
cwd: docsDir
|
|
});
|
|
|
|
const docsData = await Promise.all(
|
|
docsFiles.map(async source => {
|
|
const filepath = path.resolve(docsDir, source);
|
|
const fileString = await fs.readFile(filepath, 'utf-8');
|
|
const {metadata} = parse(fileString);
|
|
|
|
return {
|
|
path: encodePath(fileToPath(source)),
|
|
source,
|
|
...metadata
|
|
};
|
|
})
|
|
);
|
|
return docsData;
|
|
}
|
|
|
|
module.exports = loadDocs;
|