md.rs: Markdown parser in Rust
==============================

`md.rs` is intended to be a simple Markdown parser in Rust. It will provide token-based stream parser capabilities.

How to build
------------

`md.rs` uses Cargo, so just make a dependency on it in your `Cargo.toml` manifest:

    [dependencies.md]
    git = "https://github.com/netvl/md.rs"

How to use
----------

The main object in the library is `md::MarkdownParser` struct. It implements
`Iterator<md::tokens::Block>` trait, so you can use it in `for` loop:

    extern crate md;

    use std::io::File;

    use md::MarkdownParser;
    use md::tokens::Heading;

    fn main() {
        let mut f = File::open("/some/markdown/document.md").unwrap();
        let buf = f.read_to_end().unwrap();

        let mut p = MarkdownParser::new(buf.as_slice());
        for token in p {
            match token {
                Heading { level, content } =>
                    println!("Heading level {}, content: {}", level, content),
                _ =>
            }
        }
    }

See example programs in `examples` subpackage.

License
-------

This library is licensed under MIT license.

---
Copyright (C) Vladimir Matveev, 2014

md.rs: Markdown parser in Rust
==============================

`md.rs` is intended to be a simple Markdown parser in Rust. It will provide token-based stream parser capabilities.

How to build
------------

`md.rs` uses Cargo, so just make a dependency on it in your `Cargo.toml` manifest:

```toml
[dependencies.md]
git = "https://github.com/netvl/md.rs"
```

How to use
----------

The main object in the library is `md::MarkdownParser` struct. It implements
`Iterator<md::tokens::Block>` trait, so you can use it in `for` loop:

```rust
extern crate md;

use std::io::File;

use md::MarkdownParser;
use md::tokens::Heading;

fn main() {
    let mut f = File::open("/some/markdown/document.md").unwrap();
    let buf = f.read_to_end().unwrap();

    let mut p = MarkdownParser::new(buf.as_slice());
    for token in p {
        match token {
            Heading { level, content } =>
                println!("Heading level {}, content: {}", level, content),
            _ =>
        }
    }
}
```

See example programs in `examples` subpackage.

License
-------

This library is licensed under MIT license.

---
Copyright (C) Vladimir Matveev, 2014

Add syntax highlighting to readme code snippets
Add syntax highlighting to readme code snippets