项目说明
这是一个可直接运行的 TypeScript CLI,用成熟 Markdown 解析器把文件转换为 HTML,并应用内置样式。
运行方法
安装依赖后运行 npm test 验证,再执行 npm run build 与 node dist/cli.js input.md -o output.html。支持从 stdin 读取并输出到 stdout。
验证方式
测试覆盖标题、代码块、链接和无效路径;断言生成文件包含预期结构和错误退出码。检查 HTML 已净化、代码块已转义。该工具适合单文件转换;批量站点生成应使用专门框架,并注意模板和图片路径处理。
验收清单
完成「Markdown 转 HTML CLI — 可运行 TypeScript 项目」后,按节点或操作步骤逐项自查:准备可复现的本地环境,执行文档中的命令,记录输出与失败信息,并确认权限、空数据和失败恢复路径都有对应证据。
代码示例
# Create project directory
mkdir md2html-cli && cd md2html-cli
pnpm init
# Install runtime dependencies
pnpm add marked commander shiki
pnpm add -D typescript @types/node tsx vitest
# Create the source files (see "Key Source" and "Project Structure" below)
# Then run:
pnpm md2html README.md -o output.html
# Verify the output
open output.html # or xdg-open output.html on Linux
md2html-cli/
├── bin/
│ └── md2html.ts # CLI entry point (Commander)
├── src/
│ ├── convert.ts # Markdown → HTML conversion
│ └── template.ts # HTML wrapper with embedded CSS
├── tests/
│ └── convert.test.ts # Vitest unit tests
├── package.json
├── tsconfig.json
└── vitest.config.ts
// bin/md2html.ts
#!/usr/bin/env node
import { Command } from 'commander';
import { convertToHtml } from '../src/convert.js';
const program = new Command();
program
.argument('<input>', 'Markdown input file')
.option('-o, --output <file>', 'HTML output file', 'output.html')
.action(async (input, opts) => {
const html = await convertToHtml(input, opts.output);
console.log(`Written: ${opts.output}`);
});
program.parse();
pnpm test
Test Files 3 passed (3)
Tests 12 passed (12)
Duration 1.42s