Есть много сложностей в том, что вы делаете.
Пользовательский ввод
Если вы не попросите своего пользователя предоставить какой-либо контекст, вы никогда не будете угадывать структуру текста.По крайней мере, вы должны попросить их предоставить название и серию параграфов в вашем графическом интерфейсе.
В идеале вы могли бы попросить их следовать общеизвестному языку разметки (Markdown, Textile и т. Д.) И использовать синтаксический анализатор с открытым исходным кодом для извлечения структуры.
Внешняя страница
Если используется какая-либо страница, единственное, на что вы можете положиться - это «структурная разметка».Предполагая, что вы знаете, что заголовок страницы должен быть «Hello World», и где-то на странице есть элемент «h1», вы можете, возможно, предположить , что именно туда может идти заголовок.
Но если страницы являются тегом div, и для дифференцирования рендеринга заголовка используется только CSS, а не объем текста, вам придется догадаться как выполняется стилизация: это просто невозможно, если вы не знаете, как создается страница.
Я не думаю, что Lucene поможет в этом (насколько я знаю, Lucene создан для создания индекса слов, используемых в основной массе текста; я не думаю, что это может помочь вам угадать, какиечасть текста должна быть заголовком, подзаголовком и т. д.)
Генерация шаблонов с внешней страницы
Если вы «догадались» правильно,вы можете сгенерировать содержимое путем
- копирования со вставкой страницы
- с заменой изменяемых частей на теги выбранного вами языка шаблона
- с сохранением шаблона где-либо в шаблонизаторесистема может получить к нему доступ
- настроить свой шаблон / систему просмотра (viewResolver для скорости), чтобы использовать правильный шаблон для правого человека
Это, конечно, поставит ужасные юридические вопросы, так как вашшаблоны будут включать в себя работы автора оригинального сайта (скорее всего, материалы, защищенные авторскими правами)
Более реалистичное решение
Я бы предложил вам создатьВ вашей проблеме:
- с использованием ввода, имеющего некоторую информацию о структуре (используйте GUI для ввода, используйте язык разметки и т. д.)
- с использованием шаблонов, которые вас предоставить, знать структуру (и может очень легко использовать повторно)
Обратите внимание, что ни один из этих пунктов не связан с системой шаблонов.
В противном случае, я боюсьты направляешься на неоправданное количество работы ...