HTMLHint icon indicating copy to clipboard operation
HTMLHint copied to clipboard

Support EJS files/tags

Open LightCC opened this issue 4 years ago • 8 comments

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: image

image

LightCC avatar Jul 11 '20 04:07 LightCC

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

Shinigami92 avatar Jul 11 '20 06:07 Shinigami92

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.

stale[bot] avatar Sep 12 '20 10:09 stale[bot]

I agree with @LightCC. Issues with ejs here as well.

hugosaintemarie avatar Nov 09 '20 16:11 hugosaintemarie

I am also encountering the same issues.

Netgator avatar Jan 21 '21 23:01 Netgator

@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.

image

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

aravindvnair99 avatar Mar 26 '21 19:03 aravindvnair99

This issues needs to be reopened due to being closed by the bot.

reporter123 avatar Nov 19 '21 03:11 reporter123

Really appreciated feature

ghost avatar Mar 20 '22 16:03 ghost

Best stupid error ever. How can i fix that ? Core developers how can don't know that ? it's not a rocket science.

tolgahanbora avatar Oct 20 '22 22:10 tolgahanbora