const fs = require('fs-extra'); const path = require('path'); const loadConfig = require('./config'); const loadBlog = require('./blog'); module.exports = async function load(sourceDir) { // load siteConfig const siteConfig = loadConfig(sourceDir); // extract data from all blog files const blogDatas = await loadBlog(sourceDir); fs.writeFile( path.resolve(__dirname, '../generated/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 }; };