我有一些Markdown文件,其内容将被渲染并用作流程图的节点。所有这一切都必须使用FOSS以编程方式完成。
生成的流程图节点中的文本应该是可选择的,因此将流程图呈现为图像文件是不正确的。渲染应该模仿标准Markdown实践也很重要:例如反引号之间的文本应以固定宽度的字体等呈现。
我想过将Markdown渲染为HTML并使用GraphViz的SVG或PDF输出选项处理结果来生成流程图,因为GraphViz支持节点中的HTML内容。但是,GraphViz仅支持节点中的very limited subset HTML标记。例如,它不支持<code>
元素,甚至不支持<p>
元素,并且这两个元素都可以在HTML呈现的Markdown输出中找到。
我目前正在考虑使用TikZ,这将涉及将Markdown呈现为LaTeX而不是HTML,并且应该能够通过Markdown处理任何类型的标记。不幸的是,这将意味着担心页面格式化以及GraphViz不需要的其他问题。
所以我的问题是:你会如何解决这个问题?为什么你会这样做呢?
答案 0 :(得分:0)
如果是在商业场景中,您可以尝试使用yFiles系列产品之一来创建流程图。这些是Java,Javascript,.net和Flash的图表库。有一个可用于Java变体的SVG扩展,可用于导入SVG节点内容并将该SVG呈现为节点的内容。 对于HTML5 / Javascript变体,您可以直接利用SVG,但是当然这需要在浏览器中运行,这似乎不适合您的用例。
您可以免费评估该软件,看看它是否适合您。