remark-pdf
remark plugin to compile markdown to pdf.
🚧 WIP 🚧
This project is aiming to support all nodes in mdast syntax tree, but currently transformation and stylings may not be well.If you have some feature requests or improvements, please create a issue or PR.
- x paragraph
- x heading
- x thematicBreak
- blockquote
- x list
- x listItem
- x table
- x tableRow
- x tableCell
- html
- code
- yaml
- toml
- definition
- footnoteDefinition
- x text
- x emphasis
- x strong
- x delete
- inlineCode
- x break
- x link
- x image
- linkReference
- imageReference
- footnote
- footnoteReference
- math
- inlineMath
Demo
https://inokawa.github.io/remark-pdf/Install
npm install remark-pdf
Usage
Browser
import { unified } from "unified";
import markdown from "remark-parse";
import pdf from "remark-pdf";
import { saveAs } from "file-saver";
const processor = unified().use(markdown).use(pdf, { output: "blob" });
const text = "# hello world";
(async () => {
const doc = await processor.process(text);
const blob = await doc.result;
saveAs(blob, "example.pdf");
})();
Node.js
import { unified } from "unified";
import markdown from "remark-parse";
import pdf from "remark-pdf/node";
import * as fs from "fs";
const processor = unified().use(markdown).use(pdf, { output: "buffer" });
const text = "# hello world";
(async () => {
const doc = await processor.process(text);
const buffer = await doc.result;
fs.writeFileSync("example.pdf", buffer);
})();
Documentation
Contribute
All contributions are welcome. If you find a problem, feel free to create an issue or a PR.Making a Pull Request
- Clone this repo.
- Run
npm install
. - Commit your fix.
- Make a PR and confirm all the CI checks passed.