This repository has been archived on 2026-08-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
donglora/vendor/pulldown-cmark/tests/lib.rs
T
swaitsandClaude Opus 4.6 3102fc747a feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support:
- Splash screen on boot (1.5s) with project name, version, board
- Dashboard showing radio state, config, counters, RSSI/SNR
- RSSI history sparkline (64-sample ring buffer, 2px-wide bars)
- DisplayOn/DisplayOff host commands routed via dedicated channel
- Pure render functions against generic DrawTarget (no hardware coupling)
- Display on/off control bypasses radio task entirely

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:42:54 -06:00

53 lines
1.5 KiB
Rust

#![cfg(feature = "html")]
use pulldown_cmark::{Options, Parser};
mod suite;
#[inline(never)]
pub fn test_markdown_html(
input: &str,
output: &str,
smart_punct: bool,
metadata_blocks: bool,
old_footnotes: bool,
) {
let mut s = String::new();
let mut opts = Options::empty();
opts.insert(Options::ENABLE_MATH);
opts.insert(Options::ENABLE_TABLES);
opts.insert(Options::ENABLE_STRIKETHROUGH);
opts.insert(Options::ENABLE_TASKLISTS);
opts.insert(Options::ENABLE_GFM);
if old_footnotes {
opts.insert(Options::ENABLE_OLD_FOOTNOTES);
} else {
opts.insert(Options::ENABLE_FOOTNOTES);
}
if metadata_blocks {
opts.insert(Options::ENABLE_YAML_STYLE_METADATA_BLOCKS);
opts.insert(Options::ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS);
}
if smart_punct {
opts.insert(Options::ENABLE_SMART_PUNCTUATION);
}
opts.insert(Options::ENABLE_HEADING_ATTRIBUTES);
let p = Parser::new_ext(input, opts);
pulldown_cmark::html::push_html(&mut s, p);
// normalizing the HTML using html5ever may hide actual errors
// assert_eq!(html_standardize(output), html_standardize(&s));
assert_eq!(html_standardize(output), html_standardize(&s));
}
fn html_standardize(s: &str) -> String {
s.replace("<br>", "<br />")
.replace("<br/>", "<br />")
.replace("<hr>", "<hr />")
.replace("<hr/>", "<hr />")
// permit extra or missing line breaks only between tags
.replace(">\n<", "><")
}