mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-05 13:17:23 +02:00
45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
const fs = require('fs-extra');
|
|
const path = require('path');
|
|
const loadConfig = require('./config');
|
|
const loadBlog = require('./blog');
|
|
const {generate} = require('../helpers');
|
|
|
|
module.exports = async function load(sourceDir) {
|
|
// load siteConfig
|
|
const siteConfig = loadConfig(sourceDir);
|
|
|
|
// extract data from all blog files
|
|
const blogDatas = await loadBlog(sourceDir);
|
|
|
|
await generate(
|
|
'blogDatas.js',
|
|
`${'/**\n * @generated\n */\n' + 'module.exports = '}${JSON.stringify(
|
|
blogDatas,
|
|
null,
|
|
2
|
|
)};\n`
|
|
);
|
|
|
|
// resolve outDir
|
|
const outDir = siteConfig.dest
|
|
? path.resolve(siteConfig.dest)
|
|
: path.resolve(sourceDir, '.blogi/dist');
|
|
|
|
// resolve the path of our app theme/ layout
|
|
const themePath =
|
|
!siteConfig.themePath ||
|
|
!fs.existsSync(path.resolve(sourceDir, siteConfig.themePath))
|
|
? path.resolve(__dirname, '../theme')
|
|
: siteConfig.themePath;
|
|
|
|
const publicPath = siteConfig.base || '/';
|
|
|
|
return {
|
|
siteConfig,
|
|
blogDatas,
|
|
sourceDir,
|
|
outDir,
|
|
themePath,
|
|
publicPath
|
|
};
|
|
};
|