The latest version of pandoc CLI compiled as a standalone
wasm32-wasi module that can be run by engines like wasmtime as
well as 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.
You're also more than welcome to fetch the
pandoc.wasm
module and make your own customized app. pandoc.wasm is fully
wasm32-wasi compliant and doesn't make use of any JSFFI feature in
the ghc wasm backend.
pandoc.wasm is built with 9.12 flavour of ghc wasm backend in CI,
which can be installed via
ghc-wasm-meta. You
need at least 9.10 since it's the earliest major version with (my
non-official) backports for ghc wasm backend's Template Haskell & ghci
support.
It's built using my
fork which is
based on latest pandoc release and patches dependencies, cabal
config as well as some module code to make things compilable to wasm:
- No http client/server functionality.
wasip1doesn't have proper sockets support anyway, and support for future versions of wasi is not on my radar for now. - No lua support. lua requires
setjmp/longjmpwhich already work inwasi-libcto some extent, but that requires wasm exception handling feature which is not supported bywasmtimeyet.
Other functionalities should just work, if not feel free to file a bug report :)
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 past efforts of using asterius to compile pandoc to
wasm, including but not limited to:
- George Stagg's
pandoc-wasm - Yuto Takahashi's
wasm-pandoc - My legacy asterius pandoc demo