如何将.edn文件的内容作为另一个.edn文件的子集包含,类似于XML中的“包含路径”元素?
更具体地说,extensable data notation (EDN)是否可以通过类似于XML中“包含路径”元素的路径来“包含”文件。
我有一个相当大的XML格式的键绑定项目,该项目通过将每个部分分成可以轻松跳转到a parent file made up "include path" elements并可以操作的文件而变得更加易于导航且不那么笨拙。这允许通过注释一行来关闭/打开我的代码的离散部分,并让我通过向上或向下冒泡来更改顺序。 此后,该项目已从XML迁移到EDN格式I,使用one enormous .edn file令我感到沮丧。我花了很多时间在缩进,代码折叠,书签...上,但这就像试图读一本印在长羊皮纸上的书一样。
我应该提到程序(Goku)使用.edn文件来生成甚至更大且笨拙的JSON文件。不知道这对最佳解决方案是否有影响。谢谢。
Old XML "parent" file with "include path" elements
我查找了“包括EDN格式的文件”,但这也许确实是Clojure的问题。我不是一个经验丰富的程序员,所以不确定我是否应该真正阅读Clojure文档,因为据我了解,edn是Clojure语言的子集
查看图像以获取代码https://imgur.com/gallery/apjmtWf
理想情况下,我希望有一个主父文件,其中包含许多较小的文件“包含”,以便于导航。
答案 0 :(得分:3)
XML不包含任何内容。只是数据而已。在运行时,包含会发生在XML处理器(例如XSL)中。
对于EDN正是这样。如果您想包含一个对象,只需沿[:include "this file also"]
讲几句话,然后遍历数据结构并将所有包含替换为真实数据。
答案 1 :(得分:0)
您可能会发现JUXT的aero库很有用。它添加了一些自定义标签文字,以方便使用EDN文件进行配置。其中之一是#include
,听起来像它可以满足您的需求。