Un lot de Blocs est un dossier dont le nom se termine par .lnb,
traité comme un élément unique dans l'arborescence (double-clic pour ouvrir). Chaque bloc est un fichier
réel sur le disque ; l'ordre vit dans un blocks.json à la racine du lot. Cela fonctionne comme un
carnet : des cellules empilées de code ou de texte. Un notebook Jupyter entre par ici : clic droit sur un .ipynb dans l'arborescence, puis Importer comme Blocs (.lnb). Chaque cellule devient un fichier réel — versionnable et lu par la recherche —, et le .ipynb reste où il était, car importer n'est pas convertir. Les sorties enregistrées dans le notebook ne viennent pas : exécuter la cellule ici produit le vrai résultat, avec l'instant et la commande. Si le blocks.json est illisible (un conflit Git ou une écriture interrompue), le carnet prévient et ne le réécrit pas : l'ordre, la connexion et la session ne sont de nouveau enregistrés qu'une fois le fichier corrigé.
Cellules, barre du carnet et raccourcis
Chaque cellule a un nom, un bouton de type (markdown, python, javascript, sql, shell, powershell, bat, r, julia, http, ia, mermaid, latex et les types texte) et des boutons pour copier, insérer (clic : en dessous ; la flèche : au-dessus et dupliquer), supprimer, déplacer vers le haut et le bas et exécuter (la flèche propose Exécuter jusqu'ici). La nouvelle cellule hérite du type de sa voisine. Le bouton de droite replie la cellule, ne laissant que sa première ligne dans l'en-tête, et le compteur [n] indique l'ordre d'exécution des cellules dans cette session. Créez un carnet depuis l'arborescence (Nouveau) ou via Fichier → Nouveau.
La barre du carnet, en haut, agit sur tout le carnet : Tout exécuter lance les cellules de code dans l'ordre ; Arrêter interrompt celle en cours et vide la file (l'exécution va dans l'historique avec le code -1) ; Effacer les sorties ferme les panneaux sans rien supprimer ; le menu Plus exporte le carnet et supprime l'historique. La clé timeoutSec du blocks.json fixe une limite de temps par cellule (0, la valeur par défaut, signifie sans limite).
Raccourcis, avec le focus dans la cellule : Ctrl+Entrée exécute et reste ; Shift+Entrée exécute et passe à la suivante (sur la dernière, en crée une nouvelle) ; Alt+Entrée exécute et insère une cellule juste en dessous. Dans une cellule de texte, exécuter signifie rendre : elle s'ouvre rendue quand elle a du contenu, et un double-clic (ou Entrée dessus) revient à l'édition.
Résultat enregistré, pièces jointes et historique
Le résultat est enregistré (comme dans un cahier de laboratoire) : à la fin,
chaque exécution devient un fichier .md dans
saida/<cellule>/, dans le lot lui-même — avec l'instant, le code de
sortie, la durée, la commande et la sortie elle-même. Comme c'est du Markdown, on peut le lire dans
n'importe quel éditeur, le versionner dans Git avec le carnet et le retrouver par la
recherche dans les notes. Rouvrir le lot ramène la
bande Dernière exécution au-dessus du panneau : cliquez dessus pour voir le résultat sans
réexécuter.
Pièces jointes : chaque exécution reçoit un dossier à elle, à côté du .md, et son chemin parvient au programme dans la variable d'environnement LN_RUN_DIR. Ce que la cellule y écrit — un graphique matplotlib, un CSV — apparaît sous la sortie (les images dessinées, le reste en lien vers le dossier) et est listé dans le fichier de l'historique. Une sortie qui est déjà du Markdown (la table d'un SELECT, la réponse de l'IA, un diagramme) s'ouvre rendue ; le bouton Texte/Rendre de la bande bascule.
Historique : le bouton Historique à côté de cette bande liste les exécutions
précédentes de cette cellule (instant et code de sortie) — utile pour comparer ce que la
même cellule a renvoyé au fil du temps. Nous gardons les 10 plus récentes par
cellule ; pour changer, modifiez la clé historyLimit dans le
blocks.json du lot (0 désactive l'enregistrement, et avec lui les pièces jointes). Une sortie très
grande est tronquée (le fichier dit truncated: true). Renommer la cellule ou
changer son type emporte l'historique ; supprimer la cellule envoie l'historique à la
Corbeille.
Session persistante
Par défaut chaque cellule est un nouveau processus : ce que l'une définit, la suivante ne le voit pas. Avec la session persistante activée (bouton Session de la barre ; la clé session du blocks.json), les cellules Python, JavaScript, shell et PowerShell s'exécutent dans un processus qui reste vivant entre les exécutions — variables, fonctions et importations d'une cellule valent dans les suivantes, comme dans Jupyter. En Python, les figures matplotlib ouvertes à la fin de la cellule sont enregistrées d'elles-mêmes dans le dossier des pièces jointes. Redémarrer la session oublie tout ; Arrêter aussi, car interrompre signifie terminer le processus. En JavaScript, déclarez avec var (ou sans déclaration) : let, const et class au niveau supérieur ne peuvent pas être redéclarés — pas même en relançant la même cellule.
Cellules SQL
Sans connexion désignée, la cellule sql s'exécute dans le DuckDB du carnet lui-même (en mémoire) : les tables créées dans une cellule valent dans les suivantes, et read_csv('donnees/ventes.csv') lit les fichiers du dossier du carnet — rangez les données dans un sous-dossier, car chaque fichier isolé dans le dossier du carnet est une cellule. Pour une vraie base, pointez le carnet vers une connexion .lnc depuis la bande de connexion (elle liste les connexions de l'espace de travail) : les cellules s'exécutent alors dans la base, par la même connexion que le panneau Connexions — mot de passe mémorisé, tunnel SSH, relecture du .lnc et la confirmation de production avant toute écriture. Le résultat d'un SELECT devient une table dans le fichier de sortie ; INSERT/UPDATE et consorts indiquent combien de lignes ont changé, et une erreur interrompt le script et enregistre l'instruction qui a échoué. Nous ramenons jusqu'à 100 lignes par requête (sqlMaxRows dans le blocks.json ; le fichier prévient quand il y en a plus).
@set nom = valeur définit une variable à portée de carnet, et :nom (ou ?) est un paramètre demandé à l'exécution, comme dans l'éditeur SQL. Le dernier SELECT écrit aussi resultado.csv dans le dossier des pièces jointes (les mêmes lignes que la table, jusqu'à sqlMaxRows), et les cellules suivantes reçoivent son chemin dans LN_LAST_SQL — en Python, pd.read_csv(os.environ["LN_LAST_SQL"]). La connexion vit dans le blocks.json comme chemin relatif ; un .lnc gardé dans le lot compte comme configuration, pas comme cellule.
HTTP, IA, Mermaid et LaTeX
Quatre types s'exécutent dans LightNote lui-même, sans interpréteur : la cellule http est un test .lnh exécuté par le même exécuteur que le testeur d'API (le rapport va dans l'historique ; l'environnement est celui de la clé httpEnv du blocks.json, et un fichier que la requête envoie doit se trouver dans l'espace de travail) ; la cellule ai envoie le prompt à l'assistant par défaut avec le contexte du carnet — le code des cellules précédentes et la dernière sortie de chacune, sauf les cellules http, qui peuvent contenir des identifiants —, et la réponse arrive rendue ; les cellules mermaid et latex dessinent le diagramme ou la formule dans une image des pièces jointes. Arrêter annule les deux premières.
Exporter le carnet
Le menu Plus de la barre exporte le carnet entier : en Markdown (les cellules de texte en ligne, le code dans des clôtures avec le langage, la dernière sortie juste en dessous et les images liées) ou en notebook Jupyter (.ipynb, avec la dernière sortie de chaque cellule et les images intégrées ; une cellule d'un autre langage porte la marque que VS Code lit). C'est une copie à partager — le carnet reste le dossier.
Index
Édition
- Vue d'ensemble
- Premiers pas
- Espace de travail et fenêtres
- Panneau Activités : tâches et messages
- Éditeur de code
- Markdown et wikilinks
- Diagrammes (Mermaid)
- Mathématiques et chimie (LaTeX)
- Calendrier dans la note
- Numérotation et renvois
- Citations et références
- Norme du travail universitaire
- Graphe de connexions
- Tables (Parquet, CSV, JSON, Excel)
- Espace d'analyse : tableau croisé dynamique et plusieurs graphiques
- PDF et images
- Images : annoter une capture
- Pages HTML (.html)
- Imprimer
- Zip comme un dossier (.zip)
- Blocs (.lnb)
- Tâches (Kanban / Gantt)
- Table personnalisée (.lnd)
- Bases (requêtes enregistrées sur vos notes)
Outils
- Recherche dans les fichiers et éléments en attente
- Suivi de version (Git facile)
- Instantanés et sauvegarde
- Réviser les modifications (points de contrôle)
- Comparer des fichiers (diff)
- Exécuter du code (F5)
- Terminal et CLI d'IA
- Assistant IA sur la sélection (Ctrl+K / Ctrl+I)
- IA sur votre ordinateur
- Sessions IA
- Chat IA
- Tester des API HTTP (.lnh)
- Bases de données (.lnc)
- Connexion SSH (.lns)
- Sécurité : Phrase-Sécurité, PIN et Markdown sécurisé
- Notes quotidiennes, capture rapide et zone de notification
- Retrouver d'anciennes notes
- Vos notes sur votre téléphone
- Enregistrer l'audio (voix, réunion) avec transcription par IA
- Notes autocollantes
- Calendrier
- Palette de commandes
Automatisation (IA / scripts)
Référence