XSL for HomeSite
Что дают?
Набор правил, рекомендаций и конфигурационных файлов для настройки редактора HomeSite на удобную работу с XSL.
Если хотя бы одно из слов в предыдущем предложении вам непонятно дальше можно не читать.
Зачем вам это надо?
Система может вам пригодиться, если вы:
- пользуетесь HomeSite для правки XSL-кода
- хотите научиться писать XSL-код быстро нет, даже очень быстро
Система особенно рекомендуется тем, кто привык к горячей клавише Ctrl+F4.
Где брать?
Да прямо здесь: http://nnberg.narod.ru/xsl-for-homesite/xsl-for-homesite.zip (170 Кб)
Инсталляция файлов
Простым копированием решить вопрос вроде как не удаётся нужны ещё некоторые телодвижения.
Обозначения
- данные из дистрибутива путь указывается относительно корня дистрибутива
- данные в системе путь указывается относительно каталога, в который установлен HomeSite
(нпр., C:\Program files\Macromedia\HomeSite 5\)
- результат действий
Последовательность действий
- скопировать каталог XSL со всем содержимым в Extensions\TagDefs\
- результат: каталог Extensions\TagDefs\XSL\
- скопировать каталог XSL_Reference со всем содержимым в Help\
- результат: каталог Help\XSL_Reference\
- скопировать файл XSL tags.vtm в каталог Extensions\Outline Profiles\
- результат: файл Extensions\Outline Profiles\XSL tags.vtm
- включить режим Tag Insight (Settings/Editor/Tag Insight)
- для пользователей Home Site 4.5 и Home Site 5.0 – дополнительно добавить все XSL-теги в список тегов, к которым всплывают подсказки
- включить автозакрытие тегов Tag Completion (Settings/Editor/Tag Completion). Не забудьте добавить все XSL-теги в список для автозакрытия. Руками, при помощи кнопки Add.
- как вариант быстрой настройки и для проверки панель редактирования должна выглядеть так:
- вставить *.xsl в список расширений файлов (Settings/File Settings/Extension Manager):
- определить библиотеку XSL-тегов как поддающуюся поиску и XML-совместимую:
- перезагрузить HomeSite (не обязательно, но желательно)
Ура! Теперь вы можете использовать HomeSite как редактор XSL-тегов.
Результаты в картинках
Счастливыми обладателями чего мы являемся в результате деятельности по XSL-облагораживанию HomeSite'а?
Шпаргалка доступных тегов начинает всплывать сразу после добавления тегов в язык XSL. Префикс <xsl: следует вводить самостоятельно. Кстати, если вы не хотите, чтобы после ввода "<" сразу начинали всплывать подсказки для стандартного HTML, выключите флажок "Enable tag insight tag List". Но я этого делать не советую.
Следующий шаг шпаргалка атрибутов тега начинает работу после добавления этих атрибутов в описание тега.
Редко используемая подсказка "список всех атрибутов" поставьте курсор в тег и нажмите F2 (или Shift+F2, как я рекомендую настроить).
И, наконец, шпаргалка по возможным значениям атрибута после настройки соответствующих атрибутов как Enumerated.
Тег сам закрывается т.е. к нему приписывается парный закрывающий в момент, когда вы нажимаете ">" у открывающего тега. Это после того, как все XSL-теги введены в список автозакрываемых (Tag Completion). Не пугайтесь, что там только про HTML речь не страшно, XSL тоже съест. Правда, не весь тегу <xsl:processing-instruction> не повезло, он оказался длинноват.
Как понять, обязательный атрибут или нет? Вообще-то пользователи и сами не дураки, но на всякий случай дадим ещё одну подсказку разобьём атрибуты по группам.
Любимая функция редактор тега. Вы не знаете, что это такое? Ни разу в жизни не нажимали Ctrl+F4 (или просто F4, как я рекомендую настроить)? Хм... Почитайте хотя бы раздел Using Home Site/Editing Pages/Using Tag Editors в стандартной документации. Сэкономите очень много сил и времени.
Если в теге есть обязательные атрибуты, то их названия выделены жирным шрифтом. Не самое лучшее решение, но хоть что-то возможности VTML по оформлению текста сильно ограничены.
Если элемент обычно используется в краткой форме (нпр., <xsl:fallback/>), то соответствующий флажок по умолчанию установлен. Иначе (как на этой картинке) снят.
Снабдим редактор тегов контекстной помощью. Я просто нарезала куски спецификации. Но нет предела совершенству: файлы помощи находятся по адресу Extensions/TagDefs/XSL/имя тега.html, их можно безболезненно редактировать.
Помощь можно открыть и в независимом окне, если нажать самую маленькую кнопочку (невнятная пиктограммка справа от Help).
ToDo List
Список дел по проекту. Ведётся в системе WackoWiki по одному из шаблонов WeaselWiki.
Здесь лишь один из "срезов" по времени (17.01.2004, 23:32), а не актуальная версия.
- автозакрытие XSL-тегов
-
вставить все теги XSL в список автозакрываемых тегов (Tag Completion) в настройках HomeSite (обязательно с префиксом!)
- тег <xsl:processing-instruction> не влез длинноват
- подсказки в HomeSite для XSL-тегов
-
создать язык разметки XSL => папка Extensions/TagDefs/XSL с файлами, описывающими теги
-
ввести собственно список тегов => файлы *.vtm в папке Extensions/TagDefs/XSL
-
сгруппировать теги (есть теги верхнего уровня, есть инструкции, есть ещё что-то) => не нужно (точнее, не придумать потребность пользователя под эту функциональность)
-
ввести атрибуты тегов
-
пометить обязательные атрибуты каждого тега => группа "обязательно" (см. <ATTRIBCATEGORIES> в .vtm-файлах тегов)
- быстрое редактирование XSL-тегов
- можно ли сделать кнопку, запускающую проверку XPath внешними средствами
- видимо, можно через AciveX, но это пока не выглядит лёгким делом
-
эскиз окон редактора тегов атрибутов поля и метки, самый общий набор
-
спросить Сайго о приоритетных тегах и атрибутах => вопрос / ответ
-
"естественно" (по приоритетам) расположить в окнах редактора тегов поля ввода атрибутов
-
этот же приоритет учесть при задании порядка вывода атрибутов в тег
-
прописать заголовки панелей в редакторе тегов, содержащих поля ввода атрибутов => пока кроме тегов, не имеющих атрибутов
- прописать заголовки тегов где-нибудь в редакторе для тегов, не имеющих атрибутов
- может, полезно прописать описание тега в атрибуте name VTML-тега <TAG>
-
пометить, какие теги могут иметь содержание => параметр bodyediting тега <TAG>
-
создать элементы для ввода содержания тега => *TagBody
-
привязать переменную $$TagBody к элементу valTagBody
- в каких тегах есть смысл сразу генерить дочерние элементы
-
проставить значения по умолчанию для флажка "сразу закрыть" => только в актуальных для Сайго тегах
- проставить эти же значения в "неактуальных" тегах
-
привязать значения атрибутов к элементам формы
-
пометить тип данных для атрибутов => отложу, это вторично
-
выбор способа цитирования значения атрибута (апостроф или кавычки)
- функция Find автоматически поймет, нужны ли апострофы
-
автоматически анализировать необходимость апострофов в момент вывода тега
- комментирование тега
- для краткой формы обычный комментарий, для полной "окружающий"
-
быстрое закрытие
- как распознать, что тег не имеет парного закрывающего
- это реализовано на системном уровне (точнее, не реализовано :), о проблеме можно забыть
-
определить логику редактирования тегов
- контекстная помощь по XSL
-
прописать страницы помощи к тегам => Extensions/TagDefs/XSL/имя тега.html
- оформить так, чтобы тексты были читабельными (увеличить шрифт)
-
объединить помощь по XSL с общесистемной помощью HomeSite => каталог Help/XSL_Reference/, просто html-файлы
- поставить ссылки из окон редактирования тегов в общую помощь
- отредактировать систему помощи
- языковой профиль (outline) для XSL
-
создать профиль => конфирурируется в XML-файле Extensions/Outline Profiles/XSL tags.vtm
-
поместить в этот профиль XSL-теги
- руками править соответствующий *.vtm-файл Extensions/Outline Profiles/XSL tags.vtm
-
проставить флажок Unenclosed tag warning для каждого тега
-
определить правила описания тега в окне структуры документа => пока везде вполне можно выводить тег целиком
-
проставить режим '<' & TagName & TagString & '>' для отображения тега в дереве документа
- сопоставить иконки с ключевыми тегами
- какие теги ключевые, и где взять иконки
- визарды для шаблонных задач вёрстки
- составить предварительный список задач
- интеграция в систему
- написание инструкции по ручной инсталляции пакета
- проверка на версиях 4.5, 5.0 и 5.5
- рисование кнопок для визардов шаблонных задач
Ссылки по теме
Набор ссылок не отличается оригинальностью наверняка вы уже побывали на всех этих сайтах.
http://www.w3.org/TR/1999/REC-xslt-19991116
Официальная спецификация XSLT 1.0. Рекомендована
W3C 16 ноября 1999 года.
http://www.rol.ru/news/it/helpdesk/xslt01.htm
http://www.bhv.ru/books/book.php?id=288
http://www.books.ru/shop/books/22090
http://www.ozon.ru/context/detail/id/964846/
Книга Алексея Валикова "XSLT". Рекомендую как настольную. Нечасто наша книга по технологиям на порядок лучше всех западных. Правда-правда.
http://www.vbxml.com/xslathome/
Тоже самое, что и здесь, только по-английски и в десять раз больше :). Переходите по этой ссылке, если вам мало того, что вы увидели здесь.
http://www.dpawson.co.uk/xsl/sect2/sect21.html
Великолепный архив часто задаваемых вопросов (FAQ) по XSLT-технологиям. Живёт не сам по себе, а паразитирует на рассылке
XSL-List. Участие в рассылке рекомендую для тех, кто по уши завяз в XSLT
(я нет :).
http://xml.raleigh.ru/phpbb/
Довольно активный
русскоязычный форум по XSLT-технологиям. К посещению рекомендуется и
весь сайт.
http://www.xmlhack.ru/forum/xml/
Ещё один - даже более правильный, чем предыдущий -
русскоязычный форум по XSLT-технологиям. И
сайт при нём тоже весьма полезен.
О проекте
Самое скучное потому и в конце.
Где деньги?
Теоретически здесь всё бесплатно. Я жду от вас только bug report'ы :) пишите: nnberg@yandex.ru.
Вы кто?
Команда разработчиков выглядит примерно так:
Нина Николаевна Берг
Реальный человек (и действительно девушка точнее, тётенька), написавший все эти килобайты текстов и кода.
Обычно пишу куда более читабельные материалы но этот проект просто уж очень давно хотелось сделать.
А тут и время нашлось (без работы сижу).
Сайго Кадзума
Виртуальный "идеальный XSL-верстальщик". Бета-тестер проекта.
У Сайго есть реальный тёзка-прототип. Запомните это имя, пригодится.
Ну и?
Вопросы, предложения, пожелания, замечания вполне себе welcome: nnberg@yandex.ru.