如何从 plantuml 生成美人鱼?

The*_*tus 5 documentation generator plantuml mermaid

我必须将 plantuml 图转换为 mermaid 图。有没有办法以某种方式从 plantuml 图生成美人鱼图?感谢您的回答

我尝试过搜索但没有人在这里问过

Jef*_*ian 2

您可以使用Python 进行一些字符串替换。但是,您可能需要进行调整以满足您的要求。

\n
def convert_plantuml_to_mermaid(plantuml_code):\n    conversion_table = {\n        "@startuml": "",\n        "@enduml": "",\n        "->>": "->",\n        "-->>": "-->",\n        "-->>*": "-->*",\n        "alt": "alt",\n        "else": "else",\n        "end": "end",\n        "participant": "participant",\n        "activate": "activate",\n        "deactivate": "deactivate",\n    }\n    \n    mermaid_code = []\n    \n    for line in plantuml_code.splitlines():\n        for key, value in conversion_table.items():\n            line = line.replace(key, value)\n        mermaid_code.append(line)\n    \n    return "\\n".join(mermaid_code)\n\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试了以下 plantuml:

\n
@startuml\n\nautonumber\n\nactor "\xe7\x94\xa8 \xe6\x88\xb7" as User\nparticipant "webview" as webview #Orange\nparticipant "\xe7\xbd\x91  \xe9\xa1\xb5  \xe5\x90\x8e \xe7\xab\xaf" as webview_service #Orange\nparticipant "\xe5\xbe\xae  \xe4\xbf\xa1  \xe6\x9c\x8d  \xe5\x8a\xa1" as wechat #Yellow\nparticipant "\xe5\xbe\xae  \xe4\xbf\xa1  \xe5\xb0\x8f  \xe7\xa8\x8b  \xe5\xba\x8f" as wmp\nparticipant "\xe5\xbe\xae  \xe4\xbf\xa1  \xe5\xb0\x8f  \xe7\xa8\x8b  \xe5\xba\x8f  \xe5\x90\x8e  \xe7\xab\xaf" as wmp_service\n\nactivate User\n\nUser -> wmp: \xe8\xbf\x9b \xe5\x85\xa5 \xe6\xb4\xbb \xe5\x8a\xa8 \xe9\xa1\xb5 \xe9\x9d\xa2\n\nwmp -> webview: \xe5\x8a\xa0 \xe8\xbd\xbd \xe6\xb4\xbb \xe5\x8a\xa8 \xe7\xbd\x91 \xe9\xa1\xb5 url\nactivate webview\nwebview -> webview: \xe5\xaf\xb9 \xe4\xba\x8e \xe7\x9f\xad \xe6\x97\xb6 \xe9\x97\xb4 \xe5\x86\x85 \xe7\xac\xac \xe4\xb8\x80 \xe6\xac\xa1 \xe6\x89\x93 \xe5\xbc\x80 \xe7\x9a\x84 \xe7\x94\xa8 \xe6\x88\xb7 \xef\xbc\x8c \xe5\xb1\x95 \xe7\xa4\xba \xe6\x8e\x88 \xe6\x9d\x83 \xe9\xa1\xb5 \xe9\x9d\xa2\nwebview_service -> wechat \nwebview_service <- wechat: unionid\n\nwebview_service -> wmp_service: \xe4\xbd\xbf \xe7\x94\xa8 appid/secret \xe6\x8d\xa2 \xe5\x8f\x96 server trust access token\nwebview_service <- wmp_service: access_token, refresh_token\nwebview_service -> wmp_service : \xe9\x80\x9a \xe8\xbf\x87 access_token \xe5\x92\x8c unionId \xe6\x9f\xa5 \xe8\xaf\xa2 userId\nalt \xe6\xb2\xa1 \xe6\x9c\x89 \xe6\x9f\xa5 \xe8\xaf\xa2 \xe5\x88\xb0 \xe7\x9a\x84 \xe6\x83\x85 \xe5\x86\xb5\n    webview_service <- wmp_service : null\n\n    webview -> webview : \xe4\xba\x92 \xe5\x8a\xa8\n\n    webview -> wmp: \xe8\xa7\xa6 \xe5\x8f\x91 \xe7\x99\xbb \xe5\xbd\x95 \xe6\xb3\xa8 \xe5\x86\x8c \xef\xbc\x88 \xe4\xb8\xad \xe5\xa5\x96 \xe4\xba\x86 \xef\xbc\x81\xef\xbc\x89\n\n    wmp -> wmp_service : \xe7\x99\xbb \xe5\xbd\x95 \xe6\xb3\xa8 \xe5\x86\x8c\n    wmp <- wmp_service : jwt\n\n    wmp -> webview: \xe5\x9b\x9e \xe8\xb0\x83 \xe7\xbd\x91 \xe9\xa1\xb5 \xef\xbc\x8c\xe4\xb8\x8d \xe5\xb8\xa6 \xe7\x94\xa8 \xe6\x88\xb7 \xe4\xbf\xa1 \xe6\x81\xaf \xe5\x8f\x82 \xe6\x95\xb0\n    webview_service -> wmp_service: \xe9\x80\x9a \xe8\xbf\x87 access_token \xe5\x92\x8c unionId \xe6\x9f\xa5 \xe8\xaf\xa2 userId\n    webview_service <- wmp_service: userId (server to server talk)\nelse \xe6\x9f\xa5 \xe8\xaf\xa2 \xe5\x88\xb0 \xe4\xba\x86 userId\n    webview_service <- wmp_service: userId (server to server talk)\nend\n\nwebview_service -> webview_service: \xe4\xbf\x9d \xe5\xad\x98 (userId, \xe5\x87\xa0 \xe7\xad\x89 \xe5\xa5\x96 ) \xe7\xad\x89 \xe4\xbf\xa1 \xe6\x81\xaf\n\ndeactivate webview\n
Run Code Online (Sandbox Code Playgroud)\n

还有变身后的美人鱼:

\n
sequenceDiagram\n  autonumber\n\n  actor User as \xe7\x94\xa8\xe6\x88\xb7\n  participant webview as webview #Orange\n  participant webview_service as \xe7\xac\xac\xe4\xb8\x89\xe6\x96\xb9\xe7\xbd\x91\xe9\xa1\xb5\xe5\x90\x8e\xe7\xab\xaf #Orange\n  participant wechat as \xe5\xbe\xae\xe4\xbf\xa1\xe6\x9c\x8d\xe5\x8a\xa1 #Yellow\n  participant wmp as \xe5\xbe\xae\xe4\xbf\xa1\xe5\xb0\x8f\xe7\xa8\x8b\xe5\xba\x8f\n  participant wmp_service as \xe5\xbe\xae\xe4\xbf\xa1\xe5\xb0\x8f\xe7\xa8\x8b\xe5\xba\x8f\xe5\x90\x8e\xe7\xab\xaf\n\n  activate User\n\n  User ->> wmp: \xe8\xbf\x9b\xe5\x85\xa5\xe6\xb4\xbb\xe5\x8a\xa8\xe9\xa1\xb5\xe9\x9d\xa2\n\n  wmp ->> webview: \xe5\x8a\xa0\xe8\xbd\xbd\xe7\xac\xac\xe4\xb8\x89\xe6\x96\xb9\xe6\xb4\xbb\xe5\x8a\xa8\xe7\xbd\x91\xe9\xa1\xb5URL\n  activate webview\n  webview ->> webview: \xe5\xaf\xb9\xe4\xba\x8e\xe7\x9f\xad\xe6\x97\xb6\xe9\x97\xb4\xe5\x86\x85\xe7\xac\xac\xe4\xb8\x80\xe6\xac\xa1\xe6\x89\x93\xe5\xbc\x80\xe7\x9a\x84\xe7\x94\xa8\xe6\x88\xb7\xef\xbc\x8c\xe5\xb1\x95\xe7\xa4\xba\xe6\x8e\x88\xe6\x9d\x83\xe9\xa1\xb5\xe9\x9d\xa2\n  webview_service ->> wechat: \xe8\x8e\xb7\xe5\x8f\x96\xe7\x94\xa8\xe6\x88\xb7\xe7\x9a\x84\xe5\xbe\xae\xe4\xbf\xa1 unionid\n  wechat -->> webview_service: unionid\n\n  webview_service ->> wmp_service: \xe4\xbd\xbf\xe7\x94\xa8appid/secret\xe6\x8d\xa2\xe5\x8f\x96server trust access token\n  wmp_service -->> webview_service: access_token, refresh_token\n  webview_service ->> wmp_service: \xe9\x80\x9a\xe8\xbf\x87access_token\xe5\x92\x8cunionId\xe6\x9f\xa5\xe8\xaf\xa2userId\n  alt \xe6\xb2\xa1\xe6\x9c\x89\xe6\x9f\xa5\xe8\xaf\xa2\xe5\x88\xb0\xe7\x9a\x84\xe6\x83\x85\xe5\x86\xb5\n    wmp_service -->> webview_service : null\n\n    webview ->> webview: \xe4\xba\x92\xe5\x8a\xa8\n\n    webview ->> wmp: \xe8\xa7\xa6\xe5\x8f\x91\xe7\x99\xbb\xe5\xbd\x95\xe6\xb3\xa8\xe5\x86\x8c\xef\xbc\x88\xe4\xb8\xad\xe5\xa5\x96\xe4\xba\x86\xef\xbc\x81\xef\xbc\x89\n\n    wmp ->> wmp_service: \xe7\x99\xbb\xe5\xbd\x95\xe6\xb3\xa8\xe5\x86\x8c\n    wmp_service -->> wmp: jwt\n\n    wmp ->> webview: \xe5\x9b\x9e\xe8\xb0\x83\xe7\xbd\x91\xe9\xa1\xb5\xef\xbc\x8c\xe4\xb8\x8d\xe5\xb8\xa6\xe7\x94\xa8\xe6\x88\xb7\xe4\xbf\xa1\xe6\x81\xaf\xe5\x8f\x82\xe6\x95\xb0\n    webview_service ->> wmp_service: \xe9\x80\x9a\xe8\xbf\x87access_token\xe5\x92\x8cunionId\xe6\x9f\xa5\xe8\xaf\xa2userId\n    wmp_service -->> webview_service : userId (server to server talk)\n  else \xe6\x9f\xa5\xe8\xaf\xa2\xe5\x88\xb0\xe4\xba\x86userId\n    wmp_service -->> webview_service : userId (server to server talk)\n  end\n\n  webview_service ->> webview_service: \xe4\xbf\x9d\xe5\xad\x98 (userId, \xe5\x87\xa0\xe7\xad\x89\xe5\xa5\x96)\xe7\xad\x89\xe4\xbf\xa1\xe6\x81\xaf\n\n  deactivate webview\n\n
Run Code Online (Sandbox Code Playgroud)\n