Un document Notebook est plus qu'une vue d'éditeur. Le même fichier s'exécute depuis la ligne de commande, s'enregistre et voyage sous forme d'un seul fichier portable, et se convertit depuis et vers d'autres formats.
Exécuter sans l'éditeur
notebook(filename) exécute un document sans l'ouvrir : il lit le code de chaque cellule de code, dans l'ordre, et l'évalue dans l'espace de travail de base, exactement comme le ferait l'éditeur. run(filename) sur un fichier .nlx fait de même. C'est ainsi qu'un document s'exécute depuis nelson-cli ou dans un traitement par lots, là où aucun éditeur n'est disponible. Les blocs de texte, les titres, les équations et les contrôles sont ignorés ; seules les cellules de code s'exécutent.
Le conteneur .nlx
Le fichier natif .nlx est un conteneur zip. Il garde la source (document.json), la sortie enregistrée (output.json) et les figures (media/) à part, si bien que la source reste petite et lisible, tandis que les figures enregistrées voyagent avec elle. La page de référence nlx décrit chaque entrée.
La forme texte .m
Un Notebook peut aussi être enregistré comme un script texte .m, où chaque bloc est écrit sous un marqueur %% [kind] (par exemple %% [code] ou %% [text]). Ce fichier s'ouvre dans n'importe quel éditeur de texte et s'exécute comme un script ordinaire. Un fichier .m sans un tel marqueur est traité comme une seule cellule de code et exécuté en entier.
Export et import
Depuis le menu Exporter, un document est écrit en HTML, Markdown, Word (.docx) ou en notebook Jupyter (.ipynb), et Enregistrer comme script écrit la forme texte .m. Ouvrir relit un document .nlx, un script .m ordinaire ou un notebook .ipynb dans l'éditeur.
Vérifier qu'un document s'exécute de bout en bout
Un document est fiable quand il s'exécute depuis un espace de travail vide, dans l'ordre, sans erreur. Comme les cellules partagent l'espace de travail de base, une variable laissée par une session antérieure peut masquer une étape manquante. Pour vérifier, exécutez le document dans une session neuve, par exemple avec nelson-cli et notebook(filename) ; si une cellule échoue, l'exécution s'arrête sur l'erreur. Ce même contrôle convient à un travail d'intégration continue.
L'exemple ci-dessous construit un document .nlx minimal et l'exécute sans l'éditeur.
% écrit la source d'un document à une cellule
d = [tempdir(), createGUID()];
mkdir(d);
fw = fopen([d, '/document.json'], 'wt');
fwrite(fw, '{"blocks":[{"type":"codecell","props":{"code":"answer = 6 * 7;"}}]}');
fclose(fw);
fw = fopen([d, '/manifest.json'], 'wt');
fwrite(fw, '{"format":"nelson-notebook","version":1}');
fclose(fw);
% l'empaquette comme un conteneur .nlx
nlx = [tempdir(), createGUID(), '.nlx'];
odir = pwd();
cd(d);
zip(nlx, '*.json');
cd(odir);
% l'exécute : la cellule de code est évaluée dans l'espace de travail de base
notebook(nlx);
answer
| Version | Description |
|---|---|
| 2.0.0 | version initiale |