Datgene wat je probeerde te bereiken met d3js is dus niet gelukt?
En nu heb je iets gevonden waarmee het wel lukt, maar het "input formaat" van de boomstructuur is complexer?
Het klinkt alsof de beheer(s)baarheid een probleem vormt.
Wat je zou kunnen doen is:
- de boom gestructureerd opbouwen waarbij je "inspringt" in je code (een aantal witregels of tabs introduceert voordat je informatie van een "node" intypt; deze witruimte heeft betekenis: het geeft aan op welk "niveau" je in de boom zit en wat het bovengelegen element van een "node" is; hierdoor wordt je boomstructuur beter leesbaar en daarmee waarschijnlijk ook beter beheerbaar
Een (abstract) voorbeeld:
root
element A
element B
element C
element D
element E
Als je je boom zo opbouwt kun je uit de vorm opmaken dat:
A en E children zijn van root
B en D children zijn van A
C child is van B
Simpelweg door de manier van schrijven (inspringen). Dit moet dan ook blijken uit de daadwerkelijke inhoud in JavaScript van deze elementen maar je hebt dit dus ook al "visueel" gemaakt door hoe je het noteert (naast wat je noteert).
Ik kan mij niet goed voorstellen dat het opstellen van de boomdefinitie te moeilijk zou zijn. Om hier toch omheen te komen zou je kunnen overwegen om:
- hulpfuncties in JavaScript te introduceren die de boom bouwen
- code in een scriptingtaal (bijvoorbeeld PHP) opstellen die dit doen, en daarmee de JavaSCript-boomdefinitie genereren
In beide gevallen verplaats je het probleem en deel je het in beter behapbare stukken op.
Of je boom nu horizontaal of verticaal wordt afgedrukt lijkt mij irrelevant voor het probleem waar je voor staat (als dit nog steeds het tussenvoegen van een element is).
Je zit dus nog steeds met hetzelfde probleem maak ik hieruit op?
Je probleemomschrijving is nogal vaag (understatement).