Ich habe über dieses Problem zu denken, aber ich kann nicht die Schritte herauszufinden, meine Funktion zu bauen:Rekursion in html wie Datenstruktur clojure
ich einen Schluckauf wie HTML-Daten als Eingabe habe, ist diese Struktur komponiert von hTML und benutzerdefinierten Elementen, zB:
Format: [tag-name Optionen & Körper]
[:a {} []] ;; simple
[:a {} [[:span {} []]]] ;; nested component
[:other {} []] ;; custom component at tag-name
[:a {} [[:other {} []]]] ;; custom component at body
Jedes Mal, th E-Struktur ein benutzerdefiniertes Element hat, soll ich es Darstellung durch die HTML-render (ersetzen), die in den database
ist, kann das individuelle Element oder Körper bei Tag-Namen vorhanden sein:
(def example
[:div {} [[:a {} []]
[:custom {} []]]])
(def database {
:custom [[:a {} []
[:div {} []]})
(def expected-result
[:div {} [[:a {} []]
[:a {} []]
[:div {} []]]])
Das Problem war: Wie erstelle eine Funktion, die diese Daten nimmt, suche nach dem Tag und dem Körper der Komponente, wenn es ein benutzerdefiniertes Element durch das Element database
ersetzt, schaue es nach dem Ersetzen erneut an, wenn es neue Komponenten gibt, die diese Schritte ausführen wieder ...
Ich habe bereits eine Funktion (custom-compon ent?), die einen Tag-Namen und gibt einen booleschen nimmt, wenn ein Element Brauch ist:
(custom-component? :a) ;; false
(custom-component? :test) ;; true
Vielen Dank für jede Hilfe, ich bin wirklich auf diese stecken.
Haben Sie das [Reagent-Projekt] (https://reagent-project.github.io/) ausgecheckt? – jmargolisvt
@jmargolisvt Ich brauche Ausgabe nur HTML, am Ende wird alles statische HTML sein (das ist das Ziel) –