implemented korean unsearchable posts
This commit is contained in:
parent
843b7d2829
commit
3f2f48798b
3 changed files with 40 additions and 21 deletions
|
@ -62,13 +62,16 @@ 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 (fileHasFrontMatter) {
|
||||
if (mode != ParseMode.PORTFOLIO) {
|
||||
if (!frontMatter.title) throw Error(`Title is not defined in file: ${path}`)
|
||||
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}`)
|
||||
|
@ -79,6 +82,7 @@ export default function parseMarkdown(
|
|||
frontMatter.overview = md.render(frontMatter.overview)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// work with rendered DOM
|
||||
|
@ -86,7 +90,7 @@ export default function parseMarkdown(
|
|||
|
||||
const dom = new JSDOM(
|
||||
md.render(
|
||||
markdownRaw.startsWith("---")
|
||||
fileHasFrontMatter
|
||||
? markdownRaw.slice(nthIndex(markdownRaw, "---", 2) + 3)
|
||||
: markdownRaw
|
||||
) || ""
|
||||
|
|
|
@ -10,6 +10,7 @@ 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)
|
||||
|
||||
if (!urlPath.endsWith(".kr.md")) {
|
||||
addDocument({
|
||||
title: markdownData.title,
|
||||
body: markdownData.content,
|
||||
|
@ -20,6 +21,7 @@ export default function parseUnsearchable(data: DataToPass): void {
|
|||
map.unsearchable[urlPath] = {
|
||||
title: markdownData.title as string,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save content
|
||||
|
|
|
@ -61,7 +61,17 @@ const fetchContent = async (
|
|||
) => {
|
||||
try {
|
||||
if (pageType == PageType.UNSEARCHABLE) {
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue