Cartouche | |
---|---|
ZEP | 27 |
Titre | Identifier les éléments d'un extrait |
Révision | 1 |
Date de création | 22/03/2015 |
Dernière révision | 22/03/2015 |
Type | Feature |
Statut | Rédaction |
Aujourd'hui, la partie la plus atomique d'un contenu1 est l'extrait. Cela signifie qu'il n'est pas possible de facilement faire référence à un élément plus petit qu'un extrait (titre, paragraphe, phrase, mot…). Il pourrait être intéressant, pour prendre des notes, signaler une erreur… de pouvoir pointer vers des parties plus précises d'un contenu.
Pousser la granularité au niveau de la phrase ou du mot semble utopique et non nécessaire. Par contre, s'arrêter aux paragraphes est un bon compromis entre la précision à outrance et celle faible des extraits. Contrairement à ces derniers, un paragraphe ne se verrait pas accorder une url, mais simplement un index pour générer une ancre : .../extrait#index
.
Néanmoins, il pourrait être intéressant de ne pas restreindre ce système aux paragraphes. Les éléments suivants, par la suite appelés « éléments », pourraient être référencés :
- Les paragraphes textuels
- Les blocs (information, secret…)
- Les citations
- Les morceaux de code
- Les images
- Les vidéos
- Les listes
- Les titres
Certains de ces éléments devraient peut-être être intégrés dans le paragraphe textuel les prédédant. Par exemple :
1 2 3 4 5 6 | Je suis un paragraphe. * Je * suis * une * liste |
au lieu de
1 | Je suis un paragraphe. |
1 2 3 4 | * Je * suis * une * liste |
Exemples d'application
Une identification aussi précise permettrait de faire moult choses :
- Diriger un membre vers un endroit précis d'un extrait
- Signaler une faute à un endroit précis d'un extrait
- Déplacer un élément d'un extrait vers un autre extrait
- Générer des résumés (cf : fiches de révision) : ne conserver que certains éléments d'un tutoriel
- Attacher des notes à un point précis d'un extrait
L'identification
Oui mais on ne peut identifier les paragraphes juste à partir du markdown. Par exemple, si je fournis le markdown
1 2 3 | abcd efgh |
j'obtiendrais
1 2 3 4 5 6 7 8 | <a href="#p-0">P0</a> <p> abcd </p> <a href="#p-1">P1</a> <p> efgh </p> |
Mais que se passe-t-il si je mets à jour mon extrait avec
1 2 3 4 5 | abcd ijkl efgh |
Je ne vois pas comment le parseur pourrait me retourner autre chose que
1 2 3 4 5 6 7 8 9 10 11 12 | <a href="#p-0">P0</a> <p> abcd </p> <a href="#p-1">P1</a> <p> ijkl </p> <a href="#p-2">P2</a> <p> efgh </p> |
Mais, du coup, l'ancre du paragraphe efgh
a changé. J'aurais préféré :
1 2 3 4 5 6 7 8 9 10 11 12 | <a href="#p-0">P0</a> <p> abcd </p> <a href="#p-2">P2</a> <p> ijkl </p> <a href="#p-1">P1</a> <p> efgh </p> |
Donc la seule solution me semble de faire comme on fait pour distinguer les extraits : des textareas séparés, un par paragraphe, avec un index par textarea. Cela permettra de plus aux auteurs de supprimer un paragraphe, d'en déplacer… Bref, de faire tout ce qu'on peut faire avec un extrait, mais avec des paragraphes.
L'indexation
L'indexation serait basé sur le modèle des clés primaires d'une table dans une base de données.
Le stockage
- Un extrait = un dossier
- Un élément = un fichier markdown
index.md
- L'ordre des éléments serait indiqué dans le manifest.json
L'UI
TODO
Merci.
Vous l'aurez remarqué, ce message constitue plus un brouillon qu'autre chose. Comme je risque d'avoir très peu de temps pour m'en occuper prochainement, je vous fais part de mes réflexions sur le sujet.
Par ailleurs, je doute avoir les compétences nécessaires pour mener cette ZEP au bout.
-
Tutoriel ou article. ↩