第一次提交

This commit is contained in:
2025-12-15 23:16:59 +08:00
commit 3e0da32c18
93 changed files with 14105 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
<script setup lang="ts">
import BlogHero from "vuepress-theme-hope/blog/components/BlogHero.js";
import HitokotoBlogHero from "vuepress-theme-hope/presets/HitokotoBlogHero.js";
</script>
<template>
<BlogHero>
<template #info="info">
<HitokotoBlogHero v-bind="info" />
</template>
</BlogHero>
</template>

26
src/.vuepress/config.ts Normal file
View File

@@ -0,0 +1,26 @@
import { defineUserConfig } from "vuepress";
import { getDirname, path } from "vuepress/utils";
const __dirname = getDirname(import.meta.url);
import theme from "./theme.js";
export default defineUserConfig({
base: "/",
lang: "zh-CN",
title: "氓氓小栈",
description: "氓氓小栈",
theme,
alias: {
"@theme-hope/modules/blog/components/BlogHero": path.resolve(
__dirname,
"./components/BlogHero.vue",
),
},
// 和 PWA 一起启用
// shouldPrefetch: false,
});

25
src/.vuepress/navbar.ts Normal file
View File

@@ -0,0 +1,25 @@
import { navbar } from "vuepress-theme-hope";
export default navbar([
"/",
{
text: "编程",
icon: "mdi:code-tags",
link: "/programming/",
},
{
text: "工作",
icon: "mdi:briefcase",
link: "/work/",
},
{
text: "应用",
icon: "mdi:application",
link: "/apps/",
},
{
text: "工具箱",
icon: "mdi:toolbox",
link: "/tools/",
},
]);

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="1200" class="icon" viewBox="0 0 3280.944 2800"><path fill="#41b883" d="M1645.332 601.004h375.675L1081.82 2238.478 142.636 601.004h718.477l220.708 379.704 216.013-379.704z"/><path fill="#41b883" d="M142.636 601.004l939.185 1637.474 939.186-1637.474h-375.675l-563.51 982.484-568.208-982.484z"/><path fill="#35495e" d="M513.188 601.004l568.207 987.23 563.511-987.23h-347.498l-216.013 379.704-220.708-379.704zM1607.792 1311.83l594.678 2.293 187.353-316.325-598.662 2.292zM2198.506 1909.57C2867.436 732.7 2939.502 605.426 2937.874 603.78c-.715-.723 45.303-1.314 102.262-1.314s103.562.428 103.562.951c0 .523-208.57 367.978-463.491 816.567L2216.715 2235.6l-102.1.596-102.102.596z"/><path fill="#41b883" d="M1680.563 2233.328c0-1.34 168.208-298.145 440.375-777.048a4135645.775 4135645.775 0 00337.619-594.19l146.13-257.25 170.746-.04 170.747-.04-5.536 9.741c-3.044 5.358-43.727 77.302-90.407 159.875-85.356 150.992-337.562 595.163-656.602 1156.373l-172 302.559-170.536.588c-93.795.322-170.536.069-170.536-.567z"/><path fill="#35495e" d="M1429.783 1625.351l594.679 2.292 187.353-316.324-598.662 2.292z"/><path fill="#41b883" d="M1524.207 1464.903l608.285 6.877 173.746-320.909h-619.072z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

186
src/.vuepress/sidebar.ts Normal file
View File

@@ -0,0 +1,186 @@
import { sidebar } from "vuepress-theme-hope";
export default sidebar({
"/programming/": [
{
text: "前端",
collapsible: true,
expanded: false,
icon: "mdi:vuejs",
prefix: "frontend/",
children: [
{
text: "Vue",
icon: "mdi:vuejs",
collapsible: true,
prefix: "vue/",
children: "structure",
},
{
text: "CSS",
icon: "mdi:language-css3",
collapsible: true,
prefix: "css/",
children: "structure",
},
{
text: "HTML",
icon: "mdi:language-html5",
collapsible: true,
prefix: "html/",
children: "structure",
},
]
},
{
text: "后端",
collapsible: true,
expanded: false,
icon: "mdi:code-tags",
prefix: "backend/",
children: [
{
text: "Java",
icon: "mdi:language-java",
collapsible: true,
prefix: "java/",
children: [
{
text: "框架",
icon: "mdi:code-braces",
collapsible: true,
prefix: "框架/",
children: "structure",
},
{
text: "功能整理",
icon: "mdi:puzzle",
collapsible: true,
prefix: "功能整理/",
children: [
"01XJar.md",
"02Maven.md",
"03WebSocket和HTTP关系.md",
"05防止表单和参数重复提交.md",
"06Spring Boot JAR 瘦身与加密.md",
],
},
{
text: "试题",
icon: "mdi:comment-question",
collapsible: true,
prefix: "AI试题/",
children: "structure",
},
]
},
{
text: "Go",
icon: "mdi:language-go",
collapsible: true,
prefix: "go/",
children: [
{
text: "Go基础语法",
icon: "mdi:book-open-outline",
collapsible: true,
prefix: "Go基础语法/",
children: [
"01Hello World.md",
"02变量与类型.md",
"03slice和map.md",
"04Struct、方法与接收者类型详解.md",
"05接口.md",
"06错误机制.md",
"07从零实现 Mini 日志库.md",
],
},
],
},
{
text: "C++",
icon: "mdi:language-cpp",
collapsible: true,
prefix: "c++/",
children: "structure",
},
]
},
{
text: "Linux",
collapsible: true,
expanded: false,
icon: "mdi:linux",
prefix: "linux/",
children: [
{
text: "基础",
icon: "mdi:console",
collapsible: true,
prefix: "基础/",
children: "structure",
},
{
text: "Linux_Mint",
icon: "simple-icons:linuxmint",
collapsible: true,
prefix: "Linux_Mint/",
children: "structure",
},
{
text: "凝思",
icon: "mdi:server",
collapsible: true,
prefix: "凝思/",
children: "structure",
},
]
},
{
text: "Docker",
collapsible: true,
expanded: false,
icon: "mdi:docker",
prefix: "docker/",
children: "structure",
}
],
"/work/": [
{
text: "工作日志",
collapsible: true,
expanded: false,
icon: "mdi:file-document-outline",
prefix: "log/",
children: "structure",
},
{
text: "常用记录",
icon: "mdi:star",
link: "/work/常用.md",
}
],
"/apps/": [
{
text: "自建应用",
icon: "mdi:apps",
collapsible: true,
children: "structure",
}
],
"/tools/": [
{
text: "工具箱",
icon: "mdi:toolbox",
collapsible: true,
children: [
"01gkd.md",
"02WSL2.md",
"03Scoop.md",
"04gitee-ssh.md",
"05Google.md",
"06MobaXterm.md"
],
},
]
});

View File

@@ -0,0 +1,2 @@
// you can change config here
$theme-color: #DC143C;

View File

@@ -0,0 +1,13 @@
// place your custom styles here
// .vuepress/styles/index.scss
/* .vuepress/styles/index.scss */
.hitokoto-text {
color: #DC143C !important; // 替换为你想要的颜色
}
.hitokoto-author {
color: #DC143C!important; // 可选:也可自定义作者名颜色
}

View File

@@ -0,0 +1 @@
// you can change colors here

116
src/.vuepress/theme.ts Normal file
View File

@@ -0,0 +1,116 @@
import {hopeTheme} from "vuepress-theme-hope";
import navbar from "./navbar.js";
import sidebar from "./sidebar.js";
//VuePress Theme Hope主题的博客
export default hopeTheme(
{
// 网站域名配置用于SEO和RSS等功能
hostname: "https://mangmang.fun/",
// 作者信息
author: {
name: "LiuMangMang",
},
// 网站许可证
license: "CC 4.0",
// 导航栏配置(从 navbar.js 文件导入)
navbar,
// 侧边栏配置(从 sidebar.js 文件导入)
sidebar,
// 网站logo设置
logo: "logo/transparentLogo.png", // 亮色模式下的logo
logoDark: "logo/transparentLogo.png", // 暗色模式下的logo
// 支持简写仓库名称,会解析到 GitHub 上,同时也可以是一个完整的 URL
// repo: "https://gitea.mangmang.fun/mangmang/blog",
// 默认从 `repo` 内容中推断为以下之一:
// "GitHub" / "GitLab" / "Gitee" / "Bitbucket" / "Source"
repoLabel: "Gitea",
repoDisplay: true,
// 是否显示编辑链接
editLink: true,
// 文档源码目录
docsDir: "src",
// 页脚配置
footer: "<a href='https://beian.miit.gov.cn/' target='_blank'>蜀ICP备2025176018号-1</a> | Powered by VuePress | Theme by Hope",
displayFooter: true,
// 是否显示最后更新时间
lastUpdated: false,
// 深色模式配置toggle表示用户可以切换
darkmode: "toggle",
// 博客相关配置
blog: {
description: "一个后端开发者",
intro: "/intro.html"
},
// Markdown增强功能配置
markdown: {
align: true, // 启用文本对齐
attrs: true, // 启用属性支持
codeTabs: true, // 启用代码选项卡
component: true, // 启用组件支持
demo: true, // 启用演示支持
figure: true, // 启用图片描述
gfm: true, // 启用GitHub风格的Markdown
imgLazyload: true, // 启用图片懒加载
imgSize: true, // 启用图片尺寸设置
include: true, // 启用文件包含
mark: true, // 启用标记高亮
plantuml: true, // 启用PlantUML图表
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, // 启用v-pre支持
},
// 插件配置
plugins: {
// 启用博客功能
blog: true,
// 组件配置
components: {
components: ["Badge", "VPCard"],
},
// 图标配置
icon: {
prefix: "fa6-solid:",
},
},
},
{
// 自定义主题配置
custom: true
}
);