On Friday 29 August 2014 21:52:33 Hans Hagen wrote:
On 8/29/2014 7:48 PM, Prashanth N Rao wrote:
I have already asked this question on Stackexchange. It appears that no one who has seen the question knows an answer. I figure I'll ask here too, just to cover all bases.
I need to link to some online resources in my PDF file. Based on the official documentation, I have written:
\useURL[dbdk] [http://dbpedia.org/page/The_Dark_Knight_(film)] [] [it's link to DBPedia]
Lorem ipsum \goto{the LinkedMDB.org entry on The Dark Knight}[url(http://data.linkedmdb.org/page/film/6224)], and \from[dbdk] dolor sit amet.
Note my code for the link to DBpedia: I had to write it in this convoluted way, instead of using my preferred \goto, because the link has the special characters, `(` and `)`. These characters interfered with `url()`. I can't use HTML's URL encoding scheme because the `%`s interfere with TeX. Is there another escape code format in ConTeXt for use within `\goto{...}[url(...)]`?
Hm, I can support properly nested () and {} but how about not balanced ... one way out is to support "" and ''
special(operation) special(operation(whatever)) special(operation{argument,argument{whatever}}) special(operation{argument{whatever}})
special("operation(") special("operation(whatever") special(operation{"argument,argument{whatever"}) special(operation{"argument{whatever"})
I'll add that but it needs testing because the ref parser is already somewhat complex.
If I may make a suggestion, you could just support one escape character -> \ That way, balanced or unbalanced, they just have to know one convention. If I understood your examples correctly, i.e. these are the strings one would write within url(), this is how they could do it: special\(operation\) special\(operation\(whatever\)\) special\(operation{argument,argument{whatever}}\) special\(operation{argument{whatever}}\) special\(operation\(\) special\(operation\(whatever\) special\(operation{argument,argument{whatever}\) special\(operation{"argument{whatever"}\) And if they ever need a literal \ in their URL, they would have to write \\ In my examples above, I have escaped only ( and ) because they interefere with url(). If the any other character interferes with your code, they could escape it as I have shown.
Using the suggestion by @phg, I tried the following:
\startasciimode Lorem ipsum \goto{the LinkedMDB.org entry on The Dark Knight}[url(http://data.linkedmdb.org/page/film/6224)], and \goto{it's link to DBPedia}[url(http://dbpedia.org/page/The_Dark_Knight_%28film%29)] dolor sit amet. \stopasciimode I still had to use escape codes, `%28` and `%29`, to keep it from interfering with url(). It turns out that DBpedia does not like these codes, and requires the actual characters. Is there another way I put them in `\goto{...}[url(...)]`?
you can use: \letterpercent
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________