I added this feature a while back and realised I didn’t post about it. You can now use a special syntax in markdown to have it cooked and usable in theme components without having to write a plugin.
// wrapped in div.d-wrap
[wrap=baz foo=bar]Content[/wrap]
// wrapped in div.d-wrap
[wrap=baz foo=bar]
Content
[/wrap]
// wrapped in div.d-wrap
[wrap=baz foo=bar]
[/wrap]
// this one will be rendered as a span.d-wrap instead of a div.d-wrap
a [wrap=baz]Content[/wrap] b
The name of the component will be added as a data-attribute: data-wrap="baz" and every properties will also be data-attributes: data-foo="bar" on the element.
If you want to read about a real world use case, see
Thanks for suggesting this feature in the other topic.
I was excited to try to use it and see if it worked for my case, however I encountered a problem.
It seems to ignore attribute names that has multiple hyphens in between and defaults to only pick the characters after the last hyphen.
I am using v2.4.0.beta2 +33, I apologize if this has been fixed in a newer commit since.
Examples:
// No multiple hyphen this works fine: data-bloodmallet="chart".
[wrap=test bloodmallet=chart]Content[/wrap]
// This way it omits "user" from the attribute name and output is data-id="1" instead of data-user-id="1".
[wrap=test2 user-id=1]Content[/wrap]
This following request is optional: Is there a way to not wrap the content inside the div with <p> tag?
Thanks for this feature and hopefully I can use it to fix my problem!