feat: prototype blog & docs generation on dev

This commit is contained in:
endiliey 2018-08-05 18:59:23 +08:00
parent 187a46d9b6
commit 221023fd51
12 changed files with 181 additions and 37 deletions

View file

@ -2,19 +2,33 @@ const fs = require('fs-extra');
const path = require('path');
const loadConfig = require('./config');
const loadBlog = require('./blog');
const loadDocs = require('./docs');
const {generate} = require('../helpers');
module.exports = async function load(siteDir) {
// load siteConfig
const siteConfig = loadConfig(siteDir);
// extract data from all blog files
const blogDatas = await loadBlog(siteDir);
// docs
const docsRelativeDir = siteConfig.customDocsPath || 'docs';
const docsMetadata = await loadDocs(
path.resolve(siteDir, '..', docsRelativeDir)
);
await generate(
'blogDatas.js',
'docsMetadata.js',
`${'/**\n * @generated\n */\n' + 'module.exports = '}${JSON.stringify(
blogDatas,
docsMetadata,
null,
2
)};\n`
);
// blog
const blogMetadata = await loadBlog(path.resolve(siteDir, 'blog'));
await generate(
'blogMetadata.js',
`${'/**\n * @generated\n */\n' + 'module.exports = '}${JSON.stringify(
blogMetadata,
null,
2
)};\n`
@ -32,14 +46,13 @@ module.exports = async function load(siteDir) {
? path.resolve(__dirname, '../ui')
: siteConfig.uiPath;
const publicPath = siteConfig.base || '/';
const baseUrl = siteConfig.baseUrl || '/';
return {
siteConfig,
blogDatas,
siteDir,
outDir,
uiPath,
publicPath
baseUrl
};
};