diff --git a/LICENSE.txt b/LICENSE.txt index d376155..e3983ef 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2011-2013 Bertrand Mansion +Copyright (c) 2011-2023 Bertrand Mansion Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md diff --git a/dist.ini b/dist.ini index 9b624c5..e227462 100644 --- a/dist.ini +++ b/dist.ini @@ -7,4 +7,4 @@ repo_link = https://github.com/golgote/neturl is_original = yes main_module = lib/net/url.lua lib_dir = lib -doc_dir = docs +exclude_files = tests/*.lua diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 02d87db..0000000 --- a/docs/index.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - Reference - - - - -
- -
- -
-
-
- - -
- - - - - - -
- -

Module neturl

- -

neturl.lua - a robust url parser and builder

-

Bertrand Mansion, 2011-2012; License MIT

- -

Functions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
M:build ()builds the url
buildQuery (tab, sep, key)builds the querystring
parseQuery (str, sep)Parses the querystring to a table - This function can parse multidimensional pairs and is mostly compatible - with PHP usage of brackets in key names like ?param[key]=value
M:setQuery (query)set the url query
M:setAuthority (authority)set the authority part of the url - The authority is parsed to find the user, password, port and host if available.
parse (url)Parse the url into the designated parts.
removeDotSegments (path)removes dots and slashes in urls when possible - This function will also remove multiple slashes
M:resolve (other)builds a new url by using the one given as parameter and resolving paths
M:normalize ()normalize a url path following some common normalization rules - described on The URL normalization page of Wikipedia
-

Tables

- - - - - - - - - -
optionsurl options - separator is set to `&` by default but could be anything like `&` or `;`
serviceslist of known and common scheme ports - as documented in IANA URI scheme list
- -
-
- - -

Functions

- -
-
- - M:build () -
-
- builds the url - - - -

Returns:

-
    - a string representing the built url -
- - -
-
- - buildQuery (tab, sep, key) -
-
- builds the querystring - -

Parameters:

-
    -
  • tab: The key/value parameters
  • -
  • sep: The separator to use (optional)
  • -
  • key: The parent key if the value is multi-dimensional (optional)
  • -
- - -

Returns:

-
    - a string representing the built querystring -
- - -
-
- - parseQuery (str, sep) -
-
- Parses the querystring to a table - This function can parse multidimensional pairs and is mostly compatible - with PHP usage of brackets in key names like ?param[key]=value - -

Parameters:

-
    -
  • str: The querystring to parse
  • -
  • sep: The separator between key/value pairs, defaults to `&`
  • -
- - -

Returns:

-
    - a table representing the query key/value pairs -
- - -
-
- - M:setQuery (query) -
-
- set the url query - -

Parameters:

-
    -
  • query: Can be a string to parse or a table of key/value pairs
  • -
- - -

Returns:

-
    - a table representing the query key/value pairs -
- - -
-
- - M:setAuthority (authority) -
-
- set the authority part of the url - The authority is parsed to find the user, password, port and host if available. - -

Parameters:

-
    -
  • authority: The string representing the authority
  • -
- - -

Returns:

-
    - a string with what remains after the authority was parsed -
- - -
-
- - parse (url) -
-
- Parse the url into the designated parts. - Depending on the url, the following parts can be available: - scheme, userinfo, user, password, authority, host, port, path, - query, fragment - -

Parameters:

-
    -
  • url: Url string
  • -
- - -

Returns:

-
    - a table with the different parts and a few other functions -
- - -
-
- - removeDotSegments (path) -
-
- removes dots and slashes in urls when possible - This function will also remove multiple slashes - -

Parameters:

-
    -
  • path: The string representing the path to clean
  • -
- - -

Returns:

-
    - a string of the path without unnecessary dots and segments -
- - -
-
- - M:resolve (other) -
-
- builds a new url by using the one given as parameter and resolving paths - -

Parameters:

-
    -
  • other: A string or a table representing a url
  • -
- - -

Returns:

-
    - a new url table -
- - -
-
- - M:normalize () -
-
- normalize a url path following some common normalization rules - described on The URL normalization page of Wikipedia - - - -

Returns:

-
    - the normalized path -
- - -
-
-

Tables

- -
-
- - options -
-
- url options - separator is set to `&` by default but could be anything like `&` or `;` - - - - - -
-
- - services -
-
- list of known and common scheme ports - as documented in IANA URI scheme list - -

Fields:

-
    -
  • acap:
  • -
  • cap:
  • -
  • dict:
  • -
  • ftp:
  • -
  • gopher:
  • -
  • http:
  • -
  • https:
  • -
  • iax:
  • -
  • icap:
  • -
  • imap:
  • -
  • ipp:
  • -
  • ldap:
  • -
  • mtqp:
  • -
  • mupdate:
  • -
  • news:
  • -
  • nfs:
  • -
  • nntp:
  • -
  • rtsp:
  • -
  • sip:
  • -
  • snmp:
  • -
  • telnet:
  • -
  • tftp:
  • -
  • vemmi:
  • -
  • afs:
  • -
  • jms:
  • -
  • rsync:
  • -
  • prospero:
  • -
  • videotex:
  • -
- - - - -
-
- - -
-
-
-generated by LDoc 1.2 -
-
- - diff --git a/docs/ldoc.css b/docs/ldoc.css deleted file mode 100644 index 6cf3682..0000000 --- a/docs/ldoc.css +++ /dev/null @@ -1,285 +0,0 @@ -/* BEGIN RESET - -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 2.8.2r1 -*/ -html { - color: #000; - background: #FFF; -} -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td { - margin: 0; - padding: 0; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -fieldset,img { - border: 0; -} -address,caption,cite,code,dfn,em,strong,th,var,optgroup { - font-style: inherit; - font-weight: inherit; -} -del,ins { - text-decoration: none; -} -li { - list-style: bullet; - margin-left: 20px; -} -caption,th { - text-align: left; -} -h1,h2,h3,h4,h5,h6 { - font-size: 100%; - font-weight: bold; -} -q:before,q:after { - content: ''; -} -abbr,acronym { - border: 0; - font-variant: normal; -} -sup { - vertical-align: baseline; -} -sub { - vertical-align: baseline; -} -legend { - color: #000; -} -input,button,textarea,select,optgroup,option { - font-family: inherit; - font-size: inherit; - font-style: inherit; - font-weight: inherit; -} -input,button,textarea,select {*font-size:100%; -} -/* END RESET */ - -body { - margin-left: 1em; - margin-right: 1em; - font-family: arial, helvetica, geneva, sans-serif; - background-color: #ffffff; margin: 0px; -} - -code, tt { font-family: monospace; } - -body, p, td, th { font-size: .95em; line-height: 1.2em;} - -p, ul { margin: 10px 0 0 10px;} - -strong { font-weight: bold;} - -em { font-style: italic;} - -h1 { - font-size: 1.5em; - margin: 0 0 20px 0; -} -h2, h3, h4 { margin: 15px 0 10px 0; } -h2 { font-size: 1.25em; } -h3 { font-size: 1.15em; } -h4 { font-size: 1.06em; } - -a:link { font-weight: bold; color: #004080; text-decoration: none; } -a:visited { font-weight: bold; color: #006699; text-decoration: none; } -a:link:hover { text-decoration: underline; } - -hr { - color:#cccccc; - background: #00007f; - height: 1px; -} - -blockquote { margin-left: 3em; } - -ul { list-style-type: disc; } - -p.name { - font-family: "Andale Mono", monospace; - padding-top: 1em; -} - -pre.example { - background-color: rgb(245, 245, 245); - border: 1px solid silver; - padding: 10px; - margin: 10px 0 10px 0; - font-family: "Andale Mono", monospace; - font-size: .85em; -} - -pre { - background-color: rgb(245, 245, 245); - border: 1px solid silver; - padding: 10px; - margin: 10px 0 10px 0; - overflow: auto; - font-family: "Andale Mono", monospace; -} - - -table.index { border: 1px #00007f; } -table.index td { text-align: left; vertical-align: top; } - -#container { - margin-left: 1em; - margin-right: 1em; - background-color: #f0f0f0; -} - -#product { - text-align: center; - border-bottom: 1px solid #cccccc; - background-color: #ffffff; -} - -#product big { - font-size: 2em; -} - -#main { - background-color: #f0f0f0; - border-left: 2px solid #cccccc; -} - -#navigation { - float: left; - width: 18em; - vertical-align: top; - background-color: #f0f0f0; - overflow: visible; -} - -#navigation h2 { - background-color:#e7e7e7; - font-size:1.1em; - color:#000000; - text-align: left; - padding:0.2em; - border-top:1px solid #dddddd; - border-bottom:1px solid #dddddd; -} - -#navigation ul -{ - font-size:1em; - list-style-type: none; - margin: 1px 1px 10px 1px; -} - -#navigation li { - text-indent: -1em; - display: block; - margin: 3px 0px 0px 22px; -} - -#navigation li li a { - margin: 0px 3px 0px -1em; -} - -#content { - margin-left: 18em; - padding: 1em; - width: 700px; - border-left: 2px solid #cccccc; - border-right: 2px solid #cccccc; - background-color: #ffffff; -} - -#about { - clear: both; - padding: 5px; - border-top: 2px solid #cccccc; - background-color: #ffffff; -} - -@media print { - body { - font: 12pt "Times New Roman", "TimeNR", Times, serif; - } - a { font-weight: bold; color: #004080; text-decoration: underline; } - - #main { - background-color: #ffffff; - border-left: 0px; - } - - #container { - margin-left: 2%; - margin-right: 2%; - background-color: #ffffff; - } - - #content { - padding: 1em; - background-color: #ffffff; - } - - #navigation { - display: none; - } - pre.example { - font-family: "Andale Mono", monospace; - font-size: 10pt; - page-break-inside: avoid; - } -} - -table.module_list { - border-width: 1px; - border-style: solid; - border-color: #cccccc; - border-collapse: collapse; -} -table.module_list td { - border-width: 1px; - padding: 3px; - border-style: solid; - border-color: #cccccc; -} -table.module_list td.name { background-color: #f0f0f0; ; min-width: 200px; } -table.module_list td.summary { width: 100%; } - - -table.function_list { - border-width: 1px; - border-style: solid; - border-color: #cccccc; - border-collapse: collapse; -} -table.function_list td { - border-width: 1px; - padding: 3px; - border-style: solid; - border-color: #cccccc; -} -table.function_list td.name { background-color: #f0f0f0; ; min-width: 200px; } -table.function_list td.summary { width: 100%; } - -dl.table dt, dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;} -dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;} -dl.table h3, dl.function h3 {font-size: .95em;} - -/* stop sublists from having initial vertical space */ -ul ul { margin-top: 0px; } -ol ul { margin-top: 0px; } -ol ol { margin-top: 0px; } -ul ol { margin-top: 0px; } - -/* styles for prettification of source */ -.keyword {font-weight: bold; color: #6666AA; } -.number { color: #AA6666; } -.string { color: #8888AA; } -.comment { color: #666600; } -.prepro { color: #006666; } -.global { color: #800080; }