Dans les blogs, les manuels, etc., il est très courant d'afficher les résultats de certains codes sous forme de commentaires, par exemple:
(+ 1 1) ;=> 2
Existe-t-il un moyen d'afficher automatiquement des résultats comme celui-ci en utilisant la fonction Babel d'Org-Mode?
Plus précisément, j'aimerais pouvoir spécifier un en-tête tel que ceci:
#+begin_src scheme <some headers>
(+ 1 1)
(/ 4 (* 2 2))
#+end_src
Deviendrait ce qui suit lorsque je C-c C-c
:
#+begin_src scheme <some headers>
(+ 1 1) ;=> 2
(/ 4 (* 2 2)) ;=> 1
#+end_src
Et puis si j'ai fait quelques changements, comme ça ...
#+begin_src scheme <some headers>
(+ 1 5) ;=> 2
(/ 8 (* 2 2)) ;=> 1
#+end_src
... et C-c C-c
il remplacerait les commentaires par des commentaires mis à jour:
#+begin_src scheme <some headers>
(+ 1 5) ;=> 6
(/ 8 (* 2 2)) ;=> 2
#+end_src
Ou, à court de ce que j'ai imaginé ci-dessus, existe-t-il un moyen simple d'afficher les résultats par le rendu de fichier org de github, de sorte que les éléments suivants soient visibles (idéalement avec la mise en forme que je spécifie au niveau du document):
#+RESULTS:
: 2
la source
Réponses:
essaye ça
Utilisez des blocs de code nommés et un en-
noweb
tête pour transformer votre code en un programme lettré.Créez un
org
bloc de code pour formater votre code avec votre résultatEst - ce un C-c C-csur
org
bloc de code et vous devriez voir des résultats similaires au code ci - dessous:Si vous postez du code sur Github, vous devriez voir
la source
:var my_code='("my-code" "my-other-code")
. Malgré tout, c'est encore plus lourd que je ne le souhaiterais. Souhaitez-vous que je mette à jour ma réponse?Le plus proche que j'ai pu accomplir avec la fonctionnalité Babel existante est le suivant:
Tout d'abord, je définis une fonction emacs-lisp pour ajouter les résultats avec
";=> "
:Ensuite, je traite les résultats en utilisant l'en-
:post
tête:Cela renvoie ce qui suit
C-c C-c
, qui s'affiche sur github en raison de l'en-:exports both
tête, mais il est dans un bloc de code séparé.Je pense que cette stratégie laisse le fichier org trop encombré pour en valoir la peine. Et, sauf si je désactive l'évaluation du code, je dois accepter deux "Êtes-vous sûr de vouloir évaluer le code?" invites (une pour le bloc Scheme et une pour elisp
commentify
).la source
Vous pouvez faire quelque chose comme ça:
Écrivez votre bloc de code source multiligne nommé comme d'habitude
Changez l'habillage de
BEGIN/END_SRC
à…-EXAMPLE
:Ajoutez des blocs sources multilignes supplémentaires avec des noms individuels selon vos besoins dans votre texte
Ajoutez des
#+CALL:
lignes où vous donnez le nom du bloc commelcmds
variable. Le bloc de transformation ci-dessus n'est nécessaire qu'une fois par document.Notez que le bloc de transformation doit être écrit dans la langue que vous traitez.
J'ai d'abord essayé "d'automatiser" la bonne solution de @melioratus, mais j'ai rencontré des problèmes avec cela, quand j'ai rencontré la solution ci-dessus.
@jpkotta thx pour avoir signalé le correctif nécessaire pour éviter les problèmes de liste de numéros avec code-bloc.
la source