HTMLHint
HTMLHint copied to clipboard
Support EJS files/tags
Is your feature request related to a problem? Please describe.
HTMLHint appears to work well on *.ejs (EJS - Embedded JavaScript) files for the HTML parts, but the EJS templates trigger the spec-char-escape rule on the <%
open and %>
close tags for the embedded JS templating.
Describe the solution you'd like In *.ejs files, HTMLHint should recognize the EJS start/stop tags and ignore the spec-char-escape tags at the minimum.
It's possible that everything between the tags should also be ignored, although there aren't many tags in EJS (plan <%
, <%=
for just variables, etc.) and most of it is just plain javascript.
Ideally, all the EJS tags and the javascript itself would all be linted.
Describe alternatives you've considered I looked for other linters for EJS, at least supported by VS Code, didn't see anything.
I do use .htmlhintrc
to disable the spec-char-escape rule:
{
"spec-char-escape": false
}
but this is a less-than-ideal solution as it disables checking for that rule in all normal HTML code as well.
Additional context
In VS Code, this shows up as follows:
Thank you for your feature request But let me tell you that we are currently working intensively on the core and configuration structure of HTMLHint So it will take some time before we have time to implement such features
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I agree with @LightCC. Issues with ejs here as well.
I am also encountering the same issues.
@thedaviddias @Shinigami92 Why not keep this issue open?
As pointed out by @LightCC, @ashugeo and @Netgator, my VS Code is filled with squiggly lines every time I'm working with EJS.
Coming to a solution, we can maybe have a check condition to see if an EJS file is being inspected instead of an HTML file and in which case ignore the following:
<% 'Scriptlet' tag, for control-flow, no output
<%_ 'Whitespace Slurping' Scriptlet tag, strips all whitespace before it
<%= Outputs the value into the template (HTML escaped)
<%- Outputs the unescaped value into the template
<%# Comment tag, no execution, no output
<%% Outputs a literal '<%'
%> Plain ending tag
-%> Trim-mode ('newline slurp') tag, trims following newline
_%> 'Whitespace Slurping' ending tag, removes all whitespace after it
Reference: EJS Tags
This issues needs to be reopened due to being closed by the bot.
Really appreciated feature
Best stupid error ever. How can i fix that ? Core developers how can don't know that ? it's not a rocket science.