initial commit with basic framework

update CI & packages

fix to framework issues
This commit is contained in:
SilverAg.L 2024-06-15 23:03:56 +08:00
commit cce99ab83c
Signed by: AgxCOy
GPG Key ID: DC1A288A6AD79CC5
36 changed files with 7282 additions and 0 deletions

5
.gitattributes vendored Normal file
View File

@ -0,0 +1,5 @@
*.ico filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text

73
.github/workflows/deploy-docs.yml vendored Normal file
View File

@ -0,0 +1,73 @@
name: 部署文档
on:
push:
branches:
- main
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
# 如果你文档需要 Git 子模块,取消注释下一行
# submodules: true
- name: 设置 pnpm
uses: pnpm/action-setup@v4
# with:
# version: 8
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: pnpm
- name: 安装依赖
run: |
corepack enable
pnpm install --frozen-lockfile
- name: 构建文档
env:
NODE_OPTIONS: --max_old_space_size=8192
run: |-
pnpm run docs:build
> dist/.nojekyll
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload entire repository
path: 'dist'
deploy:
# Add a dependency to the build job
needs: build
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
node_modules/
.cache/
.temp/
dist/

22
package.json Normal file
View File

@ -0,0 +1,22 @@
{
"name": "chloridep-blog",
"version": "0.0.1",
"description": "ChlorideP Personal Blogs",
"license": "MIT",
"type": "module",
"scripts": {
"docs:build": "vuepress-vite build src",
"docs:clean-dev": "vuepress-vite dev src --clean-cache",
"docs:dev": "vuepress-vite dev src",
"docs:update-package": "pnpm dlx vp-update"
},
"devDependencies": {
"@vuepress/bundler-vite": "2.0.0-rc.13",
"@vuepress/plugin-docsearch": "2.0.0-rc.34",
"@vuepress/plugin-pwa": "2.0.0-rc.34",
"vue": "^3.4.29",
"vuepress": "2.0.0-rc.13",
"vuepress-theme-hope": "2.0.0-rc.48"
},
"packageManager": "pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631"
}

6659
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

BIN
public/54058338_p0.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/apple-icon-152.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/chrome-192.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/chrome-512.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/chrome-mask-192.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/chrome-mask-512.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/guide-maskable.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/icon/ms-icon-144.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/images/cover1.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/images/cover2.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/assets/images/cover3.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/beibei.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/favicon.ico (Stored with Git LFS) Normal file

Binary file not shown.

BIN
public/logo.png (Stored with Git LFS) Normal file

Binary file not shown.

1
public/logo.svg Normal file
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

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

@ -0,0 +1,20 @@
import { defineUserConfig } from "vuepress";
import theme from "./theme.js";
export default defineUserConfig({
base: "/",
lang: "zh-CN",
title: "氯喵实验室",
description: "氯喵总是捣鼓些奇奇怪怪的东西捏。",
temp: ".temp",
cache: ".cache",
public: "public",
dest: "dist",
theme,
// 和 PWA 一起启用
shouldPrefetch: false,
});

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

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

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

@ -0,0 +1,26 @@
import { sidebar } from "vuepress-theme-hope";
export default sidebar({
"/": [
"",
{
text: "结论归档",
icon: "folder-open",
prefix: "archives/",
children: "structure",
},
{
text: "实验笔记",
icon: "book",
prefix: "notes/",
children: "structure",
},
// "intro",
// {
// text: "友链",
// icon: "friend",
// link: "friends/",
// prefix: "friends/",
// },
],
});

View File

@ -0,0 +1,3 @@
// you can change config here
$colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50,
#7f8c8d !default;

View File

@ -0,0 +1,4 @@
// place your custom styles here
.vp-blog-hero-description {
text-align: center;
}

View File

@ -0,0 +1,2 @@
// you can change colors here
$theme-color: #096dd9;

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

@ -0,0 +1,235 @@
import { hopeTheme } from "vuepress-theme-hope";
import navbar from "./navbar.js";
import sidebar from "./sidebar.js";
export default hopeTheme({
hostname: "https://chloridep.github.io",
author: {
name: "Chloride Pussemi",
url: "https://github.com/ChlorideP",
},
iconAssets: "fontawesome-with-brands",
logo: "/beibei.png",
repo: "ChlorideP/chloridep.github.io",
docsDir: "src",
// 导航栏
navbar,
// 侧边栏
sidebar,
// 页脚
footer: "默认页脚",
displayFooter: true,
// 博客相关
blog: {
description: "一个臭写代码的红警 2 mapper会的不多。",
// intro: "/intro.html",
medias: {
// Baidu: "https://example.com",
BiliBili: "https://space.bilibili.com/301413212",
// Bitbucket: "https://example.com",
// Dingding: "https://example.com",
// Discord: "https://example.com", // only url allowed
// Dribbble: "https://example.com",
Email: "mailto:caclx@outlook.com",
// Evernote: "https://example.com",
// Facebook: "https://example.com",
// Flipboard: "https://example.com",
// Gitee: "https://example.com",
GitHub: "https://github.com/ChlorideP",
Gitlab: "https://gitlab.com/ChlorideP",
// Gmail: "mailto:info@example.com", // won't make it public
// Instagram: "https://example.com",
// Lark: "https://example.com",
// Lines: "https://example.com",
// Linkedin: "https://example.com",
// Pinterest: "https://example.com",
// Pocket: "https://example.com",
// QQ: "https://example.com", // only url allowed, gave up
// Qzone: "https://example.com",
// Reddit: "https://example.com",
// Rss: "https://example.com",
// Steam: "https://example.com",
// Twitter: "https://example.com",
// Wechat: "https://example.com",
// Weibo: "https://example.com",
// Whatsapp: "https://example.com",
// Youtube: "https://example.com",
// Zhihu: "https://example.com",
// VuePressThemeHope: {
// icon: "https://theme-hope-assets.vuejs.press/logo.svg",
// link: "https://theme-hope.vuejs.press",
// },
},
},
// 加密配置
// encrypt: {
// config: {
// "/demo/encrypt.html": ["1234"],
// },
// },
// 多语言配置
metaLocales: {
editLink: "在 GitHub 上编辑此页",
},
// 如果想要实时查看任何改变,启用它。注: 这对更新性能有很大负面影响
// hotReload: true,
// 在这里配置主题提供的插件
plugins: {
blog: {
excerptLength: 0,
},
// 启用之前需安装 @waline/client
// 警告: 这是一个仅供演示的测试服务,在生产环境中请自行部署并使用自己的服务!
// comment: {
// provider: "Waline",
// serverURL: "https://waline-comment.vuejs.press",
// },
components: {
components: ["Badge", "VPCard"],
},
// 此处开启了很多功能用于演示,你应仅保留用到的功能。
mdEnhance: {
align: true,
attrs: true,
codetabs: true,
component: true,
demo: true,
figure: 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,
// 在启用之前安装 chart.js
// chart: true,
// insert component easily
// 在启用之前安装 echarts
// echarts: true,
// 在启用之前安装 flowchart.ts
// flowchart: true,
// gfm requires mathjax-full to provide tex support
// gfm: true,
// 在启用之前安装 katex
// katex: true,
// 在启用之前安装 mathjax-full
// mathjax: true,
// 在启用之前安装 mermaid
// mermaid: true,
// playground: {
// presets: ["ts", "vue"],
// },
// 在启用之前安装 reveal.js
// revealJs: {
// plugins: ["highlight", "math", "search", "notes", "zoom"],
// },
// 在启用之前安装 @vue/repl
// vuePlayground: true,
// install sandpack-vue3 before enabling it
// sandpack: true,
},
// 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释
pwa: {
favicon: "/favicon.ico",
cacheHTML: true,
cacheImage: true,
appendBase: true,
apple: {
icon: "/assets/icon/apple-icon-152.png",
statusBarColor: "black",
},
msTile: {
image: "/assets/icon/ms-icon-144.png",
color: "#ffffff",
},
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",
// },
// ],
// },
// ],
},
},
},
});

56
src/README.md Normal file
View File

@ -0,0 +1,56 @@
---
home: true
layout: BlogHome
icon: home
title: 前台大厅
heroImage: /beibei.png
heroText: 氯喵实验室
heroFullScreen: true
bgImage: /54058338_p0.jpg
tagline: 这里是我的「车间」、「作坊」,以及创作的「乐土」。欢迎你的来访。
projects:
- icon: project
name: Wland Parody Filter
desc: 对文澜德同人文站专区文章进行筛选、导出的爬虫。
link: https://github.com/ChlorideP/wland_parody_filter
- icon: book
name: 红警 2 触发组件逻辑原理
desc: 简述触发和局部变量在「逻辑」层面如何起作用。
link: /archives/RA2/TriggerLogics.html
# - icon: link
# name: 链接名称
# desc: 链接详细描述
# link: https://链接地址
# - icon: book
# name: 书籍名称
# desc: 书籍详细描述
# link: https://你的书籍链接
# - icon: article
# name: 文章名称
# desc: 文章详细描述
# link: https://你的文章链接
- icon: friend
name: 律回 MelodyEcho
desc: 可爱的 Python Dev 和音乐人律姐姐是也。作品有 melobot 机器人框架,「律启」等原创曲。
link: https://github.com/aicorein/
- icon: friend
name: 岛风 Shimakaze
desc: 前端后端通吃的全栈佬。项目很多,但多数生命周期都比较短。目前在开发 Shimakaze.Sdk。
link: https://github.com/frg2089/
# - icon: https://theme-hope-assets.vuejs.press/logo.svg
# name: 自定义项目
# desc: 自定义详细介绍
# link: https://你的自定义链接
footer: Hongyan Lin 的实验室
---
Powered by [VuePress Theme Hope](https://theme-hope.vuejs.press/zh/),
Licensed with MIT & CC BY-NC-SA 4.0.

View File

@ -0,0 +1,39 @@
---
category:
- RA2
- 地图
tag:
- 地图编辑
- 触发
- 局部变量
---
# 红警 2 地图触发组件的逻辑原理
::: important 阅览注意
文中的内容对于没有接触过程序设计的读者可能会有一些理解上的困难。
:::
## 绪言
## 一、从程序执行流说起……
## 二、触发的逻辑本质
## 三、局部变量简介
## 四、「或」「非」的局部变量实现
## 参考文献
1. [RN Studio](https://github.com/revengenowstudio). `Map Tutorial[EB/OL]`, https://github.com/revengenowstudio/map_tutorial, 4.29.2024, 5.6.2024.
::: note
上述参考文献大致遵循 GB/T 7714 规范。如有误还请在 Issues 或 Pull Requests 中指出。
:::
## 致谢
首先需要感谢圈子里孜孜不倦地逆向`gamemd.exe`这块老古董的大佬们。没有你们的代码支持,我对触发组件逻辑执行的论证将始终停留在猜测层面上。
然后得感谢各大与我交流过的 mapper 大佬们。你们的经验为这篇文章留下了非常重要的注脚。
最后感谢模组「星辰之光」的玩家和相关创作人士对本文疵漏作出的补充修正。

10
src/archives/README.md Normal file
View File

@ -0,0 +1,10 @@
---
title: 结论归档
index: false
article: false
timeline: false
icon: folder-open
category: ''
---
<Catalog />

View File

@ -0,0 +1,12 @@
---
category:
- 操作系统
- Linux
tag:
- Arch Linux
- KDE
- Wayland
- X11
---
# Arch Linux 个人配(折)置(腾)流程

View File

@ -0,0 +1,11 @@
---
category:
- 逆向工程
- RA2
tag:
- 地图编辑
- Syringe
- 进程注入
---
# 基于 FA2sp 的逆向小记

10
src/notes/README.md Normal file
View File

@ -0,0 +1,10 @@
---
title: 实验笔记
index: false
article: false
timeline: false
icon: book
category: ''
---
<Catalog />

View File

@ -0,0 +1,10 @@
---
category:
- 程序设计
- C#
tag:
- WPF
- MVVM
---
# 以 C# WPF 为例探讨 Model-View-ViewModel 模型

View File

@ -0,0 +1,11 @@
---
category:
- 程序设计
- Python
tag:
- 异步
- 线程
- 并发
---
# Python 的并发实现小记

14
tsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2022"
},
"include": [
"src/.vuepress/**/*.ts",
"src/.vuepress/**/*.vue"
],
"exclude": [
"node_modules"
]
}