Changes

Jump to navigation Jump to search
3,745 bytes added ,  13:26, 9 August 2020
m
Text replacement - "</cmd>" to "}}"
URLs can be typeset in various ways. You may specify a URL for later reuse via {{cmd|useURL}}:
<texcode>
\useURL[aurl] [http://xkcd.com/149/] [] [I prefer hot dogs.]
</texcode>
where #1 is the identifier, #2 is the URL you want to point to, and #4 the text to be displayed where the URL is used. #3 can be used for the 'file path' portion of the URL, if you want. This dates back to when hyperlink support in
</texcode>
<!--You can use
<texcode>
\url[aurl]
</texcode>
as well, which behaves like \{{cmd|from}}[#1].-->
URL shortcuts defined by {{cmd|useURL}} can be used while {{cmd|url}} as well:<texcode>\url[aurl]</texcode> == E-Mail mailto How to Typeset URLs == === Example for Mailto #1 ===
<context source=yes>
\setupinteraction[state=start] \useurl [mymail] [mailto:nobody@example.zzz] [] [visible@mailaddress.zzz] \starttext Send your spam to \from[mymail]! \stoptext
</context>
=== Example for Mailto #2 ===
<context source=yes>
\setupinteraction[state=start]
 
Send your spam to \goto{visible@mailaddress.zzz}[url(mailto:nobody@example.zzz)]
</context>
=== another solution Example for WWW ({{cmd|goto}}) === Another way of typesetting URLs is the {{cmd|goto}}: \goto{#1}[#2] command. This expects the description text as first argument and the actual URL as the second one; note that it has to be wrapped in url(#2) to create a clickable link:<texcode>\goto{In Lua, array indices start from one.}[url(http://www.xkcd.com/163/)]</texcode> === Escaping of Special Characters === You might be interested in [[URL#Avoid_Escaping_Characters|not escaping characters]]. Note that special characters, eg hash sign, percent sign, must be escaped by backslash. Escaping means that the special character will be processed one step later and it preventsannoying error messages during compilation. The <code>#</code> sign will be replaced by <code>\#</code>,the <code>%</code> sign by <code>\%</code>, etc.
<context source=yes>
\setupinteraction[state=start] \starttext Send your spam to \goto{visible@mailaddressuseurl [myurl] [www.example.zzz}/\#999] [] [url(mailto:nobody@www.example.zzz)/\#999] \stoptext
</context>
Another way of writing special characters is described below, with hyphenated URLs. == Hyphenation Hyphenated URLs == 
URLs tend to become large monsters under many circumstances but you may have a good reason not to conceal them from the reader.
This is where hyphenation comes in handy.
\hyphenatedurl{http://bits.blogs.nytimes.com/2010/03/05/a-former-book-designer-says-good-riddance-to-print/?hpw}
</context>
 
=== Hyphenation Rules ===
 
This has some characters predefined where Hans “likes” URLs to break (see the list at the beginning of [[source:lang-url.lua|lang-url.lua]], cf. [http://www.ntg.nl/pipermail/ntg-context/2008/032959.html a message on ntg-context]).
If you prefer other characters you can add them via:
</texcode>
Note: === Escaping Special Characters === The method for escaping of special characters described above does not work with command{{cmd|hyphenatedurl}} completely, unfortunately. Escaping backslash will undesirably appear on the <code>#</code> output when percent sign should be escaped, that is, replaced by <code>\#</code>printed out. Similar problems bring hash sign and backslash.
== Other ways ==Therefore, these three characters must be rewritten to commands, see the following list:Another way of typesetting URLs is the <table><tr><td><code>%</code></td><td> --> <code>{{cmd|letterpercent}}</code></td></tr><tr><td><code>#</code></td><td> --> <code>{{cmd|gotoletterhash}}: </code></td></tr><tr><td><code>\goto</code></td><td> --> <code>{{cmd|letterescape}} or {{#1cmd|letterbackslash}}[#2] command. This expects the description text as first argument and the actual URL as the second one; note that </code></td></tr></table> For other characters, similar commands have been predefined but it has is not necessary to use them. <table><tr><td><code>&</code></td><td> --> <code>{{cmd|letterampersand}}</code></td></tr><tr><td><code><</code></td><td> --> <code>{{cmd|letterless}}</code></td></tr><tr><td><code>></code></td><td> --> <code>{{cmd|lettermore}}</code></td></tr><tr><td><code>"</code></td><td> --> <code>{{cmd|letterdoublequote}}</code></td></tr><tr><td><code>'</code></td><td> --> <code>{{cmd|lettersinglequote}}</code></td></tr><tr><td><code>$</code></td><td> --> <code>{{cmd|letterdollar}}</code></td></tr><tr><td><code>^</code></td><td> --> <code>{{cmd|letterhat}}</code></td></tr><tr><td><code>_</code></td><td> --> <code>{{cmd|letterunderscore}}</code></td></tr><tr><td><code>|</code></td><td> --> <code>{{cmd|letterbar}}</code></td></tr><tr><td><code>~</code></td><td> --> <code>{{cmd|lettertilde}}</code></td></tr><tr><td><code>/</code></td><td> --> <code>{{cmd|letterslash}}</code></td></tr><tr><td><code>?</code></td><td> --> <code>{{cmd|letterquestionmark}}</code></td></tr><tr><td><code>!</code></td><td> --> <code>{{cmd|letterexclamationmark}}</code></td></tr><tr><td><code>@</code></td><td> --> <code>{{cmd|letterat}}</code></td></tr><tr><td><code>:</code></td><td> --> <code>{{cmd|lettercolon}}</code></td></tr><tr><td><code>{</code></td><td> --> <code>{{cmd|letterbgroup}}</code> or <code>{{cmd|letteropenbrace}}</code> or <code>{{cmd|letterleftbrace}}</code></td></tr><tr><td><code>}</code></td><td> --> <code>{{cmd|letteregroup}}</code> or <code>{{cmd|letterclosebrace}}</code> or <code>{{cmd|letterrightbrace}}</code></td></tr></table> A custom symbol can be wrapped inserted as well, eg in url(#2) to create case of a clickable linklinebreak:
<texcode>
\gotodef\hyphenatedurlseparator{In Lua, array indices start from one.}[url(http://www.xkcd.com/163/)]
</texcode>
These special commands can be used in other cases, like {{cmd|useURL}}, too.  == Setting color Color and style Style ==For \{{cmd|url}}:
<texcode>
\setupurl
style=\tf]
</texcode>
For \{{cmd|goto }} and \{{cmd|from}}:
<texcode>
\setupinteraction
== Tips and Tricks ==
 
=== Many Different Hyperrefs ===
If you need many hyperrefs in your document these definitions may be handy for you
<context source=yes>
\def\href#1#2{\useURL[#2][{#2}][][{#1}]\goto{\url[#2]}[url(#1)]} \def\ahref#1{\color[linkcolor]{\ttx \href{#1}{<#1>}}} \def\fullahref#1{\color[linkcolor]{\ttx \href{#1}{http://#1}}} \def\mailto#1{\useURL[#1][mailto:#1][][#1]\from[{#1}]} \def\MailTo#1#2{\useURL[#1][mailto:#1][][#2]\from[{#1}]}
Send mail to \MailTo{foo@bar.zzz}{Mr. Foo}
</context>
 
=== Avoid Escaping Characters ===
 
In case you don’t want to escape characters from your URLs, you might want to use the following command:
 
<context source="yes">
\setupinteraction[state=start]
\setupnote[footnote][location=text]
\setupnotation[footnote][alternative=serried, numbercommand=\tfx]
\unexpanded\def\mypersonalurl#1{%
\bgroup\tt\goto{\hyphenatedurl{#1}}[url(#1)]\egroup}
 
\startasciimode
\mypersonalurl{http://a.b?hpw%20h#pw}
\stopasciimode
\startasciimode
\footnote{\mypersonalurl{http://a.b?hpw%20h#pw}}
\stopasciimode
\placenotes[footnote]
</context>
 
But you have to consider one option to make it work:
 
* Setting {{cmd|asciimode}} for the whole document.<p>Comments won’t work, because <code>%</code> will be considered a standard character.</p>
 
* Wrapping all URLs inside {{cmd|startasciimode}}...{{cmd|stopasciimode}}.<p>If you use URLs inside footnotes, it is the whole footnote which has to be inside the pair of commands.</p><p>Comments inside the mode won’t work.</p>
 
=== External Links ===
Create a macro for external links in a colour that is distinct from other document links.
 
<pre>
% Enable document colours
\setupcolors[state=start,]
 
% Internal link colours
\setupinteraction[state=start,color=blue,]
 
% External link colours
\definecolor[steelblue][h=4682B4]
\define[2]\href{%
\begingroup
\setupinteraction[
style=normal,
color=steelblue,
]%
\goto{#1}[url(#2)]%
\endgroup%
}
 
% Set index colours
\setupcombinedlist[content][
interaction=all,
color=red,
]
 
% Set the table of contents colours
\setuplist[chapter][
% Text colour
color=darkcyan,
% Page number colour
pagecolor=darkgreen,
]
 
% Set up the index heading colour
\setupregister[index][
color=darkgray,
balance=no,
]
 
\def\Google{G\color[red]{o}\color[orange]{o}g\color[green]{l}\color[red]{e}}
 
\starttext
\completecontent
 
\startchapter[title=chapter]
Search \index{source code}{source code} using \href{\Google{} Website}{http://google.com}! Read about
\index{syntax}{syntax}.
\stopchapter
 
\placeindex
 
\stoptext
</pre>
 
[[Category:Basics]]
[[Category:Interaction]]

Navigation menu