Looking for maintainer: Johannes Wilm has temporarily taken over maintainership of this package due to there being no package on NPM. However, he knows very little about wasm and haskell and would like for someone else to take this package again.
The latest version of pandoc
CLI compiled as a standalone wasm32-wasi
module that can be run by browsers.
Stdin on the left, stdout on the right, command line arguments at the bottom. No convert button, output is produced dynamically as input changes.
-
Make
wasm-pandoc
a dependency in your project.json. -
In your bundler mark "wasm" as an asset/resource. For example in rspack, in your config file:
module.exports = {
...
module: {
...
rules: [
...
{
test: /\.(wasm)$/,
type: "asset/resource"
}
...
]
...
}
...
}
- Import
pandoc
fromwasm-pandoc
like this:
import { pandoc } from "wasm-pandoc"
- Execute it like this (it's async):
const output = await pandoc(
'-s -f json -t markdown', // command line switches
inputFileContents, // string for text formats or blob for binary formats
[ // Additional files - for example bibliography or images
{
filename: 'image13.png',
contents: ..., // string for text formats or blob for binary formats
},
...
]
)
console.log(output)
{
out: '...',
mediaFiles: Map {'media': Map {'image1.jpg' => Blob, 'image2.png' => Blob, ...}}
}
out
will either be a string (for text formats) or a Blob for binary formats of the main output. mediaFiles
will be a map of all additional dirs/files that pandoc has created during the process.
Thanks to John MacFarlane and all the contributors who made pandoc
possible: a fantastic tool that has benefited many developers and is a
source of pride for the Haskell community!
Thanks to all efforts to make pandoc
run with wasm, including but not limited to:
- amesgen
Don't patch out network
- Cheng Shao
pandoc-wasm
- George Stagg's
pandoc-wasm
- Yuto Takahashi's
wasm-pandoc
- TerrorJack's asterius pandoc demo