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.5"
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.
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.
The current version is compatible with Haskell pandoc-types 1.22. This is the most recent version at the time of writing.
The following modules from pandoc-types are supported:
- Haskell
Text.Pandoc.Definition
(aspandoc_types::definition
in Rust)
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.
let para = Block::Para(vec![Inline::Str("b".to_owned())]);
let s = serde_json::to_string(¶)?;
println!("serialized = {}", s);
let d: Block = serde_json::from_str(&s)?;
println!("deserialized = {:?}", d);
For a full example, see examples/definition.rs.
This library is licensed under the Apache License, Version 2.0 (see LICENSE.txt).