Nous sommes le Jeu 28 Mars, 2024 17:20
Supprimer les cookies

Page 1 sur 21, 2 SuivantScite reformater html ou xml

Sur le logiciel libre en général ou un logiciel libre en particulier

Sam 18 Déc, 2004 22:34

Bonjour,
J'utilse scite et je n'ai pas trouvé comment reformater du html ou du xml de facon lisible. c'est à dire rajouter des retours chariot, et réindenter.
Par exemple avant :
<addressBook><card><name>b</name><email>b@b</email></card></addressBook>

Après
<addressBook>
<card>
<name>b</name>
<email>b@b</email>
</card>
</addressBook>


En effet scite est très pratique avec les - pour plier déplier les noeuds xml mais uniquement lorsque le code est bien indenté; cela ne marche pas lorsqu'il est mal formaté. Et de toute façon de l'xml formaté et indenté se lit mieux que mal formaté.
Je cherche le même genre de chose pour html.
Merci de votre aide
Soazig
scbf

Messages : 81

Dim 19 Déc, 2004 11:37

Pour nettoyer le code html, il y a un logiciel appelé HTML TIDY. En premier lieu, ce logiciel est destiné à corriger des diverses erreures synatxiques dans le code html, comme p.ex. fermer des balises, mettre les balises en minuscules (<h2> </h2> plutôt que <H2> </H2> ...). Or, TIDY sait aussi formater le code. Il devrait fonctionner avec du XML.
hjs

Messages : 532

Dim 19 Déc, 2004 13:22

Bonjour,
J'ai trouvé d'autres outils pour le faire(Mozilla composer pour le HTML uniquement, PSPAD pout html et xml) mais je cherchais à le faire depuis scite.
Ps : J'ai déjà utilisé HTML tidy.
Soazig
scbf

Messages : 81

Dim 19 Déc, 2004 21:56

Si TIDY te convient, tu peux l'intégrer avec SciTE. Il me semble que tu es sous Windows (tu as parlé de Pspad ...). Tout ce que je te peux te donner c'est une "piste" à poursuivre, c.-à-d. tout ce qui suit n'est pas testé, et je ne peux donner aucune garantie que ça marche du premier coup. Allons-y:

Dans SciTE, ouvre le fichier appelé html.properties. Tu peux le faire via le Menu Options. Quelque part vers la fin de ce fichier (chez moi les lignes 504 à 507), tu trouveras le code suivant:
Code: Tout sélectionner
if PLAT_WIN
    command.go.$(file.patterns.web)="file://$(FilePath)"
    command.go.subsystem.$(file.patterns.web)=2
    command.go.$(file.patterns.php)=php -f $(FileNameExt)

Ces lignes définissent ce qui se passe si tu choisis dans le menu Tools, l'action Go (raccourci clavier F5). Tu dois alors rajouter la ligne suivante:
Code: Tout sélectionner
command.build.$(file.patterns.web)=tidy -f errs.txt -m $(FileNameExt)

Puis, tu peux ouvrir un document html (dont tu as fait un backup au préalable), et choisir l'action Build dans le Menu Tools (raccourci clavier F7)

Qu'est-ce qui va se passer? TIDY va nettoyer et modifier le document en question et écrire des messages d'erreurs et d'avertissements dans le fichier errs.txt.

Deux remarques:
1. Tout ce que je viens de dire présuppose que tidy.exe se trouve dans le chemin d'accès de Windows (path).
2. N'hésites pas de jongler avec les diverses options de TIDY. Ce que je viens de donner n'est qu'un exemple.
3. A quelques (petites) modifications près cette recette devrait pouvoir s'appliquer à d'autres systèmes d'exploitation.

Bonne chance, et n'hésite pas si tu as encore des questions.
hjs

Messages : 532

Dim 19 Déc, 2004 23:08

Voilà, je suis devenu victime de ma propre curiosité. Je viens d'essayer la petite "recette de cuisine" que j'ai proposée dans mon message précédent. Les nouvelles sont plutôt bonnes: ça marche. Voici ce que j'ai fait. J'ai rajouté la ligne suivante dans le fichier html.properties:
Code: Tout sélectionner
command.build.$(file.patterns.web)=tidy -f $(FileName).txt -m $(FileNameExt)
Supposons que l'on travaille sur un fichier appelé "index.html". En appuyant F7, ou en choisissant l'action Build dans le Menu Tools, Tidy va examiner le fichier, le nettoyer (modifier) et écrire des messages dans le fichier "index.txt"

N.b. J'ai mis Tidy dans le "path" de Windows. J'ai aussi modifié la configuration le SciTE, en rajoutant les deux lignes suivantes dans le fichier SciTEUSER.properties (accessible via le Menu Options):
Code: Tout sélectionner
load.on.activate=1
are.you.sure.on.reload=1

La première ligne va mettre à jour le fichier actif dans SciTE, s'il a été modifié par un autre programme. Cette ligne est nécessaire. La deuxième ligne n'est pas vraiment nécessaire. Elle va avoir comme effet d'afficher un petit message qui vous demande si vous êtes sûr de vouloir charger le document modifié. Ces deux fonctions sont par ailleurs expliquées dans la documentation de SciTE.
hjs

Messages : 532

Mar 21 Déc, 2004 21:25

Je me permet de poster en complément car je pense qu'on peut faire un peu plus simple.

tu ajoute les lignes suivantes au fichier SciTEGlobal.properties .

Code: Tout sélectionner
command.name.11.*.xml=Vérifier erreurs avec Tidy
command.11.*.xml=$(SciteDefaultHome)\tidy.exe -xml -m $(FileNameExt)
#-f $(FileName).txt
command.shortcut.11.*.xml=Ctrl+Shift+E
command.subsystem.11.*.xml=1

command.name.12.*.xml=Indenter avec Tidy
command.12.*.xml=$(SciteDefaultHome)\tidy.exe -xml -indent $(FileNameExt) -m $(FileNameExt)
command.shortcut.12.*.xml=Ctrl+Shift+I
command.subsystem.12.*.xml=1

command.name.13.*.html=Vérifier erreurs avec Tidy
command.13.*.html=$(SciteDefaultHome)\tidy.exe -m $(FileNameExt)
#-f $(FileName).txt
command.shortcut.13.*.html=Ctrl+Shift+E
command.subsystem.13.*.html=1

command.name.14.*.html=Indenter avec Tidy
command.14.*.html=$(SciteDefaultHome)\tidy.exe -indent $(FileNameExt) -m $(FileNameExt)
command.shortcut.14.*.html=Ctrl+Shift+I
command.subsystem.14.*.html=1


l'utilisation de la variable SciteDefaultHome evite d'ajouter Tidy à la Path et permet d'utiliser cette nouvelle fonction même si Scite est sur une clé USB (par expl).

Code: Tout sélectionner
#-f $(FileName).txt


Enlever le commentaire pour regiriger vers un fichier texte mais il me semble que la console integré à Scite est tout aussi pratique.

Maintenant en faisant Ctrl+Shift+I ou Ctrl+Shift+E dans un fichier XML ou HTML , on Formate le code ou indique des erreurs éventuelles dans ce fichier.
jay

Messages : 37

Mar 21 Déc, 2004 23:09

Bonjour,
J'ai testé la solution de Jay qui a l'air de fonctionner pas mal.

Au départ quand j'ai posé la question je pensais qu'il y avait un menu ou un fonction que je n'avais pas vu.
Je n'avais pas pensé qu'on pouvais utiliser un programme extérieur pour faire le boulot.

Comme deviné par hjs, je suis bien sous windows et j'utilise scite version 1.62.
Meci à tous.
scbf

Messages : 81

Mer 22 Déc, 2004 19:04

Tu peux de la meme facon utiliser Artistic Style (Lien ci-dessous) pour indenter du code C++, Java , C et autre ..
je l'utilise pour le C# aussi...

http://astyle.sourceforge.net/

téléchargement :
http://sourceforge.net/project/showfiles.php?group_id=2319&package_id=2282&release_id=79468

exemple de configuration de Scite qui (je trouve) convient pour le C#

Code: Tout sélectionner
command.name.0.*.cs=Indenter avec Astyle
command.0.*.cs=astyle --mode=c -S -K -N -m -E -b -P $(FileNameExt)
command.is.filter.0.*.cs=1
command.shortcut.0.*=Ctrl+Shift+I


PS : Je me trompe peut etre mais il me semble que Artistic Style n'est pas référencé sur Framasoft ...
(Si c'est le cas pourquoi - pas ? & Comment soumettre un programme?)

J'éspere avoir été util..
Les logiciels sont comme le sexe, c'est meilleur lorsque c'est libre. (L. Torvald)
jay

Messages : 37

Mer 22 Déc, 2004 20:59

Merci pour l'astuce,
mais en général le C sur lequel je travaille est correctement indenté.

Est-ce que quelqu'un saitsi on peut faire du rechercher remplacer des fins de lignes ou des tabulation.
Genre rechercher \n\n remplacer par \n
Rechercher machin remplacer par \tmachin
etc
où \n fin de ligne,
\t tabulation

Merci de votre aide
scbf

Messages : 81

Ven 24 Déc, 2004 12:32

scbf a écrit:Merci pour l'astuce,
Est-ce que quelqu'un saitsi on peut faire du rechercher remplacer des fins de lignes ou des tabulation.


Ca ma donné l'idée de faire un programme dans ce but ...
Il est à 90 % terminé je vais poster le code ici rapidement.(j'ai pas de site perso)
sinon c'est en C# et il marche avec Scite...
Les logiciels sont comme le sexe, c'est meilleur lorsque c'est libre. (L. Torvald)
jay

Messages : 37

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit