HAML использование ссылок в тексте без новой строки

в настоящее время я разрабатываю небольшое приложение Sinatra Ruby. Для слоя презентации я использую HAML, который работает довольно хорошо.

однако у меня есть страница FAQ, которая имеет более длинные текстовые абзацы, что не является проблемой. Но в некоторых отрывках я хотел бы включить ссылки. С чистым HTML это очень легко достичь и по-прежнему читается.

<p>
I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text.
</p>

С HAML я застрял с этими новыми абзацами, которые затем выглядят так:

%p
 I'm talking about 
 %a {:href => 'http://ruby-lang.org'}>Ruby 
 in this text.

Я думаю, что действительно это прерывает рабочий процесс.

есть ли способ в HAML просто вставить ссылку без использования новой строки?

5 ответов


Я предполагаю, что вы спрашиваете о добавлении ссылок без новых строк в источник Haml. Здесь невозможно делать то, что ты хочешь. От Haml на часто задаваемые вопросы:

выражение структуры документа и выражение встроенного форматирования-две очень разные проблемы. Haml в основном предназначен для структуры, поэтому лучший способ справиться с форматированием-оставить его на других языках, которые предназначены для он.

Haml использует пробелы и отступы, чтобы определить, что делать, и без каких-либо новых строк нет никакого отступа, и поэтому haml не может определить, какие элементы добавить на страницу.

если вы просто хотите блоки статического текста, вы можете использовать фильтр уценки как FAQ предлагает следующее:

:markdown
  I'm talking about [Ruby](http://ruby-lang.org) in this text.

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

I'm talking about 
%a{:href => 'http://ruby-lang.org'}>Ruby 
in this text.

использует > для удаления внешних пробелов будет производить:

I'm talking about<a href='http://ruby-lang.org'>Ruby</a>in this text.

и это будет выглядеть как

Я говорю оРубинв этом тексте.

т. е. без пробелов вокруг "Рубина", который, вероятно, не то, что вы хотите.


Это проще, чем вы думаете. Просто прочитайте эту ссылку: http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#whitespace_removal__and_

таким образом, использование просто, просто добавьте меньше-знак "

%p<
 I'm talking about 
 %a {:href => 'http://ruby-lang.org'}>Ruby 
 in this text.

и он будет генерировать именно то, что вы хотите сделать.


не знаком с Синатрой, но в Rails вы можете просто сделать это:

%p
  I'm talking about #{ link_to 'Ruby', 'http://ruby-lang.org'} in this text.

вы также можете использовать встроенный HTML в HAML.

%p I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text.

прекрасно это:

%p
  I'm talking about 
  = link_to 'Ruby', 'http://ruby-lang.org'
  in this text.