pub struct OnlyInclude { /* private fields */ }
Expand description
Represents a onlyinclude tag (<onlyinclude>
)
This tag is special as it spans multiple nodes, similar to templates. However, because of the way wikitext is written, it’s possible for onlyinclude tags to be unbalanced, crossing normal HTML tags.
There are a few gotchas to using this because of how the contents
are tracked. You can only go through the descendant nodes using
inclusive_descendants
. It’s not possible to use a tree structure
because there’s no guarantee the contents are balanced HTML nodes.
Mutating nodes inside the onlyinclude is straightforward, but trying to change the tag itself is complicated. Trying to detach and reattach the same OnlyInclude instance probably won’t work as expected. Instead it’s recommended to only attach OnlyInclude instances that you create.
let code = client.transform_to_html("foo<onlyinclude>bar</onlyinclude>baz").await?.into_mutable();
// Get the `OnlyInclude` instance
let onlyinclude = code.filter_onlyinclude()[0].clone();
assert_eq!(&onlyinclude.inclusive_descendants()[0].text_contents(), "bar");
See the spec for more details.
Implementations§
Source§impl OnlyInclude
impl OnlyInclude
Trait Implementations§
Source§impl Clone for OnlyInclude
impl Clone for OnlyInclude
Source§fn clone(&self) -> OnlyInclude
fn clone(&self) -> OnlyInclude
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more