Une application CLI basée sur le composant Console de Symfony, à destination des formateur·trices et enseignant·es, pour gérer les supports pédagogiques et leurs publications.
Write once, reuse and publish everywhere !
- Course-manager
Pour pouvoir utiliser le programme, assurez-vous d'installer les programmes suivants:
Installer Composer.
Téléchargez-le code source.
composer install
Rendre le script cm
exécutable
chmod x cm
# Tester et lister toutes les commandes
./cm
Pour rendre le programme globalement accessible sur votre machine, ajouter-le à votre PATH
:
#Sous Debian/Ubuntu
export PATH="/path/to/course-manager:$PATH"
Tester votre installation en tapant la commande cm
.
Pour mettre à jour le programme, rendez-vous dans le dossier contenant le dépôt cloné. Assurez-vous d'être sur la branche main
puis git pull
pour récupérer le code-source à jour, et composer update
pour mettre à jour les dépendances.
#Dans le repertoire du projet cloné sur github
git pull && composer update
Écrivez une fois, publiez plusieurs fois dans différents formats.
Ce gestionnaire de cours est basé sur le principe de la stricte et nécessaire séparation du contenu et de la forme. Vous écrivez, mettez à jour votre contenu en un endroit, puis vous le publiez vers autant de formats que nécessaire (HTML, PDF, etc.).
Un projet de gestion de cours se compose des éléments suivants:
sources/
: les fichiers sources de vos cours (Markdown, assets, images). La source de véritétemplates/
: les styles globaux pour la publication de vos cours (CSS, XSLT, etc.)public/
: les cours publiés au format HTML et/ou PDF, distribuable, les notes n'y apparaissent pasindex.html
: un fichier pour naviguer facilement dans vos cours via votre navigateur web
Vous écrivez vos contenus de cours en Markdown. Le programme vous convertit tous vos supports aux formats HTML et PDF dans le dossier public
, prêts à être imprimés ou distribués à vos étudiant·es.
Le programme vous oblige uniquement à
- définir un projet courant (un dossier de travail)
- créer un dossier par cours
Vous organisez ensuite comme vous le désirez vos supports de cours à l'intérieur de ces dossiers. Des règles de publication sont définies automatiquement ou sont configurables.
Un projet est un système de gestion de cours, c'est votre répertoire de travail. Vous pouvez avoir plusieurs projets sur la même machine.
Un cours est défini par des métadonnées, peut être assigné à un vendor, et se compose de modules. Chaque module contient vos supports de cours. Les métadonnées servent à lister, filtrer et interroger vos cours.
Créer un nouveau projet de gestion de cours
cm add:project mes-cours
Lors de votre première création de projet, course-manager crée un fichier de configuration global dans votre répertoire home (
$HOME/.create-manager
).
Si c'est votre premier projet alors, par défaut, mes-cours
est votre projet courant, inutile donc de vous y déplacer pour l'administrer.
Le projet courant est défini sous la clé
MAIN
dans le fichier de configuration global (voir $HOME/.create-manager). Vous pouvez changer de projet courant avec la commandechange:current-project
ou en vous rendant directement dans le répertoire d'un autre projet.
Créer un nouveau cours sur le programme course-manager
, pour le présenter à des apprenant·es de l'établissement mon-ecole
cm add:course course-manager mon-ecole
# Ou avec les options: renseigner des niveaux (L1) et des mot-clefs (cli et gestion)
cm add:course course-manager mon-ecole --level=L1 --keywords=cli,gestion
Le
vendor
est un paramètre optionnel. Si vous ne renseignez pas devendor
, le cours sera enregistré dans le vendor global. Par exemple,cm add:course course-manager
créera le courscourse-manager
directement dans le dossiersources
, et celui-ci ne sera rattaché à aucunvendor
en particulier.
Par défaut, le programme vous crée un dossier mon-ecole/course-manager
contenant les fichiers/dossiers suivants:
bibliographie
: pour stocker les documents bibliographiques du cours (ebook, fichiers PDF, images, etc.)module00-presentation
: module de présentation du courscours
: contient le fichier de courscours.md
. Placer ici les supports de cours.exercices
: placer ici les fiches d'exercices (énoncés, corrections)
README.md
: description brève du cours (durée, contenu, ressources, niveau des apprenants (--level
), remarques). Contient le plan, les objectifs, le planning, etc.index.html
: permet de naviguer dans le cours au format HTML..metadata
: un fichier caché contenant des métadonnées sur le cours. Généré automatiquement. Permet de filtrer les cours via le programme.
Vous pouvez modifier le contenu par défaut d'un cours selon vos besoins.
À venir...
À venir...
Pour obtenir des informations sur les commandes disponibles
cm list
#ou simplement
cm
Pour obtenir des informations sur chaque commande (description, arguments et options)
cm <nom de la commande> --help
#ou
cm <nom de la commande> -h
Ce programme en ligne de commande suit les conventions généralement adoptées sur l'utilisation des commandes, arguments et options.
Les commandes peuvent prendre des arguments ou des options en paramètre. Pour lister les arguments et les options disponibles de chaque commande, taper cm <nom de la commande> --help
.
Les chaînes de caractères entre chevrons
<>
doivent être remplacées par un nom de commande, d'argument ou d'option.
Un argument est une chaîne de caractère ajouté à la suite de la commande pour modifier son comportement. Les arguments sont séparés par des espaces. Un argument peut-être obligatoire ou optionnel.
Il s'écrit sous la forme cm <nom de la commande> <nom de l'argument>
. Par exemple, cm add:project mes-cours
. Attention, les arguments sont ordonnés, ils doivent être écrits dans l'ordre attendu par la commande.
Un argument optionnel est représenté entre crochets
cm <nom de la commande> [<nom de l'argument optionnel>]
.
Une option est par définition optionnelle. Elle a un nom et peut être placée n'importe où à la suite du nom de la commande (contrairement aux arguments). Elles sont préfixées par deux dashes --
. Par exemple l'option help
s'écrit cm add:project --help
.
Les options ont également un alias, un nom plus court. Un alias est préfixé par un dash -
. Par exemple, cm add:project --help
est équivalent à cm add:project -h
; -h
est l'alias de --help
. Si l'option prend une valeur, on la passera comme suit: --option=foo
, ou en version abrégée -ofoo
(en supposant ici que l'alias de option
est o
).
La documentation du code est générée par phpDocumentor et se trouve dans le dossier docs
. Elle est consultable dans le navigateur depuis ce fichier.
Régénérer la documentation du projet à partir des sources
#installer docker pour pouvoir générér la documentation de cette manière
docker run --rm -v "$(pwd):/data" "phpdoc/phpdoc:3" run -dsrc -tdocs
Pour analyser le code source statiquement (au level 6) avec phpStan et corriger les erreurs
#Analyser le code au level 6
vendor/bin/phpstan analyse src -l6
- Site officiel du projet Markdown
- Pandoc, un convertisseur de document universel et éprouvé
- Marp
- poc-marp, un dépôt qui récapitule les possibilités essentielles de l'écosystème marp