web-dev-qa-db-fra.com

Existe-t-il une alternative au HTML?

Existe-t-il un langage que je peux utiliser pour écrire le code HTML de mon site Web, qui:

  • convertit en HTML sans avoir à écrire le HTML directement
  • a toute la puissance du HTML
  • est moins verbeux que HTML et XML

Par exemple, ce devrait être en HTML ce qu'est CoffeeScript en JS.

Quelle est également votre expérience avec tout ce que vous proposez?

Jetez également un œil à Comparaison des moteurs de modèles Web et Balises Scala

39
Alex

Un bon choix est Haml . Dans Haml, vous écrivez un balisage hautement structuré qui ressemble à une forme HTML simplifiée et où les choses courantes ont des raccourcis faciles. Par exemple, l'ajout d'un élément, div, id ou class se fait simplement en changeant un caractère.

Il vous permet même de passer des variables et de les opérer dans la langue de votre choix en vous reportant à un langage de script, donc il est en fait plus puissant que HTML puisque le script implicite le rend Turing-complet.

Voici un exemple:

  %body
    #header
      %h1 Bob Loblaw's Law Blog
      %h2 by Bob Loblaw
    #content
      - @entries.each do |entry|
        .entry
          %h3.title= entry.title
          %p.date= entry.posted
    #footer
      %p
        All content copyright © Bob Loblaw.

Cela devient quelque chose comme:

<div id='header'>
  <h1>Bob Loblaw's Law Blog</h1>
  <h2>by Bob Loblaw</h2>
</div>
<div id='content'>
  <div class='entry'>
    <h3 class='title'>You don't need double-talk; you need Bob Loblaw</h3>
    <p class='date'>Tuesday, October 31, 2006</p>
  </div>
  <div class='entry'>
    <h3 class='title'>Why should you go to jail for a crime someone else noticed?</h3>
    <p class='date'>Friday, August 11, 2006</p>
  </div>
</div>
<div id='footer'>
  <p>
    All content copyright © Bob Loblaw.
  </p>
</div>
30
John Feminella

Un ami et moi venons de lancer Layx: un nouveau langage de mise en page basé sur Cassowary, la boîte à outils de résolution de contraintes que Apple utilise pour leurs interfaces utilisateur. C'est uniquement pour le web maintenant, mais il sera multiplateforme - mobile nativement - un jour.

Il est conçu pour être extrêmement simple et facile (comme python), et comme demandé, il se compile en interne en HTML, dynamiquement, car l'interface doit être mise à jour si des couches doivent être déplacées ou redimensionnées.

C'est un tout nouveau projet -alpha version-, alors essayez-le en sachant cela.

Site Web du projet: http://www.layx.org/

Démo en ligne: http://www.layx.org/demo/

Référentiel Open Source: http://github.com/layxlang/layx

J'espère que cela aide et les commentaires sont toujours les bienvenus!

Cordialement

EDIT (8 janvier 2015): lien open source ajouté

EDIT (15 janvier 2015): lien de démonstration ajouté

9
axelbrz

Je sais que la question est ancienne mais je me suis mis à la recherche de réponses, et j'ai pensé mettre à jour les réponses avec les miennes.

Comme déjà indiqué, la question demande principalement moteurs de modèles (pas tellement de langues) car le point génère du HTML.

Si l'objectif est d'être cohérent avec CoffeeScript, alors CoffeeKup est la voie à suivre. Personnellement, parmi ceux que j'ai vus, dans la recherche de la concision, Pug est celui qui me semble le mieux, il est fortement influencé par Haml (accepté et première réponse), et l'améliore ( À mon humble avis) sous plusieurs aspects: plus concis, plus élégant et clair (subjectif, assez juste) et ne nécessite pas Ruby, car il est basé sur JavaScript.

6
Trylks

Vous demandez essentiellement un langage de balisage léger qui peut être converti en HTML, dont des exemples populaires/bien connus incluent BBCode , Markdown , et balisage MediaWiki .

6
jwodder

Vous pouvez définir votre site Web en XML en utilisant votre propre format personnalisé, puis le convertir en HTML en utilisant XSLT . Je l'ai fait dans le passé :)

5
Chris Dennett

Vous cherchez peut-être quelque chose comme ceci:

http://code.google.com/p/zen-coding/

Bien que je semble me rappeler que quelqu'un a déjà répondu à cette question il y a quelque temps.

3
arkigos

Vous pouvez essayer Processing.js . Vous aurez toujours besoin d'un shell HTML pour héberger le canevas, mais vous pouvez réellement coder votre site avec Processing/Java.

2
Roger Sodré