разбить текст HTML в 2 абзаца - PullRequest
0 голосов
/ 12 апреля 2010

привет, у меня есть текст HTML, как это:

aaa dafjsld dslajfk òsal asfòljd <a href="ciao.com">aa aa</a> adsfsadfsadfs

Я хочу разделить его на 2 параграфа. но я не хочу генерировать эту ситуацию:

<p>aaa dafjsld dslajfk òsal asfòljd <a href="ciao.com">aa</p><p> aa</a> adsfsadfsadfs</p>

как я могу проверить, включает ли разделение какие-либо теги и избежать этого?

спасибо

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Используйте гем 'HtmlSlicer' для Rails.

Поместите эту строку в свой Gemfile:

gem 'html_slicer'

Тогда связка:

% bundle

Драгоценный камень действует намного сложнее, и он не может разбить текст по количеству частей. В любом случае из-за вашей локальной задачи:

content = "aaa dafjsld dslajfk òsal asfòljd <a href=\"ciao.com\">aa aa</a> adsfsadfsadfs"
split = HtmlSlicer::Interface.new(content, {:slice => {:maximum => 30}})
split
=> "aaa dafjsld dslajfk òsal asfòljd <a href=\"ciao.com\">aa</a>"
split.slice!(2)
=> "<a href=\"ciao.com\"> aa</a> adsfsadfsadfs"
2 голосов
/ 12 апреля 2010

Вы можете использовать simple_format для этого, предполагая, что ваш текст отформатирован правильно. Текст вашей ссылки должен заканчиваться внутри абзаца, а не следующего, поэтому я немного его изменил:

 aaa dafjsld dslajfk òsal asfòljd <a href='ciao.com'>aa</a>

 aa adsfsadfsadfs

Будет выведено:

<p>aaa dafjsld dslajfk òsal asfòljd <a href='ciao.com'>aa</a></p><p>aa adsfsadfsadfs</p> или что-то в этом роде, если вы передадите его simple_format.

0 голосов
/ 12 апреля 2010

Не зная больше о проблеме, наиболее общее решение, вероятно, будет включать Hpricot или REXML. Это обеспечит правильную обработку любых вложенных тегов. Вы можете пройти список узлов и решить, где создавать абзацы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...