implemented korean unsearchable posts

This commit is contained in:
Kim, Jimin 2022-03-26 23:12:47 +09:00
parent 843b7d2829
commit 3f2f48798b
3 changed files with 40 additions and 21 deletions

View file

@ -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
) || ""

View file

@ -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,
}
}
/**

View file

@ -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