1.0.0 • Published 4 months ago

md2pdf-cli v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

md2pdf-cli

一个简单的命令行工具,用于将Markdown文件批量转换为PDF,并保留图片引用。

npm version License: MIT

特点

  • 自动扫描目录及子目录中的所有.md文件
  • 保留Markdown中引用的图片,并将其包含在生成的PDF中
  • 支持自定义PDF样式
  • 将所有生成的PDF文件统一保存到指定目录
  • 兼容Windows、macOS和Linux系统
  • 提供详细的转换统计信息
  • 支持作为命令行工具或Node.js库使用

安装

全局安装(推荐)

npm install -g md2pdf-cli

本地安装

npm install md2pdf-cli

使用方法

命令行使用

安装后,可以直接在任何包含Markdown文件的目录中运行:

md2pdf

程序将自动: 1. 扫描当前目录及子目录中的所有.md文件 2. 创建pdf文件夹(如果不存在) 3. 将每个Markdown文件转换为PDF并保存到pdf文件夹中 4. 在控制台显示转换进度和结果

作为Node.js库使用

const { convertMarkdownToPdf } = require('md2pdf-cli');

// 默认选项
convertMarkdownToPdf(process.cwd())
  .then(result => {
    console.log(`转换完成,成功: ${result.success.length}, 失败: ${result.failed.length}`);
  })
  .catch(err => {
    console.error('转换出错:', err);
  });

// 自定义选项
convertMarkdownToPdf('/path/to/markdown/files', {
  outputDir: '/path/to/output/directory',
  cssPath: '/path/to/custom.css',
  globPattern: '**/*.md',
  ignore: ['node_modules/**', 'pdf/**', 'ignored/**']
})
  .then(result => {
    console.log(`转换完成,成功: ${result.success.length}, 失败: ${result.failed.length}`);
  })
  .catch(err => {
    console.error('转换出错:', err);
  });

自定义样式

程序会自动创建一个custom.css文件,您可以编辑此文件来自定义PDF的样式。

API文档

convertMarkdownToPdf(workDir, options)

将指定目录中的所有Markdown文件转换为PDF。

参数:

  • workDir (String): 包含Markdown文件的目录路径
  • options (Object, 可选): 配置选项
    • outputDir (String): PDF输出目录,默认为${workDir}/pdf
    • cssPath (String): CSS样式文件路径,默认为${workDir}/custom.css
    • globPattern (String): 用于匹配Markdown文件的glob模式,默认为**/*.md
    • ignore (Array): 要忽略的文件或目录,默认为['node_modules/**', 'pdf/**']

返回值:

返回一个Promise,解析为包含以下属性的对象:

  • total (Number): 总文件数
  • success (Array): 成功转换的文件列表
  • failed (Array): 转换失败的文件列表

注意事项

  • 对于Markdown中引用的图片,支持相对路径和绝对路径
  • 如果图片路径无效,程序会在控制台输出警告,但会继续处理文件
  • 程序会自动忽略node_modules目录和pdf目录中的Markdown文件
  • 如果有多个同名的Markdown文件(位于不同目录),转换后的PDF文件会相互覆盖,最后处理的文件将保留

依赖项

  • md-to-pdf: 用于将Markdown转换为PDF
  • glob: 用于文件路径匹配

许可证

MIT

1.0.0

4 months ago