web-dev-qa-db-fra.com

Recherché: embellisseur HTML5 en ligne de commande

Voulait

Un embellisseur HTML5 en ligne de commande fonctionnant sous Linux.

Contribution

Code HTML5 tronqué et laid. Peut-être le résultat de plusieurs modèles. Vous ne l'aimez pas, il ne vous aime pas.

Production

Beauté pure. Le code est bien en retrait, a suffisamment de sauts de ligne, prend soin de son espace. Plutôt que de le visualiser dans un navigateur Web, vous souhaitez afficher le code directement sur votre site Web.

Suspects

  • bien rangé en fait trop (diable, cela modifie mon doctype!), et cela ne fonctionne pas bien avec HTML5. Peut-être existe-t-il un moyen de le faire coopérer et de ne rien altérer ?
  • vim fait trop peu. Il ne fait que des retraits. Je veux que le programme ajoute et supprime des sauts de ligne et joue avec les espaces à l'intérieur des balises.

DEAD OR ALIVE!

74
blinry

HTML Tidy a été créé par le w3c et prend désormais en charge la validation HTML5.

https://github.com/w3c/tidy-html5

26
mhansen

Je soupçonne que le rangement peut être fait pour fonctionner avec les bons paramètres de ligne de commande.

http://tidy.sourceforge.net/docs/quickref.html

Vous pouvez spécifier un doctype arbitraire et ajouter de nouvelles balises bloc, en ligne et vides, et activer et désactiver de nombreuses options de nettoyage de tidy.

Selon ce que vous voulez "embellir", vous pouvez probablement obtenir des résultats décents. Il ne sera probablement pas en mesure de faire certaines des choses les plus avancées comme la réécriture du contenu html pour éliminer les éléments parasites ou les combiner, s'il ne les reconnaît pas.

Copié à partir d'un site Web en direct, j'ai utilisé HTML5 qui est validé en HTML5 sur toutes les pages grâce à cet extrait (PHP dans ce cas, mais les options et la logique sont les mêmes pour toutes les langues utilisées):

    $options = array(
        'hide-comments' => true,
        'tidy-mark' => false,
        'indent' => true,
        'indent-spaces' => 4,
        'new-blocklevel-tags' => 'article,header,footer,section,nav',
        'new-inline-tags' => 'video,audio,canvas,Ruby,rt,rp',
        'new-empty-tags' => 'source',
        'doctype' => '<!DOCTYPE HTML>',
        'sort-attributes' => 'alpha',
        'vertical-space' => false,
        'output-xhtml' => true,
        'wrap' => 180,
        'wrap-attributes' => false,
        'break-before-br' => false,
    );

    $buffer = tidy_parse_string($buffer, $options, 'utf8');
    tidy_clean_repair($buffer);
    // Fix a tidy doctype bug
    $buffer = str_replace('<html lang="en" xmlns="http://www.w3.org/1999/xhtml">', '<!DOCTYPE HTML>', $buffer);
9
Philipp

Si vous utilisez Haml comme votre nanoc-filtre, votre html sera automatiquement joli imprimé. Vous pouvez définir la sortie html5 en option.

2
Dan Brendstrup