алгоритм разбиения большого html на страницы

PooH

подскажите куда копать по сабжу
есть большой текст с "неправильной" разметкой: т.е. куски текста заключены в <p> или просто отделены <br> от всего остального, заголовки в <h1> и <div> рандомно
как не меняя исходный текст по умному разбить его на более-менее равные куски
в голову пока пришло только с помощью simple html dom parser разбить текст на ноды, из нодов собирать куски, если кусок слишком большой, то разрезать его по тексту
из трудностей: необходимо сохранить все тэги на своих местах (т.е. обойтись без предварительной "нормализации" текста разрезать по-умному - заголовок на одной странице с абзацем и т.д.
где посмотреть примеры, т.к. пробная версия, которую я написал не очень умно все это делает + регулярки там много, поэтому достаточно дорого выходит
хотелось бы еще написать все более-менее компактно, красиво и расширяемо
пока написал через рекурсию, которая последовательно дробит на составные части, но получилось не очень, в частности приходится заводить множество входных параметров для обрамления новый страниц и т.д.

Dasar

как не меняя исходный текст по умному разбить его на более-менее равные куски
равные с точки зрения показа? или чего?
> регулярки там много
для такой задачи лучше сразу брать html-parser (tidy может тот же) переводить в xhtml, а дальше уже работать, как с xml-ем.

PooH

равные с точки зрения показа? или чего?
равные с точки зрения длины осмысленного текста (тэги не учитываем)
длина - $maxlenght и $deviation - допустимое отклонение

Barbie29

plain text сделай и потом разбивай кусками по 50 строк или сколько там

PooH

plain text сделай и потом разбивай кусками по 50 строк или сколько там
"пост не читал, зато я самый умный"

PooH

пока написал рабочую версию
парсит по нодам, потом по абзацам, потом по предложениям, потом по словам.
пока отложу, записал себе в todo ввести систему правил и приоритетов деления (типа делить по абзацам лучше чем отделять заголовок, внутри предложения делить на точке с запятой, а потом на запятой и т. д.)
если когда-нибудь допишу, то запощу сюда

Lunochka

вопрос в тему: не знаешь, можно ли средствами HTML / CSS сделать в html, чтобы при печати колонтитулы были?

uncle17

а что такое колонтитулы?

uncle17

значение я знаю, а вот область применимости непонятна. Ну да фиг с ним

serega1604

Вот потому, что вы говорите то, что не думаете и думаете то, что не думаете, вот в клетках и сидите. И вообще, весь этот горький катаклизм, который я тут наблюдаю… ©
Оставить комментарий
Имя или ник:
Комментарий: