LINUX.ORG.RU

Ruby on Rails, «хабракат», что есть из готового?

 ,


0

2

Привет.

Нужно получить функциональность Хабравского ката (или `more`). Есть ли что готовое? Или просто тупо парсить текст splitом до первого {cut}? И в догонку — есть ли вменяемые gems, которые могут закрывать все незакрытые тэги (более-менее правильно).

★★

Последнее исправление: GreenBag (всего исправлений: 1)

Не бери от пользователей html, там кроме закрытия не закрытых тегов есть сотня другая способов провести xss.

zz ★★★★
()
Последнее исправление: zz (всего исправлений: 1)

И почему у тебя джава на аватаре %)

zz ★★★★
()

Напоминает тему на stackoverflow в которой был задан вопрос о том, как при помощи jQuery сложить два числа. Так и тебе: на каждую мелочь, реализуемую за 10—15 минут обязательно нужен gem. Может тоже сделать gem, который бы складывал два целых числа? :D

resurtm ★★★
()

не слушай zz и используй sanitize. Он и теги закроет, и js выключит, и оставит только те теги, которые тебе надо. Для хабраката можно использовать либо split при выводе, либо делать split при сохранении, часть до ката сохранять в отдельное поле, полный текст отдельно. Это поможет ускорить вывод.

drakmail ★★★★
()
Ответ на: комментарий от drakmail

Теги он не закрывает.

1.9.3p327 :012 > include ActionView::Helpers::SanitizeHelper   
 => Object
1.9.3p327 :013 > s = '<p class="test">some text here'
 => "<p class="test">some text here" 
1.9.3p327 :014 > sanitize(s, tags: 'p')
 => "<p class="test">some text here"

Закрывать теги придется парсером.

void
()
Последнее исправление: void (всего исправлений: 1)

html

пока не поздно впиливай markdown

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)

Всем спасибо за ответы. Таки сделал свой «велосипед» — текст отдаю в markdown, split по своему «кату».

GreenBag ★★
() автор топика

Есть такой гем sanitize, он умеет закрывать теги (именно сторонний гем, а не встроенный SanitizeHelper). Собственно, вот он: https://github.com/rgrove/sanitize

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.