0

如何将 .edn 文件的内容包含为另一个 .edn 文件的子集,类似于 XML 中的“包含路径”元素?

更具体地说,可扩展数据表示法 (EDN)是否可以通过类似于 XML 中的“包含路径”元素的路径“包含”文件。

我有一个相当大的 XML 格式的键绑定项目,通过将每个部分分成可以轻松跳转到由“包含路径”元素组成的父文件并对其进行操作的文件,它变得更加易于导航且不那么笨拙。这允许通过注释一行来关闭/打开我的代码的离散部分,并让我通过向上或向下冒泡一行来改变序列。该项目已从 XML 迁移到 EDN 格式,我对使用一个巨大的 .edn 文件感到沮丧。我花了很多时间在缩进、代码折叠、书签……但这就像试图阅读一本印在一张长长的羊皮纸上的书。

我应该提到 .edn 文件被程序(悟空)用来生成一个更加庞大和笨拙的 JSON 文件。不知道这是否对最佳解决方案有任何影响。谢谢。

带有“包含路径”元素的旧 XML“父”文件

新的巨大 EDN 文件试图通过缩进、代码折叠、彩色注释、书签和格式来分解部分

我查看了“包括 EDN 格式的文件”,但也许这确实是一个 Clojure 问题。我不是一个真正有经验的程序员,所以我不确定我是否真的应该查看 Clojure 文档,因为据我了解,edn 是 Clojure 语言的一个子集

代码见图片https://imgur.com/gallery/apjmtWf

理想情况下,我希望有一个由“包含”我的许多较小文件组成的主父文件,以便于导航。

4

2 回答 2

3

XML 不包含任何内容。这只是数据。XML 处理器(例如 XSL)在运行时会发生包含。

EDN 正是如此。如果您想要一个包含,您只需说出类似的内容[:include "this file also"],然后遍历数据结构并将所有包含替换为真实数据。

于 2019-02-06T14:30:24.627 回答
1

您可能会发现JUXT的aero库很有用。它添加了一些自定义标签文字以方便使用 EDN 文件进行配置。其中之一是#include,这听起来就像您需要的那样。

于 2019-02-07T09:38:05.973 回答