diff --git a/examples/jotdown_wasm/demo.html b/examples/jotdown_wasm/demo.html
index ba7679b..2a028d2 100644
--- a/examples/jotdown_wasm/demo.html
+++ b/examples/jotdown_wasm/demo.html
@@ -21,7 +21,10 @@
output.innerText = jotdown_render(input.innerText);
} else if (fmt.value == "events") {
output.classList.add("verbatim")
- output.innerText = jotdown_parse(input.innerText);
+ output.innerText = jotdown_parse(input.innerText, false);
+ } else if (fmt.value == "events_spans") {
+ output.classList.add("verbatim")
+ output.innerText = jotdown_parse(input.innerText, true);
} else if (fmt.value == "events_indent") {
output.classList.add("verbatim")
output.innerText = jotdown_parse_indent(input.innerText);
@@ -50,6 +53,7 @@
+
diff --git a/examples/jotdown_wasm/src/lib.rs b/examples/jotdown_wasm/src/lib.rs
index 9aeb866..4d6d4e8 100644
--- a/examples/jotdown_wasm/src/lib.rs
+++ b/examples/jotdown_wasm/src/lib.rs
@@ -22,10 +22,16 @@ pub fn jotdown_render(djot: &str) -> String {
#[must_use]
#[wasm_bindgen]
-pub fn jotdown_parse(djot: &str) -> String {
- jotdown::Parser::new(djot)
- .map(|e| format!("{:?}\n", e))
- .collect()
+pub fn jotdown_parse(djot: &str, spans: bool) -> String {
+ let mut out = String::new();
+ for (e, sp) in jotdown::Parser::new(djot).into_offset_iter() {
+ write!(out, "{:?}", e).unwrap();
+ if spans {
+ write!(out, " {:?} {:?}", &djot[sp.clone()], sp).unwrap();
+ }
+ writeln!(out).unwrap();
+ }
+ out
}
#[must_use]