fix: html content in feed
This commit is contained in:
parent
46969f85cb
commit
22b0d2d5e6
|
|
@ -10,6 +10,8 @@ export async function GET(request: Request) {
|
|||
const feed = await getFeed({
|
||||
type: "hot",
|
||||
daysInterval: parseInt(searchParams.get("interval") || "0"),
|
||||
useHTML: true,
|
||||
limit: 10,
|
||||
})
|
||||
|
||||
const data = {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import { getFeed } from "~/models/home.model"
|
|||
export async function GET(request: Request) {
|
||||
const feed = await getFeed({
|
||||
type: "latest",
|
||||
useHTML: true,
|
||||
limit: 10,
|
||||
})
|
||||
|
||||
const data = {
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ export async function GET(
|
|||
type: "post",
|
||||
visibility: PageVisibilityEnum.Published,
|
||||
keepBody: true,
|
||||
useHTML: true,
|
||||
})
|
||||
|
||||
const hasAudio = pages.list?.find((page) => page.metadata?.content?.audio)
|
||||
|
|
@ -47,7 +48,7 @@ export async function GET(
|
|||
id: page.characterId + "-" + page.noteId,
|
||||
title: page.metadata?.content?.title,
|
||||
summary: page.metadata?.content?.summary,
|
||||
content_html: page.metadata?.content?.content,
|
||||
content_html: page.metadata?.content?.contentHTML,
|
||||
url: `${SITE_URL}/api/redirection?characterId=${page.characterId}¬eId=${page.noteId}`,
|
||||
image: page.metadata?.content?.cover,
|
||||
date_published: page.metadata?.content?.date_published,
|
||||
|
|
|
|||
|
|
@ -7,12 +7,19 @@ import { ExpandedCharacter, ExpandedNote } from "~/lib/types"
|
|||
|
||||
import { getNoteSlug } from "./helpers"
|
||||
|
||||
export const expandCrossbellNote = async (
|
||||
note: NoteEntity,
|
||||
useStat?: boolean,
|
||||
useScore?: boolean,
|
||||
keyword?: string,
|
||||
) => {
|
||||
export const expandCrossbellNote = async ({
|
||||
note,
|
||||
useStat,
|
||||
useScore,
|
||||
keyword,
|
||||
useHTML,
|
||||
}: {
|
||||
note: NoteEntity
|
||||
useStat?: boolean
|
||||
useScore?: boolean
|
||||
keyword?: string
|
||||
useHTML?: boolean
|
||||
}) => {
|
||||
const expandedNote: ExpandedNote = Object.assign(
|
||||
{
|
||||
metadata: {
|
||||
|
|
@ -45,6 +52,10 @@ export const expandCrossbellNote = async (
|
|||
expandedNote.metadata.content.cover = rendered.cover
|
||||
expandedNote.metadata.content.audio = rendered.audio
|
||||
expandedNote.metadata.content.frontMatter = rendered.frontMatter
|
||||
|
||||
if (useHTML) {
|
||||
expandedNote.metadata.content.contentHTML = rendered.contentHTML
|
||||
}
|
||||
}
|
||||
expandedNote.metadata.content.slug = getNoteSlug(expandedNote)
|
||||
expandedNote.metadata.content.date_published =
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export const parsePost = (post: ExpandedNote, withTwitter?: boolean) => {
|
|||
withTwitter && twitter ? ` by @${twitter}` : ""
|
||||
}`,
|
||||
summary: post.metadata?.content?.summary,
|
||||
content_html: post.metadata?.content?.contentHTML,
|
||||
url: `${SITE_URL}/api/redirection?characterId=${post.characterId}¬eId=${post.noteId}`,
|
||||
image: post.metadata?.content?.cover,
|
||||
date_published: post.createdAt,
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ export type ExpandedNote = NoteEntity & {
|
|||
number?: number
|
||||
reason?: string
|
||||
}
|
||||
contentHTML?: string
|
||||
}
|
||||
}
|
||||
stat?: {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ export async function getFeed({
|
|||
searchKeyword,
|
||||
searchType,
|
||||
tag,
|
||||
useHTML,
|
||||
}: {
|
||||
type?: FeedType
|
||||
cursor?: string
|
||||
|
|
@ -37,6 +38,7 @@ export async function getFeed({
|
|||
searchKeyword?: string
|
||||
searchType?: SearchType
|
||||
tag?: string
|
||||
useHTML?: boolean
|
||||
}) {
|
||||
if (type === "search" && !searchKeyword) {
|
||||
type = "latest"
|
||||
|
|
@ -57,7 +59,12 @@ export async function getFeed({
|
|||
|
||||
const list = await Promise.all(
|
||||
result.list.map(async (page: any) => {
|
||||
const expand = await expandCrossbellNote(page, false, true)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useStat: false,
|
||||
useScore: true,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
@ -87,7 +94,10 @@ export async function getFeed({
|
|||
|
||||
const list = await Promise.all(
|
||||
result.list.map(async (page: any) => {
|
||||
const expand = await expandCrossbellNote(page)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
@ -155,7 +165,10 @@ export async function getFeed({
|
|||
|
||||
const list = await Promise.all(
|
||||
result?.data?.notes.map(async (page: any) => {
|
||||
const expand = await expandCrossbellNote(page)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
@ -221,7 +234,10 @@ export async function getFeed({
|
|||
page.stat.viewDetailCount / Math.max(Math.log10(secondAgo), 1)
|
||||
}
|
||||
|
||||
const expand = await expandCrossbellNote(page)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
@ -255,12 +271,13 @@ export async function getFeed({
|
|||
|
||||
const list = await Promise.all(
|
||||
result.list.map(async (page: any) => {
|
||||
const expand = await expandCrossbellNote(
|
||||
page,
|
||||
false,
|
||||
false,
|
||||
searchKeyword,
|
||||
)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useStat: false,
|
||||
useScore: false,
|
||||
keyword: searchKeyword,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
@ -295,7 +312,12 @@ export async function getFeed({
|
|||
|
||||
const list = await Promise.all(
|
||||
result.list.map(async (page: any) => {
|
||||
const expand = await expandCrossbellNote(page, false, true)
|
||||
const expand = await expandCrossbellNote({
|
||||
note: page,
|
||||
useStat: false,
|
||||
useScore: true,
|
||||
useHTML,
|
||||
})
|
||||
delete expand.metadata?.content.content
|
||||
return expand
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -220,6 +220,7 @@ export async function getPagesBySite(input: {
|
|||
cursor?: string
|
||||
tags?: string[]
|
||||
useStat?: boolean
|
||||
useHTML?: boolean
|
||||
keepBody?: boolean
|
||||
handle?: string // In order to be compatible with old drafts
|
||||
}) {
|
||||
|
|
@ -244,7 +245,12 @@ export async function getPagesBySite(input: {
|
|||
|
||||
const list = await Promise.all(
|
||||
notes?.list.map(async (note) => {
|
||||
const expanded = await expandCrossbellNote(note, input.useStat)
|
||||
const expanded = await expandCrossbellNote({
|
||||
note,
|
||||
useStat: input.useStat,
|
||||
useHTML: input.useHTML,
|
||||
useScore: false,
|
||||
})
|
||||
if (!input.keepBody) {
|
||||
delete expanded.metadata?.content?.content
|
||||
}
|
||||
|
|
@ -336,7 +342,12 @@ export async function getSearchPagesBySite(input: {
|
|||
|
||||
const list: ExpandedNote[] = await Promise.all(
|
||||
result.list.map(async (page: any) => {
|
||||
return await expandCrossbellNote(page, true, false, input.keyword)
|
||||
return await expandCrossbellNote({
|
||||
note: page,
|
||||
useStat: true,
|
||||
useScore: false,
|
||||
keyword: input.keyword,
|
||||
})
|
||||
}),
|
||||
)
|
||||
|
||||
|
|
@ -390,7 +401,10 @@ export async function getPage<TRender extends boolean = false>(input: {
|
|||
|
||||
let expandedNote: ExpandedNote | undefined
|
||||
if (page) {
|
||||
expandedNote = await expandCrossbellNote(page, input.useStat)
|
||||
expandedNote = await expandCrossbellNote({
|
||||
note: page,
|
||||
useStat: input.useStat,
|
||||
})
|
||||
}
|
||||
|
||||
if (localPage) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue