Utilisation
Activer le plugin
Ajouter dans votre fichier mkdocs.yml
:
plugins:
- search
- sqlite-console
Note
Si vous n'avez aucune entrée dans la section plugins
de votre fichier de configuration,
vous voudrez sans doute ajouter le plugin search
. MkDocs l'active par défaut s'il n'y a pas
d'autres plugins
, et dans le cas contraire, MkDocs demande de l'activer explicitement.
Si vous voulez déployer votre site (à l'aide de mkdocs build
ou mkdocs gh-deploy
), il faut également ajouter à votre
fichier mkdocs.yml
une ligne du type
site_url: https://monsite.url/chemin
site_url: https://epithumia.github.io/mkdocs-sqlite-console
site_url
Si vous n'avez pas défini la variable site_url
dans votre fichier mkdocs.yml
, les commandes
mkdocs build
et mkdocs gh-deploy
ne fonctionneront pas et signaleront la nécessité de le faire.
Afficher la console/IDE
On peut afficher une console/IDE SQLite grâce à la commande {{ sqlide paramètres }}
. Cette commande accepte quatre paramètres, tous optionnels :
- un titre : par exemple
titre="Exercice 1"
. Par défaut, le titre est "sql" - un chemin vers un script SQL d'initialisation init : par exemple
init=sql/init.md
- un chemin vers une base SQLite : par exemple
bases/test.db
- un chemin vers un fichier de code sql pré-saisi dans l'IDE : par exemple
sql="sql/code.sql"
- si le mot clef autoexec est présent, alors le contenu de code sera exécuté comme si l'utilisateur avit cliqué le bouton
Astuce
A part pour le titre, les apostrophes ou guillemets sont optionnels. Ainsi, sql="sql/code.sql"
,
sql='sql/code.sql'
et sql=sql/code.sql
sont équivalents.
Attention
- le titre doit être entre guillemets
- les chemins vers les fichiers sont relatifs à la racine du site
- les chemins ne peuvent pas contenir d'espace
- les options base et init sont mutuellement exclusives ; l'option base est prioritaire.
Quelques exemples
Affichage basique
Pour afficher un IDE avec du code SQL d'initialisation et du code pré-saisi :
{{ sqlide titre="IDE avec initialisation et code pré-saisi" init="sql/init1.sql" sql="sql/code.sql" }}
On obtient l'affichage ci-dessous :
On peut aussi charger une base directement :
{{sqlide titre="IDE avec une base binaire chargée et code pré-saisi autoexécuté" base="bases/test.db" sql="sql/code.sql" autoexec}}
Cacher l'IDE
Si l'on ne veut que le résultat de la requête sans pour autant afficher l'IDE, il suffit d'ajouter l'option hide :
{{sqlide titre="IDE avec une base binaire chargée et code pré-saisi autoexécuté, IDE caché" base="bases/test.db" sql="sql/code.sql" autoexec hide}}
Titre
Attention, le titre n'est plus affiché dans ce cas.
Base partagée entre plusieurs consoles
Il est possible de donner un argument supplémentaire pour partager une base entre plusieurs consoles/IDE :
{{ sqlide titre="IDE avec initialisation dans l'espace bdd1" init="sql/init1.sql" espace="bdd1" }}
{{ sqlide titre="IDE sans initialisation, avec code pré-saisi, dans l'espace bdd1" sql="sql/code.sql" espace=bdd1}}
Utilisation dans les admonitions de mkdocs-material
On peut appeler le code à l'intérieur d'une admonition :
!!! sql "Bloc admonition avec initialisation et code pré-saisi"
{{ sqlide titre="Init + Code" init="sql/init1.sql" sql="sql/code.sql" }}
donne :
Bloc admonition avec initialisation et code pré-saisi
???+ sql "Bloc accordéon avec initialisation et code pré-saisi"
{{ sqlide titre="Init + Code" init="sql/init1.sql" sql="sql/code.sql" }}
Bloc accordéon avec initialisation et code pré-saisi
Bug
Les blocs ne s'affichent pas correctement dans les admonitions qui sont repliées par défaut :
??? sql "Bloc admonition avec initialisation et code pré-saisi"
{{ sqlide titre="Init + Code" init="sql/init1.sql" sql="sql/code.sql" }}
Bloc admonition avec initialisation et code pré-saisi
Usage avec le plugin macros
Le plugin macros utilise les doubles accolades pour définir ses propres blocs de code, ce qui empêche ce plugin de fonctionner normalement. En conséquence, quand le plugin macros est détecté, la syntaxe change et l'IDE SQLite est chargée avec la syntaxe suivante :
{!{ sqlide paramètres }!}
{!{ sqlide titre="IDE avec initialisation et code pré-saisi" init="sql/init1.sql" sql="sql/code.sql" }!}
affichera :
Erreurs
Le plugin détectera les fichiers non existants :
{{sqlide titre="Erreur fichier base manquant" base=bases/basem.db sql=sql/code1.sql }}
{{sqlide titre="Erreur fichier sql manquant" init=sql/initm.sql sql=sql/codem.sql }}