feat: v1.0.0 祀梦笔记:从 0 到 1 的数字化花园建设

This commit is contained in:
祀梦
2026-01-09 10:03:40 +08:00
commit a5fd8545f4
75 changed files with 15529 additions and 0 deletions

8
docs/.vuepress/client.ts Normal file
View File

@@ -0,0 +1,8 @@
import { defineClientConfig } from 'vuepress/client'
import RImg from './theme/components/RImg.vue'
export default defineClientConfig({
enhance({ app }) {
app.component('RImg', RImg)
},
})

110
docs/.vuepress/config.ts Normal file
View File

@@ -0,0 +1,110 @@
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
import { viteBundler } from '@vuepress/bundler-vite'
import { commentPlugin } from '@vuepress/plugin-comment'
import { umamiAnalyticsPlugin } from '@vuepress/plugin-umami-analytics'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
export default defineUserConfig({
base: '/',
lang: 'zh-CN',
title: '仲夏夜之梦',
description: '爱与回忆的小世界,记录生活中的每一份温暖与感动',
head: [
['link', { rel: 'icon', type: 'image/png', href: 'https://theme-plume.vuejs.press/favicon-32x32.png' }],
],
bundler: viteBundler({
viteOptions: {
resolve: {
alias: {
},
},
},
}),
shouldPrefetch: false,
theme: plumeTheme({
/* 站点域名,启动 SEO 优化 */
hostname: 'https://www.simengweb.com',
/* 博客文章页面链接前缀 */
article: '/article/',
/* 启用数学公式支持和Mermaid图表 */
markdown: {
math: {
type: 'katex',
},
mermaid: true,
demo: true,
},
/**
* 编译缓存,加快编译速度
*/
cache: 'filesystem',
/* 本地搜索, 默认启用 */
search: { provider: 'local' },
footer: {
message: '愿每一份温柔都被世界珍藏 ✨',
copyright: '<a href="https://beian.miit.gov.cn/" target="_blank" aria-label="gongan filing address">沪ICP备2023010022号-1</a>©2025祀梦的个人博客'
},
/**
* 博客相关配置
*/
blog: {
postCover: {
layout: 'left',
width: 300,
compact: true
}
},
/**
* 文章贡献者配置
*/
contributors: {
mode: 'inline',
info: [
{
username: 'si-meng-spec',
name: 'si-meng-spec',
alias: ['si-meng-spec'],
}
]
},
/**
* Git插件配置
* 设置为true以在开发环境也启用
*/
plugins: {
git: true
},
codeHighlighter: {
lineNumbers: true,
}
}),
plugins: [
commentPlugin({
provider: 'Waline',
serverURL: 'https://vercel.simengweb.com',
meta: ['nick'],
requiredMeta: ['nick']
}),
umamiAnalyticsPlugin({
id: '2114ab32-5543-4be1-b5e8-c4f2c9269d0d',
link: 'https://umami.simengweb.com/script.js',
domains: ['www.simengweb.com'],
cache: true
}),
],
})

80
docs/.vuepress/navbar.ts Normal file
View File

@@ -0,0 +1,80 @@
import { defineNavbarConfig } from 'vuepress-theme-plume'
export default defineNavbarConfig([
{
text: '首页',
link: '/',
},
{
text: '博客',
link: '/blog/',
},
{
text: '学科知识',
items: [
{
text: '英语学习笔记',
link: '/subject/english/',
},
],
},
{
text: '编程笔记',
items: [
{
text: 'LeetCode',
link: '/programming/leetcode/',
},
{
text: 'C++',
link: '/programming/cplusplus/',
},
{
text: 'Solidity',
link: '/programming/solidity/',
},
{
text: 'Web 开发',
link: '/programming/web/',
}
],
},
{
text:"技术理论",
items:[
{
text: '密码学基础',
link: '/theory/cryptography/',
},
]
},
{
text: '运维',
items: [
{
text: '区块链运维',
link: '/ops/blockchain/',
},
{
text: 'Linux 运维',
link: '/ops/linux/',
},
{
text: 'Docker 运维',
link: '/ops/docker/',
},
],
},
{
text: '工具',
link: '/tools/',
},
{
text: '关于',
link: '/about/',
},
{
text: '友情链接',
link: '/friends/',
},
])

194
docs/.vuepress/notes.ts Normal file
View File

@@ -0,0 +1,194 @@
import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'
/**
* 配置编程笔记
*/
const LeetCode = defineNoteConfig({
dir: 'programming',
link: '/programming/leetcode/',
sidebar: [
{ text: "LeetCode 指南", link: "/programming/leetcode/" },
{
text: "刷题题单", prefix: "/question_sheet", items: [
{ text: "LeetCode 入门题单~(≧∇≦)ノ", link: "/programming/leetcode/question_sheet/beginner/" }
]
}
]
})
const cPlusPlus = defineNoteConfig({
dir: 'programming',
link: '/programming/cplusplus/',
sidebar: [
{ text: "C++ 学习笔记", link: "/programming/cplusplus/" },
{
text: "基础配置与开发工具", prefix: "/basis", items: [
{ text: "C++ 环境配置", link: "/programming/cplusplus/basis/" }
]
}
]
})
const english = defineNoteConfig({
dir: 'subject',
link: '/subject/english/',
sidebar: [
{ text: "英语学习笔记", link: "/subject/english/" },
{
text: "学习环境与工具", prefix: "/basis", items: [
{ text: "英语环境配置", link: "/subject/english/basis/" }
]
},
{
text: "词汇与记忆", prefix: "/vocabulary", items: [
{ text: "词汇学习与记忆法", link: "/subject/english/vocabulary/" }
]
},
{
text: "语法与句法", prefix: "/grammar", items: [
{ text: "核心语法与句型", link: "/subject/english/grammar/" }
]
},
{
text: "听力与口语", prefix: "/listening-speaking", items: [
{ text: "听力口语训练", link: "/subject/english/listening-speaking/" }
]
},
{
text: "阅读与写作", prefix: "/reading-writing", items: [
{ text: "阅读提升", link: "/subject/english/reading-writing/" }
]
},
{
text: "写译", prefix: "/writing-translation", items: [
{ text: "写作与翻译指南", link: "/subject/english/writing-translation/" }
]
},
{
text: "考试与备考", prefix: "/exam", items: [
{ text: "英语四级 (CET-4) 备考指南", link: "/subject/english/exam/cet-4/" }
]
},
{
text: "资源与工具", prefix: "/resources", items: [
{ text: "学习资源与工具", link: "/subject/english/resources/" }
]
}
]
})
const solidity = defineNoteConfig({
dir: 'programming',
link: '/programming/solidity/',
sidebar: [
{ text: "Solidity 学习笔记", link: "/programming/solidity/" },
{
text: "基础语法", prefix: "/basic-syntax", items: [
{ text: "Solidity 基础语法与数据类型", link: "/programming/solidity/basic-syntax/" }
],
},
{
text: "项目实例", prefix: "/basic-syntax", items: [
{ text: "Solidity 代码实例", link: "/programming/solidity/analysis/case-analysis/" }
],
},
{
text: "杂项", prefix: "/other", items: [
{ text: "Hardhat 相关知识", link: "/programming/solidity/other/hardhat/" },
{ text: "一些没分类的小知识", link: "/programming/solidity/other/miscellaneous/" }
],
}
]
})
const cryptography = defineNoteConfig({
dir: 'theory',
link: '/theory/cryptography/',
sidebar: [
{ text: "密码学基础", link: "/theory/cryptography/" },
{
text: "古典加密算法", prefix: "/theory", items: [
{ text: "替换密码", link: "/theory/cryptography/substitution-ciphers/" },
{ text: "置换密码", link: "/theory/cryptography/permutation-encryption/" },
]
},
]
})
const blockchain = defineNoteConfig({
dir: 'ops',
link: '/ops/blockchain',
sidebar: [
{ text: "区块链运维指南", link: "/ops/blockchain/" },
{
text: "区块链理论基础", prefix: "/theory", items: [
{ text: "区块链的基本原理", link: "/ops/blockchain/theory/basic-principles/" },
{ text: "FISCO-BCOS 节点类型", link: "/ops/blockchain/theory/fisco-bcos-node-type/" }
]
},
{
text: "区块链运维", items: [
{ text: "区块链产品设计和基本部署", link: "/ops/blockchain/practice/basic-deployment/" },
{ text: "区块链网络部署与管理", link: "/ops/blockchain/practice/node-deployment/" },
{ text: "Console 控制台操作", link: "/ops/blockchain/practice/console-operator/" }
]
}
]
})
const linux = defineNoteConfig({
dir: 'ops',
link: '/ops/',
sidebar: [
{ text: "Linux 运维笔记", link: "/ops/linux/" },
{
text: "Linux 基础", prefix: "/linux", items: [
{ text: "Linux 基础命令详解", link: "/ops/linux/basic-commands/" }
]
},
{
text: "其他", prefix: "/linux", items: [
{ text: "一些零散的命令", link: "/ops/linux/other/" }
]
}
]
})
const docker = defineNoteConfig({
dir: 'ops',
link: '/ops/docker/',
sidebar: [
{ text: "Docker 运维笔记", link: "/ops/docker/" },
{
text: "数据库相关",
prefix: "/ops/docker/db/",
items: [
{ text: "MongoDB 部署", link: "/ops/docker/db/mongodb/" },
{ text: "Postgres 部署", link: "/ops/docker/db/postgres/" },
]
},
{
text: "其他服务",
prefix: "/ops/docker/other/",
items: [
{ text: "ETLCloud 部署", link: "/ops/docker/other/ETLCloud/" },
]
},
]
})
const web = defineNoteConfig({
dir: 'programming',
link: '/programming/web/',
sidebar: [
{ text: "Web 开发学习笔记", link: "/programming/web/" },
{
text: "基础知识", prefix: "/basic-syntax", items: [
{ text: "Web 前端基础讲解", link: "/programming/web/basic-syntax/html-css-js/" },
{ text: "HTML 常用标签与属性", link: "/programming/web/basic-syntax/html-tags-attributes/" },
{ text: "HTML 列表与语义布局", link: "/programming/web/basic-syntax/html-lists-and-semantic-layout/" },
{ text: "JavaScript 基础知识", link: "/programming/web/basic-syntax/javascript-basics/" },
],
},
]
})
/**
* 导出所有的 note
*/
export default defineNotesConfig({
dir: 'notes',
link: '/',
notes: [LeetCode, english, cPlusPlus, solidity, blockchain, linux, docker, cryptography, web],
})

View File

@@ -0,0 +1,25 @@
import { defineThemeConfig } from 'vuepress-theme-plume'
import navbar from './navbar'
import notes from './notes'
export default defineThemeConfig({
logo: '/plume.svg',
appearance: true, // 深色模式
social: [
{ icon: 'github', link: '/' },
],
/**
* @see https://theme-plume.vuejs.press/config/basic/#profile
*/
profile: {
avatar: 'https://image.simengweb.com/elysia/header.jpg',
name: 'SiMengWebSite Notes',
description: '祀梦的笔记网站',
},
navbar,
notes,
})

View File

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 933 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1759225877144" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1685" width="180" height="180" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M480.54625 437.511684l44.454975 31.121042L136.269726 1023.769663l-44.429382-31.121041z" fill="#7AEDE5" p-id="1686"></path><path d="M96.370298 986.352753l75.499238-13.30834 44.019894-62.958687-75.499237 13.308341-44.019895 62.958686zM174.172902 875.279298l75.499238-13.30834 44.019895-62.702757-75.499238 13.30834L174.172902 875.279298zM251.975507 764.205843l75.499237-13.30834 44.019895-62.702757-75.499238 13.308341-44.019894 62.702756zM329.778111 653.132389l75.499238-13.308341 43.763965-62.702756-75.499238 13.30834-43.763965 62.702757zM407.324786 542.058934l75.499237-13.30834 42.228388-60.143461-2.559297-1.791507-71.148434 12.540551-44.019894 62.702757z" fill="#44DCDF" p-id="1687"></path><path d="M864.159156 209.606358a184.013396 184.013396 0 0 0-179.150733-17.147284 185.293044 185.293044 0 0 0-76.778886-162.259379 151.254405 151.254405 0 0 0-217.028317 39.413161c-37.365724 54.768939-55.536727 131.547824-27.896329 230.336658a695.616705 695.616705 0 0 0 104.931144 204.743695 688.194746 688.194746 0 0 0 227.265502 28.920047 266.166804 266.166804 0 0 0 206.279273-104.675214 150.998475 150.998475 0 0 0-37.621654-219.331684z" fill="#f7adaf" p-id="1688"></path><path d="M925.326335 378.263977a147.67139 147.67139 0 0 0-61.167179-168.657619 184.013396 184.013396 0 0 0-179.150733-17.147284 185.293044 185.293044 0 0 0-76.778886-162.259379 151.254405 151.254405 0 0 0-217.028317 39.413161c-37.365724 54.768939-55.536727 131.547824-27.896329 230.336658a440.198945 440.198945 0 0 0 14.843918 43.763965l7.677889 5.886381c186.316763 129.756317 412.046687 137.946065 539.499637 28.664117z" fill="#f9babc" p-id="1689"></path><path d="M479.710939 66.563528m-10.422459 14.884814a18.171003 18.171003 0 1 0 20.844918-29.769628 18.171003 18.171003 0 1 0-20.844918 29.769628Z" fill="#FFFFFF" p-id="1690"></path><path d="M423.448352 97.253255c15.611707-15.611707 30.711554-10.493114 31.735273 0s-17.403214 15.867636-36.342006 60.399391a764.717703 764.717703 0 0 0-23.033666 81.129689c-5.374522 6.65417-10.493114-41.716528-1.535578-81.897478a131.547824 131.547824 0 0 1 29.175977-59.631602z" fill="#FFFFFF" p-id="1691"></path><path d="M428.566944 597.083802a321.703532 321.703532 0 0 1 98.021044 0c27.12854 6.65417 41.204669 24.057384 36.342006 47.09105s-29.687836 29.687836-41.972457 48.882557c-18.426933 28.408188-13.30834 37.621654-27.12854 55.536728a34.038639 34.038639 0 0 1-54.768939-2.303367 463.232611 463.232611 0 0 1-57.072305-102.371848zM392.992727 572.258629A320.935743 320.935743 0 0 0 358.442228 480.379896c-15.867636-23.289595-36.853865-30.711554-57.072305-18.171003s-17.659144 38.133513-31.223413 56.304516c-20.47437 25.592962-30.967484 25.592962-43.252106 44.531754a34.294569 34.294569 0 0 0 20.986229 51.185923 465.791907 465.791907 0 0 0 116.192047 18.426933z" fill="#f7adaf" p-id="1692"></path><path d="M388.130064 568.931544c10.237185-7.166029 35.830147 7.933818 41.204669 20.474369s-10.237185 25.592962-16.123566 36.597936-7.166029 22.521807-19.194722 27.896328a41.460598 41.460598 0 0 1-43.763964-22.777736c-4.862663-11.516833 11.004974-25.592962 22.009947-38.901302 5.886381-6.9101 6.65417-16.891355 15.867636-23.289595z" fill="#fbd2d3" p-id="1693"></path></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

View File

@@ -0,0 +1,27 @@
<template>
<img :src="imageSrc" :alt="alt" v-bind="$attrs" />
</template>
<script setup>
import { computed } from 'vue'
const props = defineProps({
src: {
type: String,
required: true
},
alt: {
type: String,
default: ''
}
})
// 使用 Vite 的 import.meta.glob 或简单字符串拼接
// 由于别名在运行时不可直接动态拼接,我们这里使用一个更稳妥的方法
// 映射到我们配置好的别名
const imageSrc = computed(() => {
// 处理路径,确保指向别名
const path = props.src.startsWith('/') ? props.src.slice(1) : props.src
return new URL(`../../../resources/${path}`, import.meta.url).href
})
</script>

6
docs/.vuepress/theme/shim.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
declare module '*.vue' {
import type { ComponentOptions } from 'vue'
const comp: ComponentOptions
export default comp
}

View File

@@ -0,0 +1,50 @@
:root {
/** 主题颜色 */
/*
--vp-c-brand-1: #5086a1;
--vp-c-brand-2: #6aa1b7;
--vp-c-brand-3: #8cccd5;
--vp-c-brand-soft: rgba(131, 208, 218, 0.314);
*/
/** 背景颜色 */
/*
--vp-c-bg: #fff;
--vp-c-bg-alt: #f6f6f7;
--vp-c-bg-elv: #fff;
--vp-c-bg-soft: #f6f6f7;
*/
/** 文本颜色 */
/*
--vp-c-text-1: rgba(60, 60, 67);
--vp-c-text-2: rgba(60, 60, 67, 0.78);
--vp-c-text-3: rgba(60, 60, 67, 0.56);
*/
}
/** 深色模式 */
[data-theme="dark"] {
/*
--vp-c-brand-1: #8cccd5;
--vp-c-brand-2: #6aa1b7;
--vp-c-brand-3: #5086a1;
--vp-c-brand-soft: rgba(131, 208, 218, 0.314);
*/
/*
--vp-c-bg: #1b1b1f;
--vp-c-bg-alt: #161618;
--vp-c-bg-elv: #202127;
--vp-c-bg-soft: #202127;
*/
/*
--vp-c-text-1: rgba(255, 255, 245, 0.86);
--vp-c-text-2: rgba(235, 235, 245, 0.6);
--vp-c-text-3: rgba(235, 235, 245, 0.38);
*/
}