Добавить пробел в конце строки в Jade
У меня есть этот jade код:
p
| Avatar hosted by
a(href='http://www.gravatar.com/', target='_blank') Gravatar
Проблема заключается в том, что она отображается
<p>Avatar hosted by<a href="#" onclick="location.href='http://www.gravatar.com/'; return false;" target="_blank">Gravatar</a></p>
Как выглядит: "Аватар, размещенный Gravatar".
Независимо от того, сколько пробелов я добавил в конце текстовой строки, все равно выглядит так. Документы мне не помогли, и я не могу представить, что это такая необычная проблема.
Ответы
Ответ 1
Если вы не хотите встроенных HTML или HTML-объектов в свой код, это то, что вы можете сделать:
p
| Avatar hosted by
= ' '
a(href='http://www.gravatar.com/', target='_blank') Gravatar
или это короче
p= 'Avatar hosted by '
a(href='http://www.gravatar.com/', target='_blank') Gravatar
Самый чистый, вероятно, это
p Avatar hosted by #{''}
a(href='http://www.gravatar.com/', target='_blank') Gravatar
Ответ 2
Какую версию нефрита вы используете? Я просто тестировал (с 0.25.0) с одним пробелом, следующим за "by", и он работал правильно.
Другие варианты:
p
| Avatar hosted by
a(href='http://www.gravatar.com/', target='_blank') Gravatar
или
p
| Avatar hosted by
| <a href='http://www.gravatar.com/' target='_blank'>Gravatar</a>
Ответ 3
Теперь Jade поддерживает интерполяцию встроенных тегов.
p this is #[strong test] of how jade will treat #[i #[u inline tags]]... like #[a(href="/") anchor tags] and #[+a() mixins].
http://jade-lang.com/reference/interpolation/
Ответ 4
Вы уверены, что это не ваш редактор? Я использую Komodo, и он был настроен на удаление конечных пробелов при сохранении. Когда я сохранил файл, он удалял пространство в конце моей текстовой строки. Отсутствие пространства между моим текстом и ссылками приводило меня в бешенство, пока я не понял это. Я изменил настройки Komodo (Preferences- > Editor- > Save Options), чтобы снять отметку с пробела, и проблема исчезла.
Ответ 5
Я использую переменную space
в новой строке. Это:
p
| You must follow
=space
a(href=default_url) this link
Ответ 6
изменить
Как отмечал jmar777, последние версии нефрита должны оценивать прослеживание пробелов см. Здесь. Это потрясающе, и я могу снова попробовать нефрит в будущих проектах.
изменить
Обновлена ссылка на парсер jade. Оригинальная ссылка была для jade 1.11.
Ответ 7
Быстрое и чистое решение заключается в использовании этого синтаксиса:
p
| Avatar hosted by
|
a(href='http://www.gravatar.com/', target='_blank') Gravatar
Обратите внимание на пробел после |
на второй текстовой строке. Это добавит пробел после предыдущего текста строки (а также выплюнет неприятную ошибку, если вы забудете добавить ее!).
Пока это самый чистый вариант, на мой взгляд.
Ответ 8
Я использую Harp, а решение с двумя трубами Óscar Gómez выдает ошибку, хотя выглядит очень элегантно.
Благодаря Даниил Пронин и Sean Gravener, я нашел, что эти решения работают для меня:
#{' '}
!{' '}
и
= " "
p
| Avatar hosted by #{' '}
a(href='http://www.gravatar.com/', target='_blank') Gravatar
и
p
| Avatar hosted by
= ' '
a(href='http://www.gravatar.com/', target='_blank') Gravatar
Кроме того, если у вас есть обратная ситуация: span text # {ref + ['']}
Здесь больше о синтаксической интерполяции в Pug (Jade):
https://pugjs.org/language/interpolation.html