The*_*tus 5 documentation generator plantuml mermaid
我必须将 plantuml 图转换为 mermaid 图。有没有办法以某种方式从 plantuml 图生成美人鱼图?感谢您的回答
我尝试过搜索但没有人在这里问过
您可以使用Python 进行一些字符串替换。但是,您可能需要进行调整以满足您的要求。
\ndef 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\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n还有变身后的美人鱼:
\nsequenceDiagram\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\nRun Code Online (Sandbox Code Playgroud)\n