тег xml с точкой в ​​haml - PullRequest
       6

тег xml с точкой в ​​haml

1 голос
/ 25 февраля 2011

У меня есть тег, содержащий точку (.), Которую я хочу сохранить в haml:

Haml:

%text
 %text.resource
  ...

Я бы хотел, чтобы Haml расширился до:

<text>
   <text.resource>...
   </text.resource>
<text>

но он продолжает делать:

<text>
   <text class="resource">...
   <text>
<text>

Есть ли какой-нибудь простой способ "избежать" расширения "класса" в Haml?

1 Ответ

0 голосов
/ 25 февраля 2011

HAML создан для генерации HTML различных форм, но вы можете обмануть его, чтобы создавать другие вещи, проявляя творческий подход.Ввод того, что вы хотите получить обратно:

<text>
<text.resource>...
</text.resource>
<text>

будет работать, потому что, если HAML видит строку, которая не начинается с одного из его зарезервированных символов, он будет выводить ее как есть.Вы не можете сделать отступ, иначе он разозлится.

От документы :

Обратите внимание, что теги HTML также передаются через неизмененные.Если у вас есть какой-то HTML, который вы не хотите конвертировать в Haml, или вы конвертируете файл построчно, вы можете просто включить его как есть.Например:

%p
  <div id="blah">Blah!</div>

компилируется в:

<p>
  <div id="blah">Blah!</div>
</p>

Вы можете сделать:

<text>
= "  <text.resource>..."
= "  </text.resource>"
<text>

, если вы настаиваете на отступе:

>>    <text>
>>      <text.resource>...
>>      </text.resource>
>>    <text>

РЕДАКТИРОВАТЬ:

ОП говорит:

проблема у меня заключается в том, что элипсис (...) означает, что я должен добавить большехамл-код там (куча тегов xml, которые будут «потомками», и поэтому мне нужно «сделать отступ» для строк после комментариев ...

XML не заботится об отступе; отступЭто эстетика, предназначенная только для человеческого глаза. Я бы больше беспокоился о функциональной и синтаксической корректности. Если вам абсолютно необходим «красивый» XML, подумайте о том, чтобы запустить вывод HAML через xmllint или tidy сустановлены флаги xml.

Или откажитесь от HAML, потому что вы начинаете злоупотреблять им, и используйте что-то вроде ERB и / или Erubis, что является более свободной формой и менее заботящимся о синтаксисе, или переходите к старой школе игенерировать XML с помощью операторов print и puts. Если вы настаиваете на использовании HAML и использовании своего iТогда я бы посоветовал проконсультироваться с разработчиками HAML и посмотреть, есть ли у них рекомендации.Это может быть HAML-фильтр, который будет полезен, или какой-то другой способ принудительно встроить уровень отступа.

Мой совет, как кто-то, кто делал это долгое время и бывал там слишком много раз:Как разработчики программного обеспечения, они могут потерять из виду конечную цель - быть функциональными и перейти к какому-нибудь упражнению по бритью, волнующемуся о мелочах, которые не достигают ничего реального.Если только не указано, что каждое пространство отступа является священным, я бы больше беспокоился о получении правильного XML и продолжении, а затем вернусь к нему и посмотрю, можно ли его откорректировать до совершенства.

...