Ersetzen Sie die PlantUML-Quelle im Org-Modus durch das generierte Bild

7

Ich schreibe UML-Diagramme im org-Modus mit PlantUML und "kompiliere" sie normalerweise in HTML, um das Ergebnis anzuzeigen. Gibt es eine Möglichkeit, das Bild in meinem Puffer anzuzeigen?

Ich versuche den Bildmodus zu aktivieren, aber es funktioniert nicht gut. Es ersetzt den Dateinamen am Anfang des Quellblocks.

#+begin_src plantuml :file my-diagram.png
...
#+end_src
#+results:
[[file:my-diagram.png]]

Beide Verweise auf den Dateinamen werden ersetzt und die Quelle bleibt erhalten. Gibt es eine Möglichkeit, den Quellblock auszublenden und nur eine Instanz des Bildes anzuzeigen?

Cristian
quelle

Antworten:

6

Ich bin mir nicht sicher, ob ich die Quelle durch ein Bild ersetzen soll , aber Sie können Inline-Bilder als Ergebnisse für Quellblöcke verwenden.

Wenn Sie inlineimagesIhrem Puffer die Startoption " " hinzufügen , werden alle Links in Ihrem Puffer gerendert, die auf lokale Bilder verweisen, die er versteht.

Wenn Sie keinen Startoptionsblock haben, ist dies nur eine Zeile oben in Ihrer Datei, die wie folgt aussieht : #+STARTUP: inlineimages.

Dies behebt jedoch nur die Hälfte Ihres Problems ... Wenn Sie C-c C-ceinen Block verwenden, der ein Bild ausspuckt, erhalten Sie eher einen Link als ein Inline-Bild ...

Glücklicherweise können Sie dies beheben, indem Sie Ihrer Emacs-Konfiguration Folgendes hinzufügen:

(add-hook 'org-babel-after-execute-hook
          (lambda ()
            (when org-inline-image-overlays
              (org-redisplay-inline-images))))

Auf diese Weise können Sie Bilder beim ersten Öffnen des Puffers inline anzeigen und durch Auswerten der Blockquelle aktualisieren.


Nun zum gesamten Geschäft, das Quellen ersetzt:

Ich bin nicht sicher, wie Sie dies in Ihrem Org-Puffer tun sollen, aber in Org-Exporten (nach HTML, PDF usw.), wenn Sie die Quellblöcke, die ihre Ergebnisse generieren, nicht anzeigen möchten, Sie kann :exports resultsdem Kopf Ihres Codeblocks ein " " Argument hinzufügen . Dadurch sieht es so aus, als ob die Quelle durch Ihr Bildergebnis ersetzt wurde.

Archenoth
quelle
Aktuelle Versionen von Emacs exportieren Plantuml standardmäßig als Bilder ohne Quellen. Wenn Sie die Quelle nicht im Organisationspuffer sehen möchten, reduzieren Sie einfach die Codeblockzeile (Tabulatortaste bei begin_src). Ich bin sicher, es gibt eine einfache Möglichkeit, den Block als Erweiterung des After-Execute-Hooks automatisch zu reduzieren, wenn jemand dies wirklich wollte.
Digicrat
0

Ab org-mode 8.2.10 war es möglich, das :eval no-exportArgument zum Codeblock-Header hinzuzufügen . Das Ergebnis ist, dass der Codeblock normal ausgeführt, aber nicht exportiert wird. Nur die Ausgabe, in diesem Fall Abbildung nach der #+RESULTS:Zeile, ist im exportierten Dokument sichtbar.

Heikki
quelle