Лого Флэша Потрошителя
 
Новости · Статьи · Прототипы · Компоненты · Персоналии · Глоссарий · Идеальный клип · Что делать  
Настройка Dreamweaver MX: 4 часть
27.07.2002 07.05.2008
<< Назад 123 • 4 Приехали

Расширение Dreamweaver: основы

В тему: Создаем расширение для DW MX

Процессор Dreamweaver разработан, чтобы быть расширяемым. Он включает в себя интерпретатор JavaScript, — таким образом, DW может читать и выполнять сценарии JavaScript; также он предоставляет набор API* расширения; каждый из этих API является набором функций на языке JavaScript или C, дают разработчикам расширений возможность добавлять свои возможности в Dreamweaver. Dreamweaver также предоставляет Объектную модель документа (Document Object Model, DOM), которая позволяет расширениям исследовать и модифицировать структуру документа и ее содержание.

Используя API расширения, вы можете создавать целый ряд расширений для Dreamweaver, включая объекты, команды, панели инструментов (toolbars), Инспекторы свойств (Property inspectors), Сценарии поведения (behavior actions), сценарии поведения сервера (server behaviors), источники данных (data sources), модели сервера (server models), и переводчики данных (data translators), кроме всего прочего.

Вы можете создавать новые объекты и простые команды, ничего не зная о программировании; См. "Создание простого объекта" и Справку к Dreamweaver. Но для добавления к DW более продвинутых возможностей нужно писать выражения на JavaScript или C. Информацию об API и DOM ищите в справке "Расширение Dreamweaver" (Help > Extending Dreamweaver).

После создания расширения для Dreamweaver, если хотите, чтобы другие пользователи Dreamweaver смогли использовать его, вы можете упаковать его и распространить через Macromedia Exchange. См. Help > Creating and Submitting Extensions, или посетите сайт Macromedia Exchange для Dreamweaver.

О JavaScript

JavaScript — это интерпретируемый язык программирования. Больше узнать о JavaScript, можно из хороших книг: "JavaScript Bible" от Danny Goodman (IDG) или "JavaScript: The Definitive Guide" от David Flanagan (O’Reilly). Информацию об использовании JavaScript для расширения Dreamweaver ищите в "Расширение Dreamweaver" (Help > Extending Dreamweaver).

Примечание: Несмотря на сходство названий, язык JavaScript никак не связан с Java.

Редактирование команд Dreamweaver

Все команды в меню Dreamweaver, включая создаваемые вами и записанные с помощью панели History (см. Справку Dreamweaver), реализованы на языке JavaScript. Этот JavaScript-код обычно состоит по большей части из вызовов функций, предоставляемых API расширения Dreamweaver. Если вы знаете JavaScript и понимаете API расширения Dreamweaver, вы можете редактировать JavaScript, чтобы изменить функционирование команд Dreamweaver.

Примечание: Не пытайтесь изменить код JavaScript, если вы не знаете точно, что вы делаете. А когда знаете, все равно делайте резервные копии файлов сценариев, прежде чем изменять их.

Чтобы переименовать команду, переместить ее в другое меню или добавить для нее клавиатурное сокращение ("шорткат"), см. "О настройке меню Dreamweaver".

Настройка интерпретации тэгов "от третьих лиц"

Серверные технологии, такие как ASP, ColdFusion, JSP, и PHP, используют особый не-HTML код HTML-файлах; серверы создают и обрабатывают HTML-контент, базируясь на этом коде. Когда Dreamweaver встречает не-HTML тэги, он сравнивает их с информацией в своих файлах, описывающих тэги "от третьих лиц", а эти файлы определяют, как Dreamweaver читает и отображают не-HTML тэги.

Например, ASP-файл содержит — вдобавок к обычному HTML-коду — ASP-код, интерпретируемый сервером. ASP-код код выглядит почти как тэг HTML, но он отмечен парой разделителей: начинается с <% и заканчивается %>. Папка Configuration/ThirdPartyTags содержит файл Tags.xml, который описывает форматы разнообразных "тэгов от независимых производителей", включая ASP код, и определяет, как Dreamweaver отображает такой код. Так как отношение к ASP-коду задано в Tags.xml, Dreamweaver не пытается интерпретировать что-либо между разделителями <% и %>; вместо этого он просто отображает иконку для обозначения ASP-кода в окне документа (в Design view).

Вы можете создать свои собственные файлы с данными о тэгах, а в этих файлах задать, как Dreamweaver будет и отображать ваши тэги. Создавайте базу данных о новых тэгах для каждого набора тэгов.

Примечание: Этот раздел объясняет, как определить способы отображения заданных вами тэгов в Dreamweaver, но этот раздел не описывает, как предоставлять способы для редактирования содержания или свойств таких тэгов. Информацию о том, как создать Инспектор Свойств (Property inspector) для просмотра и модификации свойств заданного вами тэга, см. в "Расширение Dreamweaver" (Help > Extending Dreamweaver).

Каждый файл базы данных тэгов определяет имя, тип, модель содержания, схему отображения и иконку для одного или более "заказных" тэгов. Вы можете создавать любое количество файлов данных о тэгах, но все они должны размещаться в папке Configuration/ThirdPartyTags, чтобы Dreamweaver читал и обрабатывал их. Файлы с базой данных о тэгах должны иметь расширение ".xml".

Совет: Если вы работаете над несколькими разными несвязанными сайтами одновременно (например, вы — свободный freelancer), вы можете поместить все тэговые спецификации для определенного сайта в одном файле. Затем просто передайте файл базы данных с необходимыми иконками и Инспекторами свойств, и передайте их людям, которые будут поддерживать сайт.

Вы определяете тэговую спецификацию с помощью 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 и тэги, со строками в виде ограничителей (string-delimited). Последние начинаются одной строкой и заканчиваются другой строкой; они похожи на пустые HTML-тэги (такие как img), которые не обрамляют собой какое-либо содержание и не имеют закрывающего тэга. Тэг happy, показанный выше — это нормальный тэг в стиле HTML; он начинается с открывающего тэга <happy>, содержит данные между открывающим и закрывающим тэгами, и заканчивается закрывающим тэгом </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,
{equivalent_tag}, {is_visual}, {server_model}

tag_name
Название тэга. Для тэгов, ограниченных строками, tag_name используется только для определения, может ли быть использован для тэга назначенный инспектор свойств. Если первая строка инспектора свойств содержит имя этого тэга, с двух сторон окруженное звездочками (*), то инспектор может быть использован для тэгов этого типа. Например, название тэга для ASP-кода — ASP; инспектор свойств, который может обрабатывать ASP-код должен в первой строке включать строку *ASP*. Информацию об API инспектора свойств см. в "Расширение Dreamweaver" (Help > Extending Dreamweaver).

tag_type*
Определяет, будет ли тэг пустым (как <img>), или будет содержать что-то между своим открывающим и закрывающим тэгами (как <code>). Этот атрибут необходим для нормальных (не ограниченных строками) тэгов. Для ограниченных строками тэгов он игнорируется, так как они всегда пустые. Допустимые значения — "empty" и "nonempty".

render_contents*
Определяет, будет ли содержимое тэга отображаться в виде Дизайна (Design view) в окне Документа, или вместо этого будет отображаться заданная иконка. Этот атрибут необходим для непустых тэгов и игнорируется для пустых (у пустых тэгов нет содержания.) Этот атрибут применяется только к тэгам, которые появляются вне атрибутов; содержимое тэгов, которые появляются внутри значений атрибутов других тэгов, не отображается. Допустимые значения — "true" и "false".

content_model*
Описывает, какой тип контента может содержать тэг, и в каком месте HTML он может появляться. Допустимые значения — "block_model", "head_model", "marker_model", и "script_model":

  • block_model говорит, что тэг может содержать блочные элементы типа div или p, и что тэг может появляться только в разделе body или внутри другого блочного ("телосодержащего", "body-content") тэга типа div, layer, или td.
  • head_model определяет тэг, который может содержать текст, и может появляться только в разделе head.
  • marker_model говорит, что тэг может содержать любой допустимый HTML-код, и что он может появиться в любом месте HTML-файла. Валидатор HTML в Dreamweaver игнорирует тэги, заданные как marker_model. Но валидатор не игнорирует содержимое этих тэгов; так что даже если сам тэг может быть в любом месте, содержимое этого тэга может быть идентифицировано как недопустимый код HTML в определенных местах. Например, простой текст не может быть употреблен в разделе head документа, так что вы не можете поместить содержащий текст marker_model-тэг в разделе head. (Чтобы поместить созданный вами и содержащий простой текст тэг в раздел head, задайте для этого тэга атрибут content_model как head_model, а не marker_model.) Используйте marker_model для тэгов, которые отображаются как строчные (внутри элементов блочного уровня, таких, как p или div, — например, внутри параграфа). Если тэг должен сам отображаться как параграф, со строчными отступами до и после него, не используйте эту модель.
  • script_model позволяет тэгу существовать в любом месте между открывающим и закрывающим HTML-тэгами документа. Когда DW обнаруживает тэги этой модели, он полностью игнорирует их содержимое. Они пригодятся для разметки (как некоторые тэги ColdFusion), которую Dreamweaver не должен обрабатывать.

start_string
Определяет ограничитель, который помечает начало тэга, ограниченного строкой. Такой тэг может появляться в любом месте документа, где присутствует комментарий. Dreamweaver не обрабатывает содержимое между start_string и end_string. Этот атрибут необходим, если задан атрибут end_string.

end_string
Задает ограничитель, который помечает конец тэга, ограниченного строкой. Этот атрибут необходим, если задан атрибут start_string.

detect_in_attribute
Показывает, нужно ли игнорировать все, что есть между строками start_string и end_string (или между открывающим и закрывающим тэгами, если эти строки не определены), даже если эти строки появляются в имени или значении атрибута. Обычно вы должны установить значение "true" для тэгов, ограниченных строками; по умолчанию значение равно "false". Например, ASP-тэги иногда встречаются в значениях атрибутов, и иногда содержат кавычки ("); так как спецификация тэга ASP задает detect_in_attribute="true", Dreamweaver игнорирует ASP-тэги, включая внутренние кавычки, когда они встречаются в значениях атрибутов.

parse_attributes*
Показывает, нужно ли обрабатывать атрибуты тэга. Если этот атрибут установлен в "true" (значение по умолчанию), Dreamweaver обрабатывает атрибуты; если значение равно "false", Dreamweaver игнорирует все до следующей закрывающей угловой скобки (>), встретившейся вне кавычек. Например, этот атрибут должен быть равен "false" для тэга типа cfif (как в <cfif a is 1>, который Dreamweaver не может обработать как набор пар атрибут/значение).

icon
Задает путь к иконке, включая имя файла, которая ассоциирована с тэгом. Этот атрибут необходим для пустых тэгов, и для тех непустых, содержимое которых не отображается в виде Дизайна окна Документа.

icon_width
Задает ширину иконки в пикселях.

icon_height
Высота иконки в пикселях.

equivalent_tag
Задает простой HTML-эквивалент для определенных тэгов ColdFusion, относящихся к формам. Этот атрибут не предназначен для использования с другими тэгами.

is_visual
Показывает, производит ли тэг прямое визуальное воздействие на страницу, или нет. Например, ColdFusion тэг cfgraph не определяет значение для is_visual (так как значение по умолчанию — "true"); ColdFusion тэг cfset задан как имеющий для is_visual значение "false". Видимость тэгов серверной разметки контролируется категорией Невидимые Элементы (Invisible Elements) диалогового окна Настроек (Preferences, меню Edit > Preferences); видимость для визуальных тэгов серверной разметки может быть установлена независимо от видимости для невизуальных тэгов серверной разметки.

server_model
Если задан, показывает, что тэг tagspec применяется только к страницам, принадлежащим определенной модели сервера. Если server_model не задан, тэг tagspec применяется ко всем страницам. Например, ограничитель для ASP и JSP тэгов одинаковый, но тэг tagspec для JSP задает server_model как "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>

Как заказные тэги отражаются в виде Дизайна (Design view)

Отображение заказных тэгов в виде Дизайна в окне Документа, зависит от значений атрибутов tag_type и render_contents тэга tagspec (см. "Настройка интерпретации тэгов "от третьих лиц".) Если значение tag_type равно "empty", отображается иконка, заданная в атрибуте icon. Если значение tag_type равно "nonempty", но значение render_contents равно "false", иконка отображается, как для пустого тэга. Например, все экземпляры тэга happy, определенного ранее в этом разделе, могут появиться в HTML приблизительно так:

<p>Этот абзац содержит экземпляр тэга <code>happy</code>
(<happy>Буяка</happy>).</p>

Этот абзац отобразится в Design view вот так:

Этот абзац содержит экземпляр тэга happy ().

Заметьте, так как render_contents равно "false" в спецификации тэга, содержимое тэга happy (слово "Буяка") не отображается; вместо открывающего и закрывающего тэгов и их содержимого отображается просто одна иконка.

Иконка в Design view не появляется для непустых тэгов, имеющих значение render_contents равное "true"; вместо этого отображается содержимое между открывающим и закрывающим тэгами (как отображается текст между тэгами в <mytag> Это содержимое между открывающим и закрывающим тэгом </mytag>). Если включен пункт View > Invisible Elements, содержимое подсвечивается цветом для тэгов "от третьих лиц", этот цвет устанавливается в настройках подсвечивания (Highlighting preferences). (Заметьте, что подсвечивание применяется только к тэгам, определенным в тэговых спецификациях (файлах с БД о тэгах.))

Чтобы изменить цвет подсветки для тэгов "от третьих лиц":

  1. Выберите Edit > Preferences и выберите категорию Highlighting.
  2. Кликните на цветном квадратике возле надписи "Third-Party Tags, чтобы отобразить окно выбора цвета.
  3. Выберите цвет и кликните OK, чтобы закрыть окно Preferences. О выборе цвета можно узнать в справке к Dreamweaver.

Как избежать перезаписи ваших тэгов

Dreamweaver исправляет определенные типы ошибок в HTML-коде (детали см. в Справке к Dreamweaver). По умолчанию, Dreamweaver воздерживается от изменения HTML в файлах с определенными расширениями, включая .asp (ASP), .cfm (ColdFusion), .jsp (JSP) и .php (PHP). По умолчанию установлено так, что Dreamweaver не станет случайно модифицировать код в любом таком не-HTML тэге. Вы можете изменить установленное по умолчанию поведение Dreamweaver при переписывании кода так, что он будет переписывать HTML при открытии таких файлов, и вы можете добавить другие типы файлов в список типов, которые Dreamweaver не должен переписывать.

Отметьте, что Dreamweaver кодирует некоторые специальные символы (заменяя их числовыми значениями), когда вы вводите их в Инспекторе свойств. Обычно лучше всего позволить DW выполнять такое кодирование, потому что специальные символы желательно отображать корректно на всех платформах и броузерах. Тем не менее, поскольку такое кодирование может мешать правильной работе тэгов "от третьих лиц", вы можете захотеть изменить поведение Dreamweaver относительно перекодировки, когда работаете с файлами содержащими тэги "от третьих лиц".

Чтобы позволить Dreamweaver переписывать HTML в большинстве видов файлов:

  1. Выберите Edit > Preferences и выберите категорию Code Rewriting.
  2. Выберите одну из следующих опций:
    • Исправлять недопустимо вложенные и незакрытые тэги;
    • Удалять лишние закрывающие тэги;
  3. Проделайте одно из следующего:
    • Удалите одно или более расширений файлов из списка расширений для "Never Rewrite Code: In Files with Extensions".
    • Отключите опцию "Never Rewrite Code: In Files with Extensions". (Отключение этой опции позволяет Dreamweaver переписывать HTML во всех типах файлов.)

Чтобы добавить типы файлов, которые Dreamweaver не должен переписывать:

  1. Выберите Edit > Preferences и выберите категорию Code Rewriting.
  2. Выберите одну из следующих опций:
    • Исправлять недопустимо вложенные и незакрытые тэги;
    • Удалять лишние закрывающие тэги;
  3. Убедитесь, что включена опция "Never Rewrite Code: In Files with Extensions", и добавьте новые расширения файлов, к списку в текстовом поле.

    Если новый файл не появляется во всплывающем меню типов файлов в диалоговом окне File > Open, вы можете захотеть добавить его к файлу Configuration/Extensions.txt. См. "Изменение типа файла по умолчанию".

Чтобы отключить перекодирование символов в Dreamweaver:

  1. Выберите Edit > Preferences > категория Code Rewriting.
  2. Отключите одну или две опции Special Characters.

Информацию о других настройках переписывания кода см. в cправке к Dreamweaver.

Вот такой вкусный продукт приготовила Macromedia.

Приятного аппетита!

 

Настройка Dreamweaver:
<< Назад 123 • 4 Приехали

[новое окно]>

Дэдлайн

 

Примечания:
Перевод терминов:
  • Расширение — Extension;
  • Прикладной Интерфейс Программирования — Application Programming Interface, API;
  • Объектная Модель Документа — Document Object Model, DOM;
  • Ограниченный строками — String-delimited;
  • Специальные символы — special characters;,


Статус документа
: публикация
>>> Статьи · Прототипы · Компоненты · Персоналии · Глоссарий · Что делатьНаверх
  © Разработка: Ростислав Сирык · О проекте "Флэш Потрошитель" · Архивы сайта

Настройка DW MX

Содержание | Краткое меню:

Настройка DW MX в многопользовательских смстемах

Изменение типа файла по умолчанию

Изменение панели вставки

Создание простого объекта

Изменение ассоциаций FTP

Настройка меню DW MX

Настройка подсказок кода

Задание документов по умолчанию

Настройка дизайнов страниц

Создание и модификация панелей инструментов

Создание новых типов документов

Настройка Tag Chooser

Настройка внешнего вида диалоговых окон

Изменение HTML-форматирования по умолчанию

Работа с профилями броузера

Расширение DW MX

Настройка интерпретации нестандартных тэгов

FlexiPedia