Textmate peut-il bien indenter le HTML?


17

Textmate a-t-il une fonction pour bien indenter le HTML?

HTML Tidy le met en retrait - mais il semble également supprimer les balises. (Ce n'est pas du HTML tout à fait correct, mais quand même!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>

Pouvez-vous donner un exemple de
code

@Mark: mis à jour avec le code
Casebash

@Casebash J'ai essayé Tidy avec votre code et pour moi, il n'a ajouté que des balises. copypastecode.com/46216
Robert S Ciaccio

@calvera: Assurez-vous que votre type de document est défini sur HTML, pas sur du texte brut
Casebash

3
@Casebash: il a été défini sur html ... Pour info, d'après ce que je me souviens du plugin Tidy pour Notepad ++, il est configuré via un fichier texte. Alors peut-être qu'il y a un problème avec la configuration de Tidy.
Robert S Ciaccio

Réponses:


20

Vous pouvez ensuite appuyer sur + Apour tout sélectionner Text->Indent Selection.


Des années de TextMate et je n'ai jamais vu ou utilisé cette fonctionnalité ... \ o /
brasofilo

Malheureusement, ce n'est pas un formatage XML complet: il conserve les lignes indentées et ne divise pas les balises sur la même ligne en lignes distinctes. Utilisation de Textmate 2.0-rc.4.
Alexander Klimetschek

13

Vous pouvez utiliser Bundles > HTML > Tidyou le raccourci ctrl+ + H.


3
Tidy ne se contente pas de le mettre en retrait - il semble également en supprimer des parties!
Casebash

1
La question portait sur le retrait et non le rangement
tig

Le rangement échoue également en cas de problèmes tels que les noms d'éléments inconnus.
Alexander Klimetschek

1

Je voudrais souligner quelque chose qui croise un peu les autres réponses:

Si vous sélectionnez le texte que vous souhaitez formater (ou réindenter), TextMate appliquera des actions spécifiques uniquement à cela. Donc, si vous CMD+ Avotre document, puis appliquez Tidy (à partir du menu Bundles> HTML ou avec le raccourci CTRL+ SHIFT+ H), il ne fera généralement que des retraits, ignorant les alertes sur les validations (qui sont parfois inutiles car nous pouvons travailler sur des extraits de page ).


0

Vous pouvez utiliser Xcode ou Dashcode à la place si vous installez les outils de développement. Ils sont gratuits sur les disques d'installation fournis avec votre ordinateur. Je crois que Xcode et Dashcode ont une coloration syntaxique.

Si vous voulez un très bon logiciel, procurez-vous Coda. C'est un peu cher à 100 $, mais je dirais certainement que ça vaut le coup. Il a la coloration syntaxique et (la grande partie pour moi) l'auto-complétion.


0

Oui. L'appel Tidy dans le bundle HTML intégré de TextMate peut gérer votre HTML.

Les packs TextMate -> HTML -> Tidy produit:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

Sur votre exemple de code. Rien n'a disparu. Vous obtenez également les avertissements suivants:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"

0

Le problème que j'ai rencontré avec la Text -> Indent Selectionsolution intégrée ou Tidy est qu'elle ne fonctionne pas bien avec du code HTML partiel. Ceci est par exemple important lors de l'édition dans WordPress ou lorsque vous travaillez avec des partiels dans Ruby on Rails.

La solution qui a fonctionné pour moi a été d'ajouter une commande au bundle avec un script Perl personnalisé par John Watson que j'ai trouvé ici: http://snipplr.com/view.php?codeview&id=28256

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.