Расширение Dreamweaver: настройка анализа сторонних тегов.
Поскольку в последнее время я занимаюсь разработкой плагинов Dreamweaver, материалов на китайском языке очень мало, а мой английский плохой. Когда я проверяю английские материалы, я не могу не чувствовать. испытывающий головокружение. После того, как мне пришлось перевести часть важного контента на китайский язык, я почувствовал себя гораздо более отдохнувшим, когда прочитал его. Этот отрывок взят из документа «Расширение Dreamweaver 8», входящего в состав Dreamweaver 8. При переводе я ссылался на «Справку по Dreamweaver 4 на китайском языке», переведенную Сякедао. Но, честно говоря, у меня есть некоторые сомнения, что некоторые части справки были переведены с помощью такого программного обеспечения, как Kingsoft Translation. В любом случае, его труднее читать, чем английский.
Серверные технологии, такие как ASP, Macromedia ColdFusion, JSP и PHP, используют в файлах HTML специальный синтаксис, отличный от HTML, а сервер создает и обслуживает контент в формате HTML на основе этих кодов. Когда Dreamweaver обнаруживает теги, отличные от HTML, Dreamweaver сравнивает их, вызывая сторонние файлы определения тегов, которые определяют, как Dreamweaver считывает и отображает эти теги.
Например, в дополнение к стандартному языку HTML файлы ASP также содержат код ASP для анализа сервером. Код ASP похож на теги HTML. Он отмечен парой тегов: открывающим <% и закрывающим %>. В папке Configuration/ThirdPartyTags Dreamweaver имеется файл с именем Tags.xml. Этот файл используется для описания различных спецификаций сторонних тегов, включая ASP, и определяет, как Dreamweaver отображает эти коды. Благодаря этому подходу код ASP был стандартизирован в файле Tags.xml, поэтому Dreamweaver больше не будет пытаться анализировать какой-либо код между <%...%>. Однако в представлении «Дизайн» будет отображаться значок, указывающий, что это код ASP. Вы можете определить свои собственные теги и создать новый файл библиотеки тегов для каждого набора тегов, чтобы указать, как Dreamweaver считывает и отображает ваши теги.
Примечание. В этом разделе описывается, как определить в Dreamweaver метод отображения пользовательской метки, но не описывается, как редактировать содержимое или свойства пользовательской метки. См. раздел «Инспектор свойств» для получения информации о том, как создать инспектор свойств для проверки и изменения свойств пользовательской метки.
Каждый файл библиотеки тегов определяет имя, тип, режим содержимого, характеристики отображения и значок одного или нескольких пользовательских тегов. Вы можете создать любое количество файлов библиотеки тегов, но они должны находиться в папке Configuration/ThirdPartyTags, чтобы Dreamweaver мог их читать и обрабатывать. Файлы библиотеки тегов используют расширение .xml.
Совет: Если вы одновременно работаете над несколькими разными веб-сайтами (при условии, что вы фрилансер), вы можете определить все спецификации тегов в файле и сохранить его на специальном сайте для дальнейшего использования другими. Когда кто-то будет поддерживать сайт, вы можете передать полную библиотеку тегов, включая пользовательские значки и инспекторы свойств.
Вам необходимо определить спецификацию тега, используя тег XML, называемый tagspec. Например, следующий код представляет спецификацию тега с именем Happy.
<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif" icon_width="18" icon_height="18"></tagspec>
Вы можете использовать tagspec для определения Два вида этикеток:
·Общие теги в формате HTML
Пример счастливого тега — это обычный тег в формате HTML. Он начинается с тега <happy>, содержит данные между открывающим и закрывающим тегами и заканчивается тегом </happy>.
· Теги, разделенные строками. Теги, разделенные строками, начинаются с одной строки и заканчиваются другой строкой. Они похожи на пустые теги HTML (например, img) тем, что не содержат ни содержимого, ни закрывающих тегов. Если Happy также является тегом, разделенным строками, его спецификация определения должна включать два атрибута: start_string и end_string. Все теги ASP представляют собой теги, разделенные строками. Они начинаются с <% и заканчиваются %>, и закрывающий тег отсутствует.
В следующей информации перечислены различные атрибуты и допустимые значения тега tagspec. Атрибуты, отмеченные звездочкой («*»), указывают, что они неприменимы к тегам, разделенным строками, а необязательные атрибуты отмечены фигурными скобками ({}), поэтому нетрудно сделать вывод, что необходимы другие свойства, не отмеченные фигурными скобками; характеристики.
<tagspec>
Описывает
атрибуты
информации по умолчаниюо сторонних тегах
tag_name, {tag_type}, {render_contents}, {content_model}, {start_string}, {end_string}, {detect_in_attribute}, {parse_attributes}, icon, icon_width, icon_height, { эквивалент_тег}, {is_visual}, {server_model}
tag_name представляет собой пользовательское имя. Для тегов, разделенных строками, tag_name используется только для проверки того, применим ли к тегу определенный инспектор свойств. Если первая строка инспектора атрибутов содержит имя тега в соответствующей позиции (фактически, в первой строке объявления) и отмечена звездочкой («*»), то инспектору будет разрешено проверять метку типа. . Например, имя тега кода ASP — ASP. Инспекторы, позволяющие проверять код ASP, должны содержать *ASP* в первой строке. Дополнительные сведения об API инспектора свойств см. в разделе Инспектор свойств.
tag_type определяет, является ли тег пустым (как упомянутый ранее img) или позволяет размещать контент между открывающим и закрывающим тегами (например, тег code). Этот атрибут необходим для обычных тегов (без разделителей строк), но не влияет на теги, разделенные строками, поскольку они всегда пусты. Допустимые значения включают «пустой» и «непустой».
render_contents определяет, отображает ли метка содержимое в режиме дизайна или заменяет его определенным значком. Этот атрибут необходим только для непустых тегов и не влияет на пустые теги (пустые теги сами по себе не содержат содержимого для отображения). Этот атрибут применяется только к тегам, вставленным вне атрибута. Если тег вставлен в значение атрибута других тегов, его содержимое не будет отображаться (этот абзац немного сложен для понимания. Я имею в виду такие объекты, как RealMedia и Flash). . Внутри этих тегов параметров? Допустимые значения: «истина» или «ложь».
content_model описывает, какой контент может содержать этот тег и где этот тег можно вставить в HTML-файл. Допустимые значения включают «block_model», «head_model», «marker_model» и «script_model»:
·block_model означает, что тег может содержать блочные объекты, такие как div и p, и тег может появляться только в области тела или вставляться в другие теги основного содержимого, такие как div, Layer и td.
·head_model означает, что метка может содержать только текст и появляться только в диапазоне HEAD.
·marker_model означает, что тег может содержать любой допустимый HTML-код и может быть размещен в любом месте HTML-файла. Встроенный валидатор HTML Dreamweaver игнорирует теги, определенные как маркер_модель. Однако содержимое этих тегов не игнорируется валидатором, поэтому, хотя сам тег можно разместить где угодно, его содержимое может вызвать ошибки в некоторых частях HTML; Например, простой текст не может появляться (за исключением допустимых элементов заголовка) в области заголовка документа, поэтому вы не можете разместить тег marker_model, содержащий простой текст, в области заголовка (если вы хотите это сделать, вы должны изменить модель содержимого тега Заменено на marker_model на head_model). Теги, использующие маркер_модель, будут отображаться в одной строке (внутри элемента блока, такого как p или div — например, внутри абзаца). Если вы хотите, чтобы тег отображал собственный абзац, оставьте пустые строки до и после него. рекомендуется не использовать этот режим.
·script_model позволяет размещать этот тег в любом месте между тегами HTML в документе. Когда Dreamweaver обнаруживает тег в этом режиме, все содержимое тега игнорируется. Dreamweaver не будет анализировать такие теги (например, некоторые теги ColdFusion) при их использовании.
start_string указывает разделитель в качестве начальной точки для меток, разделенных строками. Метки, разделенные строками, можно размещать в любом месте, где можно вставить комментарий. Dreamweaver не будет анализировать, кодировать или связывать код между start_string и end_string. Этот атрибут необходим, если определена end_string.
end_string указывает разделитель в качестве конечной точки метки, разделенной строкой. Кроме того, этот атрибут необходим, если определена start_string.
Detect_in_attribute указывает, следует ли игнорировать весь код между start_string и end_string (или между начальным и конечным тегами, если эти две строки не определены), независимо от того, вставлены ли между этими кодами атрибуты или значения. Его значение по умолчанию — «false», но в целом для тегов, разделенных строками, это значение должно быть установлено на «true». Например, в спецификации тега ASP указано «detect_in_attribute="true», поэтому даже если внутри тега ASP есть кавычки, содержащие значения атрибутов, Dreamweaver будет их игнорировать.
parse_attributes указывает, следует ли анализировать атрибуты тега. Если установлено значение «true» (по умолчанию), Dreamweaver будет анализировать эти свойства; если установлено значение «false», Dreamweaver будет игнорировать весь код перед знаком «>» за пределами кавычек. Например, для таких тегов, как cfif, этому атрибуту должно быть присвоено значение «false» (поскольку Dreamweaver не может проанализировать такой тег, как <cfif a is 1>, как пару имя/значение атрибута).
icon указывает путь и имя файла значка, соответствующего этой метке. Это свойство требуется для пустых тегов, а также для непустых тегов, содержимое которых не может отображаться в представлении дизайна окна документа.
icon_width определяет ширину значка в пикселях.
icon_height определяет высоту значка в пикселях.
эквивалентный_тег определяет простые HTML-эквиваленты для определенных тегов, связанных с формами в ColdFusion. Этот атрибут не может использоваться другими тегами.
is_visual указывает, видна ли метка на странице. Например, тег cfgraph ColdFusion не указывает значение для is_visual (поэтому используется значение по умолчанию «true»), а тег cfset ColdFusion указывает значение для is_visual «false». В столбце «Невидимые элементы» диалогового окна по умолчанию вы можете управлять видимостью меток сервера; видимость визуальных меток сервера и невизуальных меток сервера можно настроить отдельно.
server_model, если он установлен, указывает, что тег tagspec можно применять только к страницам, принадлежащим указанной модели сервера. Если не установлено, tagspec можно применять ко всем страницам. Например, разделители для ASP и JSP одинаковы, но тег tagspec, применимый к JSP, определяет режим сервера как «JSP», поэтому, когда Dreamweaver обнаруживает определенный разделитель на странице JSP, он отображает значок JSP. код обнаружен на странице, отличной от JSP, отображается значок ASP.
Нетконтента
(пустой тег).
Контейнер
Нет.
Пример
<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif" icon_width="18" icon_height="18"></tagspec>
Пользовательский тег в дизайне Как вид отображения
пользовательских тегов в дизайнерском представлении окна документа зависит от значений атрибута tag_type и атрибута render_contents тега tagspec (см. анализ пользовательских сторонних тегов). Если значение tag_type «пусто», отображается указанный значок, определенный атрибутом icon. Если значение tag_type «непусто», а значение render_contents — «false», значок также будет отображаться как пустой тег. Следующий пример демонстрирует, как экземпляр только что определенного нами тега Happy можно вставить в HTML-код:
<p>Это абзац, включающий экземпляр тега <code>happy</code> (<happy>Joe</ Happy>).</p>
Поскольку в спецификации тега для render_contents установлено значение «false», счастливый тег (слово joe) не будет отображаться, а открывающий и закрывающий теги, включая содержимое между ними, будут заменены на Простой значок.
Для непустого тега со значением render_contents «true» в представлении дизайна он не будет отображаться в виде значка, а будет отображаться содержимое между открывающим и закрывающим тегами (например, текст между тегами, например: < mytag> Это содержимое между открывающим и закрывающим тегами </mytag>). Если в пункте меню выбран «Просмотр» > «Визуальные помощники» > «Невидимые элементы», то это содержимое будет выделено с использованием цвета стороннего тега, заданного параметром «Цвет кода» («Цвет кода» применяется только к файлам библиотеки тегов.
Как изменить цвет выделения сторонних тегов:
1.
В параметрах меню выберите «Правка» > «Настройки», а затем выберите столбец «Цвет кода».
2. Щелкните поле цвета сторонней метки, чтобы отобразить палитру цветов.
3. Выберите цвет, затем нажмите «ОК» и закройте диалоговое окно настроек. Информацию о том, как выбирать цвета, см. также в разделе «Использование Dreamweaver».
Не переписывайте сторонние теги
. Dreamweaver исправит некоторые ошибки в HTML-коде. Дополнительную информацию см. в разделе Использование Dreamweaver. По умолчанию Dreamweaver предотвращает изменения HTML-кода в файлах с определенными расширениями, включая .asp (ASP), .cfm (ColdFusion), .jsp (JSP) и .php (PHP). Эта настройка по умолчанию гарантирует, что Dreamweaver случайно не изменит какой-либо код, содержащийся в тегах, отличных от HTML. Вы можете изменить поведение Dreamweaver по перезаписи по умолчанию, чтобы HTML-код перезаписывался при открытии таких файлов, а также добавить другие типы файлов в список типов файлов, перезапись которых Dreamweaver запрещает.
Когда вы вводите определенные специальные символы в инспектор свойств, Dreamweaver кодирует их в числовые значения. Вообще говоря, лучше всего позволить Dreamweaver выполнить это кодирование, поскольку эти специальные символы, скорее всего, будут лучше отображаться на разных платформах и в разных браузерах. Однако, поскольку эта кодировка влияет на сторонние теги, вы можете изменить поведение кодирования Dreamweaver при редактировании файлов, содержащих сторонние теги.
Разрешите Dreamweaver перезаписывать HTML в файлах других типов:
1. Выберите «Правка» > «Настройки» в параметрах меню, а затем выберите столбец «Переписывание кода».
2. Выберите любой из следующих вариантов:
· Исправить недопустимые вложенные теги или бесконечные теги · Удалить лишние закрывающие теги.
3. Выполните одно из следующих действий:
· Удалите одно или несколько расширений файлов из списка «Никогда не переписывать код: в файлах с расширениями».
· Снимите флажок «Никогда не переписывать код: в файлах с расширениями». Обратите внимание: это позволяет Dreamweaver перезаписывать HTML-код в файле любого типа.
Добавьте типы файлов, перезапись которых Dreamweaver запрещает:
1. В параметрах меню выберите «Правка» > «Настройки», а затем выберите столбец «Перезапись кода».
2. Выберите любой из следующих вариантов:
· Исправить недопустимые вложенные теги или бесконечные теги · Удалить лишние закрывающие теги.
3. Подтвердите, что выбран пункт «Никогда не переписывать код: в файлах с расширениями», и добавьте новое расширение файла в список в текстовом поле.
Если новый тип файла не отображается во всплывающем меню диалогового окна «Файл» > «Открыть», возможно, вам придется добавить его в папку Configuration/Extensions.txt. Подробности см. в разделе Изменение типа файла по умолчанию.
Отключите параметры кодирования Dreamweaver:
1. Выберите «Правка» > «Настройки» в параметрах меню, а затем выберите столбец «Перезапись кода».
2. Отмените любую из двух опций «Кодировка специальных символов».
Дополнительную информацию о выборе параметров перезаписи кода см. в разделе «Использование Dreamweaver».