markdown-to
指定一个根目录,将目录中所有markdown文件转换成对应的html、vue、jsx、tsx类型文件,支持代码高亮、目录等功能。
import { MarkdownTo } from "markdown-to"; // ES6 // const { MarkdownTo } = require("markdown-to"); // Commonjs const rootdir = "../文章/" // 指定文章所在的根目录,会递归读取目录及其子目录下的所有markdown文件 const outdir = "./dist/" // 指定输出目录,按照原目录结构生成文件 const mdTo = new MarkdownTo(rootdir, outdir); mdTo.render(); // 转换根目录下的所有markdown文件 mdTo.tocFile() // 生成根据根目录markdown文件形成的目录
MarkdownTo
实例化时接收三个参数,分别是根目录rootdir
、输入目录outdir
,以及配置对象config
。配置对象config
可选,所有选项如下:declare interface Config { /** @property * { html | vue | jsx | tsx } * 转换的目标文件类型 * */ type?: Types; /** @property 匹配markdown的正则表达式 */ md?: RegExp; /** @property 忽略的文件或目录 */ ignores?: string[]; /** @property 是否翻译名称与目录 */ isTranslate?: boolean; /** @property 自定义翻译函数*/ translate?: (q: string) => Promise<string | void> | string; /** @property 实现toc文章目录的文件,boolean类型表示全部都生成toc目录或都不生成*/ toc?: string[] | boolean; }
// 安装highlight.js npm install highlight.js -S
// 项目中引入css文件 import "highlight.js/styles/atom-one-dark.css"; // 使用atom-one-dark风格的代码高亮
const options = { type: "tsx", isTranslate: true, }; const mdTo = new MarkdownTo("/base", "./dist", options); mdTo.render();
const options = { isTranslate: true, transalte: translateMarkdown }; function translateMarkdown(q: string):Promise<string | void> | string { /* * q 是要翻译的文本 */ }
./cache/translate.json
中,下次再进行翻译时会直接使用该文件,你可以修改该文件来更正翻译结果。