[Je suis l'auteur de Stog]
Merci à leowzukw pour ce billet. Voici quelques compléments d'information sur Stog.
Il s'agit bien originellement d'un outil pour la génération de sites web statiques, i.e. donc principalement des fichiers (X)HTML, bien que Stog gère n'importe quels fichiers XML en général.
Il ne permet pas spécialement de faire des interfaces utilisateur; bien sûr chacun peut mettre le javascript qu'il souhaite dans les pages web pour les faire bouger un peu.
Un point important était de ne pas introduire de nouvelle syntaxe, ni de se limiter à un sous-ensemble de HTML, comme c'est souvent le cas avec de nouveaux langages comme markdown.
Je l'ai originellement développé pour mes propres besoins (un site web, un blog et un support de cours OCaml. Par la suite, certains développements ont été faits pour pouvoir utiliser Stog pour la rédaction de documents "standalone", notamment des articles scientifiques (un exemple ici et un autre là).
L'idée sous-jacente est de pouvoir facilement publier "pour" le web (en utilisant les formats et les possibilités du web: HTML, web sémantique, etc.) plutôt que simplement "sur" le web, comme c'est le cas avec les fichiers PDF. Donc faire de Stog une sorte de LaTeX pour le HTML.
Stog se rapproche donc de LaTeX par la possibilité de définir de nouvelles commandes dans un document, pour en faciliter l'écriture. Un système de modules et de gabarits devrait permettre un équivalent des paquets et des classes de LaTeX.
Des greffons offrent des fonctionnalités supplémentaires, notamment stog-writing pour les bibliographies et les notes de bas de page, stog-rdf pour la génération et l'utilisation de graphes RDF à la compilation d'un site/document. Toujours dans l'optique de publier pour le web, en l'occurrence à la fois pour les machines (graphes RDF) et pour les humaines (texte). Plus de détails ici, là et encore là.
Stog vient avec un serveur de prévisualisation: il recompile les documents lorsque les fichiers correspondant sont modifiés. L'aperçu est affiché dans le navigateur (http://localhost:8080/preview/index.html par défaut). Lorsqu'un document est modifié, un patch XML est envoyé au navigateur (via un websocket) pour mettre à jour le document. Le but est d'éviter le réaffichage de toute la page, ce qui peut devenir lourd lorsque Mathjax est utilisé pour mettre en forme les formules de maths. Une vidéo de ce fonctionnement est disponible en ligne.
Enfin, la version 0.15.0 ajoute un "multiserveur", non encore documenté car encore largement incomplet. Le but est de fournir un environnement à la sharelatex. L'utilisateur crée une session en indiquant un dépôt git contenant des sources Stog. Le dépôt est cloné et le serveur fournit un lien vers la prévisualisation et un lien vers un éditeur en ligne. L'utilisateur peut donc éditer les sources et avoir la prévisualisation sans rien installer sur sa machine. Il peut faire des git commit, git pull et git push. A terme, un objectif est d'avoir un éditeur collaboratif.
J'espère que cette petite présentation complémentaire vous donnera envie d'y jeter un œil.
# Complément
Posté par zoggy . En réponse à la dépêche Sortie de Stog en version 0.15. Évalué à 10.
[Je suis l'auteur de Stog]
Merci à leowzukw pour ce billet. Voici quelques compléments d'information sur Stog.
Il s'agit bien originellement d'un outil pour la génération de sites web statiques, i.e. donc principalement des fichiers (X)HTML, bien que Stog gère n'importe quels fichiers XML en général.
Il ne permet pas spécialement de faire des interfaces utilisateur; bien sûr chacun peut mettre le javascript qu'il souhaite dans les pages web pour les faire bouger un peu.
Un point important était de ne pas introduire de nouvelle syntaxe, ni de se limiter à un sous-ensemble de HTML, comme c'est souvent le cas avec de nouveaux langages comme markdown.
Je l'ai originellement développé pour mes propres besoins (un site web, un blog et un support de cours OCaml. Par la suite, certains développements ont été faits pour pouvoir utiliser Stog pour la rédaction de documents "standalone", notamment des articles scientifiques (un exemple ici et un autre là).
L'idée sous-jacente est de pouvoir facilement publier "pour" le web (en utilisant les formats et les possibilités du web: HTML, web sémantique, etc.) plutôt que simplement "sur" le web, comme c'est le cas avec les fichiers PDF. Donc faire de Stog une sorte de LaTeX pour le HTML.
Stog se rapproche donc de LaTeX par la possibilité de définir de nouvelles commandes dans un document, pour en faciliter l'écriture. Un système de modules et de gabarits devrait permettre un équivalent des paquets et des classes de LaTeX.
Des greffons offrent des fonctionnalités supplémentaires, notamment stog-writing pour les bibliographies et les notes de bas de page, stog-rdf pour la génération et l'utilisation de graphes RDF à la compilation d'un site/document. Toujours dans l'optique de publier pour le web, en l'occurrence à la fois pour les machines (graphes RDF) et pour les humaines (texte). Plus de détails ici, là et encore là.
Stog vient avec un serveur de prévisualisation: il recompile les documents lorsque les fichiers correspondant sont modifiés. L'aperçu est affiché dans le navigateur (http://localhost:8080/preview/index.html par défaut). Lorsqu'un document est modifié, un patch XML est envoyé au navigateur (via un websocket) pour mettre à jour le document. Le but est d'éviter le réaffichage de toute la page, ce qui peut devenir lourd lorsque Mathjax est utilisé pour mettre en forme les formules de maths. Une vidéo de ce fonctionnement est disponible en ligne.
Enfin, la version 0.15.0 ajoute un "multiserveur", non encore documenté car encore largement incomplet. Le but est de fournir un environnement à la sharelatex. L'utilisateur crée une session en indiquant un dépôt git contenant des sources Stog. Le dépôt est cloné et le serveur fournit un lien vers la prévisualisation et un lien vers un éditeur en ligne. L'utilisateur peut donc éditer les sources et avoir la prévisualisation sans rien installer sur sa machine. Il peut faire des git commit, git pull et git push. A terme, un objectif est d'avoir un éditeur collaboratif.
J'espère que cette petite présentation complémentaire vous donnera envie d'y jeter un œil.