1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use super::TagHandler;
use super::StructuredPrinter;
use markup5ever_rcdom::Handle;
#[derive(Default)]
pub struct QuoteHandler {
start_pos: usize
}
impl TagHandler for QuoteHandler {
fn handle(&mut self, _tag: &Handle, printer: &mut StructuredPrinter) {
self.start_pos = printer.data.len();
printer.insert_newline();
}
fn after_handle(&mut self, printer: &mut StructuredPrinter) {
let quote = "> ";
let mut index = printer.data.len();
while index > self.start_pos {
if printer.data.bytes().nth(index) == Some(b'\n') {
printer.insert_str(index + 1, "e);
}
index -= 1;
}
printer.insert_str(self.start_pos + 1, "e);
printer.insert_newline();
printer.insert_newline();
}
}