Задание для АБАК Пресс
Небольшой сайт, который состоит из текстовых страниц, организованных в иерархию. То есть, одна страница может быть под-страницей другой страницы. На главной странице расположено дерево страниц сайта:
страница
подстраница
подстраница
подподстраница
страница
Каждая страница описывается следующими полями:
- имя страницы - строка, удовлетворяет условию [a-zA-Z0-9_], ДОПУСТИМЫ РУССКИЕ СИМВОЛЫ
- название страницы - произвольная строка
- текст страницы - произвольный текст, в котором может присутствовать html-разметка.
Адресная схема мини-сайта:
- [site]name1/name2/name3 - открывается страница с именем name3, которая является под-странице страницы name2, которая является под-страницей страницы name1. На странице виден её текст и заголовок, а также поддерево всех её подстраниц.
- [site]name1/name2/name3/edit - страница открывается в режиме редактирования - можно редактировать заголовок и текст. После сохранения нужно делать редирект на адрес [site]name1/name2/name3.
- [site]name1/name2/name3/add - форма добавления подстраницы к текущей странице, можно задать имя, заголовок и текст. После добавления нужно делать редирект на адрес [site]name1/name2/name3/[новое имя].
- [site]add - форма добавления корневой страницы.
При сохранении или добавлении текст страниц должен подвергаться следующим преобразованиям:
- **[строка]** => <b>[строка]</b> (выделение жирным)
- \\[строка]\\ => <i>[строка]</i> (выделение курсивом)
- ((name1/name2/name3 [строка])) преобразовывать в ссылку на страницу [site]name1/name2/name3: <a href="[site]name1/name2/name3">[строка]</a> Однако, при редактировании страницы пользователь должен править неформатированный текст.