In Blogs, Lehrbüchern usw. werden die Ergebnisse einiger Codes häufig als Kommentare angezeigt, z.
(+ 1 1) ;=> 2
Gibt es eine Möglichkeit, solche Ergebnisse mithilfe der Babel-Funktion von Org-Mode automatisch anzuzeigen?
Insbesondere möchte ich in der Lage sein, einen Header so anzugeben, dass:
#+begin_src scheme <some headers>
(+ 1 1)
(/ 4 (* 2 2))
#+end_src
Würde folgendermaßen aussehen, wenn ich C-c C-c
:
#+begin_src scheme <some headers>
(+ 1 1) ;=> 2
(/ 4 (* 2 2)) ;=> 1
#+end_src
Und dann, wenn ich ein paar Änderungen vorgenommen habe ...
#+begin_src scheme <some headers>
(+ 1 5) ;=> 2
(/ 8 (* 2 2)) ;=> 1
#+end_src
... und C-c C-c
es würde die Kommentare durch aktualisierte ersetzen:
#+begin_src scheme <some headers>
(+ 1 5) ;=> 6
(/ 8 (* 2 2)) ;=> 2
#+end_src
Abgesehen von dem, was ich mir oben erträumt habe, gibt es eine einfache Möglichkeit, die Ergebnisse vom Github-Renderer für Organisationsdateien anzeigen zu lassen, sodass Folgendes angezeigt wird (idealerweise mit Formatierungen, die ich auf Dokumentebene angibt):
#+RESULTS:
: 2
org-mode
org-export
org-babel
Parkeristyping
quelle
quelle
Antworten:
Versuche dies
Verwenden Sie benannte Codeblöcke und
noweb
Header, um Ihren Code in ein Lese- und Schreibprogramm zu verwandeln.Erstellen Sie einen
org
Codeblock, um Ihren Code mit Ihrem Ergebnis zu formatierenWenn Sie einen C-c C-cOn-
org
Code-Block ausführen, sollten Ergebnisse angezeigt werden, die dem folgenden Code ähneln:Wenn Sie eine Postleitzahl an Github senden, sollten Sie sehen
quelle
:var my_code='("my-code" "my-other-code")
. Trotzdem ist es immer noch umständlicher als ich es gerne hätte. Möchten Sie, dass ich meine Antwort aktualisiere?Das Nächste, was ich mit der vorhandenen Babel-Funktionalität erreichen konnte, ist das Folgende:
Zuerst definiere ich eine Emacs-Lisp-Funktion, um den Ergebnissen Folgendes voran zu stellen
";=> "
:Dann verarbeite ich die Ergebnisse mit dem
:post
Header:Dies gibt das folgende on zurück
C-c C-c
, das aufgrund der:exports both
Kopfzeile auf github angezeigt wird , aber in einem separaten Codeblock.Ich denke, dass diese Strategie die Organisationsdatei zu überladen macht, um sie wert zu sein. Und wenn ich die Code-Evaluierungsbestätigung nicht deaktiviere, muss ich zwei akzeptieren: "Möchten Sie den Code wirklich evaluieren?" Eingabeaufforderungen (eine für den Scheme-Block und eine für das Elisp
commentify
).quelle
Sie können so etwas tun:
Schreiben Sie Ihren benannten Multi-Line-Quellcodeblock wie gewohnt
Ändern Sie die Umhüllung von
BEGIN/END_SRC
in…-EXAMPLE
:Fügen Sie Ihrem Text nach Bedarf zusätzliche mehrzeilige Quellblöcke mit individuellen Namen hinzu
Fügen Sie
#+CALL:
Zeilen hinzu, in denen Sie den Namen des Blocks alslcmds
Variable angeben. Der obige Transformationsblock wird nur einmal pro Dokument benötigt.Beachten Sie, dass der Transformationsblock in der Sprache geschrieben sein muss, die Sie behandeln.
Ich habe zuerst versucht, die gute Lösung von @melioratus zu "automatisieren", stieß dabei aber auf Probleme, als ich auf die obige Lösung stieß.
@jpkotta thx für den Hinweis auf die Korrektur, die zur Vermeidung des Problems der Nummernliste mit Codeblock erforderlich ist.
quelle