← 中文资源

简体中文版本

Markdown 转 HTML CLI — 可运行 TypeScript 项目

把 Markdown 转换为带样式 HTML 的 TypeScript CLI,包含源码、npm 脚本和可立即运行的测试套件。

阅读英文原文

项目说明

这是一个可直接运行的 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