
При поддержке kozhanovan большей частью решил проблему, о которой писал в этом посте. Здесь я опишу, как сделать xml-шаблон сайта самым простоым, какой я могу придумать, способом. Действительно, просто, если знать, какие действия нужно проделать. Да и действий-то — по пальцам пересчитать можно.
Предполагаю, что вы знаете, что работать с html-ем нужно не в ворде, а в редакторе простого текста, вроде блокнота. Есть, впрочем и специальные редакторы для xml, но их я здесь обсуждать не буду.
Приступим.
Во-первых, ваш html должен быть вэлформед (well-formed). Это подразумевает, что каждый открывающий тэг (<my_tag>) должен иметь соответствующий закрывающий (</my_tag>), или быть пустым (<my_tag />). Так же, каждый значение каждого параметра тэга должно быть заключено в кавычки (так можно <img src="a.gif" />, а так нельзя <img src=a.gif />). Даже вольное обращение с комментариями может быть причиной ошибки преобразования.
Далее, из страницы вы выделяете шаблон, в котором на месте будущего содержания вставляете какую-нибудь пометку, чтобы не потеряться. Например так.
| Предварительный шаблон |
|---|
| ><!-- Начало html-шаблона страницы --> |
Теперь превратим наш шаблон в xsl протым добавлением вначало, вконец и в середину небольших кусков кода.
| simple.xsl |
|---|
| ><?xml version="1.0" encoding="windows-1251" ?> |
Далее создаем xml-файл содержания страницы. По-хорошему, xml придуман для смысловой разметки документов. То есть нужно не указывать выделение жирным для имени автора книги и курсивом для названия, а создать тэги <author> и <title> и соответствующим образом разметить данные. А уже в xsl-таблице, предназначенной для отображения в интернете, указать, что тэг author соответствует жирному шрифту, а тэг title курсиву. Если предпочтения для отображения изменились, менять придется только xsl. Я упрощаю, конечно.
Это правильно... Но до-олго. Создавать продуманную структуру для простенького сайта мне совершенно не хочется. Так что поступим проще. Оставим разметку содержания html-тэгами, а содержание будет просто копироваться в нужное место шаблона.
Чтобы получить xml, добавим в начала файла две стандартные строки, а дальше заключим все содержание, которое должно войти в страницу, в тэги <content> и </content>.
| simple.xml |
|---|
| <?xml version="1.0" encoding="windows-1251" ?> <?xml-stylesheet type="text/xsl" href="simple.xsl"?> <content> <!-- Начало вставляемого содержания страницы --> <p align="justify"> <font color="darkred" style="font-size: 12pt"> <b>Интересный</b> <i>типа текст</i> <strike>тут</strike> </font> </p> <!-- Конец вставляемого содержания страницы --> </content> |
Вторая строчка там указывает на соответствующий xsl-файл. Это особенно важно, если вы собираетесь поручить xsl-преобразование браузеру.
Далее, вы берете программу, которая выполняет для вас xsl-преобразование, или просто открываете xml-файл в браузере. Вуаля!
| Вид simple.html в браузере |
|---|
Это заголовок,который будет на каждой страницеИнтересный типа текст С вопросами заходите сюда: yaguanodont.livejournal.com |
Полученный после преобразования код будет таким:
| Исходный код simple.html |
|---|
| <html> <head> <META http-equiv="Content-Type" content="text/html"> </head> <body> <h1>Это заголовок,</h1> <h2>который будет на каждой странице</h2> <hr width="30%" align="left"> <p align="justify"> <font color="darkred" style="font-size: 12pt"> <b>Интересный</b> <i>типа текст</i> <strike>тут</strike> </font> </p> <hr width="30%" align="left"> С вопросами заходите сюда: <a href="http://yaguanodont.livejournal.com/">yaguanodont.livejournal.com</a></body> </html> |
Как видите, все встало на места. Комментарии, кстати, не сохранились. Это потому, что комментарии в xml выделяются так же как в html.
Зачем я вставил   в xml-файле между "типа" и "текст"? А чтобы не забыть сказать вам, что большинство ссылок на специальные символы, вроде в xml нельзя использовать без дополнительного DTD-описания. Поскольку я хотел сделать пример предельно простым, я обошелся прямым указанием кода символа "неразрывный пробел". Обычно, таких символов много не бывает, так что проблем быть не должно.
На больших шаблонах страниц и содержания я этот метод еще не проверял, но если ваш html вэлформед, думаю, все будет хорошо. Для проверки своих файлов я использую редактор XmlShell. Он может и проверить, и провести преобразование, и при редактировании кое-какие подсказки выдает. Хотя редактирую по-старинке, в Far'е.
Для xsl-преобразования файлов есть еще более простая программа, без редактора, — Xsltprocessor. Ее преимущество — предельная простота. Три поля для выбора xml, xsl и выходного файла и кнопка выполнения.
Обе эти программы могут обрабатывать только один xml-файл за раз. Натравить их сразу на директорию не удается. Кроме того, даже xsl-таблицу для xml-файла придется указывать вручную, хотя путь к ней и указан.
К сожалению так и не удалось найти программу, которая могла бы применить одно и то же xsl-преобразование сразу к папке xml-файлов. Если кто такую знает, буду благодарен за информацию. Например, наткнулся на утилиту xsltproc, которая работает с командной строки. Что-то подобное мне бы подошло, но она под юникс.
* * *
Вот так, в два счета, теперь можно сделать простейший шаблон для оформления сайта. Но это очень простой вариант. Например, заголовок всех страниц с таким шаблоном будет одинаковым, что не очень хорошо. Если хотите узнать больше, читайте, например, тут и тут.

Комментариев нет:
Отправить комментарий