# markdown2html-SKILL
**Repository Path**: duzc2/markdown2html-skill
## Basic Information
- **Project Name**: markdown2html-SKILL
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-24
- **Last Updated**: 2026-08-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Markdown 转公众号 HTML
将 Markdown 文件一键转换为带内联样式的 HTML,可直接粘贴到微信公众平台编辑器。
## 核心能力
- **无缝粘贴** — 所有样式内嵌(`style=""`),无外部 CSS 依赖,直接粘贴到公众号编辑器即生效
- **代码块防吞** — 代码每行末尾用 `
` 替换换行符,防止公众号编辑器吃掉缩进和换行
- **语义样式** — 只根据 Markdown 语义设置字体粗细、斜体、字号大小,不设 `font-family`,兼容公众号默认字体
- **背景透明** — 不设背景色,自动适应公众号浅色/深色模式
- **原位输出** — 默认在 `.md` 文件同级目录生成 `.html`,不受执行目录影响
## 快速开始
```bash
# 安装依赖(仅首次)
cd scripts/
npm init -y
npm install marked
# 转换单个文件
node markdown-to-html.mjs path/to/article.md
# → 在 article.md 同级目录生成 article.html
# 指定输出路径
node markdown-to-html.mjs input.md output.html
```
## 通过 run_skill_script 调用
此 Skill 已将 `marked` 打包进脚本,通过 `run_skill_script` 调用无需安装依赖:
```javascript
run_skill_script({
skill: "d234ec86-a889-463b-862a-766f33a9f674",
scriptPath: "scripts/markdown-to-html.mjs",
args: ["/absolute/path/to/article.md"]
})
```
## 样式规格
| 元素 | 字号 | 行高 | 说明 |
|------|------|------|------|
| h1 | 24px | — | 居中加粗 |
| h2 | 20px | — | 加粗 |
| h3 | 18px | — | 加粗 |
| 正文 p | 17px | 1.8 | 正常粗细 |
| 代码 pre | 14px | 1.6 | 灰底圆角 |
| 行内 code | 14px | — | 灰底 |
| 引用 blockquote | 17px | 1.8 | 灰色左边框 |
| 图片 | — | — | 居中,max-width:100% |
| 表格 th/td | 17px | 1.8 | 带边框 |
| 分割线 hr | — | — | 浅灰 1px |
## 文件结构
```
scripts/
├── markdown-to-html.mjs # 核心转换脚本(含 bundled marked)
├── md2html.ps1 # PowerShell 包装(解决中文路径问题)
README.md # 本文件
```
## 技术架构
```
Markdown input
│
▼
marked.parse() ← marked 库已打包进脚本
│
▼
自定义渲染器
├── heading() →
+ 17px/行高1.8 ├── code() →
+
换行
├── codespan() → 行内样式
├── image() →
居中/自适应
├── table() → 带边框
└── ... → 其余块级/行内元素
│
▼
... HTML ...
│
▼
输出 .html 到源文件同级目录
```
## 约束
- 依赖 Node.js 18+
- 脚本使用 ESM 模块(`import`/`export`),本地执行时 `package.json` 需设置 `"type": "module"`
- 图片路径保持 Markdown 中的原样,不会自动上传或转换
- 不支持 GFM 任务列表(`- [x]`)、脚注等扩展语法
## 常见问题
**Q: 生成的 HTML 在公众号预览中样式乱了?**
检查是否在「公众号编辑器」中粘贴。所有样式均为内联,理论上应正确渲染。若仍有问题,检查是否有外部 CSS 影响,或确认公众号编辑器版本。
**Q: 代码块里的空格被吞了?**
脚本已用 `
` 替代换行符。若仍有缩进丢失,检查源代码中的缩进是否为空格而非 Tab。
**Q: 怎么批量转换多个文件?**
```bash
# Linux/macOS
for f in *.md; do node markdown-to-html.mjs "$f"; done
# Windows PowerShell
Get-ChildItem *.md | ForEach-Object { node markdown-to-html.mjs $_.FullName }
```
## License
MIT