Как включить файл.edn в качестве подмножества другого "родительского" файла.edn, например, элемента "include path" в файле.xml?

Как включить содержимое файла.edn как подмножество другого файла.edn, аналогичного элементу "include path" в XML?

Более конкретно, имеет ли расширяемая нотация данных (EDN) способ "включать" файл через путь, аналогичный элементу "включить путь" в XML.

У меня был довольно большой проект связывания клавиш в формате XML, который был сделан гораздо более удобным для навигации и менее громоздким за счет разделения каждого раздела на файлы, к которым можно было легко переходить и манипулировать из родительского файла, состоящего из элементов "include path". Это позволило отключить / включить дискретный раздел моего кода, комментируя одну строку, и позволил мне изменить последовательность, просто выпуская строку вверх или вниз. С тех пор проект перешел с XML на формат I EDN, и я разочаровался, работая с одним огромным файлом.edn. Я потратил много времени на отступы, свертывание кода, закладки... но это все равно что пытаться читать книгу, напечатанную на одном длинном свитке пергамента.

Я должен отметить, что файл.edn используется программой (Goku) для создания еще более громоздкого и громоздкого файла JSON. не знаю, имеет ли это какое-либо влияние на лучшее решение. Благодарю.

Старый XML "родительский" файл с элементами "include path"

Новый огромный файл EDN с разделами попытался разбить с отступами, свертыванием кода, цветными комментариями, закладками и форматированием

Я посмотрел "включая файлы в формате EDN", но, возможно, это действительно вопрос Clojure. Я не очень опытный программист, поэтому не уверен, стоит ли мне действительно просматривать документацию Clojure, поскольку, насколько я понимаю, edn является подмножеством языка Clojure.

см. изображения для кода https://imgur.com/gallery/apjmtWf

В идеале мне бы хотелось, чтобы один основной родительский файл состоял из "включенных" моих файлов меньшего размера для облегчения навигации.

2 ответа

XML не содержит ничего. Это просто данные. Включение происходит в процессорах XML, таких как XSL, при их запуске.

Это именно так для EDN. Если вы хотите включить, вы просто говорите что-то вроде [:include "this file also"], а затем пройтись по структуре данных и заменить все включения реальными данными.

Вы можете найти аэробиблиотеку JUXT полезной. Он добавляет несколько пользовательских литералов тегов для облегчения использования файлов EDN для конфигурации. Одним из них является #include, который звучит так, как будто делает именно то, что вам нужно.

Другие вопросы по тегам