3 ms·
Maybe something more like: [ "div", [ "The ", [ "a", { "href": "https://www.json.or
by 52-6F-62 7y ago
Maybe something more like:
[
"div",
[
"The ",
[
"a",
{ "href": "https://www.json.org/" },
[ "JSON format" ]
],
" was invented by ",
[
"em",
"Douglas Crockford"
],
"."
]
]
With all children being encapsulated in an array...
edit: though it again gets confusing when the 0 index is sometimes the element type and sometimes the straight text... so never mind I guess the problem persists.
- nkrisc 7y agoHow would you ever differentiate "div" from an element or text? Is "The " text or the <The > tag?
- arethuza 7y agoWhy not just: [ "div", "The ", [ "a", { "href": "https://www.json.org/" https://www.json.org/" }, "JSON format" ], " was invented by ", [ "em", "Douglas Crockford" ], "." ] First thing in array is element, if there is an object at the second location then that's the attributes?
- 52-6F-62 7y agoYeah that seems to make the most sense. I had to actually work it out before I saw it. I was looking for some further separation beyond indices but I just ended up over-thinking it.
- fnordsensei 7y agoThat's is roughly how it's done in Reagent[1]/re-frame[2]: [:div "The" [:a {:href "https://www.json.org/"} "JSON format"] " was invented by " [:em "Douglas Crockford"] "."] The fact that EDN[3] supports keywords makes it a bit easier to parse. Representing HTML in EDN this way was first done in a library called Hiccup[4], so it’s usually called “Hiccup” even when encountered outside of the original library. 1: https://holmsand.github.io/reagent/ https://holmsand.github.io/reagent/ 2: https://github.com/Day8/re-frame https://github.com/Day8/re-frame 3: https://github.com/edn-format/edn https://github.com/edn-format/edn 4: https://github.com/weavejester/hiccup https://github.com/weavejester/hiccup