Extension de Dreamweaver : personnalisation de l'analyse des balises tierces.
Parce que j'ai récemment développé des plug-ins Dreamweaver, il existe très peu de documents en chinois et mon anglais est médiocre. Lorsque je vérifie les documents en anglais, je ne peux m'empêcher de ressentir. vertigineux. Après avoir dû traduire certains contenus importants en chinois, je me suis senti beaucoup plus reposé lorsque je l'ai lu. Cet extrait est extrait de « Extending Dreamweaver 8 » fourni avec Dreamweaver 8. Lors de la traduction, j'ai fait référence à « l'aide chinoise de Dreamweaver 4 » traduite par Xiakedao. Mais pour être honnête, j'ai quelques doutes sur le fait que certaines parties de l'aide ont été traduites à l'aide d'un logiciel tel que Kingsoft Translation. Quoi qu'il en soit, il est plus difficile à lire que l'anglais.
Les technologies côté serveur telles que ASP, Macromedia ColdFusion, JSP et PHP utilisent une syntaxe spéciale non HTML dans les fichiers HTML, et le serveur crée et diffuse du contenu au format HTML basé sur ces codes. Lorsque Dreamweaver détecte des balises non HTML, Dreamweaver les compare en appelant des fichiers de définition de balises tiers, qui spécifient comment Dreamweaver lit et affiche ces balises.
Par exemple, en plus du langage HTML standard, les fichiers ASP contiennent également du code ASP que le serveur doit analyser. Le code ASP ressemble aux balises HTML. Il est marqué par une paire de balises, un <% d'ouverture et un %> de fermeture. Il existe un fichier nommé Tags.xml dans le dossier Configuration/ThirdPartyTags de Dreamweaver. Ce fichier est utilisé pour décrire diverses spécifications de balises tierces, notamment ASP, et définit la manière dont Dreamweaver affiche ces codes. Grâce à cette approche, le code ASP a été standardisé dans Tags.xml, de sorte que Dreamweaver n'essaiera plus d'analyser le code entre <%...%>. Cependant, en mode Création, une icône s'affiche pour indiquer qu'il s'agit de code ASP. Vous pouvez définir vos propres balises et créer un nouveau fichier de bibliothèque de balises pour chaque ensemble de balises afin de spécifier la manière dont Dreamweaver lit et affiche vos balises.
Remarque : Cette section décrit comment définir une méthode permettant à Dreamweaver d'afficher une étiquette personnalisée, mais ne décrit pas comment modifier le contenu ou les propriétés de l'étiquette personnalisée. Consultez Inspecteur des propriétés pour plus d’informations sur la création d’un inspecteur de propriétés pour inspecter et modifier les propriétés d’une étiquette personnalisée.
Chaque fichier de bibliothèque de balises définit le nom, le type, le mode de contenu, les spécifications d'affichage et l'icône d'une ou plusieurs balises personnalisées. Vous pouvez créer n'importe quel nombre de fichiers de bibliothèque de balises, mais ils doivent se trouver dans le dossier Configuration/ThirdPartyTags pour pouvoir être lus et traités par Dreamweaver. Les fichiers de bibliothèque de balises utilisent l'extension de fichier .xml.
Astuce : Si vous travaillez sur plusieurs sites Web différents en même temps (en supposant que vous soyez indépendant), vous pouvez définir toutes les spécifications des balises dans un fichier et le stocker sur un site spécial pour une utilisation ultérieure par d'autres. Lorsque quelqu'un gère le site, vous pouvez remettre la bibliothèque complète de balises, y compris les icônes personnalisées et les inspecteurs de propriétés.
Vous devez définir une spécification de balise à l'aide d'une balise XML appelée tagspec. Par exemple, le code suivant représente une spécification de balise nommée 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>
Vous pouvez utiliser tagspec pour définir Deux types d'étiquettes :
·Balises communes au format HTML
L'exemple de balise heureuse est une balise ordinaire au format HTML. Il commence par la balise <happy>, contient des données entre les balises d'ouverture et de fermeture et se termine par la balise </happy>.
· Balises délimitées par des chaînes Les balises délimitées par des chaînes commencent par une chaîne et se terminent par une autre chaîne. Elles sont similaires aux balises HTML vides (telles que img) dans la mesure où elles ne contiennent ni contenu ni balises de fermeture. Si happy est également une balise délimitée par une chaîne, sa spécification de définition doit inclure deux attributs : start_string et end_string. Les balises ASP sont toutes des balises délimitées par des chaînes. Elles commencent par <% et se terminent par %>, et il n'y a pas de balise de fermeture.
Les informations suivantes répertorient les différents attributs et valeurs valides de la balise tagspec. Les attributs avec un astérisque ("*") indiquent qu'ils ne s'appliquent pas aux balises délimitées par des chaînes, et les attributs facultatifs sont marqués par des accolades ({}) ; il n'est pas difficile de déduire que d'autres propriétés qui ne sont pas marquées par des accolades sont nécessaires ; propriétés.
<tagspec>
Décrit
lesattributs
d'informations par défautsur les balises tierces
tag_name, {tag_type}, {render_contents}, {content_model}, {start_string}, {end_string}, {detect_in_attribute}, {parse_attributes}, icon, icon_width, icon_height, { équivalent_tag}, {is_visual}, {server_model}
tag_name représente un nom personnalisé. Pour les balises délimitées par des chaînes, tag_name est utilisé uniquement pour vérifier si un inspecteur de propriétés spécifique est applicable à la balise. Si la première ligne de l'inspecteur d'attributs contient le nom de la balise dans une position conforme (en fait, dans la première ligne de déclaration) et est marquée d'un astérisque ("*"), alors l'inspecteur sera autorisé à inspecter l'étiquette de type. . Par exemple, le nom de balise du code ASP est ASP. Les inspecteurs qui permettent de vérifier le code ASP doivent contenir *ASP* dans la première ligne. Pour plus d’informations sur l’API Property Inspector, consultez Property Inspector.
tag_type détermine si la balise est vide (comme l'img mentionné précédemment) ou permet de placer le contenu entre les balises d'ouverture et de fermeture (comme la balise code). Cet attribut est nécessaire pour les balises normales (non délimitées par des chaînes), mais n'a aucun effet sur les balises délimitées par des chaînes car elles sont toujours vides. Les valeurs valides incluent « vide » et « non vide ».
render_contents détermine si l'étiquette affiche le contenu en mode conception ou le remplace par une icône spécifique. Cet attribut n'est nécessaire que pour les balises non vides et n'a aucun effet sur les balises vides (les balises vides elles-mêmes n'ont aucun contenu à afficher). Cet attribut ne s'applique qu'aux balises insérées en dehors de l'attribut. Si une balise est insérée dans la valeur d'attribut d'autres balises, son contenu ne sera pas affiché (ce paragraphe est un peu difficile à comprendre. Je pense aux objets tels que RealMedia et Flash . À l'intérieur de ces balises param ? Les valeurs valides sont « vrai » ou « faux ».
content_model décrit le type de contenu que cette balise peut contenir et où cette balise peut être insérée dans le fichier HTML. Les valeurs valides incluent "block_model", "head_model", "marker_model" et "script_model" :
·block_model signifie que la balise peut contenir des objets de bloc tels que div et p, et que la balise ne peut apparaître que dans la zone du corps, ou être inséré dans d'autres balises de contenu de corps, telles que div, layer et td.
·head_model signifie que l'étiquette ne peut contenir que du texte et ne peut apparaître que dans la plage HEAD.
·marker_model signifie que la balise peut contenir n'importe quel code HTML valide et peut être placée n'importe où dans le fichier HTML. Le validateur HTML intégré de Dreamweaver ignore les balises définies comme Marker_model. Cependant, le contenu contenu dans ces balises n'est pas ignoré par le validateur ; ainsi, même si la balise elle-même peut être placée n'importe où, son contenu peut provoquer des erreurs dans certaines parties du HTML. Par exemple, le texte brut ne peut pas apparaître (sauf pour les éléments d'en-tête légaux) dans la zone d'en-tête du document, vous ne pouvez donc pas placer une balise Marker_model contenant du texte brut dans la zone d'en-tête (si vous souhaitez faire cela, vous devez modifier le modèle de contenu de la balise Remplacé par Marker_model par head_model). Les balises utilisant Marker_model seront affichées sur une seule ligne (dans un élément de bloc tel qu'un p ou un div - par exemple, dans un paragraphe). Si vous souhaitez que la balise affiche son propre paragraphe, laissez des lignes vides avant et après. Il est recommandé de ne pas utiliser ce mode.
·script_model permet à cette balise d'être placée n'importe où entre les balises HTML du document. Lorsque Dreamweaver détecte une balise à l'aide de ce mode, tout le contenu de la balise est ignoré. Dreamweaver n'analysera pas ces balises (telles que certaines balises ColdFusion) lorsqu'elles sont utilisées.
start_string spécifie un délimiteur comme point de départ pour les étiquettes délimitées par des chaînes. Les étiquettes délimitées par des chaînes peuvent être placées partout où un commentaire peut être inséré. Dreamweaver n'analysera, n'encodera ni ne liera le code entre start_string et end_string. Cet attribut est requis lorsque end_string a été défini.
end_string spécifie un délimiteur comme point final d'une étiquette délimitée par une chaîne. De plus, cet attribut est requis lorsque start_string a été défini.
detect_in_attribute spécifie s'il faut ignorer tout le code entre start_string et end_string (ou entre les balises de début et de fin, si ces deux chaînes ne sont pas définies), indépendamment du fait que des attributs ou des valeurs soient insérés entre ces codes. Sa valeur par défaut est "false", mais en général, les balises délimitées par des chaînes doivent avoir cette valeur définie sur "true". Par exemple, la spécification de la balise ASP spécifie detect_in_attribute="true", donc même s'il y a des guillemets contenant des valeurs d'attribut à l'intérieur de la balise ASP, elles seront ignorées par Dreamweaver.
parse_attributes indique s'il faut analyser les attributs de la balise. Si la valeur est « true » (valeur par défaut), Dreamweaver analysera ces propriétés ; si la valeur est « false », Dreamweaver ignorera tout le code avant le « > » en dehors des guillemets. Par exemple, pour les balises telles que cfif, cet attribut doit être défini sur « false » (car Dreamweaver ne peut pas analyser une balise telle que <cfif a is 1> en tant que paire nom/valeur d'attribut).
icon spécifie le chemin et le nom de fichier de l'icône qui correspond à cette étiquette. Cette propriété est requise pour les balises vides, ainsi que pour les balises non vides dont le contenu ne peut pas être affiché dans la vue conception de la fenêtre du document.
icon_width spécifie la largeur en pixels de l'icône.
icon_height spécifie la hauteur en pixels de l'icône.
équivalent_tag spécifie des équivalents HTML simples pour certaines balises associées aux formulaires dans ColdFusion. Cet attribut ne peut pas être utilisé par d'autres balises.
is_visual spécifie si l'étiquette est visible sur la page. Par exemple, la balise ColdFusion cfgraph ne spécifie pas de valeur pour is_visual (la valeur par défaut « true » est donc utilisée), et la balise ColdFusion cfset spécifie une valeur pour is_visual de « false ». Dans la colonne « Éléments invisibles » de la boîte de dialogue par défaut, vous pouvez contrôler la visibilité des étiquettes de serveur ; la visibilité des étiquettes de serveur visuelles et des étiquettes de serveur non visuelles peut être définie séparément.
server_model, s'il est défini, indique que la balise tagspec ne peut être appliquée qu'aux pages appartenant au modèle de serveur spécifié. S’il n’est pas défini, tagspec peut être appliqué à toutes les pages. Par exemple, les délimiteurs pour ASP et JSP sont identiques, mais la balise tagspec applicable à JSP spécifie le mode serveur comme « JSP ». Ainsi, lorsque Dreamweaver détecte un délimiteur spécifique sur une page JSP, il affiche une icône JSP lorsque la même icône ; est détecté dans une page non-JSP, il affiche l'icône ASP.
Aucuncontenu
(balise vide).
Conteneur
Aucun.
Exemple
<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif" icon_width="18" icon_height="18"></tagspec>
Balise personnalisée dans la conception Comment la vue affiche
les balises personnalisées dans la vue conception de la fenêtre du document dépend des valeurs de l'attribut tag_type et de l'attribut render_contents de la balise tagspec (voir l'analyse des balises tierces personnalisées). Si la valeur de tag_type est "vide", l'icône spécifiée définie par l'attribut icon est affichée. Si la valeur de tag_type est "nonempty" mais que la valeur de render_contents est "false", l'icône sera également affichée comme une balise vide. L'exemple suivant montre comment une instance de la balise happy que nous venons de définir peut être insérée dans du code HTML :
<p>Il s'agit d'un paragraphe qui inclut une instance de la balise <code>happy</code> (<happy>Joe</ happy>).</p>
Étant donné que render_contents a été défini sur "false" dans la spécification de la balise, la balise happy (word joe) ne sera pas affichée et les balises d'ouverture et de fermeture, y compris le contenu entre elles, seront remplacées par un Icône simple.
Pour une balise non vide avec une valeur render_contents de "true", le mode conception ne l'affichera pas sous forme d'icône, mais affichera le contenu entre les balises d'ouverture et de fermeture (comme le texte entre les balises, comme ceci : < mytag> C'est le contenu entre les balises d'ouverture et de fermeture </mytag>). Si Affichage > Assistants visuels > Éléments invisibles est sélectionné dans l'option de menu, alors ce contenu sera mis en évidence à l'aide de la couleur de balise tierce spécifiée par le paramètre « Code Color » (« Code Color » s'applique uniquement aux fichiers de bibliothèque de balises
Comment modifier la couleur de surbrillance des balises tierces :
1.
Sélectionnez Edition > Préférences dans les options du menu, puis sélectionnez la colonne « Couleur du code ».
2. Cliquez sur la case de couleur de l'étiquette tierce pour afficher le sélecteur de couleurs.
3. Sélectionnez une couleur, puis cliquez sur "OK" et fermez la boîte de dialogue prédéfinie. Pour plus d’informations sur le choix des couleurs, consultez également Utilisation de Dreamweaver.
Évitez de réécrire les balises tierces
. Dreamweaver corrigera certaines erreurs dans le code HTML. Pour plus d'informations, reportez-vous à Utilisation de Dreamweaver. Par défaut, Dreamweaver empêche les modifications du code HTML dans les fichiers portant certaines extensions de fichier, notamment .asp (ASP), .cfm (ColdFusion), .jsp (JSP) et .php (PHP). Ce paramètre par défaut garantit que Dreamweaver ne modifie pas accidentellement le code contenu dans les balises non HTML. Vous pouvez modifier le comportement de réécriture par défaut de Dreamweaver afin que le code HTML soit réécrit lorsque de tels fichiers sont ouverts, et vous pouvez ajouter d'autres types de fichiers à la liste des types de fichiers que Dreamweaver interdit la réécriture.
Lorsque vous saisissez certains caractères spéciaux dans l'inspecteur des propriétés, Dreamweaver les code en valeurs numériques. De manière générale, il est préférable de laisser Dreamweaver effectuer cet encodage, car ces caractères spéciaux s'afficheront probablement mieux sur les différentes plates-formes et navigateurs. Toutefois, étant donné que cet encodage affecte les balises tierces, vous souhaiterez peut-être modifier le comportement d'encodage de Dreamweaver lorsque vous modifiez des fichiers contenant des balises tierces.
Autorisez Dreamweaver à réécrire le code HTML dans davantage de types de fichiers :
1. Sélectionnez Édition > Préférences dans les options du menu, puis sélectionnez la colonne "Réécriture de code".
2. Choisissez l'une des options suivantes :
· Corrigez les balises imbriquées illégales ou les balises sans fin. · Supprimez les balises de fermeture redondantes.
3. Effectuez l'une des opérations suivantes :
· Supprimez une ou plusieurs extensions de fichiers de la liste « Ne jamais réécrire le code : dans les fichiers avec des extensions ».
· Décochez l'option « Ne jamais réécrire le code : dans les fichiers avec extensions ». Remarque : Cela permet à Dreamweaver de réécrire le code HTML dans n'importe quel type de fichier.
Ajoutez des types de fichiers que Dreamweaver interdit la réécriture :
1. Sélectionnez Édition > Préférences dans les options du menu, puis sélectionnez la colonne « Réécriture de code ».
2. Choisissez l'une des options suivantes :
· Corrigez les balises imbriquées illégales ou les balises sans fin. · Supprimez les balises de fermeture redondantes.
3. Confirmez que l'élément « Ne jamais réécrire le code : dans les fichiers avec des extensions » est sélectionné et ajoutez la nouvelle extension de fichier à la liste dans la zone de texte.
Si le nouveau type de fichier n'apparaît pas dans le menu contextuel de la boîte de dialogue Fichier > Ouvrir, vous devrez peut-être l'ajouter au dossier Configuration/Extensions.txt. Pour plus de détails, voir Modification du type de fichier par défaut.
Désactivez les options de codage de Dreamweaver :
1. Sélectionnez Édition > Préférences dans les options du menu, puis sélectionnez la colonne « Réécriture du code ».
2. Annulez l'une des deux options « Encodage des caractères spéciaux ».
Pour plus d’informations sur la sélection des préférences Code Rewrite, consultez Utilisation de Dreamweaver.