Js-beautify: HTML Beautify : ne pas formater le front-mater YAML

Créé le 15 août 2014  ·  5Commentaires  ·  Source: beautify-web/js-beautify

Les générateurs de sites statiques comme Assemble ou Middleman ou Jekyll prennent en charge le front matter YAML en haut d'un modèle. Lors de l'exécution d'embellissement html sur ces modèles, la partie liminaire est gâchée.

Donc, cette matière avant yaml:

title: Test
is-test: true

---

convertit en :

--- title: Test is-test: true ---

Je suggérerais d'ignorer tout ce qui est "enveloppé" entre trois tirets ou d'ajouter une option supplémentaire.

Plus d'informations : http://assemble.io/docs/YAML.html ou http://middlemanapp.com/basics/frontmatter/

html templating fixed?

Commentaire le plus utile

Je crois que beautifier devrait avoir un paramètre comme preservenewlines . S'il l'a déjà, conservez les nouvelles lignes dans le texte. Ce n'est pas seulement une question d'avant-propos. Par exemple, disons qu'il y a du code HTML et que certaines personnes travaillent dans VS Code et d'autres dans MidnightCommander directement sur le serveur. c'est pourquoi tout le texte est formaté comme ceci.

<p>
    This is multiple
    line text, that is
    easy to read in 
    MC
</p>

Cela fonctionne correctement lorsque HTML est rendu et également visible dans MC. Mais si quelqu'un le formate avec l'embellisseur, c'est parti.

Donc, conserver de nouvelles lignes dans le texte serait génial.

Tous les 5 commentaires

Il y a tellement de systèmes de modèles que les gens doivent utiliser avec js, html et css.
@einars , @evocateur avez-vous des idées/opinions sur la question de savoir si (ou comment) les embellisseurs peuvent être modifiés afin que nous n'ajoutions pas de cas spéciaux dans tout le code de base pour gérer tout cela ?

À moins de refactoriser de manière spectaculaire avec un analyseur AST robuste (par exemple, Esprima ), en fournissant une interface de plug-in pour permettre la personnalisation d'un tel AST, et en abandonnant ainsi la version Python, je ne vois pas cela se produire. (Et presque tous les générateurs de code AST, comme escodegen, produisent une sortie extrêmement difficile à personnaliser)

Pour être peut-être un peu plus brutal, ce projet ne devrait rien faire de plus qu'embellir JS. Remarquez que j'ai laissé de côté HTML et CSS, mais s'ils doivent rester, ils ne devraient embellir que CSS et HTML. C'est une folie de perdre du temps que d'essayer de déformer notre analyseur statique pour tenir compte de la syntaxe mal formée de chaque pré- et post-processeur.

Nous n'embellissons pas YAML, ni Markdown/LESS/SASS/React/Go/Ruby/Brainfuck d'ailleurs. Mis à part la curiosité, la complexité croissante de la prise en charge de chaque fièvre de méta-syntaxe étrange rêvée par notre étrange et belle communauté d'artisans front-end est tout simplement folle. Il existe d'autres embellisseurs, aujourd'hui, qui tentent d'engager l'angle AST (bien que les API de plug-in, si elles existent, ont tendance à être très immatures).

Très raisonnable. Même principe que "beautifier n'est pas un formateur à usage général".

L'embellisseur js fournit une API simple pour l'envelopper dans un autre embellisseur. C'est exactement ce que fait l'embellisseur html. Lorsqu'il rencontre javascript, l'embellisseur html passe le contrôle à l'embellisseur js, puis intègre la sortie. Les gens sont invités à envelopper ou à modifier les composants fournis par ce projet pour créer les leurs. Si les gens sont intéressés et désireux de prendre/partager la responsabilité, ils pourraient intégrer leurs projets à beautify-web.

À court terme, nous devrions probablement commencer à marquer les requêtes de bogue en dehors de html, css et javascript, puis décider où aller à partir de là.

Je crois que beautifier devrait avoir un paramètre comme preservenewlines . S'il l'a déjà, conservez les nouvelles lignes dans le texte. Ce n'est pas seulement une question d'avant-propos. Par exemple, disons qu'il y a du code HTML et que certaines personnes travaillent dans VS Code et d'autres dans MidnightCommander directement sur le serveur. c'est pourquoi tout le texte est formaté comme ceci.

<p>
    This is multiple
    line text, that is
    easy to read in 
    MC
</p>

Cela fonctionne correctement lorsque HTML est rendu et également visible dans MC. Mais si quelqu'un le formate avec l'embellisseur, c'est parti.

Donc, conserver de nouvelles lignes dans le texte serait génial.

Je pense que c'est corrigé. A juste besoin d'un test.

Cette page vous a été utile?
0 / 5 - 0 notes