Skip to main content

Markdown URL utilities

Project description

mdurl

Build Status codecov.io PyPI version

TODO: Update the README below this point. Explain that this is a Python port etc.

URL utilities for markdown-it parser.

API

.encode(str [, exclude, keepEncoded]) -> String

Percent-encode a string, avoiding double encoding. Don't touch /a-zA-Z0-9/ + excluded chars + /%[a-fA-F0-9]{2}/ (if not disabled). Broken surrorates are replaced with U+FFFD.

Params:

  • str - input string.
  • exclude - optional, ;/?:@&=+$,-_.!~*'()#. Additional chars to keep intact (except /a-zA-Z0-9/).
  • keepEncoded - optional, true. By default it skips already encoded sequences (/%[a-fA-F0-9]{2}/). If set to false, % will be encoded.

encode.defaultChars, encode.componentChars

You can use these constants as second argument to encode function.

  • encode.defaultChars is the same exclude set as in the standard encodeURI() function
  • encode.componentChars is the same exclude set as in the encodeURIComponent() function

For example, encode('something', encode.componentChars, true) is roughly the equivalent of the encodeURIComponent() function (except encode() doesn't throw).

.decode(str [, exclude]) -> String

Decode percent-encoded string. Invalid percent-encoded sequences (e.g. %2G) are left as is. Invalid UTF-8 characters are replaced with U+FFFD.

Params:

  • str - input string.
  • exclude - set of characters to leave encoded, optional, ;/?:@&=+$,#.

decode.defaultChars, decode.componentChars

You can use these constants as second argument to decode function.

  • decode.defaultChars is the same exclude set as in the standard decodeURI() function
  • decode.componentChars is the same exclude set as in the decodeURIComponent() function

For example, decode('something', decode.defaultChars) has the same behavior as decodeURI('something') on a correctly encoded input.

.parse(url, slashesDenoteHost) -> urlObs

Parse url string. Similar to node's url.parse, but without any normalizations and query string parse.

  • url - input url (string)
  • slashesDenoteHost - if url starts with //, expect a hostname after it. Optional, false.

Result (hash):

  • protocol
  • slashes
  • auth
  • port
  • hostname
  • hash
  • search
  • pathname

Difference with node's url:

  1. No leading slash in paths, e.g. in url.parse('http://foo?bar') pathname is "" (empty string), not "/"
  2. Backslashes are not replaced with slashes, so http:\\example.org\ is treated like a relative path
  3. Trailing colon is treated like a part of the path, i.e. in http://example.org:foo pathname is :foo
  4. Nothing is URL-encoded in the resulting object, (in joyent/node some chars in auth and paths are encoded)
  5. url.parse() does not have parseQueryString argument
  6. Removed extraneous result properties: host, path, query, etc., which can be constructed using other parts of the url.

.format(urlObject)

Format an object previously obtained with .parse() function. Similar to node's url.format.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdurl-0.0.1.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

mdurl-0.0.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file mdurl-0.0.1.tar.gz.

File metadata

  • Download URL: mdurl-0.0.1.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.26.0

File hashes

Hashes for mdurl-0.0.1.tar.gz
Algorithm Hash digest
SHA256 fc4aa08ef946d0896e97c4d3ff75a7e569a65e4e0ee0c45135c7f05f03f29693
MD5 a93189142b48696d55cd0a9ff615a5ca
BLAKE2b-256 24f18ea0687f0d254397478dda14445d03779bb6e5cbf5d6e50b68883eeae72f

See more details on using hashes here.

Provenance

File details

Details for the file mdurl-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: mdurl-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.26.0

File hashes

Hashes for mdurl-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c02f236bc6446775e3bcee95b85bba669124e8b74c64e7d71fce026528120f2b
MD5 e315cee18e9fafae54f40253702606e8
BLAKE2b-256 8e9d1ff0b4aa576887aff1fe191b44a83132da0eeb77cdc76ff64e52c872d852

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page