threedaymonk / htmlbeautifier

A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.
MIT License
325 stars 59 forks source link

Indent with javascript tag #73

Open michaelglass opened 1 year ago

michaelglass commented 1 year ago

allows <%= javascript_tag %>...<%end> to behave like <script>...</script>

I haven't read enough of the whole library to understand the consequences of this PR! It wouldn't surprise me if it is very broken!

Consider this as much a "feature request / issue" as a PR.

... But was easy enough to hack it together so made a PR.

Thanks for your wonderful, relatively lightweight gem.

threedaymonk commented 4 months ago

Sorry I've neglected this for so long! I think the goal is good here, but instead of treating javascript_tag specially, it should probably indent anything within a Ruby do/end block.

I'll leave this PR open as a reminder (and because I'll take the tests).

ziadsawalha commented 1 month ago

This also needs to ignore tags within tags. Ex

<%= javascript_tag nonce: true do %>
  fetch('<%= root_url %>/cart.json', ...);
<% end %>

gets reformatted to

<%= javascript_tag nonce: true do %>
  fetch('<%= root_url %>
  /cart.json', ...);
<% end %>