Thanks to the following contributors: - @snowykami - @frg2089 - Nya_Twisuki
This commit is contained in:
26
src/friends.json
Normal file
26
src/friends.json
Normal 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
6
src/friends.ts
Normal 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
|
60
src/layouts/FriendsHome.vue
Normal file
60
src/layouts/FriendsHome.vue
Normal 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
13
src/navbar.ts
Normal 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
27
src/sidebar.ts
Normal 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
168
src/theme.hope.ts
Normal 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
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user