HandCoder : extension Nvu pour Tidy et PHP

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Vu du coté de Nvu, JSP et ASP c'est pareil, il suffit de convertir les <?php ?> en <% %> à l'enregistrement ; en tout cas, c'est tout ce que je peux faire avec hc03x.
J'ai regardé aussi pour ColdFusion, mais franchement la syntaxe me gonfle, et de toutes façons je ne crois pas que ça soit du ressort de Nvu.
Do-IT a écrit :Avec Tidylib et support des include ?
C'est pas Noël... J'essaye de trouver un sponsor pour inclure TidyLib dans Nvu.
Pour les includes, ça sera pour une version ultérieure.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

hc0.3.3 + tidy (win) sur demande (paramètre par défaut).
Tidy me transforme le strict en transitional, le utf-8 en iso-... et le pire c'est qu'il me transforme les caractères htlm &... en caractères en clairs. (Pour le BOM je sais pas encore).
C'était pas censé fonctionner ? :( (Où alors il est trop tard dans la nuit pour faire du html ?)
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Bah si, c'était censé fonctionner... :roll:
hc033 installé sur un Nvu tout neuf, sous WinXP, avec une page HTML 4.01 Strict en UTF-8.
Do-IT a écrit :Tidy me transforme le strict en transitional
Je n'ai rien constaté d'anormal concernant le doctype, il reste en Strict.
Peux-tu poster le doctype avant [F7] / après [F7] STP ?
Do-IT a écrit :[Tidy me transforme] le utf-8 en iso-... et le pire c'est qu'il me transforme les caractères htlm &... en caractères en clairs. (Pour le BOM je sais pas encore).
Vu. A priori ça dépend des préférences d'encodage (préférences > avancées > définir les caractères suivants en tant qu'entité):
  • si on choisit la première option ("uniquement & < > et les espaces insécables"), tout fonctionne correctement ;
  • si on choisit une autre option, Nvu enregistre la page avec des entités HTML (ou numériques), et Tidy les convertit en caractères 8 bits => incorrect !
Evidemment, vu que j'utilise systématiquement la première option, j'ai laissé filer ce bug.

EDIT: il y aurait moyen de corriger ça, en utilisant l'option "--char-encoding ascii" pour les options 2 et 3 (hc033 utilise toujours "raw") ; mais ça remplace la meta du charset par un charset "ascii". Serait-ce gênant ? De mon coté, je ne vois pas l'intérêt de spécifier le charset si on encode tous les caractères non-ascii en entités HTML...
Pour l'option 4, idem en ajoutant "--numeric-entities yes".
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Config Nvu 1 2 3 Hc 1 2
Le cas plus haut se passe avec un fichier de travail. Je n'arrive pas pour l'instant à reproduire avec un fichier de test.
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Donc Tidy me transforme (sans faire de sauvegarde)

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
en
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Mes caractères html sont convertis en caractères en clairs, et à l'ouverture suivante de la page ça foire vu que la page est en utf-8.
Pour le charset, j'y travaille à reproduire.
Donc il faut laisser le 1er choix de la liste des options. On avait discuté de ce choix il y a longtemps. Je voyais pas de différence, du coup là je la voie.
Oui c'est important d'avoir le charset en utf-8, je crois, si on affiche des données en dynamique (php) provenant d'un fichier utf-8. Bon je suis pas sûr à 100%, mais je le saurai d'ici cet été. Faut encore que je teste les fonctions mbstring.
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Do-IT a écrit :Donc Tidy me transforme (sans faire de sauvegarde) [...]
Contrairement aux versions précédentes, hc033 corrige le doctype à la sauvegarde, et non via Tidy (qui n'ajoute pas la DTD en HTML 4.01). Si tu ne fais pas de sauvegarde, le doctype erronné de Nvu est transformé par Tidy en transitionnel.
It's not a bug, it's a feature.
Do-IT a écrit :Donc il faut laisser le 1er choix de la liste des options. On avait discuté de ce choix il y a longtemps. Je voyais pas de différence, du coup là je la voie.
Malgré tout c'est un problème, puisque par défaut Nvu est calé sur la troisième option.
Do-IT a écrit :Oui c'est important d'avoir le charset en utf-8, je crois, si on affiche des données en dynamique (php) provenant d'un fichier utf-8.
Bonne remarque ça... le charset est indispensable quand on utilise du PHP, même si la page est encodée avec des entités HTML.
Quoiqu'il en soit, je persiste à penser que l'option 1 est préférable (nécessaire ?) pour éditer une page HTML dans un éditeur texte.

Avec hc03x et Tidy (pas lib), le mieux que je puisse faire c'est d'appliquer la solution "--char-encoding raw/ascii" sur les fichiers *.html ; pour les fichiers *.php, on pourrait ignorer ces préférences et forcer l'enregistrement avec l'option 1 (pour ne pas pourrir le charset) + les deux cases à cocher qui suivent (pour ne pas pourrir les attributs).
Dans les deux cas, ça suppose qu'on sauvegarde la page courante juste avant de lancer Tidy : l'option "Tidy sur demande" perd un peu de son intérêt.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Kaze a écrit :It's not a feature, it's a bug.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <title>test</title>
</head>
<body>
test
<?php print""; ?>
</body>
</html>
Tidy à la sauvegarde. Sauvegarde

Code : Tout sélectionner

?php // Generated by Nvu + HandCoder ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta name="generator" content="HTML Tidy for Windows (vers 12 April 2005), see www.w3.org">
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <title>
      test
    </title>
  </head>
  <body>
    test <?php print""; ?>
  </body>
</html>
On reprend le 1er code. Tidy à la demande uniquement. On fait la sauvegarde.

Code : Tout sélectionner

<?php // Generated by Nvu + HandCoder ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <title>test</title>
</head>
<body>
test
<?php print""; ?>
</body>
</html>
Suivant d'un coup de tidy

Code : Tout sélectionner

<?php // Generated by Nvu + HandCoder ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta name="generator" content="HTML Tidy for Windows (vers 12 April 2005), see www.w3.org">
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <title>
      test
    </title>
  </head>
  <body>
    test <?php print""; ?>
  </body>
</html>
Config caractères spéciaux 3eme option. argument tidy par defaut.

Faché linspire donc un fork ? :roll:
Kaze a écrit :Quoiqu'il en soit, je persiste à penser que l'option 1 est préférable (nécessaire ?) pour éditer une page HTML dans un éditeur texte.
L'idéal serait d'avoir une page avec charset utf-8, d'avoir des entités html quand on tape des caractères spécialux dans nvu. Que ce soit éditable avec l'editeur externe, et que le tout reste stable (pas de carré ni de ? qui pourrisent le texte)
Si pour ca il faut prendre l'option 1, ok moi ca me gène pas je le sait.
L'option3 c'etait juste pour tester un peu.
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Je crois que j'ai trouvé. Il m'était resté en travers de la gorge celui là.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <title>test</title>
</head>
<body>
test
<?php print""; ?>
</body>
</html>
Faut garder un bon code quand on le tient.
nvu seul => ok
nvu+nsm => blocage gestionnaire de site, le fichier ne s'ouvre pas.
nvu+hc => ok
nvu+hc+nsm => ca depend de l'ordre d'installation. Si nsm est installé en 1er et hc en dernier c'est blocage. Si hc est installé en 1er et nsm en dernier c'est ok.
Erreur : window.top.document.open is not a function
Fichier source : chrome://nsmcontext/content/sitemanagerOverlay.js
Ligne : 121
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Décidément, il va falloir que je teste mieux mon gourbi !
Do-IT a écrit :Sinon nsm031 est toujours faché avec moi et ce(s) fichier(s) php, ca bloque le gestionnaire et rien se passe. [...]
nvu+hc+nsm => ca depend de l'ordre d'installation. Si nsm est installé en 1er et hc en dernier c'est blocage. Si hc est installé en 1er et nsm en dernier c'est ok.
Avec nsm032 aussi ? (mon site web n'est pas à jour, mais la page EGO l'est)
Ma version de travail a bien divergé de la 03x, il faut que je reprenne ça plus sérieusement.
Do-IT a écrit :L'idéal serait d'avoir une page avec charset utf-8, d'avoir des entités html quand on tape des caractères spéciaux dans nvu. Que ce soit éditable avec l'editeur externe, et que le tout reste stable (pas de carré ni de ? qui pourrisent le texte)
Ca resterait éditable dans l'éditeur texte, mais je trouve quand même plus simple de lire [é] plutôt que [&eacute;]...
Do-IT a écrit :Si pour ca il faut prendre l'option 1, ok moi ca me gène pas je le sait.
L'option3 c'etait juste pour tester un peu.
Si on pense aux russes, chinois, japonais et autres utilisateurs "naturels" de l'UTF-8, ça devient un bug grave.
Je n'ai pas encore de solution vraiment satisfaisante, mais je crois qu'il sera difficile de dissocier Tidy de la sauvegarde...

Merci pour ces test. :)
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Kaze a écrit :Avec nsm032 aussi ? (mon site web n'est pas à jour, mais la page EGO l'est)
Fatalement, j'ai toujours cette mauvaise habitude d'aller à la source. Avec nsm032 (sur un autre poste) ca a l'air d'aller mieux. A confirmer mardi.
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Kaze a écrit :il y aurait moyen de corriger ça, en utilisant l'option "--char-encoding ascii" pour les options 2 et 3 (hc033 utilise toujours "raw") ; mais ça remplace la meta du charset par un charset "ascii". Serait-ce gênant ? De mon coté, je ne vois pas l'intérêt de spécifier le charset si on encode tous les caractères non-ascii en entités HTML...
Pour l'option 4, idem en ajoutant "--numeric-entities yes".
Avec hc03x et Tidy (pas lib), le mieux que je puisse faire c'est d'appliquer la solution "--char-encoding raw/ascii" sur les fichiers *.html ; pour les fichiers *.php, on pourrait ignorer ces préférences et forcer l'enregistrement avec l'option 1 (pour ne pas pourrir le charset) + les deux cases à cocher qui suivent (pour ne pas pourrir les attributs).
Dans les deux cas, ça suppose qu'on sauvegarde la page courante juste avant de lancer Tidy : l'option "Tidy sur demande" perd un peu de son intérêt.
J'ai testé les 4 options, ajouté tous les arguments possible à tidy, sans meta charset ou avec meta charset utf8 ou iso. Mais rien n'y fait, je n'arrive pas a garder les entités html ou numériques après un coup de tidy.
Le cas qui pose le plus de problème c'est celui du meta charset utf8, plus moyen d'ouvrir un fichier qui contient des accents.

J'ai raté un épisode ? Je voudrais juste que tidy conserve les entités html ou numériques.

EDIT:
Je tape dans nvu

Code : Tout sélectionner

&é"'(-è_çà<>
J'enregistre avec l'option 1

Code : Tout sélectionner

&é"'(-è_çà<>
J'enregistre avec l'option 2 = option 1 + Latin-1

Code : Tout sélectionner

&&eacute;"'(-&egrave;_&ccedil;&agrave;<>
J'enregistre avec l'option 3

Code : Tout sélectionner

&&eacute;"'(-&egrave;_&ccedil;&agrave;<>
Aucune différence avec l'option 2

J'enregistre avec l'option 4

Code : Tout sélectionner

& #38;& #233;"'(-& #232;_& #231;& #224;& #60;> (sans les espaces)
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Je refais la même chose avec un coup de tidy (à la sauvegarde)

option 1 + argument par défaut

Code : Tout sélectionner

&é"'(-è_çà<>
option 2 + --char-encoding ascii

Code : Tout sélectionner

&é"'(-è_çà<>
option 3 + --char-encoding ascii

Code : Tout sélectionner

&é"'(-è_çà<>
option 4 + --numeric-entities yes

Code : Tout sélectionner

&é"'(-è_çà<>
Tests fait avec un fichier .html en html strict et meta charset ISO-8859-1
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Do-IT a écrit :
Kaze a écrit :Avec nsm032 aussi ? (mon site web n'est pas à jour, mais la page EGO l'est)
Fatalement, j'ai toujours cette mauvaise habitude d'aller à la source. Avec nsm032 (sur un autre poste) ca a l'air d'aller mieux. A confirmer mardi.
Je n'ai toujours pas localisé nsm032, c'est pourquoi c'est resté à la version 0.3.1 sur mon site web.
Do-IT a écrit :J'ai raté un épisode ? Je voudrais juste que tidy conserve les entités html ou numériques.
hc03x ajoute systématiquement "--char-encoding raw" quand on lance Tidy. L'option "--char-encoding ascii" que tu ajoutes dans les paramètres de Tidy sera donc toujours ignorée.
Pour faire des tests, il faudrait lancer Tidy avec nsm ou depuis la ligne de commande.
Do-IT a écrit :J'enregistre avec l'option 3 [...]
Aucune différence avec l'option 2
Je n'ai pas compris la différence non plus. Pour moi, cette préférence devrait avoir 3 options :
  • encoder uniquement & < > et les espaces insécables (raw)
  • encoder les caractères non-ascii avec des entités HTML (ascii)
  • encoder les caractères non-ascii avec des entités numériques (ascii + numeric-entities)
Autre chose : l'option "n'encode pas > sauf dans les valeurs d'attributs" est dangereuse, puisqu'elle te laisse ">" non encodé dans ton code source ! Je n'en vois pas l'intérêt non plus.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Do-IT
Iguane
Messages : 537
Inscription : 03 juil. 2005, 09:46

Message par Do-IT »

Si le php avant le doctype dépasse 1 ligne celui-ci est dupliqué dans le head.
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Message par Kazé »

Un autre bug, signalé sur le forum allemand : le fragment

Code : Tout sélectionner

<?php header(); ?>
<div id="page">[...]</div>
<?php footer(); ?>
devient

Code : Tout sélectionner

<div id="page">[...]</div>
<?php footer(); ?>
après sauvegarde + Tidy.
Sans Tidy, un doctype est ajouté en début de fragment. :oops: :oops: :oops:

Bon, il va falloir faire une nouvelle version rapidement.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités