Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI

# 部署由 Cloudflare Pages 自己盯着 main 分支做,这里只负责验证。
# 关键一项是 pnpm build:docusaurus.config.ts 设了 onBrokenLinks: "throw",
# 但那只在有人真的跑构建时才生效——没有 CI 的话,带坏链的改动会一路合进
# main,直到部署失败或有人本地构建才被发现。
on:
push:
branches: [main]
pull_request:

jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 10

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm

- run: pnpm install --frozen-lockfile

# 先跑最便宜的:图片体积与字体子集覆盖
- name: 资源护栏
run: pnpm check:assets

- name: 类型检查
run: pnpm typecheck

- name: 编辑器往返测试
run: pnpm test

# 顺带校验站内链接(onBrokenLinks: throw)
- name: 构建
run: pnpm build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ yarn-error.log*
.reasonix/
.pnpm-store/


# 字体子集源(pnpm fonts 自动下载,约 22MB)
.cache-fonts/
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# MidSoul-Wiki

<p align="center">
<img src="./static/img/MidSoul-Wiki-Logo.png" width="360" />
<img src="./static/img/MidSoul-Wiki-Logo.webp" width="360" />
</p>

MidSoul-Wiki 是 [Heart Fire Project](https://github.com/Heart-Fire-Project) 旗下项目 **午夜灵魂** 的官方文档与维基站点。
Expand Down Expand Up @@ -84,6 +84,18 @@ MidSoul-Wiki 是 [Heart Fire Project](https://github.com/Heart-Fire-Project) 旗
- **表格**:支持表头上色、单元格染色、合并单元格、行内换行与列表;长表格发布后自动获得 sticky 表头
- **行内标签/上色/锚点**:编辑器工具栏提供对应按钮,生成的格式全部为发布页所支持

## 🔤 字体

标题使用自托管的 **Noto Serif SC 子集**(`src/css/fonts/`),正文使用系统字体栈。不走 Google Fonts —— 那个域名对国内读者基本不可达,且 `@import` 会阻塞渲染。

子集按**全站出现过的汉字**裁剪(当前约 1176 字,两个字重合计约 470KB)。**新增文档若用到了子集之外的字,标题里那几个字会回落系统宋体**,需要重新生成:

```bash
pnpm fonts
```

需要 [uv](https://docs.astral.sh/uv/)(用来跑 fonttools)。源字体会自动下载并缓存到 `.cache-fonts/`(已 gitignore)。CI 会在仓库用字超出 `scripts/font-charset.txt` 时报错提醒。

## 🚀 部署

本项目由 Cloudflare Pages 自动托管,推送到 `main` 分支后自动构建部署。
Expand Down
1 change: 1 addition & 0 deletions docs/intro.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 1
slug: /
description: 午夜灵魂(MidSoul)是一张基于 Minecraft Java 版的不对称竞技地图,由心火计划制作。本 Wiki 收录游戏的全部机制、模式、地图、能力、回响、进度与饰品资料。
---

# MidSoul Wiki
Expand Down
2 changes: 1 addition & 1 deletion docs/intro.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\nslug: /\n---\n",
"frontmatter": "---\nsidebar_position: 1\nslug: /\ndescription: 午夜灵魂(MidSoul)是一张基于 Minecraft Java 版的不对称竞技地图,由心火计划制作。本 Wiki 收录游戏的全部机制、模式、地图、能力、回响、进度与饰品资料。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/1. 全局机制.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂的基础系统:灵魂与灵魂守卫者的玩家状态,灵魂碎片、灵魂之灯、灵魂宝物盒与传送门等游戏物件,以及气息探测、玩家等级等全局机制。
---

# 全局机制
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/1. 全局机制.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂的基础系统:灵魂与灵魂守卫者的玩家状态,灵魂碎片、灵魂之灯、灵魂宝物盒与传送门等游戏物件,以及气息探测、玩家等级等全局机制。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/2. 模式介绍.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂两个游戏模式的完整流程与机制:灵气碎片的灵能反噬、最终锚点、多守卫特殊机制与表现分算法,以及快节奏的针锋奔逃。
---

# 模式介绍
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/2. 模式介绍.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂两个游戏模式的完整流程与机制:灵气碎片的灵能反噬、最终锚点、多守卫特殊机制与表现分算法,以及快节奏的针锋奔逃。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
14 changes: 7 additions & 7 deletions docs/午夜灵魂/3. 地图导览.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂 6 张内置地图——聚光圣殿、镇灵塔楼、山间湖谷、心火特区、昔居浮屿、苏园夜游——的俯视图、数据与机制,附虚空惩罚与自定义地图说明。
---

# 地图导览
Expand All @@ -12,7 +12,7 @@ sidebar_position: 1

> 匿于峡间的小镇,圣殿在此祝福各位

![](/img/maps/聚光圣殿.PNG)
![](/img/maps/聚光圣殿.webp)

<DataTable layout="equal" noFirstCol data={[
[{t:'**地图大小**',bg:'rgb(242, 243, 245)'}, {t:'**复杂程度**',bg:'rgb(242, 243, 245)'}, {t:'**碎片收集目标**',bg:'rgb(242, 243, 245)'}, {t:'**碎片生成量**',bg:'rgb(242, 243, 245)'}, {t:'**宝盒周期刷新数**',bg:'rgb(242, 243, 245)'}, {t:'**宝盒刷新阈值**',bg:'rgb(242, 243, 245)'}],
Expand All @@ -25,7 +25,7 @@ sidebar_position: 1

> 镇压灵魂之所,复生与焚尽,皆在一念之间

![](/img/maps/镇灵塔楼.PNG)
![](/img/maps/镇灵塔楼.webp)

地图原筑:[Hide & Seek: Panda Village](https://www.minecraftmaps.com/48643-hide-seek-panda-village) by Kapanas & oozner

Expand All @@ -40,7 +40,7 @@ sidebar_position: 1

> 平静的湖面波澜不起,本该热闹的村庄却也寂静

![](/img/maps/山间湖谷.png)
![](/img/maps/山间湖谷.webp)

<DataTable layout="equal" noFirstCol data={[
['地图大小', '复杂程度', '碎片收集目标', '碎片生成量', '**宝盒周期刷新数**', '**宝盒刷新阈值**'],
Expand All @@ -53,7 +53,7 @@ sidebar_position: 1

> 荒境环抱无处可逃,逸散灵魂如影随梢

![](/img/maps/心火特区.png)
![](/img/maps/心火特区.webp)

地图构建:Mol1Sama feat. Roser <span className="ms-ink" style={{'--fg':'#6525D0','--fg-d':'#A472FC'}}>[Original]</span>

Expand All @@ -70,7 +70,7 @@ sidebar_position: 1

> 原浮空城地块,因多起高空事故而封闭

![](/img/maps/昔居浮屿.PNG)
![](/img/maps/昔居浮屿.webp)

地图构建:Mol1Sama <span className="ms-ink" style={{'--fg':'#6525D0','--fg-d':'#A472FC'}}>[Original]</span>

Expand All @@ -87,7 +87,7 @@ sidebar_position: 1

> 有堂有庭,有桥有船。有书有酒,有歌有弦。

![](/img/maps/苏园夜游.PNG)
![](/img/maps/苏园夜游.webp)

地图原筑:[苍园](https://www.bilibili.com/video/BV1KgBEYYEDh) by 苍蓝之水手

Expand Down
14 changes: 7 additions & 7 deletions docs/午夜灵魂/3. 地图导览.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂 6 张内置地图——聚光圣殿、镇灵塔楼、山间湖谷、心火特区、昔居浮屿、苏园夜游——的俯视图、数据与机制,附虚空惩罚与自定义地图说明。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down Expand Up @@ -76,7 +76,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/聚光圣殿.PNG",
"src": "/img/maps/聚光圣殿.webp",
"alt": "",
"title": null,
"width": null,
Expand Down Expand Up @@ -523,7 +523,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/镇灵塔楼.PNG",
"src": "/img/maps/镇灵塔楼.webp",
"alt": "",
"title": null,
"width": null,
Expand Down Expand Up @@ -1002,7 +1002,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/山间湖谷.png",
"src": "/img/maps/山间湖谷.webp",
"alt": null,
"title": null,
"width": null,
Expand Down Expand Up @@ -1429,7 +1429,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/心火特区.png",
"src": "/img/maps/心火特区.webp",
"alt": null,
"title": null,
"width": null,
Expand Down Expand Up @@ -1895,7 +1895,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/昔居浮屿.PNG",
"src": "/img/maps/昔居浮屿.webp",
"alt": null,
"title": null,
"width": null,
Expand Down Expand Up @@ -2361,7 +2361,7 @@
{
"type": "image",
"attrs": {
"src": "/img/maps/苏园夜游.PNG",
"src": "/img/maps/苏园夜游.webp",
"alt": null,
"title": null,
"width": null,
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/4. 能力一览.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂全部 10 个技能、14 个天赋与 7 件灵魂宝物的冷却时间、持续时间与效果数据,按灵魂方与灵魂守卫者方分列。
---

# 能力一览
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/4. 能力一览.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂全部 10 个技能、14 个天赋与 7 件灵魂宝物的冷却时间、持续时间与效果数据,按灵魂方与灵魂守卫者方分列。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/5. 回响记录.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂全部回响的详细信息:强制性引导、灵魂鉴碎片、开盒得技能、天幕降落雷、命运交响曲等,含各自的触发条件与效果改动。
---

# 回响记录
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/5. 回响记录.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂全部回响的详细信息:强制性引导、灵魂鉴碎片、开盒得技能、天幕降落雷、命运交响曲等,含各自的触发条件与效果改动。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
4 changes: 2 additions & 2 deletions docs/午夜灵魂/6. 进度碑刻.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂全部进度成就的解锁条件、描述与进度点奖励,涵盖教程、装饰品解锁,以及沉浸、得胜、高光、捡拾、处决五类历程进度。
---

# 进度碑刻
Expand Down Expand Up @@ -27,7 +27,7 @@ sidebar_position: 1
['**五号屠场**', '完成 5 场游戏', '您初出茅庐。', '5', '-'],
['**二十首情诗**', '完成 20 场游戏', '您渐入佳境。', '5', '-'],
['**五十度灰**', '完成 50 场游戏', '您驾轻就熟。', '10', '-'],
['**s百年孤独**', '完成 100 场游戏', '您持之以恒。', '10', '-'],
['**百年孤独**', '完成 100 场游戏', '您持之以恒。', '10', '-'],
[{t:'**二百周年的人**',bg:'#E5E6E9',op:0.55}, {t:'完成 200 场游戏',bg:'#E5E6E9',op:0.55}, {t:'您历久弥新。',bg:'#E5E6E9',op:0.55}, {t:'20',bg:'#E5E6E9',op:0.55}, {t:'-',bg:'#E5E6E9',op:0.55}],
[{t:'**五百罗汉**',bg:'#E5E6E9',op:0.55}, {t:'完成 500 场游戏',bg:'#E5E6E9',op:0.55}, {t:'您已臻化境。',bg:'#E5E6E9',op:0.55}, {t:'20',bg:'#E5E6E9',op:0.55}, {t:'-',bg:'#E5E6E9',op:0.55}],
]}/>
Expand Down
4 changes: 2 additions & 2 deletions docs/午夜灵魂/6. 进度碑刻.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂全部进度成就的解锁条件、描述与进度点奖励,涵盖教程、装饰品解锁,以及沉浸、得胜、高光、捡拾、处决五类历程进度。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down Expand Up @@ -862,7 +862,7 @@
"type": "bold"
}
],
"text": "s百年孤独"
"text": "百年孤独"
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/7. 饰品集册.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂装饰品总览:粒子效果、武器样式与文本套组的完整列表和获取方法,以及饰品装配规则。
---

# 饰品集册
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/7. 饰品集册.tiptap.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂装饰品总览:粒子效果、武器样式与文本套组的完整列表和获取方法,以及饰品装配规则。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
2 changes: 1 addition & 1 deletion docs/午夜灵魂/8. 饰品集册-文本套组详览.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 1
description: 午夜灵魂文本套组四大系列——趋光、溯回、闲嬉、灵兽——的全部文本内容与解锁方式。
---

# 饰品集册/文本套组详览
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": "tiptap-v1",
"frontmatter": "---\nsidebar_position: 1\n---\n",
"frontmatter": "---\ndescription: 午夜灵魂文本套组四大系列——趋光、溯回、闲嬉、灵兽——的全部文本内容与解锁方式。\n---\n",
"content": {
"type": "doc",
"content": [
Expand Down
14 changes: 8 additions & 6 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ const config: Config = {
language: ["zh"],
indexBlog: false,
docsRouteBasePath: "/wiki",
searchBarShortcutHint: false,
},
],
],
Expand Down Expand Up @@ -154,7 +153,8 @@ const config: Config = {
minHeadingLevel: 2,
maxHeadingLevel: 4,
},
image: "img/MidSoul-Logo.png",
// 分享卡片按 1.91:1 裁切,直接用 3.24:1 的 logo 会被裁掉两头。
image: "img/og-cover.jpg",
colorMode: {
defaultMode: "dark",
respectPrefersColorScheme: true,
Expand All @@ -164,11 +164,13 @@ const config: Config = {
hideOnScroll: true,
logo: {
alt: "MidSoul Wiki",
src: "img/MidSoul-Logo-Dark.png",
srcDark: "img/MidSoul-Logo.png",
src: "img/MidSoul-Logo-Dark.webp",
srcDark: "img/MidSoul-Logo.webp",
href: "/",
width: 120,
height: 36,
// 原图 2400×741(3.24:1),导航栏按 2rem 高显示;写成 120×36(3.33:1)
// 会让浏览器按错误比例预留占位。这里按真实比例给 104×32。
width: 104,
height: 32,
},
items: [
{
Expand Down
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
"typecheck": "tsc",
"fonts": "node scripts/build-font-subset.mjs",
"test": "node src/components/editor/fromMarkdown.test.mjs && node src/components/editor/toMarkdown.test.mjs && node src/components/editor/tableIO.test.mjs",
"check:assets": "node scripts/check-assets.mjs"
},
"dependencies": {
"@docusaurus/core": "3.10.2",
Expand Down Expand Up @@ -49,6 +52,7 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.10.2",
"@docusaurus/plugin-content-docs": "3.10.2",
"@docusaurus/tsconfig": "3.10.2",
"@docusaurus/types": "3.10.2",
"@types/mdx": "^2.0.14",
Expand Down
Loading
Loading