Как оставить тег открытым в HAML?

Я работаю над отзывчивым html-письмом без медиа-запроса и мне нужно вставить условие mso. Тем не менее, я не уверен, как я могу преобразовать это в HAML?

<!--[if (gte mso 9)|(IE)]>
<table class="outlook-wrapper">
    <tr>
          <td>
<![endif]-->
<table class="email-body">
// Some email content ..
</table>
<!--[if (gte mso 9)|(IE)]>
       </td>
    </tr>
</table>
<![endif]-->

Как заставить haml оставить тег открытым для моей оболочки Outlook? Так что я могу закрыть его сам после таблицы body-email.

1 ответ

Хм. Хитрая вещь. Я думаю, вы могли бы сделать что-то вроде:

<!--[if (gte mso 9)|(IE)]>
%table.outlook-wrapper
  %tr
    %td
      %table.email-body
        -# some email content
<![else]-->
%table.email-body
  -# some email content
<![endif]-->

Но я уверен, что вам не нравится избыточность. Чтобы избежать этого, я бы поместил внутреннюю таблицу в частичное:

<!--[if (gte mso 9)|(IE)]>
%table.outlook-wrapper
  %tr
    %td
      = render :email_body
<![else]-->
= render :email_body
<![endif]-->

(Вызов рендеринга будет зависеть от того, что вы используете в haml. Нечто подобное выше, вероятно, будет работать с rails.)

Другие вопросы по тегам