Skip to main content

afm_markdown/
html.rs

1//! HTML rendering convenience entry.
2//!
3//! Back-compat shim for the pre-0.2.4 `html::render_to_string(src)`
4//! signature. Equivalent to
5//! `crate::render_to_string(src, &Options::afm_default()).html`.
6
7use crate::{Options, render_to_string as render_into_rendered};
8
9/// Render afm source to HTML, dropping diagnostics.
10///
11/// Convenience for the typical caller. For diagnostic-aware paths
12/// (CLI `--strict` flag, LSP, corpus sweep) call
13/// [`crate::render_to_string`] directly and inspect
14/// [`crate::Rendered::diagnostics`].
15#[must_use]
16pub fn render_to_string(input: &str) -> String {
17    render_into_rendered(input, &Options::afm_default()).html
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23
24    #[test]
25    fn plain_paragraph_round_trips_through_comrak() {
26        let html = render_to_string("Hello.");
27        assert!(html.contains("<p>Hello.</p>"));
28    }
29
30    #[test]
31    fn ruby_is_emitted_semantically() {
32        let html = render_to_string("|青梅《おうめ》");
33        assert!(html.contains("<ruby>"), "missing ruby tag: {html}");
34        assert!(html.contains("青梅"));
35        assert!(html.contains("おうめ"));
36    }
37}