73360
<http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/apply-filter-to-
interface.html>

yamaha のルーターについての資料を読んでいました。ここで、その処理のフローが以下に抜粋する通り、 ascii の diagram
にて表現されていました。

```

                        :
                 [BRI]  : ISDN回線 or 専用線
                        :
      +-----------------+-------------------+
      |                 |                   |
      |  +-----------------------------+    |
      |  |     PPPやISDN回線の処理     |    |
      |  +-----------------------------+    |
      |                 |                   |
      |  +-----------------------------+    |
      |  |       パケット・キュー      |    | …優先制御や帯域制御を使う/使える時
      |  |      (↓)    +----(↑)----+ |    | queue class filter ...
      |  |              |   queue    | |    | pp queue type ...
      |  |      (↓)    +----(↑)----+ |    | pp queue class filter list ...
      |  +-----------------------------+    | pp queue class property ...
      |                 |                   |
      |                 |       ＜外側＞    |
      |  +-----------------------------+    |
      |  |      NATディスクリプタ      |    | nat descriptor ...
      |  |  +-(1)-+-(2)-+-(3)-+-(4)-+  |    | ip pp nat descriptor ...
      |  |  | ▲  | ▲  | ▲  | ▲  |  |    |
      |  |  +-----+-----+-----+-----+  |    |
      |  +-----------------------------+    |
      |                 |       ＜内側＞    |
      |                 |                   |
      |  +-----------------------------+    |
      |  |         IPフィルタ          |    |
      |  | +----(↓)----+----(↑)----+ |    | ip filter ...
      |  | |     in     |    out     | |    | ip pp secure filter in/out ....
      |  | +----(↓)----+----(↑)----+ |    | 
      |  +-----------------------------+    |
      |                 |                   |
      |              (PP#n)                 | ip pp local address
      |                 |                   |
      |  +-----------------------------+    |
      |  |       IPルーティング        |    |
      |  +-----------------------------+    |
      |                 |                   |
      |               (LAN)                 | ip lan address
      |                 |                   |
      |  +-----------------------------+    |
      |  |         IPフィルタ          |    |
      |  | +----(↑)----+----(↓)----+ |    | ip filter ...
      |  | |     in     |    out     | |    | ip lan secure filter in/out ....
      |  | +----(↑)----+----(↓)----+ |    | 
      |  +-----------------------------+    |
      |                 |                   |
      |                 |       ＜内側＞    |
      |  +-----------------------------+    |
      |  |      NATディスクリプタ      |    | nat descriptor ...
      |  |  +-(1)-+-(2)-+-(3)-+-(4)-+  |    | ip lan nat descriptor ...
      |  |  | ▼  | ▼  | ▼  | ▼  |  |    |
      |  |  +-----+-----+-----+-----+  |    |
      |  +-----------------------------+    |
      |                 |       ＜外側＞    |
      |                 |                   |
      |  +-----------------------------+    |
      |  |       パケット・キュー      |    | …優先制御や帯域制御を使う/使える時
      |  |      (↑)    +----(↓)----+ |    | queue class filter ...
      |  |              |   queue    | |    | lan queue type ...
      |  |      (↑)    +----(↓)----+ |    | lan queue class filter list ...
      |  +-----------------------------+    | lan queue class property ...
      |                 |                   |
      |  +-----------------------------+    |
      |  |     イーサネットの処理      |    |
      |  +-----------------------------+    |
      |                 |                   |
      +-----------------+-------------------+
                        |
                 [LAN]  |
                        |
      ------------------+--------------------
    
    
```

もし、このような diagram が比較的簡単に作成できるのであれば、例えば複雑なソースコードにコメント上で注釈として、このような diagram
を記しておくことで、以降の実装者がコードの理解がしやすくなり、なので有意義なのではないか、と思いました。

# 質問

unix cli の環境で、 ascii 図形を作成/編集を効率的に行なおうとする際に、定番のツール・ライブラリはありますか?
CC BY-SA 4.0
2021-01-17T03:45:41.217
73356
2021-01-17T04:49:55.510
754
question
unix
unix 環境で、 ascii diagram を作成・編集したい
Markdown(など)にシーケンス図やフローチャートを組み込む場合, [Graphviz (dot言語)](https://graphviz.org/),
[PlantUML](https://plantuml.com/ja/), [Mermaid](https://mermaid-
js.github.io/mermaid/#/) … などが有名です。

一部は Ascii出力も可能なので, dot言語や PlantUMLを使ったことがあるのなら簡単なはず

  * PlantUML [ascii-art 出力](https://plantuml.com/ja/ascii-art)
  * Graphviz 
    * [dot-to-ascii](https://github.com/ggerganov/dot-to-ascii)
    * stackoverflow.com: [Graphviz and ascii output](https://stackoverflow.com/questions/3211801/graphviz-and-ascii-output)
      * `Graph::Easy` package
      * その他 (未確認)

その他に, Ascii図を直接描いて出力を得る方法もあります

  * 記事: [アスキーアートでフローのダイアグラムを作成できる「Asciiflow」  
](https://gigazine.net/news/20140123-asciiflow/) => <http://asciiflow.com/>
CC BY-SA 4.0
2021-01-17T04:49:55.510
73360
2021-01-17T04:49:55.510
43025
73356
answer