PlantUMLソースをorg-modeで生成された画像に置き換えます


7

PlantUMLを使用してorg-modeでUMLダイアグラムを作成し、通常、それをHTMLに「コンパイル」して結果を表示します。画像をバッファに表示する方法はありますか?

iimage-modeを有効にしようとしましたが、うまく機能しません。ソースブロックの先頭にあるファイル名を置き換えます。

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

ファイル名への参照は両方とも置き換えられ、ソースは残ります。ソースブロックを非表示にして画像のインスタンスを1つだけ表示する方法はありますか?

回答:


6

ソースを画像に置き換えるかどうかはよくわかりませんが、ソースブロックの結果としてインライン画像を使用できます。

起動オプション " inlineimages"をバッファーに追加すると、バッファーが理解できるローカルイメージを指すバッファー内のリンクがレンダリングされます。

起動オプションブロックがない場合は、ファイルの先頭にある次のような行になります#+STARTUP: inlineimages

ただし、これは問題の半分しか解決しません... C-c C-c画像を吐き出すブロックを使用すると、インライン画像ではなくリンクが表示されます...

幸い、Emacsの設定に以下を追加することでこれを修正できます:

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

これにより、最初にバッファーを開いたときにインラインで画像を表示し、ブロックソースを評価して画像更新できます。


さて、全体のソース置換ビジネスに関しては:

Orgバッファー内でこれを行う方法はわかりませんが、Orgエクスポート(HTML、PDFなどへ)では、結果を生成するソースブロックを表示したくない場合は、:exports resultsコードブロックの先頭に" "引数を追加できます。これにより、ソースが画像の結果に置き換えられたように見えます。


emacsの現在のバージョンでは、デフォルトでソースなしの画像としてplantumlをエクスポートします。ソースを組織バッファーに表示したくない場合は、コードブロック(begin_srcのタブキー)の行を折りたたみます。誰かが本当に望んだ場合、実行後フックの拡張機能としてブロックを自動的に折りたたむ簡単な方法があると確信しています。
Digicrat

0

org-mode 8.2.10以降、:eval no-export引数をコードブロックヘッダーに追加できるようになりました。その結果、コードブロックは正常に実行されますが、エクスポートされません。#+RESULTS:エクスポートされたドキュメントで線が表示された後の出力(この場合は図)のみ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.