diff options
Diffstat (limited to 'src/renderer')
| -rw-r--r-- | src/renderer/html.rs | 12 | ||||
| -rw-r--r-- | src/renderer/html_tests.rs | 15 | 
2 files changed, 25 insertions, 2 deletions
| diff --git a/src/renderer/html.rs b/src/renderer/html.rs index 56e3175..869444f 100644 --- a/src/renderer/html.rs +++ b/src/renderer/html.rs @@ -15,8 +15,16 @@ use crate::document_tree::{  // static FOOTNOTE_SYMBOLS: [char; 10] = ['*', '†', '‡', '§', '¶', '#', '♠', '♥', '♦', '♣']; -pub fn render_html<W>(document: &Document, mut stream: W) -> Result<(), Error> where W: Write { -	document.render_html(stream.by_ref()) +pub fn render_html<W>(document: &Document, mut stream: W, standalone: bool) -> Result<(), Error> where W: Write { +	if standalone { +		document.render_html(stream.by_ref()) +	} else { +		let stream = stream.by_ref(); +		for c in document.children() { +			(*c).render_html(stream)?; +		} +		Ok(()) +	}  }  trait HTMLRender { diff --git a/src/renderer/html_tests.rs b/src/renderer/html_tests.rs new file mode 100644 index 0000000..a91dd80 --- /dev/null +++ b/src/renderer/html_tests.rs @@ -0,0 +1,15 @@ +use pretty_assertions::assert_eq; + +use crate::parser::parse; +use super::html::render_html; + +fn check_renders_to(rst: &str, expected: &str) { +	println!("Rendering:\n{}\n---", rst); +	let doc = parse(rst).expect("Cannot parse"); +	let mut result_data: Vec<u8> = vec![]; +	render_html(&doc, &mut result_data, false).expect("Render error"); +	let result = String::from_utf8(result_data).expect("Could not decode"); +	assert_eq!(result.as_str().trim(), expected); +} + +include!(concat!(env!("OUT_DIR"), "/html_tests.rs")); | 
