diff --git a/generate/parseMarkdown.ts b/generate/parseMarkdown.ts index 4e94851..7bb8c95 100644 --- a/generate/parseMarkdown.ts +++ b/generate/parseMarkdown.ts @@ -62,21 +62,25 @@ export default function parseMarkdown( path: string, mode: ParseMode ): MarkdownData { - // todo: accurately calculate start and end of front matter - const frontMatter = markdownRaw.startsWith("---") + const fileHasFrontMatter = markdownRaw.startsWith("---") + + const frontMatter = fileHasFrontMatter ? matter(markdownRaw.slice(0, nthIndex(markdownRaw, "---", 2) + 3)).data : {} - if (mode != ParseMode.PORTFOLIO) { - if (!frontMatter.title) throw Error(`Title is not defined in file: ${path}`) + if (fileHasFrontMatter) { + if (mode != ParseMode.PORTFOLIO) { + if (!frontMatter.title) + throw Error(`Title is not defined in file: ${path}`) - if (mode != ParseMode.UNSEARCHABLE && !frontMatter.date) - throw Error(`Date is not defined in file: ${path}`) - } + if (mode != ParseMode.UNSEARCHABLE && !frontMatter.date) + throw Error(`Date is not defined in file: ${path}`) + } - if (mode === ParseMode.PORTFOLIO) { - if (frontMatter.overview) { - frontMatter.overview = md.render(frontMatter.overview) + if (mode === ParseMode.PORTFOLIO) { + if (frontMatter.overview) { + frontMatter.overview = md.render(frontMatter.overview) + } } } @@ -86,7 +90,7 @@ export default function parseMarkdown( const dom = new JSDOM( md.render( - markdownRaw.startsWith("---") + fileHasFrontMatter ? markdownRaw.slice(nthIndex(markdownRaw, "---", 2) + 3) : markdownRaw ) || "" diff --git a/generate/recursiveParse/parseUnsearchable.ts b/generate/recursiveParse/parseUnsearchable.ts index fdbf57a..dc455cb 100644 --- a/generate/recursiveParse/parseUnsearchable.ts +++ b/generate/recursiveParse/parseUnsearchable.ts @@ -10,15 +10,17 @@ export default function parseUnsearchable(data: DataToPass): void { // convert path like /XXX/YYY/ZZZ to /YYY/ZZZ const urlPath = _urlPath.slice(_urlPath.slice(1).indexOf("/") + 1) - addDocument({ - title: markdownData.title, - body: markdownData.content, - url: urlPath, - }) + if (!urlPath.endsWith(".kr.md")) { + addDocument({ + title: markdownData.title, + body: markdownData.content, + url: urlPath, + }) - // Parse data that will be written to map.js - map.unsearchable[urlPath] = { - title: markdownData.title as string, + // Parse data that will be written to map.js + map.unsearchable[urlPath] = { + title: markdownData.title as string, + } } /** diff --git a/src/pages/Page/index.tsx b/src/pages/Page/index.tsx index 0c6bea5..afac0b7 100644 --- a/src/pages/Page/index.tsx +++ b/src/pages/Page/index.tsx @@ -61,7 +61,17 @@ const fetchContent = async ( ) => { try { if (pageType == PageType.UNSEARCHABLE) { - return await import(`../../data/content/unsearchable${url}.json`) + if (locale == "en") { + return await import(`../../data/content/unsearchable${url}.json`) + } else { + try { + return await import( + `../../data/content/unsearchable${url}.${locale}.json` + ) + } catch { + return await import(`../../data/content/unsearchable${url}.json`) + } + } } if (locale == "en") { @@ -260,7 +270,10 @@ const Page = () => { } case PageType.UNSEARCHABLE: { - pageData.title = map.unsearchable[url].title + pageData.title = ( + map.unsearchable[`${url}.${globalState.locale}`] || + map.unsearchable[url] + ).title pageData.content = fetched_content.content break