Skip to content
Julien Castiaux edited this page Feb 11, 2021 · 2 revisions

rtd-bin-server

Ce document est une RFC Request for Comments, toute critique est la bienvenue à partir du moment où elle se veut constructive.

Statut du document : Proposition
Dernière révision le : Mardi 27 octobre 2020, 00h40
Auteurs : Dr Lazor, AntoineJT, x0rld, Emalios, TNtube, tim54k
Lien unique : https://docs.drlazor.be/rfc/001_rtd_bin.md

Résumé

Nous proposons de développer un service de pastebin open-source dédié à la communauté Read the Docs.

Contexte

La communauté de développeurs francophones Read the Docs partage régulièrement des snippets de code sur le serveur Discord de la communauté, ces snippets sont du texte formaté avec une police monospace et une coloration syntaxique.
Ces snippets de code permettent d'illustrer un propos avec un exemple concret.

Lorsque le snippet est suffisamment court (dizaine de lignes au plus), la communauté passe directement par le bloc code de markdown qui est supporté par discord.
Lorsque le snippet est long, la communauté préfère passer par un service externe de "pastebin".
Ces services externes se présentent comme une page web où l'utilisateur peut coller son code et le sauvegarder, il reçoit de la part du site une URL unique qui mène à son code figé, URL qu'il peut partager sur Discord.

La communauté Read the Docs possède un compte GitHub et encourage ses membres à proposer leurs projets.

rtd-bin, un service de pastebin

Le service doit présenter les fonctionnalités minimales suivantes :

  • publier depuis un navigateur ou un terminal un nouveau snippet.

  • afficher depuis un navigateur ou télécharger depuis un terminal un snippet existant au moyen d'une URL.

En plus de ces fonctionnalités minimales, le service pourrait présenter les fonctionnalités suivantes :

  • la coloration syntaxique du code source. Le choix du langage se ferait avant de publier le snippet avec une droplist, choix qui serait réutilisé pour générer une URL avec l'extension correspondante ;

  • la numérotation des lignes de code, à la marge à gauche, alignée à droite ;

  • la persistance des snippets, volatile en mémoire, sur le filesystem ou bien sur Redis ;

  • la longévité des snippets, configurable au temps ou bien au nombre d'utilisations, avec une limite maximum forcée de 1 semaine ;

  • un système de versionning, pour facilement apporter des modifications à un snippet existant et le sauvegarder sous une nouvelle URL. Avoir un moyen simple de naviguer entre les révisions. Avoir un moyen simple d'afficher la différence entre deux révisions ;

  • avoir la possibilité de sauvegarder son snippet en public ou en privé, le sauvegarder en public listerait le lien du bin sur une page spéciale ;

  • avoir la possibilité de sauvegarder plusieurs fichiers sous un seul même lien pour faciliter le partage de projet. Maximum 3 fichiers ;

  • pouvoir limiter l'accès à un snippet par un mot de passe ;

  • pouvoir modérer le contenu comme supprimer des bins problématiques ;

  • pouvoir ajouter une ancre pour lier une ligne précise qui sera affichée en surbrillance dans le snippet.

Style

Plusieurs sites de pastebins ont été étudiés :

Le groupe de travail est unanime, les interfaces préféres sont w4/bin et hastebin.
Ce qui est particulièrement apprécié sont le thème sombre et l'interface plein écran.

La couleur de font de w4/bin, les boutons discrets de hastebin, la possibilité de sélectionner sa langue sur rtd-bin.

Clone this wiki locally