Rust port of pandoc-types Build Status

This library provides a Rust port of the pandoc-types Haskell package.

To install, add the following to your Cargo.toml:

[dependencies] pandoc_types = "0.2"

What this library is for

The purpose of pandoc-types is to allow Rust programs to natively manipulate Pandoc documents. Using this library, Rust programs should be able to create and modify Pandoc documents in a principled way (i.e. via ASTs, not text). This library can also be used along with serde_json to serialize and deserialize Pandoc documents to and from Pandoc's JSON format.

What this library is NOT for

This library does not provide a way of calling the Pandoc executable itself. If that's what you're looking for, consider the rust-pandoc library.

Compatibility

The current version is compatible with Haskell pandoc-types 1.17. This is the most recent version at the time of writing.

Supported modules

The following modules from pandoc-types are supported:

Note that Text.Pandoc.JSON is unnecessary in Rust because all types implement Serialize and Deserialize from serde and can be used directly with serde_json.

Example usage

```rust let para = Block::Para(vec![Inline::Str("b".to_owned())]);

let s = serdejson::tostring(&para)?; println!("serialized = {}", s);

let d: Block = serdejson::fromstr(&s)?; println!("deserialized = {:?}", d); ```

For a full example, see examples/definition.rs.

License

This library is licensed under the Apache License, Version 2.0 (see LICENSE.txt).