我想将.org
文件中编写的树转换为一些 XML 代码,以便稍后从中生成图形树(例如将其加载到www.draw.io网页)。
为此,我需要一个bash 脚本来转换包含以下内容.org
的文件:
* tree_root
** root_node_1
*** subnode
** root_node_2
文件.xml
包含:
<mxCell id="b1" value="tree_root" > </mxCell>
<mxCell id="b2" value="root_node_1" ></mxCell>
<mxCell id="a1" source="b2" target="b1">
<mxCell id="b3" value="subnode" ></mxCell>
<mxCell id="a2" source="b3" target="b2">
<mxCell id="b4" value="root_node_2" ></mxCell>
<mxCell id="a3" source="b4" target="b1">
在 org 模式中,标题用星号表示(*
- 一级标题,**
- 二级标题等)
说明:
- 调用的字段
id
是显示在框中的名称。 - b1、b2、b3代表“box”,
.org
文件中按行号枚举的名称, - a1,a2,a3代表“箭头”是后面的自然数枚举的名字,
source
是id
箭头开始的地方,target
是id
箭头指向的地方。
我需要一些简单的案例,例如 6 级深度最大值。我会自己扩展它,但我需要一些东西作为开始。
这个怎么做?
也许这会满足您的要求?基本思想是有一个数组(称为标签),它保存以特定数量的星星开始的最后一行的有效行号。如果您将星星的数量增加超过一颗,但正确处理任何数量的减少,它将生成错误的图表。当然,它根本不处理标题下的文本。