mirror of
https://github.com/storytold/wordcraft.git
synced 2026-11-11 16:31:54 -06:00
33 lines
1.2 KiB
Rust
33 lines
1.2 KiB
Rust
//! Markdown: a CommonMark subset plus GitHub tables and strikethrough.
|
|
//!
|
|
//! Import: ATX and setext headings, paragraphs with soft/hard breaks, block quotes (→ Quote
|
|
//! style), fenced and indented code (→ one Code paragraph per line), thematic breaks (→ a
|
|
//! bottom-border paragraph), bullet and ordered lists (nested by indentation), GFM pipe tables,
|
|
//! and inlines: emphasis/strong (the CommonMark delimiter algorithm), `~~strike~~`, code spans,
|
|
//! inline links, autolinks, images (`data:` URIs become pictures, others their alt text),
|
|
//! backslash escapes, entities, HTML comments (`<!-- ... -->`), `<br>` and `<a id>` anchors.
|
|
//!
|
|
//! Export writes the same constructs; pictures become `` placeholders.
|
|
|
|
use std::collections::HashMap;
|
|
use std::sync::Arc;
|
|
|
|
use wordcraft_doc::{Align, Document};
|
|
|
|
use crate::html::decode_entity;
|
|
use crate::model::{self, Cell, FBlock, FTable, Fmt, Inline, Kind, ListInfo, Para, make_img};
|
|
|
|
mod blocks;
|
|
mod export;
|
|
mod inlines;
|
|
|
|
pub use blocks::{Refs, import, import_on, parse};
|
|
pub(crate) use export::escape;
|
|
pub use export::export;
|
|
#[cfg(test)]
|
|
use export::{escape_line_start, inlines_md, table_md, write_blocks};
|
|
pub use inlines::parse_inlines;
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|