- Kje,
TL;DR : Le but de cette mini-zep est de produire un proof of concept de l'insertion de code JS et HTML dans le contenu et ainsi de permettre de faire des premiers tests de contenu augmentés et dynamique. Il nous manque actuellement un dev JS capable de produire ce premier type de contenu.
Contexte
Le contenu de zds est relativement statique. Ça fait longtemps que je milite pour introduire des animations ou modules interactifs. L'arrivé d'une semaine thématique sur Rosetta et le système solaire me donne l'occasion de lancer ça, mais le timing va être serré.
Le besoin
Dans le sujet cité, Eskimon a soumit l'idée de proposer une simulation de la gravitation. C'est ce que nous souhaiterions implémenté. Nous avons donc besoin que quelqu'un fasse cette simulation en JS.
C'est le premier besoin. Il nous faut un dev JS
Les contraintes front
Pour cette première version, nous allons devoir faire simple. Voici les contraintes que nous allons devoir imposer :
- Un code simple et efficace, il n'est pas question de tuer les navigateurs des lecteurs.
- A priori aucune lib JS d'accessibles autre que celles déjà utilisé par le site (matjax & jquery a priori)
- Un dev en quelques semaines pour être pret pendant la semaine thématique.
- Une interface simple et un rendu propre.
Pour vous aider, deux exemples ont été proposé comme base :
- Un exemple complet et correct de simulation mais trop complexe a utiliser
- Un exemple plus joli mais innexact niveau physique
Probablement qu'un mix des deux serait une bonne idée. Ou un autre exemple sur le net, peut importe.
Travail coté back
Actuellement le site n'est pas prévu pour autoriser ce genre de contenu. Mais cela sera interessant a long terme. Le but n'est pas a court terme d'autoriser tout le monde à injecter du JS dans leur contenu mais de commencer par faire une première expérimentation.
A priori chaque tutoriel et article se verrait attribuer d'un drapeau dans la base de donnée pour indiquer si ce contenu est autoriser à contenir du JS. Ce flag serait inactif par defaut : les auteurs ne pourront pas introduire de JS. L'activation de cet élément sera fais a la demande et au cas par cas apres un tri très strict des demandes par un staff ou admin du site. Dans un premier temps, limité a quelques articles de tests pour observer les réactions des membres et comment c'est reçu par la communauté.
Cette partie, lié à Django, serait prise en charge par firm1
Si le flag est activé, le parseur markdown détecterait un balisage particulier délimitant du code JS qui serait alors injecté en sortie.
Je me chargerais de la partie markdown.
Le coté "inactif par défaut", "activé pour des personnes des personnes de confiance" et la validation devraient permettre d'assurer la sécurité du contenu présenté à la communauté dans ces premières versions.
Et maintenant
Si vous êtes intéressé par la partie JS, si vous avez le temps et que vous souhaitez aider zds a avancer et innover, n'hésitez pas !
Tout avis est le bienvenue mais le but reste de mettre en place une v0 utilisable rapidement pour tester ça en pratique. Une généralisation de ce genre de contenu méritera une zep pleine et entière après vérification de l’intérêt. Les solutions ou modifications trop compliqués à court terme ne seront donc probablement pas envisagés dans cette version.