roxy-markdown-tera-rewriter/src/lib.rs

34 lines
990 B
Rust

use regex::Regex;
use lol_html::{element, HtmlRewriter};
use roxy_core::roxy::Parse;
const EXTENSION_RE: &'static Regex = Regex::new("{% extends \"?.+\"? %}");
pub struct MarkdownTeraParser<'a, F: FnMut(&'a [u8]) -> ()> {
rewriter: HtmlRewriter<'a, F>,
output: Vec<u8>
}
impl<'a, O: FnMut(&'a [u8]) -> ()> MarkdownTeraParser<'a, O> {
pub fn new() -> Self {
let mut output = vec![];
Self {
rewriter: HtmlRewriter::new(lol_html::Settings {
element_content_handlers: vec![element!("p", |el| {
if
})],
..Default::default()
}, |c: &[u8]| output.extend_from_slice(c)),
output
}
}
}
// TODO: use an html->dom parser to strip <p> tags around tera placeholders
impl<'a, O: FnMut(&'a [u8]) -> ()> Parse for MarkdownTeraParser<'a, O> {
fn parse(&mut self, path: &str, src: &[u8], dst: &mut Vec<u8>) -> std::io::Result<()> {
Ok(())
}
}