Изучать Wiki я решил на всё том же TZVista.xml. Для этого я просто переопределил шаблоны TZViewEn.xsl и TZViewRu.xsl на более простое представление TZWikiEn.xsl и TZWikiRu.xsl. Но оказалось всё не так просто.
Движок, обрабатывающий .wiki файлы имеет ряд ограничений:
- Размер.
Желательно, чтобы .wiki файл имел размер около 32Кб. Но исходные данные слишком большие. И отображения я смог добиться убрав многоязычные название часовых поясов. Поэтому, чтобы показать в Wiki все данные, придётся разбивать результат на части. Учитывая, что общий размер .wiki файла в десять раз превышает рекомендуемый размер, логичнее всего разбить результат по часовым поясам, кратных 1 часу. От UTC-12 до UTC+13 их получается 26. Т.к. я использую XSLT 1.0, много выходов можно получить лишь многократными преобразованиями (скрипт TZWiki.wsf). Для это я использую входной аргумент UTC, значение которого определяет часовой пояс. - Ссылки.
Получилось много файлов. Следовательно общий список часовых поясов теперь нельзя построить используя замечательный тег <wiki:toc/>. Теперь список нужно строить в виде ссылок. Казалось, чего бы проще, сделал ссылку в виде [Страница#Заголовок Название] и всё. А нет. Нужно обзывать правильно сами страницы. К примеру нельзя использовать символ "_", иначе ссылка будет простым текстом. Так же нельзя использовать русские буквы в заголовке. Наверно можно воспользоваться HTML ссылкой A, но тут нужно учесть, что в названии ссылки на заголовок не только заменяются пробелы символом "_", но ещё название обрезается. По любому я пошёл другим путём - добавил заголовки латиницей перед основным (только с более низким уровнем, чтобы wiki-индекс его не захватил) и теперь достаточно правильно назвать все страницы и сослаться на английские заголовки. - Заголовки.
Но тут я тоже столкнулся с проблемой выбора заголовка-ссылки. Дело в том, что использовать атрибут Name (с типом xs:ID) не стоит, т.к. Wiki отображение начинает умничать и решает, что это ссылка на другую страницу. И вроде бы нестрашно, но тут пропадает название ссылки, и из общего списка мы попадём только в начало страницы. Да, добавление символа "!" в начале тоже не спасает, т.к. те заголовки, которые не считались ссылкой, стали начинаться с этого "!". Для меня стало выходом использование название ключей в реестре - они и удобочитаемые и английские.
Вот так методом проб и ошибок я добился отображения часовых поясов в Wiki. Конечно опять же практической пользы никакой, но дружественное отображение тоже пригодится. Только вот с переопределением шаблонов нужно будет хорошо подумать. Так уж сложилось, что TZVista.xml имеет самое простое отображение, для остальных XML-документов нужно будет постараться.
Комментариев нет:
Отправить комментарий