При преобразовании старого .eex в .heex я наткнулся на этот код, который использует TailwindCSS для отображения строк таблицы в стиле зебры:
<%= for {language, counter} <- Enum.with_index(@languages) do %>
<tr class = "<%= if rem(counter, 2) == 0, do: "bg-white", else: "bg-gray-50" %>">
Это приводит к этой ошибке во время работы mix format
$ mix format
mix format failed for file: lib/w_games_web/templates/language/index.html.heex
** (Phoenix.LiveView.HTMLTokenizer.ParseError) nofile:2:14: expected closing `"` for attribute value
Я как бы понимаю проблему, а потом нет.





С HEEx атрибуты HTML должны генерироваться следующим образом:
<tr class = {if rem(counter, 2) == 0, do: "bg-white", else: "bg-gray-50"}>
Короче говоря, attr = "<%= value %>" (EEx) становится attr = {value} (HEEx).
Примечание: вы можете использовать CSS(3) для чередования цветов (:nth-child(odd/even)) и использовать защиту Integer.is_odd/even/1 в Эликсире.