Page 1 sur 2
KompoZer 0.8 + HandCoder
Publié : 13 mai 2009, 18:47
par Kazé
Bonjour,
comme je l’ai indiqué dans l’annonce de KompoZer 0.8a4, HandCoder 0.3.x n’est plus compatible avec KompoZer 0.8.
Pour reprendre ce que j’ai écrit
précédemment, voilà les principales fonctionnalités de HandCoder 0.3.x :
- correction de certains bugs de Nvu
- une librairie, partagée avec NsmConText, pour lancer des applications externes
- bouton + raccourci clavier pour éditer le document courant dans un éditeur externe
- alerte « fichier modifié », qui apparaît quand un document de KompoZer est modifié par une application externe
- possibilité de lancer le nettoyeur de balises avant sauvegarde
- possibilité de reformatter le code avec Tidy avant sauvegarde
- possibilité d’ouvrir et de sauvegarder des fragments de code (x)html, i.e. des documents HTML bien formés mais sans nœud <html>, <head> ni <body>
- meilleur support PHP (notamment sous Linux), voire ASP/JSP/Ruby (i.e. les balises <%
%>)
L’un des objectifs de KompoZer 0.8 est d’intégrer toutes les fonctionnalités
stables de HandCoder : les deux devront donc évoluer parallèlement, ce qui m’empêche de fournir une version officielle de HandCoder pour l’instant.
KompoZer 0.8a4 intègre d’ores et déjà les points #1 à #4.
Voilà une pré-version de HandCoder qui implémente les points #5 et #6 : HandCoder-20090513.xpi
[EDIT] Précision : les points #7 et #8 ne sont pas supportés pour l’instant, on ne peut donc toujours pas ouvrir des fichiers PHP ou des fragments HTML. [/EDIT]
En clair, c’est une version qui permet de confier le reformattage du code HTML à Tidy. Ça ne fonctionnera malheureusement pas sur MacOS X.
Il n’y a donc pas encore de support pour les fragments HTML, ni pour les prologues PHP, et encore moins pour les balises courtes <%
%> : tout cela arrivera en son temps, la priorité restant de faire aboutir KompoZer 0.8. Par ailleurs, le point #8 n’a jamais fonctionné correctement (les prologues, en particulier, sont capricieux), il serait donc plus judicieux de reprendre complètement cette partie-là.
J’ouvre ce sujet pour regrouper toutes les questions et suggestions sur HandCoder pour KompoZer 0.8. Les rapports de bugs sont bienvenus, mais pas sur les points #7 et #8, bien évidemment.
Mise à jour : ajout d’une copie d’écran.
Publié : 13 mai 2009, 19:40
par Kazé
J’en profite pour coller un résumé d’une discussion qu’on a eue sur le reformattage du code
Il paraît à peu près évident qu’il vaudrait mieux l’intégrer à KompoZer ou à HandCoder plutôt que de le confier à une application externe qui pose tout un tas de problèmes (résultat variable selon la version utilisée, MacOS non supporté, difficulté supplémentaire de paramétrage
). Ainsi que je l’ai signalé dans
un autre sujet, j’ai deux options pour remettre le code au carré :
- intégrer Tidy dans KompoZer : indentation nickel-chrome, tout plein d’options de mise en forme, mais risque de dénaturer le code source (voire de perdre des éléments au passage)
- bosser sur le sérialiseur XHTML de Gecko : pas d’options de mise en forme mais on est assuré de la fidélité du code (x)HTML. Laurent Jouanneau a proposé un patch long comme le bras pour ça, il faut que je voie si je peux l’implémenter et si ça reste compatible avec les spécificités de KompoZer (PHP notamment)
Le patch de Laurent n’est applicable que sur Gecko 1.9, or KompoZer 0.8 est encore en Gecko 1.8.
J’envisage donc d’intégrer Tidy dans KompoZer 0.8 bêta, sans l’activer par défaut : il faudrait installer HandCoder pour ça. L’avantage serait de garder un comportement stable sans HandCoder (avec un code HTML pourri, certes), et de laisser les utilisateurs avancés installer HandCoder s’ils veulent activer Tidy. Ça n’est qu’un projet, il faut d’abord que j’évalue le temps que ça prendrait.
Publié : 13 mai 2009, 20:27
par chinon37
Question sans doute idiote: on ne peut plus mettre l'icône de Handcoder dans la barre d'outils?
Edit: au temps pour moi

ça m'apprendra à faire joujou avec l'alpha3 et l'alpha4 en même temps

c'est l'alpha3 qui n'a pas l'icône, évidemment!!!
C'était bien une question idiote

Publié : 14 mai 2009, 07:57
par Ymai
Bonjour
Dans la série des questions idiotes...
Kazé a écrit :# meilleur support PHP
ne signifie donc pas "édition possible des fichiers .php" ?
Un meilleur support PHP, c'est très bien. Mais s'il n'est pas possible d'ouvrir les fichiers .php, ni par le gestionnaire de sites, ni par > Fichier > Ouvrir
Il y a sûrement un truc qui m'échappe.
[Edit]Ou bien fallait-il comprendre:
- ne pas encore parler du tout du point 8 ?
[/Edit]
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10
Publié : 14 mai 2009, 12:18
par Zefling

Il dit qu'il ne marche pas pas et qu'il y a tout à revoir. Donc, ça sera présent, il faut juste patienter.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Publié : 14 mai 2009, 12:20
par Ymai
Zefling a écrit : ça sera présent, il faut juste patienter.
It's not a bug, it's a feature
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10
Publié : 14 mai 2009, 13:58
par Kazé
Désolé, visiblement ne n’ai pas été clair — comme à chaque fois que je tente d’être précis, du reste.
Ymai a écrit : Ou bien fallait-il comprendre:
- ne pas encore parler du tout du point 8 ?
Les points 1 à 4 sont inclus dans KompoZer, les points 5 et 6 dans HandCoder 0.4pre
et les 7 et 8, bah, pour l’instant y’a pas.
Ces deux points fonctionnaient plus ou moins bien dans les versions 0.3.x, je me demande s’il ne faudrait pas les reprendre entièrement plutôt que de les adapter à KompoZer 0.8 en l’état. Je tâche de trouver un moment pour vous faire ça rapidement.
Publié : 14 mai 2009, 14:09
par Do-IT
Sans hc :
- Le bouton 'Éditeur externe' fonctionne,
- Double clic sur tous les fichiers php (même un fichier html avec l'extension php) > Ouverture avec l'éditeur externe > L'ouverture d'un fichier html se fait dans un nouvel onglet (l'onglet vide ne veut pas)
Avec hc0513 :
- Le bouton 'Éditeur externe' ne fonctionne plus
Code : Tout sélectionner
Error: gHelpers.OpenWith is not a function
Source File: chrome://handcoder/content/editorOverlay.js
Line: 703
Error: uncaught exception: [Exception... "'[JavaScript Error: "gHelpers.OpenWith is not a function" {file: "chrome://handcoder/content/editorOverlay.js" line: 703}]' when calling method: [nsIControllerCommand::doCommand]" nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)" location: "JS frame :: chrome://global/content/globalOverlay.js :: anonymous :: line 156" data: yes]
Avec ou sans hc :
- Ouvrir un fichier html > Files > Open Files > Ouvrir un php > Ouverture d'une fenêtre système (ouvrir/enregstrer) > Un nouvel onglet se crée et le contenu est grisé
Publié : 14 mai 2009, 14:22
par Ymai
Do-IT a écrit :
- Ouvrir un fichier html > Files > Open Files > Ouvrir un php > Ouverture d'une fenêtre système (ouvrir/enregstrer) > Un nouvel onglet se crée et le contenu est grisé
Dans mes préférences, j'ai bien coché "Toujours ouvrir dans un nouvel onglet" mais, dans ce cas précis, c'est bien une nouvelle fenêtre qui est utilisée.
Par contre, quand la case est décochée, c'est un nouvel onglet qui est utilisé.
La fonctionnalité marche à l'envers.
Dans la console, trois occurrences du message d'erreur
Code : Tout sélectionner
Erreur : dialog has no properties
Fichier source : chrome://mozapps/content/downloads/unknownContentType.xul
Ligne : 1
à chaque ouverture de fichier.
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10
Publié : 14 mai 2009, 18:16
par Kazé
Pour tout ce qui a trait au gestionnaire de sites, l’alpha5 devrait améliorer les choses. J’ai jeté un œil au code, il faut de toute façon que je fasse deux ou trois modifications dans ce gestionnaire de sites pour que HandCoder permette d’ouvrir relativement proprement les fichiers *.php sous Linux.
Do-IT a écrit :Avec hc0513 :
- Le bouton 'Éditeur externe' ne fonctionne plus
Rhaaaa, si je commence à oublier le nom des objets que je crée moi-même, ça va pas !
s/OpenWith/OpenUrlWith/
HandCoder-20090514.xpi
En espérant que ça fonctionne mieux
je ne m’explique toujours pas pourquoi la version 0513 a fonctionné chez moi.
Publié : 14 mai 2009, 18:20
par Ymai
Normal qu'il n'y ait pas un bouton "Redémarrer KompoZer" dans le gestionnaire d'Add-ons, après une désinstallation ?
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10
Publié : 14 mai 2009, 18:31
par Kazé
C’est normal dans la mesure où c’est pareil avec Thunderbird 2 qui utilise le même noyau Gecko 1.8. Dans l’absolu, c’est ballot.
L’autre truc qui est casse-noix c’est que lorsqu’on installe une extension, la fenêtre des modules complémentaires se duplique pour proposer de redémarrer KompoZer. Par ailleurs, la vérification de compatibilité ne fournit aucun message quand on essaye d’installer une extension prévue pour une version non compatible de KompoZer.
Publié : 14 mai 2009, 18:40
par Do-IT
Ymai a écrit :Normal qu'il n'y ait pas un bouton "Redémarrer KompoZer" dans le gestionnaire d'Add-ons, après une désinstallation ?
Idem.
Pour l'installation du pack de langue et pour hc, le bouton redémarrage ferme kz mais ne le redémarre quasi jamais (j'ai pas approfondi).
Ok pour le bouton "Éditeur" de hc0514
Publié : 15 mai 2009, 05:51
par Kazé
HandCoder-20090515.xpi
Je ne sais pas vraiment si ça valait le coup de publier cette version : certes, elle permet d’ouvrir des fichiers PHP et des fragments HTML, mais elle est bien buggée :
- les prologues PHP sont rarement préservés ;
- les fragments HTML sont systématiquement encodés en HTML et en ISO-8859-1. Était-ce déjà le cas avec HandCoder 0.3.x ?
Il faudrait aussi que l’arbre DOM s’adapte au contenu, en affichant un nœud <prolog> avant <html> si besoin est, et en masquant <html>, <head> et <body> pour les fragments. Idem pour la barre d’état. La vue "Source" montre le doctype sur les fragments HTML, pas terrible non plus.
Par ailleurs, les fichiers temporaires créés par HandCoder sont visibles dans le gestionnaire de sites. À corriger dans KompoZer 0.8a5.
Il faudrait que je regarde si je ne peux pas implémenter le support des fragments HTML directement dans le noyau de KompoZer. Une façon simple serait de considérer que tous les fichiers avec une extension *.html sont du HTML, et que ceux portant une extension *.xhtml sont du XHTML (Lapalisse n’aurait pas dit mieux) ; je n’aurais qu’à utiliser un marqueur spécifique pour que KompoZer ne sauvegarde que le contenu de <body>. Reste l’épineuse question de l’encodage des caractères
Un autre aspect gênant, c’est que la version de Tidy qui est sur ma distro (Ubuntu 8.04 LTS), datée du 6/11/2007, n’utilise pas le même format d’arguments que celle que j’utilisais avec HandCoder 0.3.x. J’ai donc dû utiliser
comme options de formattage pour spécifier que je voulais une indentation automatique sans retour à la ligne forcée, mais je présume que certaines options appliquées automatiquement par KompoZer ne vont pas fonctionner. Voilà une autre bonne raison d’essayer d’inclure Tidy dans KompoZer, même s’il n’est pas utilisé en standard, afin que HandCoder puisse utiliser ce Tidy embarqué plutôt qu’une application externe.
Bref, la seule leçon que je tire de ces quelques heures sur HandCoder, c’est qu’on est encore loin de pouvoir l’inclure dans KompoZer par défaut.
Publié : 03 août 2009, 02:51
par Kazé
Hop, déterrage de topic.
Parmi les fonctionnalités de HandCoder que je n’ai pas citées, il y a un truc un peu couillon et spécifique à Linux : sur cette plate-forme, KompoZer est incapable d’ouvrir un fichier portant l’extension *.php, pour une sombre histoire de type MIME — et ce, même s’il s’agit d’un fichier HTML, sans aucun nœud <?php…?> : quand on essaye d’ouvrir un tel fichier, KompoZer refuse catégoriquement et propose de l’ouvrir avec une application externe. Agaçant.
Pour contourner le problème, HandCoder crée un fichier temporaire avec une extension *.html. Pas très élégant (et même carrément honteux) mais efficace.
Un développeur (Vivien Nicolas, pour ne pas le nommer) vient de m’apporter la solution sur un plateau, je vous fais grâce des détails techniques. Je peux désormais ouvrir les fichiers *.php sous Ubuntu, sans HandCoder, et surtout : sans créer de fichier temporaire ! Inutile de préciser que ça sera dispo dans l’alpha5 de KompoZer 0.8.
Moyennant une certaine quantité de travail, HandCoder pourrait être modifié de sorte à utiliser ce mécanisme et ne plus créer de fichier temporaire.