Jeremy did suggest a format to reference JSON elements from wikitext in an issue:
There's the issue: Explore using JSON Pointers to reference data within data tiddlers: https://github.com/Jermolene/TiddlyWiki5/issues/411 Here's the draft: JavaScript Object Notation (JSON) Pointer http://tools.ietf.org/html/rfc6901 ----------- I'm not sure, if it is also meant to create a JSON structure, but it may be possible. a pointer always starts with a slash "/" /title: tiddler title /tags/0: tag1 /tags/1: tag2 /text: multi line text by default second line empty line above /fields/myfield: field value. I don't like the readability above. So may be if trailing empty lines are removed: /title: tiddler title /tags/0: tag1 /tags/1: tag2 /text: multi line text by default second line empty line above /fields/myfield: field value. --------------- If I see this I'd suggest a Syntax, like this: The tiddler title is the object, that contains the whole structure. JSON Pointer eg: /JPointerTest returns {"JPointerTest":{ .... }} JPointerTest tiddler contains: ! myFirstObject Some multiline text. second line empty line above ! key Value Pairs key1:value1 ... a key value pair key2:value2 key3:value3 --------------- So if I request /JPointerTest ... I get: {fields: { "title":"JPointerTest", "tags":["tag1", "tag2"], "text":{"myFirstObject": ["\n", "Some multiline text.\n", "second line\n", "\n", "empty line above\n"], "key Value Pairs": [{"key1":"value1 ... a key value pair"}, {"key2":"value2"}, {"key3":"value3"} ] }, } } So imo the parser, to create a structure like this would be very simple. ... - Get the tiddler with: var tid = $tw.getTiddler("JPointerTest") - Check if it is a type: application/x-tiddler-dictionary - Create a JSONdict = { "fields": {} } - Assign the title: JSONdict.fields.title = tid.fields.title - get the tags: JSONdict.fields.tags = tid.fields.tags - get the text and parse it to JSON described above: JSONdict.fields.t = createJsonFromText(tid.fields.text) done. The "createJsonFromText()" functions would need some love, but imo is simple too. - start with a line parser - read a line - check if the line starts an object .. if yes create the object - read the next lines and add it to the object as an array element. - check the element if it contains a "key : value" element - if yes store the k/v-element into the array. - read lines until end of text or new object detected - read line until finieshed The advantage of my sytax is, that it is valid TW syntax. Even if it would be only a subset. So it would be perfectly fine to render it as TW syntax and reference it with JSON Pointers. have fun! mario [1] http://tools.ietf.org/html/rfc6901#section-6 -- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/tiddlywikidev. For more options, visit https://groups.google.com/groups/opt_out.
