У меня есть сайт Rails, где содержимое написано в методе уценки. Я хочу показать фрагмент каждого из них с помощью ссылки "Читать дальше..".
Как мне это сделать? Простая усечка исходного текста не будет работать, например..
>> "This is an [example](http://example.com)"[0..25]
=> "This is an [example](http:"
В идеале я хочу разрешить автору (необязательно) вставить маркер, чтобы указать, что использовать в качестве "фрагмента", если это не займет 250 слов и добавит "..." - например..
This article is an example of something or other.
This segment will be used as the snippet on the index page.
^^^^^^^^^^^^^^^
This text will be visible once clicking the "Read more.." link
Маркер можно рассматривать как маркер EOF (который можно игнорировать при отображении полного документа)
Я использую maruku для обработки Markdown (RedCloth очень предвзято относится к Textile, BlueCloth чрезвычайно глючит, и я хотел родной -Ruby parser, который исключает привязку привязки и RDiscount)
В качестве альтернативы (поскольку Markdown переводится на HTML в любом случае), правильная усечка HTML-кода была бы вариантом - хотя было бы предпочтительнее не markdown()
весь документ, просто чтобы получить первые несколько строк.
Итак, варианты, о которых я могу думать, (в порядке предпочтения).
- Добавьте параметр "усекать" в парсер maruku, который будет анализировать только первые слова x или до отметки "выдержка".
- Создать/найти парсер-агностик Markdown truncate'r
- Создать/найти интеллектуальную функцию усечения HTML