# Namespace: joker.url

v1.0

## Contents

- Summary
- Index
- Constants
- Variables
- Functions, Macros, and Special Forms

## Summary

Parses URLs and implements query escaping.

## Index

- parse-query
- path-escape
- path-unescape
- query-escape
- query-unescape

## Constants

Constants are variables with `:const true` in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.

(None.)

## Variables

(None.)

## Functions, Macros, and Special Forms

- ### parse-query

  Function v1.3.6

      (parse-query s)

  Parses the URL-encoded query string and returns a map listing the vectors of values specified for each key.
  Always returns a non-nil map containing all the valid query parameters found.
  Query is expected to be a list of key=value settings separated by ampersands. A setting without
  an equals sign is interpreted as a key set to an empty value. Settings containing a non-URL-encoded
  semicolon are considered invalid.

- ### path-escape

  Function v1.0

      (path-escape s)

  Escapes the string so it can be safely placed inside a URL path segment.

- ### path-unescape

  Function v1.0

      (path-unescape s)

  Does the inverse transformation of path-escape, converting each 3-byte encoded
  substring of the form "%AB" into the hex-decoded byte 0xAB. It also converts
  '+' into ' ' (space). It returns an error if any % is not followed by two hexadecimal digits.
  PathUnescape is identical to QueryUnescape except that it does not unescape '+' to ' ' (space).

- ### query-escape

  Function v1.0

      (query-escape s)

  Escapes the string so it can be safely placed inside a URL query.

- ### query-unescape

  Function v1.0

      (query-unescape s)

  Does the inverse transformation of query-escape, converting each 3-byte encoded
  substring of the form "%AB" into the hex-decoded byte 0xAB. It also converts
  '+' into ' ' (space). It returns an error if any % is not followed by two hexadecimal digits.