Дополнительные пробелы в значениях HTML, отображаемых с помощью Jade - PullRequest
7 голосов
/ 22 ноября 2011

Каждый раз, когда я пишу свой HTML в Jade, после каждого элемента добавляется дополнительный пробел.

Например, у меня будет такая строка в моем шаблоне Jade:

label(for="keyword") Keyword

И когда он рендерится, исходный код будет выглядеть так:

<label for="keyword_1">Keyword
          </label>

Столкнулся с некоторыми проблемами из-за лишних пробелов в работе с моим CSS.Кроме того, это не выглядит аккуратно:)

Кто-нибудь знает, как я могу предотвратить его вставку?

1 Ответ

11 голосов
/ 22 декабря 2011

Проверьте обновление внизу

Я предполагаю, что вы используете express - проверьте настройки вашего приложения.

app.set('view options', { pretty: false })

Если у вас есть jade рендеринг в режиме pretty (pretty: true), тогда ваш сгенерированный источник (теги) упорядочится с вложенным отступом.Отключение красивой печати должно решить вашу проблему (хотя убедитесь, что у вас нет конечного пробела, как указано @alessioalex).

Если у вас есть причина, по которой вам нужно вывести красивое форматирование (спецификация клиента, вмой случай) тогда можно попробовать другие вещи.У меня была похожая проблема с тегом textarea;разочарование, потому что пробелы фактически вводятся в содержание формы.Я обошел это, вставив буквальный HTML-код с закрывающим тегом:

<textarea name="someField"></textarea>

документы могут дать вам больше подробностей (в этом случае найдите html).Существует открытая проблема # 341 на github, которая предлагает подход, подобный , этот для скалята , но в настоящее время он не работает в jade (по состоянию на версию 0.19.0).

HTH

Обновление

Хорошо - тонко и круто ... есть лучший способ сохранить сексуальный вывод от pretty: true и избежатьинтервал внутри тега (мой textarea пример) ... Я только что попытался добавить . в конец тега (см. код), и он Just Worked ™ : -)

form(name='frmname', method='POST')
  textarea(name='someField').

Отображает:

<form name="frmname" method="POST">
  <textarea name="someField"></textarea>
</form>

Красота!

Почему это работает?Поскольку jade обрабатывает суффикс . на теге как индикатор того, что тег будет содержать текстовый блок (только), а затем текстовый блок не предоставляется, поэтому по умолчанию используется '', пустая строка.

...