Struct parsoid::inclusion::OnlyInclude [−][src]
pub struct OnlyInclude { /* fields omitted */ }
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?;
// 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
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for OnlyInclude
impl !Send for OnlyInclude
impl !Sync for OnlyInclude
impl Unpin for OnlyInclude
impl !UnwindSafe for OnlyInclude
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more