PlantUML如何自动对类内column条目按名称字母顺序排序
目前PlantUML没有内置的配置项可以自动对表结构的column条目按字母顺序排序,渲染时会严格按照代码中编写的顺序展示字段。
下面给出两种可落地的实现方案:
- 脚本批量预处理方案
适合需要批量处理大量表结构、或者表字段频繁更新的场景,可以用简单的脚本自动完成排序,示例Python代码如下:
运行脚本后生成的排序后puml文件,直接渲染即可得到字段按字母排序的表图。import re # 读取PlantUML文件内容 with open("test.puml", "r", encoding="utf-8") as f: content = f.read() # 匹配Table块内部的内容 table_pattern = re.compile(r'(Table\([^)]+\)\s*\{)([^}]+)(\})', re.DOTALL) match = table_pattern.search(content) if match: header = match.group(1) lines = [line.strip() for line in match.group(2).strip().split('\n') if line.strip()] # 提取column括号里的字段名作为排序依据 def get_col_name(line): col_match = re.search(r'column\(([^)]+)\)', line) return col_match.group(1) if col_match else '' # 排序规则:主键优先排在最前面,普通字段按字母升序排列 primary_keys = [line for line in lines if 'primary_key' in line] columns = [line for line in lines if 'column(' in line] sorted_columns = sorted(columns, key=get_col_name) new_body = '\n'.join(primary_keys + sorted_columns) new_content = table_pattern.sub(f'{header}\n{new_body}\n{match.group(3)}', content) # 输出排序后的puml文件 with open("sorted_test.puml", "w", encoding="utf-8") as f: f.write(new_content) - 编辑器手动快速排序方案
适合单次修改、表数量少的场景,大多数主流代码编辑器都自带行排序功能:选中所有你需要排序的column行,执行编辑器的「升序排序行」功能即可完成排序,操作成本极低。
内容的提问来源于stack exchange,提问作者SomeUser
相关产品推荐
相关产品推荐

