Обтекание текста строками на границах слов
1) Я хочу автоматически обернуть текст словами, чтобы каждая строка не превышала 56 символов.
Есть ли способ сделать это, или мне нужно катить свое?
@comment_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
Мой взгляд:
<%= @comment_text.cool_string_function( 56 ) %>
будет отображать:
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.
2) Я хочу отложить текст на 4 пробела, чтобы:
<%= @comment_text.cool_string_function( {:width => 56, :indent => 4} ) %>
будет отображать:
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.
Ответы
Ответ 1
Я считаю, что функция, которую вы ищете, word_wrap
. Что-то вроде этого должно работать:
<%= word_wrap @comment_text, :line_width => 56 %>
Вы можете комбинировать это с gsub
, чтобы получить желаемый отступ:
<%= word_wrap(@comment_text, :line_width => 52).gsub("\n", "\n ") %>
Но вы должны перенести это в вспомогательный метод, чтобы ваш взгляд был чистым.
Ответ 2
Возможно, word_wrap помощник может помочь вам.
Чтобы отпечатать текст, вы можете заменить \n
(newline) на новую строку + 4 пробела.