Style et typographie axés sur les données pour JupyterLab alimenté par JSS.
Ceci est un logiciel gratuit
Nous essayons certaines choses ici et vous invitons à le tester, mais ne garantissons pas que c'est bon ou même fonctionne. Ce que nous entendons par cela est couvert dans le texte ci-dessus au bas de la licence.
Si quelque chose est brisé, devenez un contributeur et soulevez un problème, mais nous ne pouvons garantir aucun type de temps de réponse. De même, PRS sera examiné sur une base permanente.
pip install jupyterlab-fonts
# or
conda install -c conda-forge jupyterlab-fontsNous sommes désolés de vous voir partir!
pip uninstall jupyterlab-fonts
# or
conda uninstall jupyterlab-fontsPour modifier vos polices par défaut, à partir du menu principal, sélectionnez Paramètres ▶ Fonts ▶ Code ▶ Font (ou taille ou hauteur de ligne ) et la valeur que vous souhaitez.
Certaines fonctionnalités de contenu , c'est-à-dire que votre marque rendue et le HTML, sont également disponibles, et d'autres seront ajoutés au fil du temps.
Vous pouvez afficher toutes les configurations de police disponibles en sélectionnant les paramètres ▶ Fonts ▶ Fonts global .... Ces valeurs seront stockées dans vos paramètres JupyterLab.
Lorsque vous affichez un .ipynb , modifiez uniquement les polices de ce fichier en cliquant dans la barre d'outils du cahier (dès maintenant, à côté du type de cellule). La police, les changements de style et ses informations de licence seront stockés dans les métadonnées du cahier.
Cela peut augmenter rapidement la taille de votre fichier de carnet et le rendre plus difficile à utiliser en collaboration. Nous examinons certaines approches alterates.
Dans JupyterLab, la section des polices des paramètres JSON avancés peut contrôler les choses entièrement sans rapport avec les polices. Il n'y a aucune garantie que les styles hautement personnalisés fonctionneront bien avec l' éditeur de police , ou avec des applications en aval des métadonnées de jupyterlab-fonts .
Voici un exemple de modification de l'apparence d'un fichier de cahier en mode présentation .
{
"styles" : {
":root" : {
"--jp-code-font-family" : " 'Fira Code Regular', 'Source Code Pro', monospace " ,
"--jp-code-font-size" : " 19px "
},
".jp-mod-presentationMode .jp-Notebook" : {
"& .CodeMirror, & .cm-editor" : {
"fontSize" : " 32px "
},
"& .jp-InputPrompt, & .jp-OutputPrompt" : {
"display" : " none "
}
}
}
} De même, l' inspecteur de propriétés JupyterLab permet ces personnalisations dans un fichier .ipynb spécifique, au niveau du document et de la cellule: ceux-ci sont générés dynamiquement et étendus dans l' id de document / cellule.
L'exemple ci-dessus montre comment différentes versions de JupyterLab (ou Notebook) peuvent utiliser différentes classes DOM pour le même contenu logique, tel que:
| Élément | JupyterLab <4 | JupyterLab 4 |
|---|---|---|
| un éditeur de code | .CodeMirror | .cm-editor |
Toutes les fonctionnalités compatibles JSON des plugins jss-preset-default sont activées avec les paramètres par défaut, avec quelques notes spécifiques ci-dessous. Pour la portabilité, les fonctionnalités dynamiques basées sur JS ne sont pas prises en charge.
Le & (AmperSand) permet des sélecteurs de nidification, comme standardisé par le module de nidification CSS W3C et implémenté dans de nombreux navigateurs.
Tous les styles dérivés des paramètres seront enveloppés dans un sélecteur @global .
overrides.json overrides.json permet une configuration déclarative simple du noyau JupyterLab et des extensions tierces, même après le démarrage du serveur de laboratoire.
{
"@deathbeds/jupyterlab-fonts:fonts" : {
"styles" : {
":root" : {
"--jp-code-font-family" : " 'Fira Code Regular', 'Source Code Pro', monospace " ,
"--jp-code-font-size" : " 19px "
}
}
}
} Dans Binder, on peut le déployer avec un script postBuild :
#! /usr/bin/env bash
set -eux
mkdir -p " ${NB_PYTHON_PREFIX} /share/jupyter/lab/settings "
cp overrides.json " ${NB_PYTHON_PREFIX} /share/jupyter/lab/settings " De même, il s'agit d'un fichier bien connu de JupyterLite, ce qui rend simple de faire une personnalisation de la lumière sans avoir besoin de créer et de distribuer un plugin de thème complet.