# Markdown Parser 😎 This a crate that can parse a markdown file. Especially when you have front matters in your markdown file, this would help you to parse them. # Start It is always easy to use this parser. Just start to read a markdown file and parse it. ```rust use markdown_parser::{ read_file, Error }; fn main() -> Result<(), Error> { let md = read_file("$PATH.md")?; let content = md.content(); println!("{}", content); Ok(()) } ``` # Front Matter `md-parser` have 3 format for `front matter`, which can be confirmed in running time. ```rust enum Format { JSON, YAML, TOML, } ``` These formats are the most popular format for front matters, if you are not included, maybe you need to do parsing work by yourself. you can goto [documentation]("https://docs.rs/markdown-parser/") to see more about crate. # Adapt Sometimes you have to transform your front matter in markdown. For example, you have this: ```yaml --- date: 2020-01-02 title: it is yaml categories: - rust tags: - front-matter - md --- ``` And you need a toml-style front matter for your markdown rendering tasks. So you have just use feature `adapt` to use transforming task which will load `serde` crates. ```toml [dependencies.markdown-parser] version = "*" features = ["adapt"] ``` In fact, this task is quite common so feature `adapt` is enabled in default. Now you can change md file like this: ```rust use markdown_parser::*; fn main() -> Result<(), Error> { let origin = read_file("yaml.md")?; let md = origin.adapt::<TomlAdapter, BasicObject>()?; md.write_file("toml.md")?; Ok(()) } ```