#![cfg(feature = "markdown")]
use gukhanmun::markdown::MarkdownVariant;
use gukhanmun::{Builder, ContextWindow, MapDictionary};
#[test]
fn markdown_commonmark_buffered_converts_paragraph() {
let mut user = MapDictionary::new();
user.insert("學校", "학교");
let converter = Builder::new()
.no_bundled_stdict()
.push_dictionary(user)
.homophone_window(ContextWindow::Off)
.build()
.expect("builder");
let output = converter
.convert_markdown_to_string("學校", MarkdownVariant::CommonMark)
.expect("md");
assert!(output.contains("학교"));
assert!(!output.contains("學校"));
}
#[test]
fn markdown_preserves_inline_code_verbatim() {
let mut user = MapDictionary::new();
user.insert("學校", "학교");
let converter = Builder::new()
.no_bundled_stdict()
.push_dictionary(user)
.homophone_window(ContextWindow::Off)
.build()
.expect("builder");
let output = converter
.convert_markdown_to_string("text with `學校` code", MarkdownVariant::CommonMark)
.expect("md");
assert!(output.contains("`學校`"));
}
#[test]
fn markdown_gfm_table_round_trips() {
let mut user = MapDictionary::new();
user.insert("學校", "학교");
let converter = Builder::new()
.no_bundled_stdict()
.push_dictionary(user)
.homophone_window(ContextWindow::Off)
.build()
.expect("builder");
let input = "| Word |\n|------|\n| 學校 |";
let output = converter
.convert_markdown_to_string(input, MarkdownVariant::Gfm)
.expect("md");
assert!(output.contains("학교"));
assert!(output.contains("|"));
}
#[test]
fn markdown_streaming_iter_matches_buffered() {
let mut user = MapDictionary::new();
user.insert("學校", "학교");
let converter = Builder::new()
.no_bundled_stdict()
.push_dictionary(user)
.homophone_window(ContextWindow::Off)
.build()
.expect("builder");
let input = "first 學校.\n\nsecond 學校.";
let buffered = converter
.convert_markdown_to_string(input, MarkdownVariant::CommonMark)
.expect("buf");
let streamed: Vec<_> = converter
.convert_markdown_iter(input, MarkdownVariant::CommonMark)
.collect();
let streamed_string = gukhanmun::markdown::write_markdown(streamed).expect("write");
assert_eq!(streamed_string, buffered);
}