From 52d07c2b7b2b34b4e805e4e9fb12fe7355d36970 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 3 Nov 2023 20:54:57 +0000 Subject: Update website --- manual/index.html | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/manual/index.html b/manual/index.html index 93e1dced..a285ba23 100644 --- a/manual/index.html +++ b/manual/index.html @@ -107,6 +107,9 @@ + @@ -290,7 +293,7 @@ using some command-line options:

  • -f filename / --from-file filename:
  • Read filter from the file rather than from a command line, like - awk's -f option. You can also use '#' to make comments.

    + awk's -f option.

    @@ -7986,6 +7989,61 @@ that we did before:

    +
    +

    Comments

    +

    You can write comments in your jq filters using #.

    +

    A # character (not part of a string) starts a comment. +All characters from # to the end of the line are ignored.

    +

    If the end of the line is preceded by an odd number of backslash +characters, the following line is also considered part of the +comment and is ignored.

    +

    For example, the following code outputs [1,3,4,7]

    +
    [
    +  1,
    +  # foo \
    +  2,
    +  # bar \\
    +  3,
    +  4, # baz \\\
    +  5, \
    +  6,
    +  7
    +  # comment \
    +    comment \
    +    comment
    +]
    +
    +

    Backslash continuing the comment on the next line can be useful +when writing the "shebang" for a jq script:

    +
    #!/bin/sh --
    +# sum - Output the sum of the given arguments (or stdin)
    +# usage: sum [numbers...]
    +# \
    +exec jq --args -MRnf "$0" -- "$@"
    +
    +$ARGS.positional |
    +reduce (
    +  if . == []
    +    then inputs
    +    else .[]
    +  end |
    +  . as $dot |
    +  try tonumber catch false |
    +  if not or isnan then
    +    @json "sum: Invalid number \($dot).\n" | halt_error(1)
    +  end
    +) as $n (0; . + $n)
    +
    +

    The exec line is considered a comment by jq, so it is ignored. +But it is not ignored by sh, since in sh a backslash at the +end of the line does not continue the comment. +With this trick, when the script is invoked as sum 1 2, +/bin/sh -- /path/to/sum 1 2 will be run, and sh will then +run exec jq --args -MRnf /path/to/sum -- 1 2 replacing itself +with a jq interpreter invoked with the specified options (-M, +-R, -n, --args), that evaluates the current file ($0), +with the arguments ($@) that were passed to sh.

    +

    Modules

    jq has a library/module system. Modules are files whose names end @@ -8295,6 +8353,7 @@ by a semi-colon, where the first number is one of these:

    "Plain assignment: =": "plain-assignment", "Complex assignments": "complex-assignments", "Assignment": "assignment", + "Comments": "comments", "import RelativePathString as NAME [\u003cmetadata\u003e];": "import-relativepathstring-as-name", "include RelativePathString [\u003cmetadata\u003e];": "include-relativepathstring", "import RelativePathString as $NAME [\u003cmetadata\u003e];": "import-relativepathstring-as-$name", -- cgit v1.2.3