このページにコントリビュートすることができます。  (Menu)

 

 

PlantUML テキスト エンコード

 

 

Introduction

PlantUML のコードは URL で使用可能な文字だけで表現したものに変換することができます。 PlantUML defines a standardized way to encode diagram text description to a simple string of characters that contains only digits, letters, underscore and minus character. The goal of such an encoding is to facilitate communication of diagrams through URL (see server). This encoding includes compression to keep encoded strings as short as possible.

The encoded metadata is stored in the generated PNG, so the diagram source can be extracted from the diagram itself! (see server).

 

 

Compression

Compression is done using Deflate algorithm. We will add new compression algorithm in some future.

 

 

Principle

例えば、

Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

は、

Syp9J4vLqBLJSCfFib9mB2t9ICqhoKnEBCdCprC8IYqiJIqkuGBAAUW2rJY256DHLLoGdrUS2W00

となります。

このエンコードは、http://www.plantuml.com/plantuml/uml/Syp9J4vLqBLJSCfFib9mB2t9ICqhoKnEBCdCprC8IYqiJIqkuGBAAUW2rJY256DHLLoGdrUS2W00 のように URL に使用することができます。

この変換は、以下のように行われます。

  1. UTF-8 に変換
  2. Deflate アルゴリズムを用いて圧縮
  3. ASCII 文字列に再変換
  4. base64 表現にする

 

 

Compression result

The following diagram:

is compressed to a 428 string length using Deflate

 

 

Running

PTE 表現は、 -encodeurl-decodeurlコマンドライン フラグをつけることで、使用できます。

以下のコードでは、このエンコードを実際に使っています。