[+] yarn build - Build hant pages

pull/32/head
Hykilpikonna 2022-11-17 01:15:59 -05:00
parent e669f4dedd
commit 185586a137
No known key found for this signature in database
GPG Key ID: 256CD01A41D7FA26
1 changed files with 24 additions and 23 deletions

View File

@ -10,13 +10,9 @@ const PUBLIC_DIR = "public";
const PEOPLE_DIR = "people";
const COMMENTS_DIR = "comments";
const PEOPLE_INFO_FILENAME = "info.json5";
const PEOPLE_PAGE_FILE = "page.md";
const DIST_DIR = "dist";
const DIST_PEOPLE_LIST = "people-list.json";
const DIST_PEOPLE_INFO_FILENAME = "info.json";
const DIST_PEOPLE_PAGE_FILE = "page.js";
const projectRoot = path.dirname(path.dirname(url.fileURLToPath(import.meta.url)));
const peopleDir = path.join(projectRoot, PEOPLE_DIR);
@ -35,7 +31,8 @@ function buildPeopleInfoAndList() {
const peopleList: PeopleMeta[] = [];
for (const { dirname, srcPath, distPath } of people) {
const infoFile = fs.readFileSync(path.join(srcPath, PEOPLE_INFO_FILENAME), "utf-8");
for (const lang of ['', '.zh_hant']) {
const infoFile = fs.readFileSync(path.join(srcPath, `info${lang}.json5`), "utf-8");
const info = json5.parse(infoFile);
// Add meta information
@ -55,7 +52,8 @@ function buildPeopleInfoAndList() {
// Write info.json
fs.ensureDirSync(distPath);
fs.writeFileSync(path.join(distPath, DIST_PEOPLE_INFO_FILENAME), JSON.stringify(info));
fs.writeFileSync(path.join(distPath, `info${lang}.json`), JSON.stringify(info));
}
}
// Write people-list.json
@ -65,11 +63,14 @@ function buildPeopleInfoAndList() {
// Render `people/${dirname}/page.md` to `dist/people/${dirname}/page.js`.
function buildPeoplePages() {
for (const { srcPath, distPath } of people) {
const markdown = fs.readFileSync(path.join(srcPath, PEOPLE_PAGE_FILE), "utf-8");
for (const lang of ['', '.zh_hant'])
{
const markdown = fs.readFileSync(path.join(srcPath, `page${lang}.md`), "utf-8");
const result = renderMdx(markdown);
fs.ensureDirSync(distPath);
fs.writeFileSync(path.join(distPath, DIST_PEOPLE_PAGE_FILE), result);
fs.writeFileSync(path.join(distPath, `page${lang}.js`), result);
}
}
}