Подтвердить что ты не робот

Добавить пробел в конце строки в 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".

Независимо от того, сколько пробелов я добавил в конце текстовой строки, все равно выглядит так. Документы мне не помогли, и я не могу представить, что это такая необычная проблема.

4b9b3361

Ответ 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&nbsp;
    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