просто создать сайт для миграции платформы - существующее программное обеспечение или скрипт разбора? - PullRequest
1 голос
/ 06 июля 2011

Я перемещаю веб-сайт с одной платформы на другую. Часть требований состоит в том, чтобы поддерживать URL, которые могут быть добавлены в закладки, что я буду делать с правилами перезаписи.

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

В качестве первого шага я собираюсь выполнить некоторый анализ и создать упрощенную версию сайта. В этой упрощенной версии я беспокоюсь только о ссылках.

Итак, что я хотел бы сделать: разобрать страницу и выкинуть большую часть html, за исключением любой ссылки (внутренней или внешней). Если набор ссылок находится в определенном HTML-теге (скажем, <ul>, который действует как меню, или <div>, который действует как область содержимого, я бы хотел сохранить это вложение тегов html.

В основном я хочу закончить так:

index.html
<html>
  <body>
   <tag>
      <a href='page2.html'>Menu Item 1</a>
      <a href='page3.html'>Menu Item 2</a>
      <a href='page4.html'>Menu Item 3</a>
   </tag>
   <tag>
      <a href='page5.html'>SubMenu Item 4</a>
      <a href='page6.html'>SubMenu Item 5</a>
      <a href='page7.html'>SubMenu Item 6</a>
   </tag>
   <tag>
      <a href='page8.html'>Side Menu Item 1</a>
      <a href='page9.html'>Side Menu Item 2</a>
      <a href='page10.html'>Side Menu Item 3</a>
   </tag>   
   <tag>
      <a href='site.com'>Content External link</a>
      <a href='about_us.html'>Content Internal Link</a>
   </tag>
  </body>
</html>

Где <tag> может быть любым html-тегом блочного стиля - не обязательно должен быть первым тегом, который разделяют ссылки.

Скрипт / программа не должны быть достаточно умными, чтобы знать, «Это меню» или «Это панель навигации»; если он может группировать ссылки в первом HTML-теге, в котором они все существуют, этого будет достаточно.

Есть ли сценарий или часть программного обеспечения, которая уже делает это? Или я напишу свой собственный?

Если я напишу свое собственное, как мне выполнить html-разбор? Я слышал, что регулярные выражения не являются ответом, так как они не могут отслеживать состояние и, следовательно, не могут знать о структуре вложенных тегов.

...