8

iPython ノートブックで plantuml UML ツールを使用するにはどうすればよいですか? UML図は事務処理で頻繁に使用されるため、役立つはずです。

インターネットからグーグルで検索した後、iPython ノートブックで Asymptote を使用するための優れたリファレンスを見つけたので、iPython ノートブック用の plantuml 拡張機能を作成しました。以下は詳細な手順です。

  • 作業ディレクトリ (例: $HOME/workshop) から iPython ノートブックを起動します。

    # cd $HOME/workshop
    # ipython notebook --pylab inline
    
  • $HOME/workshop.eg:plantuml.py で拡張スクリプトを作成します。

    """
    An Plantuml extension for generating UML figures from within ipython notebook.
    """
    import os
    from IPython.core.magic import magics_class, cell_magic, Magics
    from IPython.display import Image, SVG
    
    @magics_class
    class Plantuml(Magics):
    
    @cell_magic
    def plantuml(self, line, cell):
        """Generate and display a figure using Plantuml.
        Usage:
            %java -jar plantuml.jar -tsvg filname
        """
        self.filename = line
        self.code = cell
    
        with open(self.filename + ".plt", "w") as file:
            file.write(self.code)
    
        os.system("java -jar plantuml.jar -tsvg %s.plt" % self.filename)
        return SVG(filename=self.filename+".svg")    
    
    def load_ipython_extension(ipython):
        ipython.register_magics(Plantuml)
    
  • 公式サイトからplantuml.jarを $HOME/workshop にダウンロードします。

  • 新しい iPython ノートブックを作成し、セルの下で実行して拡張機能をロードし、拡張機能を使用します。

    %install_ext plantuml.py
    %reload_ext plantuml
    
  • 結果をテストするために plantuml セルを作成します。

    %%plantuml figure1
    
    @startuml
    Alice -> Bob: Authentication Request
    Bob --> Alice: Authentication Response
    @enduml  
    

その後、plantuml のすべてが iPython ノートブック内で機能します。

いくつかの質問は次のとおりです。

  • plantuml コードの構文が間違っている場合、plantuml のエラー出力は iPython ノートブックに表示されません。SVG の生成に失敗した場合はエラー テキストを出力し、そうでない場合は SVG ファイルをノートブックに出力します。
  • 拡張機能は SVG 形式を使用しています。PDF 形式または PNG 形式を使用できるかどうかわかりません。TiKz も拡張したいのですが、pdflatex は常に pdf ファイル形式を出力します。最初にサードパーティ ツールを使用して SVG 形式に変換する必要があります。少し時間がかかります。
4

2 に答える 2

3

PlantUML セル マジック パッケージがあります。iPlantUML@PyPiを参照してください。

インストール後 ( pip install iplantuml) パッケージの紹介に従って、次のように jupyterlab で plantUML コードを作成できます。

最初にパッケージをインポートし、

import iplantuml

セル マジックを使用します。

%%plantuml 

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml 

次に、セル出力に図を次のように表示します。

ここに画像の説明を入力

于 2020-05-01T03:46:57.120 に答える