posthtml / posthtml-expressions

Use variables, JS-like expressions, and even markup-powered logic in your HTML.
Other
123 stars 20 forks source link

`ignoreTag` could be an array and contain css selectors #139

Open b-gyula opened 1 year ago

b-gyula commented 1 year ago

Instead of ignoreTag it could be named ignoreTags and allow to contain CSS selectors like other posthtml plugins as posthtml-match-helper accepts [tag]#[id].[class]. E.g div#id. It would not require the developers to insert extra wrapper tags and modify the html at all. E.g. with

const options = { ignoredTags: ['div#id','.ignore'] }

would not alter

<div id='id' data-attrib='{{attribute}}'>and {{content}} not meant to be altered</div>

or

<div class='.ignore' data-attrib='{{attribute}}'>and {{content}} not meant to be altered</div>

at all.

Further more similarly other ...Tags options could use the same logic similarly to Angular Structural directive like

<div *ngIf="[condition]"></div>
cossssmin commented 1 year ago

I like the idea, though changing its name would mean a breaking change. Maybe we could do ignoredSelectors or something until the next major release, what do you think @Scrum?

Scrum commented 1 year ago

I think the logical approach is ignoredSelectors. We can also make an interim release in which we explicitly indicate the deprecation of the parameter ignoreTag and an exception in future releases.

You must also specify that ignoredSelectors will include the parameter value ignoreTag.