diff options
| author | Konsta Hölttä | 2020-09-07 01:30:34 +0300 | 
|---|---|---|
| committer | GitHub | 2020-09-07 00:30:34 +0200 | 
| commit | 4c487a44208a96e3a23ab8974d224cae489688be (patch) | |
| tree | 225496197ba8d5c096497809f53bf9e31ba8231b /renderer/src | |
| parent | c80468a8f917079189c8cd111556f9752085e3e4 (diff) | |
| download | rust-rst-4c487a44208a96e3a23ab8974d224cae489688be.tar.bz2 | |
Add support for raw directives (#17)
All content under a raw directive is rendered as-is if the output format
matches the writer. Otherwise none of it is shown.
Diffstat (limited to 'renderer/src')
| -rw-r--r-- | renderer/src/html.rs | 8 | ||||
| -rw-r--r-- | renderer/src/html/tests.rs | 25 | 
2 files changed, 31 insertions, 2 deletions
diff --git a/renderer/src/html.rs b/renderer/src/html.rs index fe934e7..0092315 100644 --- a/renderer/src/html.rs +++ b/renderer/src/html.rs @@ -11,6 +11,7 @@ use document_tree::{  	elements as e,  	extra_attributes as a,  	element_categories as c, +	attribute_types as at,  }; @@ -238,8 +239,11 @@ impl HTMLRender for e::Target {  impl HTMLRender for e::Raw {  	fn render_html<W>(&self, renderer: &mut HTMLRenderer<W>) -> Result<(), Error> where W: Write { -		for c in self.children() { -			write!(renderer.stream, "{}", c)?; +		let extra = self.extra(); +		if extra.format.contains(&at::NameToken("html".to_owned())) { +			for c in self.children() { +				write!(renderer.stream, "{}", c)?; +			}  		}  		Ok(())  	} diff --git a/renderer/src/html/tests.rs b/renderer/src/html/tests.rs index afd2d24..b380847 100644 --- a/renderer/src/html/tests.rs +++ b/renderer/src/html/tests.rs @@ -264,6 +264,31 @@ fn code() {  ");  } +#[test] +fn raw_html() { +	check_renders_to("\ +.. raw:: html + +   hello <span>world</span> +   <p>paragraph + +   paragraph</p> + +after + +.. raw:: something_else + +   into a black hole this goes +", "\ +hello <span>world</span> +<p>paragraph + +paragraph</p> + +<p>after</p>\ +"); +} +  /*  #[test]  fn test_field_list() {  | 
