I want to utilise Angular in a not really usual way. I use it to generate the HTML that is later on used for various needs.
Why? I want this HTML to be static and in
As far as I am aware, you need to set the ViewEncapsulation
to None. Understanding how this works is key, as these dynamically generated classes you do not want are there for the reason of specificity.
According to the Angular 4 documentation:
To do this, use the following code in your component file (in the component decorator function:
encapsulation: ViewEncapsulation.None
You'll have to post-process the HTML using a library such as Tidy.
Tidy has options to strip attributes that aren't on a white-list and also remove comments, but it's a library and has to be run on a string or text file.
Tidy can be run via different platforms like PHP, NodeJS or .NET. Here's a NodeJS library:
https://github.com/vavere/htmltidy
Another option would be to use jQuery to update the DOM using a broad $('*').each()
and just mutate the DOM elements before saving the HTML to where you need it.