On 2019-01-18 09:01, David Bovill via use-livecode wrote:
I would love to be able to change the characters that merge uses -
especially from “[[..]]” to “{{...}}”.

Quite a lot of templating uses curly brackets - and I especially want to use it for wiki style templates which can’t use square brackets as they are
used for internal links.

Not sure of the most elegant syntax, but we could add some Paramus without
breaking anything.

The current string scanning which the merge function relies on 5 codeunits (not characters!):

  - expression start ('[')
  - expression finish (']')
  - script start ('<')
  - script finish ('>')
  - script marker ('?')

With constraints:
  - expression start != expression end
  - script start != script finish != script marker
  - expression start != script start
  - expression finish != script finish

So the easiest / simplest least-likelihood-of-breaking-anything approach would be to add an optional parameterization to the merge function consisting of a string between 2 and 5 codeunits:

- string of 2 codeunits: change expression start / finish, leave script markers the same - string of 3 codeunits: change script start / finish / marker, leave expression markers the same - string of 4 codeunits: change expression start / finish and script start / finish, leave script marker the same
  - string of 5 codeunits: change all characters

In all cases it would need to be an error if the above constraints don't hold.

For example...

To get David's wiki-safe option you'd just parameterize by "{}".

Similarly, merge is not completely XML safe - <?xml version="1.0"> is a valid XML directive *and* a value LCS command call (xml version = "1.0") - so to make that better you could parameterize by "<>|" (<| not being a valid sequence except in CDATA, which you can elect not to use by entity escaping chars instead).

Warmest Regards,

Mark.

--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to