Skip to content

tweag/pandoc-wasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

pandoc-wasm

Chat on Matrix

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.

Building

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. wasip1 doesn'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/longjmp which already work in wasi-libc to some extent, but that requires wasm exception handling feature which is not supported by wasmtime yet.

Other functionalities should just work, if not feel free to file a bug report :)

Acknowledgements

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: