diff --git a/src/components/SocialList.astro b/src/components/SocialList.astro
index c6b0e3a..048b9c1 100644
--- a/src/components/SocialList.astro
+++ b/src/components/SocialList.astro
@@ -27,6 +27,16 @@ const socialLinks: {
link: "https://x.com/kazoottt",
name: "mdi:twitter",
},
+ {
+ friendlyName: "Bilibili",
+ link: "https://space.bilibili.com/391236013",
+ name: "mdi:video",
+ },
+ {
+ friendlyName: "YouTube",
+ link: "https://www.youtube.com/@kazoottt4718",
+ name: "mdi:youtube",
+ },
{
friendlyName: "Photo",
link: "https://unsplash.com/@kazoottt",
@@ -35,7 +45,7 @@ const socialLinks: {
{
friendlyName: "汇总",
link: "https://bento.me/KazooTTT",
- name: "mdi:link",
+ name: "mdi:open-in-new",
},
];
---
diff --git a/src/components/blog/PostPreview.astro b/src/components/blog/PostPreview.astro
index 3c0f561..41ef444 100644
--- a/src/components/blog/PostPreview.astro
+++ b/src/components/blog/PostPreview.astro
@@ -18,6 +18,7 @@ const { as: Tag = "div", post, withDesc = false } = Astro.props;
{post.data.draft && (Draft) }
+ {post.data.fixedToTop && *}
{post.data.title}
diff --git a/src/content.config.ts b/src/content.config.ts
index afe18cf..ff344f2 100644
--- a/src/content.config.ts
+++ b/src/content.config.ts
@@ -21,6 +21,7 @@ const post = defineCollection({
date_modified: z.date().optional(),
data_created: z.date().optional(),
category: z.string().optional().nullable(),
+ fixedToTop: z.boolean().optional().default(false),
}),
});
diff --git a/src/data/post.ts b/src/data/post.ts
index c878a80..5f72bc1 100644
--- a/src/data/post.ts
+++ b/src/data/post.ts
@@ -8,6 +8,12 @@ export async function getAllPosts(): Promise[]> {
});
}
+export async function getAllFixedToTopPosts(): Promise[]> {
+ return await getCollection("post", ({ data }) => {
+ return import.meta.env.PROD ? data.fixedToTop : false;
+ });
+}
+
export async function getAllCollectionPosts() {
const posts = await getAllPosts();
const notes = await getCollection("note");
diff --git a/src/pages/index.astro b/src/pages/index.astro
index bd7b19c..bfb7de6 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -3,7 +3,7 @@ import { type CollectionEntry, getCollection } from "astro:content";
import SocialList from "@/components/SocialList.astro";
import PostPreview from "@/components/blog/PostPreview.astro";
import Note from "@/components/note/Note.astro";
-import { getAllPosts } from "@/data/post";
+import { getAllFixedToTopPosts, getAllPosts } from "@/data/post";
import PageLayout from "@/layouts/Base.astro";
import { collectionDateSort } from "@/utils/date";
@@ -14,6 +14,12 @@ const allPostsByDate = allPosts
.sort(collectionDateSort)
.slice(0, MAX_POSTS) as CollectionEntry<"post">[];
+// Fixed to top Posts
+const allFixedToTopPosts = await getAllFixedToTopPosts();
+const allFixedToTopPostsByDate = allFixedToTopPosts
+ .sort(collectionDateSort)
+ .slice(0, MAX_POSTS) as CollectionEntry<"post">[];
+
// Notes
const MAX_NOTES = 6;
const allNotes = await getCollection("note");
@@ -26,6 +32,20 @@ const latestNotes = allNotes.sort(collectionDateSort).slice(0, MAX_NOTES);
TODO ...
+
+
+
+
+ {
+ allFixedToTopPostsByDate.map((p) => (
+ -
+
+
+ ))
+ }
+
+
+