From 1a300ca9664e26129097010973c9239fe13bd82e Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 24 Aug 2022 21:28:14 +0100 Subject: [PATCH] fix: editor missing slug --- src/models/page.model.ts | 67 +++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 39 deletions(-) diff --git a/src/models/page.model.ts b/src/models/page.model.ts index 44f3cff2..d9838b51 100644 --- a/src/models/page.model.ts +++ b/src/models/page.model.ts @@ -100,6 +100,32 @@ export async function createOrUpdatePage(input: { ) } +const expandPage = async (page: Note, render: boolean) => { + if ( + page.body?.content && + page.body?.mime_type === "text/markdown" && + render + ) { + const rendered = await renderPageContent(page.body.content) + page.body = { + content: rendered.contentHTML, + mime_type: "text/html", + } + if (!page.summary) { + page.summary = { + content: rendered.excerpt, + mime_type: "text/html", + } + } + } + page.slug = + page.attributes?.find((a) => a.trait_type === "xlog_slug")?.value || + page.metadata?.raw?._xlog_slug || + page.metadata?.raw?._crosslog_slug || + page.id + return page +} + export async function getPagesBySite(input: { site?: string type: "post" | "page" @@ -165,28 +191,7 @@ export async function getPagesBySite(input: { pages.list = await Promise.all( pages?.list.map(async (page) => { - if ( - page.body?.content && - page.body?.mime_type === "text/markdown" && - input.render - ) { - const rendered = await renderPageContent(page.body.content) - page.body = { - content: rendered.contentHTML, - mime_type: "text/html", - } - if (!page.summary) { - page.summary = { - content: rendered.excerpt, - mime_type: "text/html", - } - } - } - page.slug = - page.attributes?.find((a) => a.trait_type === "xlog_slug")?.value || - page.metadata?.raw?._xlog_slug || - page.metadata?.raw?._crosslog_slug || - page.id + expandPage(page, input.render || false) return page }), ) @@ -251,23 +256,7 @@ export async function getPage(input: { throw notFound(`page ${input.page} not found`) } - if ( - page.body?.content && - page.body?.mime_type === "text/markdown" && - input.render - ) { - const rendered = await renderPageContent(page.body.content) - page.body = { - content: rendered.contentHTML, - mime_type: "text/html", - } - if (!page.summary) { - page.summary = { - content: rendered.excerpt, - mime_type: "text/html", - } - } - } + expandPage(page, input.render || false) return page }