优化 tags 不存在问题
This commit is contained in:
parent
ffebcb1099
commit
a2d19f5045
@ -10,7 +10,7 @@ const blog = defineCollection({
|
|||||||
date: z.coerce.date(),
|
date: z.coerce.date(),
|
||||||
updated: z.coerce.date().optional(),
|
updated: z.coerce.date().optional(),
|
||||||
categories: z.string(),
|
categories: z.string(),
|
||||||
tags: z.array(z.union([z.string(), z.number()])),
|
tags: z.array(z.union([z.string(), z.number()])).optional(),
|
||||||
id: z.union([z.string(), z.number()]),
|
id: z.union([z.string(), z.number()]),
|
||||||
cover: z.string().optional(),
|
cover: z.string().optional(),
|
||||||
recommend: z.boolean().optional(),
|
recommend: z.boolean().optional(),
|
||||||
|
|||||||
@ -56,9 +56,9 @@ import "@/styles/ArticleBase.less";
|
|||||||
</header>
|
</header>
|
||||||
<main>
|
<main>
|
||||||
<Content />
|
<Content />
|
||||||
<nav class="tag-list">
|
<section class="tag-list">
|
||||||
{
|
{
|
||||||
post.data.tags.map((i: any) => (
|
(post.data.tags || []).map((i: any) => (
|
||||||
<a href={`/tag/${i}`}>
|
<a href={`/tag/${i}`}>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
@ -69,7 +69,7 @@ import "@/styles/ArticleBase.less";
|
|||||||
</a>
|
</a>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
</nav>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer>
|
<footer>
|
||||||
<!-- 打赏组件 -->
|
<!-- 打赏组件 -->
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { getCollection } from "astro:content";
|
|||||||
export async function getStaticPaths(): Promise<any> {
|
export async function getStaticPaths(): Promise<any> {
|
||||||
const posts = await getCollection("blog");
|
const posts = await getCollection("blog");
|
||||||
let tagList: any = [];
|
let tagList: any = [];
|
||||||
posts.forEach(post => (tagList = [...tagList, ...post.data.tags]));
|
posts.forEach(post => (tagList = [...tagList, ...(post.data.tags || [])]));
|
||||||
return [...new Set(tagList)].map(tags => ({ params: { tags } }));
|
return [...new Set(tagList)].map(tags => ({ params: { tags } }));
|
||||||
}
|
}
|
||||||
// 获取分类列表
|
// 获取分类列表
|
||||||
|
|||||||
@ -25,7 +25,7 @@ const getCategoriesList = async (categories: string) => {
|
|||||||
// 获取标签下的文章列表
|
// 获取标签下的文章列表
|
||||||
const getTagsList = async (tags: string) => {
|
const getTagsList = async (tags: string) => {
|
||||||
const posts = await getCollection("blog");
|
const posts = await getCollection("blog");
|
||||||
const articleList = posts.filter((i: any) => i.data.tags.includes(tags)).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());;
|
const articleList = posts.filter((i: any) => (i.data.tags || []).includes(tags)).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());;
|
||||||
return fmtArticleList(articleList);
|
return fmtArticleList(articleList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ const getCountInfo = () => {
|
|||||||
// 获取文章标签
|
// 获取文章标签
|
||||||
const getTags = () => {
|
const getTags = () => {
|
||||||
const tagList = posts.reduce((acc: any, i: any) => {
|
const tagList = posts.reduce((acc: any, i: any) => {
|
||||||
i.data.tags.forEach((tag: string) => {
|
(i.data.tags || []).forEach((tag: string) => {
|
||||||
acc[tag] = (acc[tag] || 0) + 1;
|
acc[tag] = (acc[tag] || 0) + 1;
|
||||||
});
|
});
|
||||||
return acc;
|
return acc;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user