2024 - 31.05.2025 All Bumped.
Some checks failed
部署文档 / build (push) Failing after 2s

Thanks to the following contributors:
- @snowykami
- @frg2089
- Nya_Twisuki
This commit is contained in:
2025-05-31 14:30:19 +08:00
commit 4c90f70fc4
62 changed files with 10618 additions and 0 deletions

26
src/friends.json Normal file
View File

@ -0,0 +1,26 @@
{
"#5": {
"link": "https://blog.shimakaze.dev",
"icon": "https://blog.shimakaze.dev/avatar.webp",
"desc": ".NET 壬,也会一些前端。比我厉害。",
"name": "frg2089 岛风"
},
"#6": {
"icon": "https://twis.uk/avatar.png",
"name": "Twisuki 苏阳",
"link": "https://twis.uk",
"desc": "一只喜欢到处贴贴的猫。"
},
"#7": {
"link": "https://sfkm.me",
"desc": "轻雪工作室主要负责人。非常厉害。",
"name": "SnowyKami 神羽",
"icon": "https://q.qlogo.cn/g?b=qq&nk=2751454815&s=640"
},
"#8": {
"desc": "可爱的 Python Dev 和音乐人律姐姐~",
"name": "MelodyEcho 律回",
"link": "https://glowmem.com/",
"icon": "https://github.com/AiCorein.png"
}
}

6
src/friends.ts Normal file
View File

@ -0,0 +1,6 @@
import { ThemeBlogHomeProjectOptions } from 'vuepress-theme-hope'
import friendsJson from './friends.json' with { type: 'json' }
const friends: ThemeBlogHomeProjectOptions[] = Object.values(friendsJson)
export default friends

View File

@ -0,0 +1,60 @@
<template>
<BlogWrapper>
<div class="vp-page vp-blog">
<BlogHero>
<template #info="{ tagline, isFullScreen, text, alt }">
<HitokotoBlogHero v-if="text" :text="text" :alt="alt" />
</template>
<template #bg>
<BingHeroBackground />
</template>
</BlogHero>
<div class="blog-page-wrapper">
<main id="main-content" class="vp-blog-main friends round-avatar">
<DropTransition appear :delay="0.16">
<div class="theme-hope-content">
<ProjectPanel :items="friends" />
</div>
</DropTransition>
<DropTransition appear :delay="0.28">
<MarkdownContent />
</DropTransition>
</main>
<DropTransition appear :delay="0.4">
<InfoPanel />
</DropTransition>
</div>
</div>
</BlogWrapper>
</template>
<script lang="ts" setup>
import BlogHero from 'vuepress-theme-hope/blog/components/BlogHero.js'
import BlogWrapper from 'vuepress-theme-hope/blog/components/BlogWrapper.js'
import InfoPanel from 'vuepress-theme-hope/blog/components/InfoPanel.js'
import ProjectPanel from 'vuepress-theme-hope/blog/components/ProjectPanel.js'
import MarkdownContent from 'vuepress-theme-hope/components/MarkdownContent.js'
import { DropTransition } from 'vuepress-theme-hope/components/transitions/DropTransition.js'
import BingHeroBackground from 'vuepress-theme-hope/presets/BingHeroBackground.js'
import HitokotoBlogHero from 'vuepress-theme-hope/presets/HitokotoBlogHero.js'
import 'vuepress-theme-hope/modules/blog/styles/home.scss'
import friends from "../friends"
</script>
<style lang="scss">
main.friends.round-avatar {
.vp-project-card {
img.vp-project-icon {
border-radius: 9999px;
height: 2em;
}
width: calc(50% - 40px);
@media (max-width: 959px) {
width: 100%
}
}
}
</style>

13
src/navbar.ts Normal file
View File

@ -0,0 +1,13 @@
import { navbar } from "vuepress-theme-hope";
export default navbar([
"/",
"/archives/",
"/notes/",
"/diaries/",
{
text: "友链",
icon: "heart",
link: "/friends/",
},
]);

27
src/sidebar.ts Normal file
View File

@ -0,0 +1,27 @@
import { sidebar } from "vuepress-theme-hope";
export default sidebar({
"/": [
// "",
{
text: "综述",
icon: "folder-open",
prefix: "archives/",
children: "structure",
},
{
text: "笔记",
icon: "book",
prefix: "notes/",
children: "structure",
},
{
text: "随想",
icon: "paper-plane",
prefix: "diaries/",
children: "structure",
},
// "intro",
// "friends/"
],
});

168
src/theme.hope.ts Normal file
View File

@ -0,0 +1,168 @@
import { hopeTheme } from "vuepress-theme-hope";
import navbar from "./navbar.js";
import sidebar from "./sidebar.js";
export default hopeTheme(
{
hostname: "https://agxcoy.shimakaze.org",
author: {
name: "SilverAg.L",
url: "https://github.com/AgxCOy",
},
logo: "/assets/images/avatar.webp",
// repo: "AgxCOy/blogs", // now becomes private.
docsDir: "docs",
// 导航栏
navbar,
// 侧边栏
sidebar,
// 页脚
footer: "喵?……嗯哼♡",
displayFooter: true,
// 博客相关
blog: {
description: "希望你我都能……“玩”得尽兴♡",
// intro: "/intro.html",
medias: {
BiliBili: "https://space.bilibili.com/301413212",
Email: "mailto:caclx@outlook.com",
GitHub: "https://github.com/AgxCOy",
Steam: "https://steamcommunity.com/id/silveraglin/",
},
},
// 加密配置
// encrypt: {
// config: {
// "/demo/encrypt.html": ["1234"],
// },
// },
markdown: {
align: true,
alert: true,
attrs: true,
codeTabs: true,
component: true,
demo: true,
figure: true,
footnote: true,
imgLazyload: true,
imgSize: true,
include: true,
mark: true,
plantuml: true,
spoiler: true,
stylize: [
{
matcher: "Recommended",
replacer: ({ tag }) => {
if (tag === "em")
return {
tag: "Badge",
attrs: { type: "tip" },
content: "Recommended",
};
},
},
],
sub: true,
sup: true,
tabs: true,
tasklist: true,
vPre: true,
// katex
math: true,
},
// 多语言配置
metaLocales: {
editLink: "在 GitHub 上编辑此页",
},
// 如果想要实时查看任何改变,启用它。注: 这对更新性能有很大负面影响
// hotReload: true,
// 在这里配置主题提供的插件
plugins: {
blog: {
excerptLength: 0,
},
icon: {
assets: "fontawesome-with-brands"
},
docsearch: {
apiKey: '665b95419abc56fb78211160bc331a81',
appId: 'JDO4FJXBV7',
indexName: 'agxcoy-shimakaze'
},
components: {
components: ["Badge", "VPCard"],
},
// 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释
pwa: {
favicon: "/favicon.ico",
cacheHTML: false,
cacheImage: false,
appendBase: true,
apple: {
icon: "/assets/icon/apple-icon-152.png",
statusBarColor: "black",
},
manifest: {
icons: [
{
src: "/assets/icon/chrome-mask-512.png",
sizes: "512x512",
purpose: "maskable",
type: "image/png",
},
{
src: "/assets/icon/chrome-mask-192.png",
sizes: "192x192",
purpose: "maskable",
type: "image/png",
},
{
src: "/assets/icon/chrome-512.png",
sizes: "512x512",
type: "image/png",
},
{
src: "/assets/icon/chrome-192.png",
sizes: "192x192",
type: "image/png",
},
],
// shortcuts: [
// {
// name: "Demo",
// short_name: "Demo",
// url: "/demo/",
// icons: [
// {
// src: "/assets/icon/guide-maskable.png",
// sizes: "192x192",
// purpose: "maskable",
// type: "image/png",
// },
// ],
// },
// ],
},
},
},
},
{
"custom": true
}
);