refactor: 简化博客文章归一化
This commit is contained in:
parent
3e3de3ab4e
commit
e5dc83b149
@ -4,7 +4,6 @@ import {
|
|||||||
fetchBlogArticleDetail,
|
fetchBlogArticleDetail,
|
||||||
fetchBlogArticleList,
|
fetchBlogArticleList,
|
||||||
type WordpressPublicArticle,
|
type WordpressPublicArticle,
|
||||||
type WordpressResolvedTerm,
|
|
||||||
} from '@/api/blogArticles';
|
} from '@/api/blogArticles';
|
||||||
import {
|
import {
|
||||||
articles as fallbackArticles,
|
articles as fallbackArticles,
|
||||||
@ -170,10 +169,10 @@ async function loadArticle(slug: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function normalizeWordpressArticle(article: WordpressPublicArticle): BlogArticle {
|
function normalizeWordpressArticle(article: WordpressPublicArticle): BlogArticle {
|
||||||
const category = getFirstTerm(article.categoriesResolved, {
|
const category = article.categoriesResolved?.[0] || {
|
||||||
name: '未分类',
|
name: '未分类',
|
||||||
slug: 'uncategorized',
|
slug: 'uncategorized',
|
||||||
});
|
};
|
||||||
const contentHtml =
|
const contentHtml =
|
||||||
article.contentHtml ||
|
article.contentHtml ||
|
||||||
(typeof article.content === 'object' ? article.content.rendered || article.content.raw : article.content) ||
|
(typeof article.content === 'object' ? article.content.rendered || article.content.raw : article.content) ||
|
||||||
@ -192,7 +191,7 @@ function normalizeWordpressArticle(article: WordpressPublicArticle): BlogArticle
|
|||||||
author: article.authorName || 'KwiTsukasa',
|
author: article.authorName || 'KwiTsukasa',
|
||||||
category: decodeHtml(category.name || '未分类'),
|
category: decodeHtml(category.name || '未分类'),
|
||||||
categorySlug: decodeSlug(category.slug || 'uncategorized'),
|
categorySlug: decodeSlug(category.slug || 'uncategorized'),
|
||||||
comments: article.comment_status === 'open' ? 0 : 0,
|
comments: 0,
|
||||||
content: contentText ? [contentText] : [],
|
content: contentText ? [contentText] : [],
|
||||||
contentHtml,
|
contentHtml,
|
||||||
cover: article.cover || coverPool[article.id % coverPool.length] || defaultCover,
|
cover: article.cover || coverPool[article.id % coverPool.length] || defaultCover,
|
||||||
@ -249,10 +248,6 @@ function buildTags(articles: BlogArticle[]): BlogTag[] {
|
|||||||
return Array.from(groups.values());
|
return Array.from(groups.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFirstTerm(terms: WordpressResolvedTerm[] | undefined, fallback: WordpressResolvedTerm) {
|
|
||||||
return terms?.[0] || fallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRenderedText(value: WordpressPublicArticle['title']) {
|
function getRenderedText(value: WordpressPublicArticle['title']) {
|
||||||
if (typeof value === 'string') return decodeHtml(value);
|
if (typeof value === 'string') return decodeHtml(value);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user