Licence CC BY

[Chronique]Zest of Dev 5

Tel la suisse, nous sommes neutres

Hey mais ça fait deux semaines que j’ai pas écrit un billet moi. Je vais donc y remédier. Il faut dire qu’on a encore travaillé sur zds. Cette version 27 va vraiment être incroyable.

Manifeste de la publication partielle

Pour commencer cette chronique, je vous propose de faire un retour en arrière, dans ce passé lointain où coldplay était au top 50 pour son titre "A sky full of stars".

C’est en août 2014 que nous sommes donc, et zeste de savoir, vient de passer son premier mois en ligne.

Les premiers tutos sont importés du site du zéro mais déjà quelques auteurs s’affairent à rédiger de nouveaux contenues qui émoustilleront vos méninges. Et certains sont chafouins : en passant du site du zéro à zds une fonctionnalité à été perdue : pouvoir publier une partie seulement du tutoriel.

Chez les développeurs, on avait déjà quelques idées de comment implémenter ça, mais d’autres priorités nous attendaient. Alors le 1334ème ticket de notre bugtracker a commencé à prendre la poussière.

Et puis, en 2015 pierre-24 et moi nous sommes lancé dans une aventure assez complexe : refondre complètement le module de tutoriel pour qu’il soit plus facilement évolutif et que le code soit plus lisible. On avait appelé ça la zep 12.

De 9 mois de développements sortiront une conclusion : si on voulait sortir la version 12 du site un jour, il fallait arrêter de vouloir ajouter tout de suite les fonctionnalités qu’il était plus difficile d’ajouter dans le précédent modèle et la publication partielle devint un fossile.

Pendant ce temps, un autre soucis était en train de poindre pour zeste de savoir : python 2 était en fin de vie, et django avait décidé qu’après la version 1.11 la compatibilité avec python 2 ne serait plus assurée. Alors il fallait passer à python3 et ce n’est pas une mince affaire.

Il y a eu plusieurs essais infructueux, mais voilà pierre-24 s’est motivé à reprendre le travail à ce propos et de le mener à bien (et ça a marché).

Du coup, j’ai fait une promesse : si on arrivait avec python 3, alors j’implémenterai la publication partielle. Et c’est en passe d’être mis dans la branche /dev (il manque juste quelques détail de style de code dans le javascript).

Comment faire du coup?

Il faut comprendre que les contenus (article, tutoriel et billet) sont issus d’un code commun qui sépare la données en deux grands ensembles :

  • le contexte du tutoriel : il est stocké en base de donnée. Il rassemble les auteurs, les dates de création, les différentes versions (béta, publique, brouillon), et le classement dans nos catégories;
  • le texte du tutoriel et son organisation : il est stocké dans git chaque texte a son propre fichier et pour assurer la cohérence du tout (ordre des parties, accessibilité des urls…) on a le manifest.json.

C’est à ce fichier qu’une fonctionnalité – plus précisément un marqueur– a été ajouté : lorsqu’on écrit un chapitre ou une partie, on peut la marquer comme étant prête (ou non) à être publiée et cela se traduit dans le manifeste par un simple booléen.

Par exemple, dans mon tutoriel sur ASP.NET, il y a une partie que j’ai commencée mais que j’aimerai finir avant qu’elle soit publiée mais sans avoir à retarder les petites publications pour cause de fautes d’orthographe, je peux faire :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
    "object": "container", 
    "slug": "creez-votre-site-web-avec-asp-net", 
    "title": "Créez votre site web avec ASP.NET", 
    "introduction": "introduction.md", 
    "conclusion": "conclusion.md", 
    "children": [
        // ... (il y a plein de parties)
        {
            "ready_to_publish": false,
            "object": "container", 
            "slug": "allons-plus-loin-avec-asp-net", 
            "title": "Allons plus loin avec ASP.NET", 
            "introduction": "allons-plus-loin-avec-asp-net/introduction.md", 
            "conclusion": "allons-plus-loin-avec-asp-net/conclusion.md", 
            "children": [
                // plusieurs chapitres en rédaction
            ]
        }
    ], 
    "version": 2, 
    "description": "La programmation web en C# accessible à tous !", 
    "type": "TUTORIAL", 
    "licence": "CC BY"
}

Cette fonctionnalité a été testée avec le système de test frontend qui fait que lorsqu’on met à jour le code de zestedesavoir, automatiquement un test est lancé qui vérifie que la réaction de l’IHM est la bonne. Pour l’instant, je ne teste qu’avec la version bureau du site. On verra plus tard pour ajouter les petits écrans.

Les PR de la quinzaine, une feature est à l'intérieur

Les PR de zds-site

ZMarkdown

Latex Template

Notable facts

Eskimon a décidé que ZMarkdown pouvait être un excellent outil pour créer un blog avec Pélican. Qui sait? peut être qu’il écrira un billet à ce propos.

Ache a commencé à écrire du code pour générer des QCM/QCU sur zmarkdown.


Aucun commentaire

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte