Estilo y tipografía basados en datos para Jupyterlab impulsado por JSS.
Este es un software libre
Estamos intentando algunas cosas aquí e invitamos a probarlo, pero no garantiza que sea bueno o incluso funcione. Lo que queremos decir con eso está cubierto en el texto gritado en la parte inferior de la licencia.
Si algo se rompe, conviértase en contribuyente y plantee un problema, pero no podemos garantizar ningún tipo de tiempo de respuesta. Del mismo modo, los PR serán revisados de manera que le pida el tiempo.
pip install jupyterlab-fonts
# or
conda install -c conda-forge jupyterlab-fonts¡Lamentamos verte ir!
pip uninstall jupyterlab-fonts
# or
conda uninstall jupyterlab-fontsPara cambiar sus fuentes predeterminadas, desde el menú principal, seleccione Configuración ▶ Fuentes ▶ Código ▶ Font (o altura de tamaño o línea) y el valor que desea.
También están disponibles algunas características de contenido , es decir, su redacción renderizada y HTML, y con suerte se agregarán más con el tiempo.
Puede ver todas las configuraciones de fuentes disponibles seleccionando configuraciones ▶ Fuentes ▶ Fuentes globales .... Estos valores se almacenarán en su configuración de JupyterLab.
Al ver un .ipynb , cambie solo las fuentes para ese archivo haciendo clic en la barra de herramientas del cuaderno (ahora mismo, al lado del tipo de celda). La fuente, los cambios de estilo y la información de su licencia se almacenarán en los metadatos del cuaderno.
Esto puede aumentar rápidamente el tamaño de su archivo de cuaderno y puede dificultar la colaboración. Estamos investigando algunos enfoques alterados.
En Jupyterlab, la sección de fuentes de la configuración avanzada de JSON puede controlar las cosas completamente no relacionadas con las fuentes. No hay garantía de que los estilos altamente personalizados funcionen bien con el editor de fuentes , o con aplicaciones aguas abajo de metadatos de jupyterlab-fonts .
Aquí hay un ejemplo de cambiar cómo se ve un archivo de cuaderno cuando está en modo de presentación .
{
"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 "
}
}
}
} Del mismo modo, el Inspector de propiedades JupyterLab permite estas personalizaciones en un archivo .ipynb específico, tanto en el documento como en el nivel de celda: se generan dinámicamente y se encuentran en el documento/ id de celda.
El ejemplo anterior muestra cómo diferentes versiones de Jupyterlab (o cuaderno) pueden usar diferentes clases de DOM para el mismo contenido lógico, como:
| Elemento | Jupyterlab <4 | Jupyterlab 4 |
|---|---|---|
| un editor de código | .CodeMirror | .cm-editor |
Todas las características compatibles con JSON de los complementos jss-preset-default están habilitados con la configuración predeterminada, con algunas notas específicas a continuación. Para la portabilidad, las características dinámicas basadas en JS no son compatibles.
El & (ampersand) permite selectores de anidación, como se estandarizan por el módulo de anidación W3C CSS e implementada en muchos navegadores.
Todos los estilos derivados de la configuración estarán envueltos en un selector @global .
overrides.json overrides.json permite una configuración simple y declarativa de JupyterLab Core y extensiones de terceros, incluso después de que se haya iniciado el servidor de laboratorio.
{
"@deathbeds/jupyterlab-fonts:fonts" : {
"styles" : {
":root" : {
"--jp-code-font-family" : " 'Fira Code Regular', 'Source Code Pro', monospace " ,
"--jp-code-font-size" : " 19px "
}
}
}
} En Binder, uno podría implementar esto con 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 " Del mismo modo, este es un archivo bien conocido para Jupyterlite, lo que hace que sea sencillo hacer la personalización de la luz sin necesidad de construir y distribuir un complemento de tema completo.