【免费下载链接】WeMD
更优雅的 Markdown 公众号编辑器
WeMD是一款更优雅的Markdown 公众号编辑器:用 Markdown 写作,一键复制到微信公众号,本地优先、无需登录。作为已开放外部贡献的开源项目,它的代码结构清晰、文档友好,是新手提交第一个 PR的理想练习场。本文将从环境搭建到 PR 自查,带你完整走通流程。
为什么 WeMD 适合新手开始贡献?
WeMD 是一个 pnpm + Turborepo 管理的 monorepo,功能边界明确:写作、预览、复制排版 HTML、本地文件管理。对新手来说有两个友好点:
- 大量文档修复、文案修正、主题模板类小改动,风险低、易验证;
- 每个包都有对应的测试与 lint 命令,提交前自查有明确标准。
五分钟搭好本地开发环境
环境要求
- Node.js ≥ 18
- pnpm ≥ 9(仓库锁定版本为
pnpm@9.0.2,配置见 package.json)
一键启动步骤
# 1. 启用 pnpm corepack enable pnpm # 2. 克隆仓库 git clone https://gitcode.com/gh_mirrors/we/WeMD cd WeMD # 3. 安装依赖 pnpm install # 4. 启动 Web 开发服务器 pnpm dev:web浏览器打开本地提示的地址,看到编辑器界面即环境就绪。如果你还想调试桌面端,运行:
pnpm dev:desktop桌面端会先启动 Web 服务再拉起 Electron,脚本见 scripts/run-desktop-dev.mjs。
动手前 10 分钟:看懂项目结构
WeMD 的目录划分一目了然,改代码前先确认目标文件属于哪个包:
| 目录 | 职责 | 典型改动场景 |
|---|---|---|
| apps/web/ | React + Vite 前端(编辑器、预览、工具栏) | 界面文案、组件交互 |
| apps/electron/ | Electron 桌面端(IPC、窗口、更新) | 桌面端行为修复 |
| apps/server/ | NestJS 图片上传服务 | 图床上传相关 |
| packages/core/ | Markdown 解析、主题、微信深色模式算法 | 渲染规则、主题 |
| templates/ | 主题 CSS 模板 | 新增/调整内置主题 |
几个值得关注的入口文件:
- Markdown 解析核心:packages/core/src/MarkdownParser.ts
- 主题处理:packages/core/src/ThemeProcessor.ts
- 编辑器主组件:apps/web/src/components/Editor/MarkdownEditor.tsx
💡 官方贡献规则沉淀在 CONTRIBUTING.md,提交前务必通读一遍。
新手友好的 4 类第一个 PR
不知道从哪里下手?优先选这四类改动:
- 文档与 README 修正:错别字、命令过期、说明歧义,零风险且价值明确。
- 用户可见文案:界面提示文字使用中文,注意保留 Markdown、Electron 等英文专业词,例如 apps/web/src/components/ 下的组件。
- 主题模板微调:在 templates/ 中修改配色、字号等 CSS 变量,改完在预览中直观验证效果。
- 补充单元测试:为高风险链路(复制到公众号、Markdown 渲染、主题、图床、文件系统)补测试,参考 apps/web/src/tests/ 下现有写法。
⚠️ 遵循改动原则:改动要聚焦,只修改完成当前问题必要的文件;大功能建议先提 Issue 说明背景与方案。
提交前必跑的检查命令
按改动范围选择对应包执行(完整命令列表见 CONTRIBUTING.md):
# core 包(Markdown 解析/主题相关) pnpm --filter @wemd/core test -- --run # web 包(前端界面相关) pnpm --filter @wemd/web lint pnpm --filter @wemd/web test -- --run pnpm --filter @wemd/web build # 桌面端 / 上传服务 pnpm --filter wemd-electron test pnpm --filter @wemd/server test # 跨包或共享逻辑变更 pnpm lint pnpm build这些命令与 CI 保持一致:CI 会安装依赖后执行测试、lint web、build web,定义在 .github/workflows/ci.yml。本地全绿,CI 大概率也绿。
Pull Request 提交清单
- 标题简明描述用户可感知的问题或维护收益
- 描述中写明改动内容、验证命令、关联 Issue
- 界面变化附截图或录屏
- 只包含本次贡献相关文件,不包含密钥、构建产物、上传产物
- 需要长期沉淀的约束,同步更新 README 或帮助文档
- CI 失败时先按日志修复,再请求 review
常见问题 FAQ
Q:pnpm dev:web启动失败怎么办?确认 Node.js ≥ 18、pnpm ≥ 9,并重新执行pnpm install。依赖树由 pnpm-lock.yaml 锁定,不要随意换包管理器。
Q:改了packages/core的解析逻辑,要跑哪些测试?至少执行 core 的测试,再跑 web 的测试和构建,因为渲染链路会直接反映到界面。
Q:CI 红了怎么办?CI 失败不阻塞你本地继续修:点开日志定位失败的测试或 lint 报错,本地复现并修复后推送到同一 PR 分支,CI 会自动重跑。
Q:提交时格式报错?仓库使用 husky + lint-staged 自动对暂存文件执行 eslint 与 prettier(配置见根 package.json 中的lint-staged),手动格式化可用pnpm format。
结语
第一个 PR 的意义不在于改了多少行代码,而在于完整走过"读懂结构 → 本地验证 → 自查 → 提交"这条链路。WeMD 的 monorepo 结构和完善的检查命令正是新手练手的最佳土壤——挑一个文档小修或小主题调整,现在就动手吧 🚀
【免费下载链接】WeMD
更优雅的 Markdown 公众号编辑器
相关推荐
新手必看:GitHub Actions runner-images贡献指南,轻松提交你的第一个PR
新手必看:GitHub Actions runner images贡献指南,轻松提交你的第一个PR GitHub Actions runner images是G
DevOpsCI/CD虚拟化routeros-scripts网络监控实战:Netwatch工具配置与通知设置
routeros scripts网络监控实战:Netwatch工具配置与通知设置 routeros scripts是MikroTik RouterOS的脚本集合
网络运维PT-Plugin-Plus:3 处关键配置,让一键下载种子真正跑起来
PT Plugin Plus:3 处关键配置,让一键下载种子真正跑起来 PT 助手 Plus(PT Plugin Plus)是一款浏览器插件,能把"把种子送进下
前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考