markdownify
A Rust library for converting various document formats to Markdown, part of the mcat project.

Supported Formats
| Format |
Extension |
| Word Documents |
.docx |
| OpenDocument Text |
.odt, .odp |
| PDF |
.pdf |
| PowerPoint |
.pptx |
| Excel/Spreadsheets |
.xlsx, .xls, .xlsm, .xlsb, .xla, .xlam, .ods |
| CSV |
.csv |
| ZIP Archives |
.zip |
| Other text formats |
(various) Falls back to code block formatting |
Installation
Add to your Cargo.toml:
[dependencies]
markdownify = "0.1.1"
Usage
Basic Usage
use std::path::Path;
use markdownify::convert;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let path = Path::new("document.docx");
let markdown = convert(path)?;
println!("{}", markdown);
let opts = ConvertOptions::new("document.docx")
.with_name_header("My Document");
let markdown = convert(opts)?;
let opts = ConvertOptions::new("document.pdf")
.with_name_header("My PDF")
.with_screen_size((100, 20)); let markdown = convert(opts)?;
Ok(())
}
Working with Specific Formats
You can also use the format-specific converters directly:
use std::path::Path;
use markdownify::{docx, pdf};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let path = Path::new("document.docx")
let markdown = docx::docx_convert(&path)?;
let path = Path::new("document.pdf")
let markdown = pdf::pdf_convert(&path)?;
Ok(())
}
License
This project is licensed under the MIT License - see the LICENSE under mcat for details.