From 997b78e133fd170ea28b88559a648a4a041d5eba Mon Sep 17 00:00:00 2001 From: Jianhui Zhao Date: Thu, 11 Jul 2024 09:13:27 +0800 Subject: [PATCH] doc: update Use mermaid Signed-off-by: Jianhui Zhao --- README.md | 12 +++++++++++- README_ZH.md | 12 +++++++++++- doc/diagram.drawio | 1 - doc/diagram.png | Bin 24255 -> 0 bytes 4 files changed, 22 insertions(+), 3 deletions(-) delete mode 100644 doc/diagram.drawio delete mode 100644 doc/diagram.png diff --git a/README.md b/README.md index 25cc3f9..f5591a3 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,17 @@ [vue]: https://github.com/vuejs/vue [server]: https://github.com/zhaojh329/rttys -![](/doc/diagram.png) +```mermaid +flowchart TB +s[rttys with public IP address] +u1["User(Web Browser)"] --> s +u2["User(Web Browser)"] --> s +u3["User(Web Browser)"] --> s +s --> c1["rtty(Linux Device)"] +s --> c2["rtty(Linux Device)"] +s --> c3["rtty(Linux Device)"] +``` + ![](/doc/terminal.gif) ![](/doc/file.gif) ![](/doc/web.gif) diff --git a/README_ZH.md b/README_ZH.md index edb0021..3db1ba9 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -28,7 +28,17 @@ [vue]: https://github.com/vuejs/vue [服务端]: https://github.com/zhaojh329/rttys -![](/doc/diagram.png) +```mermaid +flowchart TB +s[rttys with public IP address] +u1["User(Web Browser)"] --> s +u2["User(Web Browser)"] --> s +u3["User(Web Browser)"] --> s +s --> c1["rtty(Linux Device)"] +s --> c2["rtty(Linux Device)"] +s --> c3["rtty(Linux Device)"] +``` + ![](/doc/terminal.gif) ![](/doc/file.gif) ![](/doc/web.gif) diff --git a/doc/diagram.drawio b/doc/diagram.drawio deleted file mode 100644 index 2ec4863..0000000 --- a/doc/diagram.drawio +++ /dev/null @@ -1 +0,0 @@ -7Vltb5swEP41fCwKNiThY166rtKmRaqmbv3mBBesOTgzJi/99TuDCRBn2tYmTbqGL9h357Pvec7mLBw8mq9vJFkkn0VEuYM60drBYwchLwg68NKSTSnph0EpiCWLjFEtuGNP1AjNuDhnEc1ahkoIrtiiLZyJNKUz1ZIRKcWqbfYoeHvWBYmpJbibEW5L71mkEhMF6tXyj5TFSTWz1w1LzZxUxiaSLCGRWDVE+NrBIymEKlvz9YhyDV6FSznuw2+024VJmqq/GYC+3CaTq4fB+AlvHqgQWeivrlDpZUl4bgJ2UJeDv+GjALewarUxUHR/5qJSXGUFUQMwgCUA2cNaD61Yv79mVFbOpvJFru7pFNRDzWbtEyIt11jaGJC3cyAp8jSiOngP1KuEKXq3IDOtXUGugixRc27U2pNJPoCx8tYE1+C9pFLRdUNkwL6hYk6V3IBJpe0a4k3me9j0V3UebWVJI4eqccSkbrx1XbMLDUPwP5AdWGRLpTZZsSRYEcSbTzmbQeN2ouePIkmzzAIWZoLdR88CVBTYoPr7QO0fC9TuZQcdi2zsndsO6l3IPhbZ/tkdl+He47LJUQnlJ5bmazAc0yUDvM4N2N0jE4enBrba1m8d2d3z6QyQ9f4PZP3e2SFrV8qu61rAQXyqjQ6UUOyJTAsDjQ7JlSjP8EJNOItTaM8ALDis8VCDxOD+MTCKOYsiPXi4ECxVRVjB0AnGGnjG+UhwAcPGqUi1Uaak+EF3hDWbnSPR5bfp8js2XfvYwkdjyy51LapoGg30BVGDz0mWQeGr8SNS2eLnZDuNWjdLG7wGOMEecCqZpJwotmzfR/chZmaY6DxpHFK9YP9WqlxkIpczakY1749/coR31gLQxVRZjgoCt2G/gNN9xdeF0wIv/9mc+m7blbebHkdmFdm1wHtlNUAHYjVAJ2fVrkPeK6voUKyi07OKX41VIFNuvumKxfVxvxJ819Zux6v647WpacreptmbUMkgYF1Tjd9Gnvhuv3+YT7X25YeNZ+fD3XF7TW3wulnkX7LoiN8QnUWd7eO1me+HLjrUNwWj0G1mUegfKI2gW/8VKc3rf0v4+hc= \ No newline at end of file diff --git a/doc/diagram.png b/doc/diagram.png deleted file mode 100644 index b787ec1c72fbf1c90b1d1e75801793bfe2e8e6ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24255 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