unit/docs
Andrew Clayton eebaff42ea Var: added a $dollar variable that translates to a '$'.
Allow $dollar (or ${dollar}) to translate to a literal $ to allow
support for sub-delimiters in URIs.

It is possible to have URLs like

  https://example.com/path/15$1588/9925$2976.html

and thus it would be useful to be able to specify them in various bits
of the unit config such as the location setting.

However this hadn't been possible due to $ being used to denote
variables for substitution. E.g $host.

As was noted in the below GitHub issue it was suggested by @VBart to
use $sign to represent a literal $, however I feel $dollar is more
appropriate so we have a variable named after the thing it represents,
also @tippexs found[0] that &dollar is used in HTML to represent a $, so
there is some somewhat related precedent.

(The other idea to use $$ was rejected in my original pull-request[1]
 for this issue.)

This means the above URL could be specified as

  https://example.com/path/15${dollar}1588/9925${dollar}2976.html

in the unit config.

This is done by adding a variable called 'dollar' which is loaded into
the variables hash table which translates into a literal $.

This is then handled in nxt_var_next_part() where variables are parsed
for lookup and $dollar is set for substitution by a literal '$'. Actual
variable substitution happens in nxt_var_query_finish().

[0]: https://github.com/nginx/unit/pull/693#issuecomment-1130412323
[1]: https://github.com/nginx/unit/pull/693

Closes: https://github.com/nginx/unit/issues/675
2022-07-20 23:28:02 +01:00
..
man Added a missing .El directive in man page source. 2021-03-24 16:49:59 +00:00
change_log_conf.dtd Added changelogs generation tools. 2017-10-19 17:48:58 +03:00
change_log_conf.xml Added changelogs generation tools. 2017-10-19 17:48:58 +03:00
changes.dtd Added changelogs generation tools. 2017-10-19 17:48:58 +03:00
changes.xml Var: added a $dollar variable that translates to a '$'. 2022-07-20 23:28:02 +01:00
changes.xsls Docs: special handling for empty "date" and "time" XML attributes. 2020-12-08 13:17:21 +03:00
changes.xslt Docs: special handling for empty "date" and "time" XML attributes. 2020-12-08 13:17:21 +03:00
Makefile Packages: added Ubuntu 21.04 "hirsute" support. 2021-05-27 13:12:52 +03:00
unitlogo.png Adding GitHub-styled README and CONTRIBUTING files in Markdown. 2022-05-13 17:13:23 +01:00