FMHY Wiki 编辑与本地部署教程

这个仓库 (fmhy/edit) 是 FMHY (Free Media Heck Yeah) 项目的核心编辑与构建源。FMHY 是互联网上最大的免费资源导航站。本教程将指导你如何搭建本地开发环境、预览修改,并为项目贡献内容。

一、 项目本质与工作流程

首先,需要理解这个仓库的独特性质:它并非最终网站本身,而是一个“编辑工作台”或“构建工厂”

  • 内容存储:FMHY 的百科内容并非全部直接存储在此仓库中。它分布在多个平台:主要是 GitHub Wiki (fmhy/FMHY.wiki),部分在 Redditfmhy.net 站点。
  • 本仓库的角色fmhy/edit 仓库包含了:
    • 导航结构:核心的 README.md / fmhy.md 文件,定义了百科的所有分类和外部链接。
    • 构建系统:用于将分散的内容整合、转换并生成为最终网站 fmhy.net 的代码和配置(如 docs/ 目录下的 VitePress 配置)。
    • 贡献工具:自动化脚本和测试流程。

因此,部署本仓库主要有两种场景:

  1. 作为贡献者:在本地预览修改效果,然后提交拉取请求 (Pull Request)。
  2. 作为自托管者:构建一个属于你自己的、完整的 FMHY 离线或在线镜像。

二、 部署方式一:为贡献代码而部署(开发环境)

如果你想帮助改进 FMHY(如添加新站点、修正链接),需要搭建本地开发环境。

1. 环境准备

  • Git
  • Node.js (项目使用 pnpm 作为包管理器,请确保已安装)

2. 克隆与安装

1
2
3
4
5
6
# 克隆你的复刻 (Fork) 仓库
git clone https://github.com/<你的用户名>/edit.git
cd edit

# 安装依赖
pnpm install

3. 启动开发服务器

1
pnpm run docs:dev

执行后,终端会显示本地访问地址(通常是 http://localhost:5173)。在浏览器打开它,你就能看到一个本地运行的 FMHY 网站。你对仓库中 docs/ 目录下的源文件所做的任何修改,都会在这里实时预览。

4. 提交你的贡献

  1. docs/ 目录中找到对应的 .md (Markdown) 文件进行编辑。
  2. 遵循项目的贡献指南(通常位于 .github/CONTRIBUTING.md)。
  3. 提交修改并推送到你的复刻仓库。
  4. 在 GitHub 上向 fmhy/edit 仓库的 main 分支创建一个拉取请求 (Pull Request)

三、 部署方式二:自托管完整镜像

如果你想摆脱对官方平台的依赖,创建一个属于你自己的 FMHY 完整副本,过程会更复杂,因为需要从不同源头抓取内容。

1. 获取结构骨架

1
2
git clone https://github.com/fmhy/edit.git fmhy-mirror
cd fmhy-mirror

2. 获取核心内容

FMHY 的大部分百科页面存储在 GitHub Wiki 中,这是一个独立的仓库。

1
2
# 在项目目录内,克隆 Wiki 内容
git clone https://github.com/fmhy/FMHY.wiki.git wiki-content

这样,你就获得了除 fmhy.md 索引文件外,最重要的页面主体。

3. 处理其他平台内容

索引文件 (README.mdfmhy.md) 中仍有部分链接指向 Reddit 维基和 fmhy.net 自身。对于自托管,你需要决定如何处理:

  • 完全离线:你需要编写脚本,解析 README.md 中的所有外部链接,并使用 wgetcurl 等工具将对应页面抓取到本地,然后重写链接关系。
  • 混合模式:保留指向官方 fmhy.net 或 Reddit 的链接作为“外部引用”,仅将流量最大的 GitHub Wiki 部分本地化。

4. 使用静态服务器提供内容

完成内容获取后,你可以使用任何静态服务器指向当前目录。

1
2
# 使用 Python 快速启动一个简单服务
python -m http.server 8080

访问 http://localhost:8080/README.md 即可看到导航首页。

5. 高级:使用构建系统生成站点

本仓库内置了基于 VitePress 的构建系统,它能够将 Markdown 文件转换成漂亮的静态 HTML 站点。

1
2
# 构建静态站点(输出在 docs/.vitepress/dist)
pnpm run docs:build

构建完成后,你可以将 docs/.vitepress/dist 目录下的所有文件部署到任何 Web 服务器(如 Nginx、Apache、Vercel 等)上。

四、 常见问题

  1. 问:我修改了 README.md,但运行 docs:dev 看不到变化?
    docs:dev 服务监视的是 docs/ 目录。项目的核心源文件可能在 docs/ 下。你需要找到对应的源 .md 文件进行编辑。
  2. 问:自托管镜像中的链接仍然指向外部网站(如 GitHub Wiki),怎么办?
    :这是正常的,因为 fmhy.md 文件中的链接是硬编码的。要完全本地化,你需要用脚本解析并重写这些链接,使其指向你本地的 wiki-content/ 目录。
  3. 问:我只想快速贡献,需要部署整个自托管环境吗?
    :不需要。作为贡献者,你只需按照“方式一”搭建开发环境即可。拉取请求被合并后,官方站点会自动更新。