diff --git a/source/generate/clean.ts b/source/generate/clean.ts new file mode 100644 index 0000000..08d5f38 --- /dev/null +++ b/source/generate/clean.ts @@ -0,0 +1,15 @@ +import fs from "fs" + +import { contentDirectoryPath, mapFilePath } from "./config" + +export default function clean() { + try { + fs.rmSync(contentDirectoryPath, { recursive: true }) + // eslint-disable-next-line no-empty + } catch (err) {} + + try { + fs.unlinkSync(mapFilePath) + // eslint-disable-next-line no-empty + } catch (err) {} +} diff --git a/source/generate/index.ts b/source/generate/index.ts index 52197ff..751cd93 100644 --- a/source/generate/index.ts +++ b/source/generate/index.ts @@ -8,9 +8,11 @@ import fs from "fs" -import { contentDirectoryPath, mapFilePath, markdownPath } from "./config" +import { mapFilePath, markdownPath } from "./config" import { recursiveParse } from "./recursiveParse" import { saveIndex } from "./searchIndex" +import postProcess from "./postProcess" +import clean from "./clean" import { Map, ParseMode, SeriesMap, PortfolioData } from "../types/typing" @@ -34,15 +36,7 @@ export const portfolioData: PortfolioData = { * Delete previously generated files */ -try { - fs.rmSync(contentDirectoryPath, { recursive: true }) - // eslint-disable-next-line no-empty -} catch (err) {} - -try { - fs.unlinkSync(mapFilePath) - // eslint-disable-next-line no-empty -} catch (err) {} +clean() /** * Checking @@ -72,35 +66,7 @@ recursiveParse(ParseMode.SERIES, markdownPath + "/series") * Post-process */ -// sort date - -const TmpDate = map.date -map.date = {} -Object.keys(map.date) - .sort() - .forEach((sortedDateKey) => { - map.date[sortedDateKey] = TmpDate[sortedDateKey] - }) - -// fill meta data - -map.meta.tags = Object.keys(map.tags) - -// sort series post - -for (const seriesURL in seriesMap) { - seriesMap[seriesURL].sort((a, b) => { - if (a.index < b.index) return -1 - if (a.index > b.index) return 1 - - return 0 - }) -} - -for (const seriesURL in seriesMap) { - map.series[seriesURL].length = seriesMap[seriesURL].length - map.series[seriesURL].order = seriesMap[seriesURL].map((item) => item.url) -} +postProcess() /** * Save results diff --git a/source/generate/postProcess.ts b/source/generate/postProcess.ts new file mode 100644 index 0000000..d01f1b5 --- /dev/null +++ b/source/generate/postProcess.ts @@ -0,0 +1,35 @@ +import { map, seriesMap } from "." + +export default function postProcess() { + // sort date + + const TmpDate = map.date + map.date = {} + Object.keys(map.date) + .sort() + .forEach((sortedDateKey) => { + map.date[sortedDateKey] = TmpDate[sortedDateKey] + }) + + // fill meta data + + map.meta.tags = Object.keys(map.tags) + + // sort series post + + for (const seriesURL in seriesMap) { + seriesMap[seriesURL].sort((a, b) => { + if (a.index < b.index) return -1 + if (a.index > b.index) return 1 + + return 0 + }) + } + + for (const seriesURL in seriesMap) { + map.series[seriesURL].length = seriesMap[seriesURL].length + map.series[seriesURL].order = seriesMap[seriesURL].map( + (item) => item.url + ) + } +}