Estendendo o Dreamweaver: Personalizando a análise de tags de terceiros
Como tenho desenvolvido plug-ins do Dreamweaver recentemente, há muito poucos materiais em chinês e meu inglês é ruim. Quando verifico os materiais em inglês, não posso deixar de sentir. tonto. Depois de traduzir parte do conteúdo importante para o chinês, me senti muito mais revigorado ao lê-lo. Este trecho foi extraído de "Extending Dreamweaver 8" que vem com o Dreamweaver 8. Ao traduzir, consultei a "Ajuda chinesa do Dreamweaver 4" traduzida por Xiakedao. Mas, para ser sincero, tenho algumas dúvidas de que algumas partes da ajuda tenham sido traduzidas usando software como o Kingsoft Translation. De qualquer forma, é mais difícil de ler do que o inglês.
Tecnologias do lado do servidor, como ASP, Macromedia ColdFusion, JSP e PHP, usam sintaxe especial não-HTML em arquivos HTML, e o servidor cria e fornece conteúdo formatado em HTML com base nesses códigos. Quando o Dreamweaver detecta tags não HTML, o Dreamweaver as compara chamando arquivos de definição de tags de terceiros, que especificam como o Dreamweaver lê e exibe essas tags.
Por exemplo, além da linguagem HTML padrão, os arquivos ASP também contêm código ASP para o servidor analisar. O código ASP é semelhante às tags HTML. Ele é marcado por um par de tags, uma abertura <% e uma fechamento %>. Há um arquivo chamado Tags.xml na pasta Configuration/ThirdPartyTags do Dreamweaver. Esse arquivo é usado para descrever diversas especificações de tags de terceiros, incluindo ASP, e define como o Dreamweaver exibe esses códigos. Usando essa abordagem, o código ASP foi padronizado em Tags.xml, portanto o Dreamweaver não tentará mais analisar nenhum código entre <%...%>. No entanto, no modo Design, ele exibirá um ícone para indicar que este é um código ASP. Você pode definir suas próprias tags e criar um novo arquivo de biblioteca de tags para cada conjunto de tags para especificar como o Dreamweaver lê e exibe suas tags.
Observação: esta seção descreve como definir um método para o Dreamweaver exibir um rótulo personalizado, mas não descreve como editar o conteúdo ou as propriedades do rótulo personalizado. Consulte Inspetor de propriedades para obter informações sobre como criar um inspetor de propriedades para inspecionar e modificar as propriedades de um rótulo personalizado.
Cada arquivo de biblioteca de tags define o nome, tipo, modo de conteúdo, especificação de exibição e ícone de uma ou mais tags personalizadas. Você pode criar qualquer número de arquivos de biblioteca de tags, mas eles devem estar localizados na pasta Configuration/ThirdPartyTags para serem lidos e processados pelo Dreamweaver. Os arquivos da biblioteca de tags usam a extensão de arquivo .xml.
Dica: Se você estiver trabalhando em vários sites diferentes ao mesmo tempo (supondo que você seja um freelancer), você pode definir todas as especificações da tag em um arquivo e armazená-lo em um site especial para uso futuro por outros. Quando alguém mantém o site, você pode entregar a biblioteca completa de tags, incluindo ícones personalizados e inspetores de propriedades.
Você precisa definir uma especificação de tag usando uma tag XML chamada tagspec. Por exemplo, o código a seguir representa uma especificação de tag chamada 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>
Você pode usar tagspec para definir Dois tipos de rótulos:
·Tags comuns em formato HTML
O exemplo da tag happy é uma tag comum em formato HTML. Começa com a tag <happy>, contém dados entre as tags de abertura e fechamento e termina com a tag </happy>.
·Tags delimitadas por string Tags delimitadas por string começam com uma string e terminam com outra string. Elas são semelhantes às tags HTML vazias (como img), pois não contêm tags de conteúdo nem de fechamento. Se happy também for uma tag delimitada por string, sua especificação de definição deverá incluir dois atributos: start_string e end_string. Tags ASP são todas tags delimitadas por string. Elas começam com <% e terminam com %> e não há tag de fechamento.
As informações a seguir listam os vários atributos e valores válidos da tag tagspec. Atributos com asterisco ("*") indicam que não são aplicáveis a tags delimitadas por string, e atributos opcionais são marcados com colchetes ({}); propriedades.
<tagspec>
Descreve
osatributos
de informações padrãosobre tags de terceiros
tag_name, {tag_type}, {render_contents}, {content_model}, {start_string}, {end_string}, {detect_in_attribute}, {parse_attributes}, icon, icon_width, icon_height, { equivalente_tag}, {is_visual}, {server_model}
tag_name representa um nome personalizado. Para tags delimitadas por string, tag_name é usado apenas para verificar se um inspetor de propriedades específico é aplicável à tag. Se a primeira linha do inspetor de atributos contiver o nome da tag em uma posição conforme (na verdade, na primeira linha da declaração) e estiver marcada com um asterisco ("*"), então o inspetor poderá inspecionar a etiqueta de tipo . Por exemplo, o nome da tag do código ASP é ASP. Os inspetores que permitem a verificação do código ASP devem conter *ASP* na primeira linha. Para obter informações sobre a API do Property Inspector, consulte Property Inspector.
tag_type determina se a tag está vazia (como o img mencionado anteriormente) ou permite que o conteúdo seja colocado entre as tags de abertura e fechamento (como a tag code). Este atributo é necessário para tags normais (não delimitadas por string), mas não tem efeito em tags delimitadas por string porque elas estão sempre vazias. Os valores válidos incluem “vazio” e “não vazio”.
render_contents determina se o rótulo exibe o conteúdo na visualização de design ou o substitui por um ícone específico. Este atributo só é necessário para tags não vazias e não tem efeito em tags vazias (as próprias tags vazias não têm conteúdo para exibir). Este atributo só se aplica a tags inseridas fora do atributo. Se uma tag for inserida no valor do atributo de outras tags, seu conteúdo não será exibido (este parágrafo é um pouco difícil de entender. Estou pensando em objetos como RealMedia e Flash). .Dentro dessas tags de parâmetro? Os valores válidos são “verdadeiro” ou “falso”.
content_model descreve que tipo de conteúdo esta tag pode conter e onde ela pode ser inserida no arquivo HTML. Os valores válidos incluem "block_model", "head_model", "marker_model" e "script_model":
·block_model significa que a tag pode conter objetos de bloco como div e p, e a tag só pode aparecer na área do corpo, ou ser inserido em outras tags de conteúdo corporal, como div, camada e td.
·head_model significa que o rótulo só pode conter texto e só pode aparecer no intervalo HEAD.
·marker_model significa que a tag pode conter qualquer código HTML válido e pode ser colocada em qualquer lugar do arquivo HTML. O validador HTML integrado do Dreamweaver ignora tags definidas como marker_model. Porém, o conteúdo contido nessas tags não é ignorado pelo validador, portanto, embora a tag em si possa ser colocada em qualquer lugar, seu conteúdo pode causar erros em algumas partes do HTML; Por exemplo, o texto simples não pode aparecer (exceto para elementos legais do cabeçalho) na área do cabeçalho do documento, portanto, você não pode colocar uma tag marker_model contendo texto simples na área do cabeçalho (se quiser fazer isso, você deve alterar o modelo de conteúdo da tag Substituído por marker_model por head_model). Tags usando marker_model serão exibidas em uma linha (dentro de um elemento de bloco como p ou div - por exemplo, dentro de um parágrafo, deixe linhas em branco antes e depois dele). é recomendado não usar este modo.
·script_model permite que esta tag seja colocada em qualquer lugar entre tags HTML dentro do documento. Quando o Dreamweaver detecta uma tag usando esse modo, todo o conteúdo da tag é ignorado. O Dreamweaver não analisará essas tags (como determinadas tags do ColdFusion) quando usadas.
start_string especifica um delimitador como ponto de partida para rótulos delimitados por string. Rótulos delimitados por string podem ser colocados em qualquer lugar onde um comentário possa ser inserido. O Dreamweaver não analisará, codificará ou vinculará o código entre start_string e end_string. Este atributo é obrigatório quando end_string foi definido.
end_string especifica um delimitador como o ponto final de um rótulo delimitado por string. Além disso, este atributo é necessário quando start_string foi definido.
detect_in_attribute especifica se deve ser ignorado todo o código entre start_string e end_string (ou entre as tags de início e fim, se essas duas strings não estiverem definidas), independentemente de atributos ou valores serem inseridos entre esses códigos. Seu valor padrão é "false", mas em geral tags delimitadas por strings devem ter esse valor definido como "true". Por exemplo, a especificação da tag ASP especifica detect_in_attribute="true", portanto, mesmo que haja aspas contendo valores de atributos dentro da tag ASP, elas serão ignoradas pelo Dreamweaver.
parse_attributes indica se os atributos da tag devem ser analisados. Se definido como "true" (o padrão), o Dreamweaver analisará essas propriedades; se definido como "false", o Dreamweaver ignorará todo o código antes do ">" fora das aspas. Por exemplo, tags como cfif devem ter esse atributo definido como "false" (porque o Dreamweaver não pode analisar uma tag como <cfif a is 1> como um par nome/valor de atributo).
icon especifica o caminho e o nome do arquivo do ícone que corresponde a esse rótulo. Esta propriedade é necessária para tags vazias, bem como para tags não vazias cujo conteúdo não pode ser exibido na visualização de design da janela do documento.
icon_width especifica a largura em pixels do ícone.
icon_height especifica a altura em pixels do ícone.
equivalente_tag especifica equivalentes HTML simples para determinadas tags associadas a formulários no ColdFusion. Este atributo não pode ser usado por outras tags.
is_visual especifica se o rótulo está visível na página. Por exemplo, a tag cfgraph do ColdFusion não especifica um valor para is_visual (portanto, o valor padrão "true" é usado) e a tag cfset do ColdFusion especifica um valor para is_visual de "false". Na coluna "Elementos invisíveis" da caixa de diálogo padrão, você pode controlar a visibilidade dos rótulos do servidor; a visibilidade dos rótulos visuais do servidor e dos rótulos não visuais do servidor pode ser definida separadamente.
server_model, se definido, indica que a tag tagspec só pode ser aplicada a páginas pertencentes ao modelo de servidor especificado. Se não for definido, tagspec poderá ser aplicado a todas as páginas. Por exemplo, os delimitadores para ASP e JSP são iguais, mas a tag tagspec aplicável ao JSP especifica o modo do servidor como "JSP", portanto, quando o Dreamweaver detecta um delimitador específico em uma página JSP, ele exibe um ícone JSP quando o mesmo; for detectado em uma página não-JSP, ele exibirá o ícone ASP.
Semconteúdo
(tag vazia).
Contêiner
Nenhum.
Exemplo
<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 personalizada no design Como a visualização exibe
tags personalizadas na visualização de design da janela do documento depende dos valores do atributo tag_type e do atributo render_contents da tag tagspec (consulte a análise de tags personalizadas de terceiros). Se o valor de tag_type for "vazio", o ícone especificado definido pelo atributo icon será exibido. Se o valor de tag_type for "nonempty", mas o valor de render_contents for "false", o ícone também será exibido como uma tag vazia. O exemplo a seguir demonstra como uma instância da tag happy que acabamos de definir pode ser inserida no código HTML:
<p>Este é um parágrafo que inclui uma instância da tag <code>happy</code>(<happy>Joe</ happy>).</p>
Como render_contents foi definido como "false" na especificação da tag, a tag happy (palavra joe) não será exibida e as tags de abertura e fechamento, incluindo o conteúdo entre elas, serão substituídas por um Ícone simples.
Para uma tag não vazia com um valor render_contents de "true", a visualização de design não a exibirá como um ícone, mas exibirá o conteúdo entre as tags de abertura e fechamento (como o texto entre as tags, como este: < mytag> Este é o conteúdo entre as tags de abertura e fechamento </mytag>). Se Visualizar > Assistentes Visuais > Elementos Invisíveis estiver selecionado na opção de menu, então este conteúdo será destacado usando a cor da tag de terceiros especificada pelo parâmetro "Cor do Código" ("Cor do Código" só se aplica a arquivos de biblioteca de tags
Como alterar a cor de destaque de tags de terceiros:
1.
Selecione Editar > Preferências nas opções do menu e selecione a coluna "Cor do código".
2. Clique na caixa de cores do rótulo de terceiros para exibir o seletor de cores.
3. Selecione uma cor, clique em "OK" e feche a caixa de diálogo predefinida. Para obter informações sobre como escolher cores, consulte também Usando o Dreamweaver.
Evite reescrever tags de terceiros
O Dreamweaver corrigirá determinados erros no código HTML. Para obter mais informações, consulte Usando o Dreamweaver. Por padrão, o Dreamweaver impede alterações no código HTML em arquivos com determinadas extensões, incluindo .asp (ASP), .cfm (ColdFusion), .jsp (JSP) e .php (PHP). Essa configuração padrão serve para garantir que o Dreamweaver não modifique acidentalmente nenhum código contido em tags que não sejam HTML. Você pode alterar o comportamento de reescrita padrão do Dreamweaver para que o código HTML seja reescrito quando esses arquivos forem abertos, e você pode adicionar outros tipos de arquivo à lista de tipos de arquivo que o Dreamweaver proíbe a reescrita.
Quando você insere determinados caracteres especiais no Inspetor de propriedades, o Dreamweaver os codifica em valores numéricos. De modo geral, é melhor deixar o Dreamweaver executar essa codificação porque esses caracteres especiais provavelmente serão exibidos melhor em diferentes plataformas e navegadores. Entretanto, como essa codificação afeta tags de terceiros, talvez você queira alterar o comportamento de codificação do Dreamweaver ao editar arquivos que incluem tags de terceiros.
Permita que o Dreamweaver reescreva HTML em mais tipos de arquivos:
1. Selecione Editar > Preferências nas opções do menu e selecione a coluna "Reescrita de código"
2. Escolha qualquer uma das seguintes opções:
·Corrigir tags aninhadas ilegais ou tags intermináveis ·Excluir tags de fechamento redundantes
3. Execute um dos seguintes procedimentos:
· Remova uma ou mais extensões de arquivo da lista "Nunca reescrever código: em arquivos com extensões".
· Desmarque a opção "Nunca reescrever código: em arquivos com extensões". Observação: isso permite que o Dreamweaver reescreva o código HTML em qualquer tipo de arquivo.
Adicione tipos de arquivo que o Dreamweaver proíbe a reescrita:
1. Selecione Editar > Preferências nas opções do menu e selecione a coluna "Reescrita de código"
2. Escolha qualquer uma das seguintes opções:
·Corrigir tags aninhadas ilegais ou tags intermináveis ·Excluir tags de fechamento redundantes
3. Confirme se o item “Nunca reescrever código: em arquivos com extensões” está selecionado e adicione a nova extensão de arquivo à lista na caixa de texto.
Se o novo tipo de arquivo não aparecer no menu pop-up da caixa de diálogo Arquivo > Abrir, pode ser necessário adicioná-lo à pasta Configuration/Extensions.txt. Para obter detalhes, consulte Alterando o tipo de arquivo padrão.
Desative as opções de codificação do Dreamweaver:
1. Selecione Editar > Preferências nas opções do menu e selecione a coluna "Reescrita de código"
2. Cancele qualquer uma das duas opções de “Codificação de caracteres especiais”.
Para obter informações adicionais sobre como selecionar preferências de reescrita de código, consulte Usando o Dreamweaver.