HandCoder
Edition avancée du code HTML, support Tidy et ASP/JSP/PHP pour Nvu et KompoZer.
Fonctionnalités
Nota :
- HandCoder ne fonctionne que sur les fichiers locaux, pas (encore) sur les fichiers distants ;
- Tidy n'est pas (encore) supporté sous MacOS X.
Installation
La localisation de HandCoder n'est malheureusement pas possible pour l'instant, c'est une limite de Nvu. En attendant, plusieurs packages sont proposés :
Pour installer l'extension :
- choisir la langue (probablement le français ;-))
- enregistrer le fichier XPI sur votre disque dur (clic droit, "enregistrer la cible du lien sous...")
- lancer Nvu
- Outils > Extensions > Installer
- fermer et redémarrer Nvu
Ne pas installer cette extension sous Firefox !
Changelog
- version 0.3.3 (2006-05-20)
- correction de bugs
- version 0.3.2 (2006-03-25)
- meilleur support PHP (complètement réécrit)
- les templates et fragments sont éditables en mode source
- possibilité d'ouvrir des fichiers *.php locaux sous Linux
- version 0.3.0 (2005-11-27)
- première version publique
- surveillance des modifications de toutes les pages ouvertes
- auto-reformattage avec Tidy
- support ASP/JSP/PHP désactivé par défaut
- 2005-10-20 : premier XPI, basé sur NsmConText 0.2.5+
Roadmap
- meilleur support ASP/JSP/PHP possible
- support de Tidy pour MacOS X
- onglets "Source" pour CaScadeS et les propriétés avancées
- mise à jour automatique
FAQ
- Pourquoi Nvu reformatte-t'il mon code ?
-
Ceci est lié au mode de fonctionnement de Nvu, plus précisément à la façon dont le code HTML est sérialisé ; aller sur le blog de l'auteur ou sur le forum GeckoZone (ici et là) pour plus d'informations.
Personnellement j'utilise htmlTidy (que je déclare comme un éditeur HTML dans NsmConText, et comme "compilateur" HTML dans SciTE) pour "remettre mon code d'aplomb" avec mes options préférées : indentation, encodage, etc.
Je pense que ce reformattage de code n'est réellement gênant que pour le contenu des attributs : par exemple, <img src="<?php getImage() ?>"> ou <img src="{image}"> sont reformattés avec des entités, ce qui rend un template HTML inutilisable par un serveur PHP ; ce point est en cours de développement par l'auteur de Nvu.
- Comment fonctionne Tidy ?
-
Tidy est un utilitaire libre en ligne de commande, créé intialement par Dave Raggett ; il est très utilisé pour reformatter du code HTML ou XML, ainsi que pour convertir des pages HTML en XHTML. Il est disponible pour Windaube, MacOS X, Linux et la plupart des systèmes.
Il dispose de très nombreuses options de configuration ; en tout état de cause, il permet de reformatter le code HTML bien mieux que ce qu'on pourrait faire "à la main".
-
HandCoder permet de lancer Tidy soit manuellement (F7), soit automatiquement (à chaque sauvegarde ou à chaque édition avec un éditeur externe). Dans les blocs <pre>, les balises <br /> sont remplacées par des fins de lignes (CR/LF).
- Pourquoi Nvu modifie-t'il mon code PHP ?
-
Parce qu'il reformatte le code.
Nvu ne permet pas d'éditer des pages HTML qui contiennent du code PHP avant le DOCTYPE (le code PHP est déplacé dans le corps du document HTML), ce qui empêche d'utiliser des start-session ou d'éditer des templates PHP proprement. Nvu ne permet pas non plus d'éditer des pages ASP ou JSP, car les balises <%...%> ne sont pas supportées (non-conformes XML).
Nvu ne permet pas non plus d'éditer des fragments de code HTML : si on éditer avec Nvu un document qui ne contient aucune balise <html>, <head> ou <body>, Nvu inclut le fragment dans une page HTML vierge.
Nvu reste utilisable pour une utilisation basique du PHP, typiquement pour inclure des fragments de page (bannière, menus, etc.) dans un document avec un <?php include('menu.tpl'); ?>, ou pour réaliser des templates de code. Attention, par défaut, Nvu reformatte systématiquement le contenu des attributs HTML ; depuis la version 1.0 de Nvu, il y a une préférence avancée pour ne plus reformatter les attributs.
- Comment fonctionne le support ASP/JSP/PHP ?
-
HandCoder dispose d'une fonctionnalité expérimentale, qui lui permet d'éditer sans les corrompre la plupart des fichiers asp, jsp ou php avec Nvu, y compris un squelette PHP du type :
<?php [... code PHP ...] ?> <!DOCTYPE ... > <html> [... page HTML ...] </html>
Cette fonctionnalité est encore en test, il faut modifier une préférence cachée pour l'activer ; voir ce message pour plus d'informations.
Principe de fonctionnement :
- pour un squelette de page, le code précédent le DOCTYPE est sauvegardé dans un fichier temporaire, puis refusionné avec la page courante lors de la sauvegarde ;
- pour un fragment de page, tout le code est inclus dans une page HTML temporaire, puis extrait du <body> lors de la sauvegarde ;
- les balises courtes (<?...?> ou <%...%>) sont transformées en balises compatibles XML pour l'édition (<?php...?>) ;
- dans le cas d'un fichier ASP ou JSP, ces balises sont à nouveau transformées en balises courtes <%...%> lors de la sauvegarde.
Nota : quelque soit l'éditeur, si le code PHP devient complexe, il est fortement déconseillé de mélanger du code HTML et PHP dans une même page, car c'est vite très difficile à maintenir : l'utilisation de moteurs de templates tels que Smarty (le top du top) ou FastTemplates (très simple), pour séparer le code PHP de la présentation HTML, est très largement préférable.
Attention, HandCoder ne garantit pas à 100% que Nvu ne déteriorera pas votre document PHP.
- Est-il possible d'utiliser Nvu pour publier un script PHP sur son serveur web, sans ouvrir le script avec Nvu... qui le modifie plus que dangereusement ?
-
En l'état, non. Personnellement j'utilise encore FileZilla ou gFTP pour la publication. Pour MacOS X, CyberDuck semble être un très bon client FTP.
Sinon, une application de synchronisation comme SiteCopy ou FTPsync.pl est une alternative intéressante ; le top serait un équivalent JavaScript qu'il serait possible d'inclure comme extension.
- Je lance Firefox sur un fichier PHP mais ça ne fonctionne pas.
-
La prévisualisation HTTP est activée si, dans les paramètres du site, une addresse http est renseignée ; on peut alors visualiser un fichier html ou php avec une adresse http://monsite/mapage.html au lieu de file://C:/[...]/mapage.html ou ftp://monsite/mapage.html.

last update: