Я думал об этой проблеме, но я не могу понять, шаги, чтобы построить свою функцию:Рекурсии в HTML, как структуры данных, используя Clojure
У меня есть икота, как HTML данные в качестве входных данных, эта структура состоит из HTML и пользовательских элементов, например:
формат: [тег имя опции & тело]
[:a {} []] ;; simple
[:a {} [[:span {} []]]] ;; nested component
[:other {} []] ;; custom component at tag-name
[:a {} [[:other {} []]]] ;; custom component at body
Каждый раз, когда й е структуры есть пользовательский элемент, я должен вынести (заменить) его HTML-представление, которое находится в database
, пользовательский элемент может присутствовать в тегах имени- или тела:
(def example
[:div {} [[:a {} []]
[:custom {} []]]])
(def database {
:custom [[:a {} []
[:div {} []]})
(def expected-result
[:div {} [[:a {} []]
[:a {} []]
[:div {} []]]])
Проблема было: Как создать функцию, которая берет эти данные, искать тег и тело компонента, если есть элемент, заменяющий его элементом database
, после его замены просмотрите его снова, если есть новые компоненты, выполните следующие действия снова ...
У меня уже есть функция (custom-component лор?), который принимает имя тега и возвращает логическое значение, если это пользовательский элемент:
(custom-component? :a) ;; false
(custom-component? :test) ;; true
Спасибо за любую помощь, я действительно застрял на этом.
Вы проверили [Проект реагента] (https://reagent-project.github.io/)? – jmargolisvt
@jmargolisvt Мне нужен вывод только html, в конце будет весь статический html (это цель) –