diff options
author | dom96 <dominikpicheta@googlemail.com> | 2012-05-13 14:38:59 +0100 |
---|---|---|
committer | dom96 <dominikpicheta@googlemail.com> | 2012-05-13 14:38:59 +0100 |
commit | d6ae98a652e355afb4dcf88c05297d61ae5f1e7c (patch) | |
tree | 59e24d534a6b0c76a9e3865e6ddaa50f48bd39dd | |
parent | e6019b6f98e3e16205f0b9775437352da9324bc6 (diff) | |
download | Nim-d6ae98a652e355afb4dcf88c05297d61ae5f1e7c.tar.gz |
Fixed a bug in times and finished its docs. Added mimetypes module and added the uri module to the doc gen. Fixed a bug in the cookies module.
-rwxr-xr-x | doc/lib.txt | 5 | ||||
-rwxr-xr-x | lib/pure/cookies.nim | 2 | ||||
-rw-r--r-- | lib/pure/mimetypes.nim | 521 | ||||
-rwxr-xr-x | lib/pure/times.nim | 18 | ||||
-rwxr-xr-x | web/nimrod.ini | 4 |
5 files changed, 542 insertions, 8 deletions
diff --git a/doc/lib.txt b/doc/lib.txt index 37c66a3b7..8436f486c 100755 --- a/doc/lib.txt +++ b/doc/lib.txt @@ -204,6 +204,11 @@ Internet Protocols and Support * `cookies <cookies.html>`_ This module contains helper procs for parsing and generating cookies. +* `mimetypes <mimetypes.html>`_ + This module implements a mimetypes database. + +* `uri <uri.html>`_ + This module provides functions for working with URIs. Parsers ------- diff --git a/lib/pure/cookies.nim b/lib/pure/cookies.nim index 6ae9b91c3..d1cf36a87 100755 --- a/lib/pure/cookies.nim +++ b/lib/pure/cookies.nim @@ -47,7 +47,7 @@ proc setCookie*(key, value: string, expires: TTimeInfo, ## **Note:** UTC is assumed as the timezone for ``expires``. return setCookie(key, value, domain, path, - format(expires, "ddd',' dd MMM yyyy hh:mm:ss 'UTC'"), noname) + format(expires, "ddd',' dd MMM yyyy HH:mm:ss 'UTC'"), noname) when isMainModule: var tim = TTime(int(getTime()) + 76 * (60 * 60 * 24)) diff --git a/lib/pure/mimetypes.nim b/lib/pure/mimetypes.nim new file mode 100644 index 000000000..92baf0549 --- /dev/null +++ b/lib/pure/mimetypes.nim @@ -0,0 +1,521 @@ +# +# +# Nimrod's Runtime Library +# (c) Copyright 2012 Dominik Picheta +# +# See the file "copying.txt", included in this +# distribution, for details about the copyright. +# + +## This module implements a mimetypes database +import strtabs +type + TMimeDB* = object + mimes: PStringTable + +const mimes* = { + "ez": "application/andrew-inset", + "anx": "application/annodex", + "atom": "application/atom+xml", + "atomcat": "application/atomcat+xml", + "atomsrv": "application/atomserv+xml", + "lin": "application/bbolin", + "cap": "application/cap", + "pcap": "application/cap", + "cu": "application/cu-seeme", + "davmount": "application/davmount+xml", + "tsp": "application/dsptype", + "es": "application/ecmascript", + "spl": "application/futuresplash", + "hta": "application/hta", + "jar": "application/java-archive", + "ser": "application/java-serialized-object", + "class": "application/java-vm", + "js": "application/javascript", + "m3g": "application/m3g", + "hqx": "application/mac-binhex40", + "cpt": "application/mac-compactpro", + "nb": "application/mathematica", + "nbp": "application/mathematica", + "mdb": "application/msaccess", + "doc": "application/msword", + "dot": "application/msword", + "mxf": "application/mxf", + "bin": "application/octet-stream", + "oda": "application/oda", + "ogx": "application/ogg", + "pdf": "application/pdf", + "key": "application/pgp-keys", + "pgp": "application/pgp-signature", + "prf": "application/pics-rules", + "ps": "application/postscript", + "ai": "application/postscript", + "eps": "application/postscript", + "epsi": "application/postscript", + "epsf": "application/postscript", + "eps2": "application/postscript", + "eps3": "application/postscript", + "rar": "application/rar", + "rdf": "application/rdf+xml", + "rss": "application/rss+xml", + "rtf": "application/rtf", + "smi": "application/smil", + "smil": "application/smil", + "xhtml": "application/xhtml+xml", + "xht": "application/xhtml+xml", + "xml": "application/xml", + "xsl": "application/xml", + "xsd": "application/xml", + "xspf": "application/xspf+xml", + "zip": "application/zip", + "apk": "application/vnd.android.package-archive", + "cdy": "application/vnd.cinderella", + "kml": "application/vnd.google-earth.kml+xml", + "kmz": "application/vnd.google-earth.kmz", + "xul": "application/vnd.mozilla.xul+xml", + "xls": "application/vnd.ms-excel", + "xlb": "application/vnd.ms-excel", + "xlt": "application/vnd.ms-excel", + "cat": "application/vnd.ms-pki.seccat", + "stl": "application/vnd.ms-pki.stl", + "ppt": "application/vnd.ms-powerpoint", + "pps": "application/vnd.ms-powerpoint", + "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", + "ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + "potx": "application/vnd.openxmlformats-officedocument.presentationml.template", + "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + "cod": "application/vnd.rim.cod", + "mmf": "application/vnd.smaf", + "sis": "application/vnd.symbian.install", + "vsd": "application/vnd.visio", + "wbxml": "application/vnd.wap.wbxml", + "wmlc": "application/vnd.wap.wmlc", + "wmlsc": "application/vnd.wap.wmlscriptc", + "wpd": "application/vnd.wordperfect", + "wp5": "application/vnd.wordperfect5.1", + "wk": "application/x-123", + "7z": "application/x-7z-compressed", + "abw": "application/x-abiword", + "dmg": "application/x-apple-diskimage", + "bcpio": "application/x-bcpio", + "torrent": "application/x-bittorrent", + "cab": "application/x-cab", + "cbr": "application/x-cbr", + "cbz": "application/x-cbz", + "cdf": "application/x-cdf", + "cda": "application/x-cdf", + "vcd": "application/x-cdlink", + "pgn": "application/x-chess-pgn", + "cpio": "application/x-cpio", + "csh": "application/x-csh", + "deb": "application/x-debian-package", + "udeb": "application/x-debian-package", + "dcr": "application/x-director", + "dir": "application/x-director", + "dxr": "application/x-director", + "dms": "application/x-dms", + "wad": "application/x-doom", + "dvi": "application/x-dvi", + "rhtml": "application/x-httpd-eruby", + "pfa": "application/x-font", + "pfb": "application/x-font", + "gsf": "application/x-font", + "pcf": "application/x-font", + "pcf.Z": "application/x-font", + "mm": "application/x-freemind", + "spl": "application/x-futuresplash", + "gnumeric": "application/x-gnumeric", + "sgf": "application/x-go-sgf", + "gcf": "application/x-graphing-calculator", + "gtar": "application/x-gtar", + "tgz": "application/x-gtar", + "taz": "application/x-gtar", + "hdf": "application/x-hdf", + "phtml": "application/x-httpd-php", + "pht": "application/x-httpd-php", + "php": "application/x-httpd-php", + "phps": "application/x-httpd-php-source", + "php3": "application/x-httpd-php3", + "php3p": "application/x-httpd-php3-preprocessed", + "php4": "application/x-httpd-php4", + "php5": "application/x-httpd-php5", + "ica": "application/x-ica", + "info": "application/x-info", + "ins": "application/x-internet-signup", + "isp": "application/x-internet-signup", + "iii": "application/x-iphone", + "iso": "application/x-iso9660-image", + "jam": "application/x-jam", + "jnlp": "application/x-java-jnlp-file", + "jmz": "application/x-jmol", + "chrt": "application/x-kchart", + "kil": "application/x-killustrator", + "skp": "application/x-koan", + "skd": "application/x-koan", + "skt": "application/x-koan", + "skm": "application/x-koan", + "kpr": "application/x-kpresenter", + "kpt": "application/x-kpresenter", + "ksp": "application/x-kspread", + "kwd": "application/x-kword", + "kwt": "application/x-kword", + "latex": "application/x-latex", + "lha": "application/x-lha", + "lyx": "application/x-lyx", + "lzh": "application/x-lzh", + "lzx": "application/x-lzx", + "frm": "application/x-maker", + "maker": "application/x-maker", + "frame": "application/x-maker", + "fm": "application/x-maker", + "fb": "application/x-maker", + "book": "application/x-maker", + "fbdoc": "application/x-maker", + "mif": "application/x-mif", + "wmd": "application/x-ms-wmd", + "wmz": "application/x-ms-wmz", + "com": "application/x-msdos-program", + "exe": "application/x-msdos-program", + "bat": "application/x-msdos-program", + "dll": "application/x-msdos-program", + "msi": "application/x-msi", + "nc": "application/x-netcdf", + "pac": "application/x-ns-proxy-autoconfig", + "dat": "application/x-ns-proxy-autoconfig", + "nwc": "application/x-nwc", + "o": "application/x-object", + "oza": "application/x-oz-application", + "p7r": "application/x-pkcs7-certreqresp", + "crl": "application/x-pkcs7-crl", + "pyc": "application/x-python-code", + "pyo": "application/x-python-code", + "qgs": "application/x-qgis", + "shp": "application/x-qgis", + "shx": "application/x-qgis", + "qtl": "application/x-quicktimeplayer", + "rpm": "application/x-redhat-package-manager", + "rb": "application/x-ruby", + "sh": "application/x-sh", + "shar": "application/x-shar", + "swf": "application/x-shockwave-flash", + "swfl": "application/x-shockwave-flash", + "scr": "application/x-silverlight", + "sit": "application/x-stuffit", + "sitx": "application/x-stuffit", + "sv4cpio": "application/x-sv4cpio", + "sv4crc": "application/x-sv4crc", + "tar": "application/x-tar", + "tcl": "application/x-tcl", + "gf": "application/x-tex-gf", + "pk": "application/x-tex-pk", + "texinfo": "application/x-texinfo", + "texi": "application/x-texinfo", + "~": "application/x-trash", + "%": "application/x-trash", + "bak": "application/x-trash", + "old": "application/x-trash", + "sik": "application/x-trash", + "t": "application/x-troff", + "tr": "application/x-troff", + "roff": "application/x-troff", + "man": "application/x-troff-man", + "me": "application/x-troff-me", + "ms": "application/x-troff-ms", + "ustar": "application/x-ustar", + "src": "application/x-wais-source", + "wz": "application/x-wingz", + "crt": "application/x-x509-ca-cert", + "xcf": "application/x-xcf", + "fig": "application/x-xfig", + "xpi": "application/x-xpinstall", + "amr": "audio/amr", + "awb": "audio/amr-wb", + "amr": "audio/amr", + "awb": "audio/amr-wb", + "axa": "audio/annodex", + "au": "audio/basic", + "snd": "audio/basic", + "flac": "audio/flac", + "mid": "audio/midi", + "midi": "audio/midi", + "kar": "audio/midi", + "mpga": "audio/mpeg", + "mpega": "audio/mpeg", + "mp2": "audio/mpeg", + "mp3": "audio/mpeg", + "m4a": "audio/mpeg", + "m3u": "audio/mpegurl", + "oga": "audio/ogg", + "ogg": "audio/ogg", + "spx": "audio/ogg", + "sid": "audio/prs.sid", + "aif": "audio/x-aiff", + "aiff": "audio/x-aiff", + "aifc": "audio/x-aiff", + "gsm": "audio/x-gsm", + "m3u": "audio/x-mpegurl", + "wma": "audio/x-ms-wma", + "wax": "audio/x-ms-wax", + "ra": "audio/x-pn-realaudio", + "rm": "audio/x-pn-realaudio", + "ram": "audio/x-pn-realaudio", + "ra": "audio/x-realaudio", + "pls": "audio/x-scpls", + "sd2": "audio/x-sd2", + "wav": "audio/x-wav", + "alc": "chemical/x-alchemy", + "cac": "chemical/x-cache", + "cache": "chemical/x-cache", + "csf": "chemical/x-cache-csf", + "cbin": "chemical/x-cactvs-binary", + "cascii": "chemical/x-cactvs-binary", + "ctab": "chemical/x-cactvs-binary", + "cdx": "chemical/x-cdx", + "cer": "chemical/x-cerius", + "c3d": "chemical/x-chem3d", + "chm": "chemical/x-chemdraw", + "cif": "chemical/x-cif", + "cmdf": "chemical/x-cmdf", + "cml": "chemical/x-cml", + "cpa": "chemical/x-compass", + "bsd": "chemical/x-crossfire", + "csml": "chemical/x-csml", + "csm": "chemical/x-csml", + "ctx": "chemical/x-ctx", + "cxf": "chemical/x-cxf", + "cef": "chemical/x-cxf", + "smi": "#chemical/x-daylight-smiles", + "emb": "chemical/x-embl-dl-nucleotide", + "embl": "chemical/x-embl-dl-nucleotide", + "spc": "chemical/x-galactic-spc", + "inp": "chemical/x-gamess-input", + "gam": "chemical/x-gamess-input", + "gamin": "chemical/x-gamess-input", + "fch": "chemical/x-gaussian-checkpoint", + "fchk": "chemical/x-gaussian-checkpoint", + "cub": "chemical/x-gaussian-cube", + "gau": "chemical/x-gaussian-input", + "gjc": "chemical/x-gaussian-input", + "gjf": "chemical/x-gaussian-input", + "gal": "chemical/x-gaussian-log", + "gcg": "chemical/x-gcg8-sequence", + "gen": "chemical/x-genbank", + "hin": "chemical/x-hin", + "istr": "chemical/x-isostar", + "ist": "chemical/x-isostar", + "jdx": "chemical/x-jcamp-dx", + "dx": "chemical/x-jcamp-dx", + "kin": "chemical/x-kinemage", + "mcm": "chemical/x-macmolecule", + "mmd": "chemical/x-macromodel-input", + "mmod": "chemical/x-macromodel-input", + "mol": "chemical/x-mdl-molfile", + "rd": "chemical/x-mdl-rdfile", + "rxn": "chemical/x-mdl-rxnfile", + "sd": "chemical/x-mdl-sdfile", + "sdf": "chemical/x-mdl-sdfile", + "tgf": "chemical/x-mdl-tgf", + "mif": "#chemical/x-mif", + "mcif": "chemical/x-mmcif", + "mol2": "chemical/x-mol2", + "b": "chemical/x-molconn-Z", + "gpt": "chemical/x-mopac-graph", + "mop": "chemical/x-mopac-input", + "mopcrt": "chemical/x-mopac-input", + "mpc": "chemical/x-mopac-input", + "zmt": "chemical/x-mopac-input", + "moo": "chemical/x-mopac-out", + "mvb": "chemical/x-mopac-vib", + "asn": "chemical/x-ncbi-asn1", + "prt": "chemical/x-ncbi-asn1-ascii", + "ent": "chemical/x-ncbi-asn1-ascii", + "val": "chemical/x-ncbi-asn1-binary", + "aso": "chemical/x-ncbi-asn1-binary", + "asn": "chemical/x-ncbi-asn1-spec", + "pdb": "chemical/x-pdb", + "ent": "chemical/x-pdb", + "ros": "chemical/x-rosdal", + "sw": "chemical/x-swissprot", + "vms": "chemical/x-vamas-iso14976", + "vmd": "chemical/x-vmd", + "xtel": "chemical/x-xtel", + "xyz": "chemical/x-xyz", + "gif": "image/gif", + "ief": "image/ief", + "jpeg": "image/jpeg", + "jpg": "image/jpeg", + "jpe": "image/jpeg", + "pcx": "image/pcx", + "png": "image/png", + "svg": "image/svg+xml", + "svgz": "image/svg+xml", + "tiff": "image/tiff", + "tif": "image/tiff", + "djvu": "image/vnd.djvu", + "djv": "image/vnd.djvu", + "wbmp": "image/vnd.wap.wbmp", + "cr2": "image/x-canon-cr2", + "crw": "image/x-canon-crw", + "ras": "image/x-cmu-raster", + "cdr": "image/x-coreldraw", + "pat": "image/x-coreldrawpattern", + "cdt": "image/x-coreldrawtemplate", + "cpt": "image/x-corelphotopaint", + "erf": "image/x-epson-erf", + "ico": "image/x-icon", + "art": "image/x-jg", + "jng": "image/x-jng", + "bmp": "image/x-ms-bmp", + "nef": "image/x-nikon-nef", + "orf": "image/x-olympus-orf", + "psd": "image/x-photoshop", + "pnm": "image/x-portable-anymap", + "pbm": "image/x-portable-bitmap", + "pgm": "image/x-portable-graymap", + "ppm": "image/x-portable-pixmap", + "rgb": "image/x-rgb", + "xbm": "image/x-xbitmap", + "xpm": "image/x-xpixmap", + "xwd": "image/x-xwindowdump", + "eml": "message/rfc822", + "igs": "model/iges", + "iges": "model/iges", + "msh": "model/mesh", + "mesh": "model/mesh", + "silo": "model/mesh", + "wrl": "model/vrml", + "vrml": "model/vrml", + "x3dv": "model/x3d+vrml", + "x3d": "model/x3d+xml", + "x3db": "model/x3d+binary", + "manifest": "text/cache-manifest", + "ics": "text/calendar", + "icz": "text/calendar", + "css": "text/css", + "csv": "text/csv", + "323": "text/h323", + "html": "text/html", + "htm": "text/html", + "shtml": "text/html", + "uls": "text/iuls", + "mml": "text/mathml", + "asc": "text/plain", + "txt": "text/plain", + "text": "text/plain", + "pot": "text/plain", + "brf": "text/plain", + "rtx": "text/richtext", + "sct": "text/scriptlet", + "wsc": "text/scriptlet", + "tm": "text/texmacs", + "ts": "text/texmacs", + "tsv": "text/tab-separated-values", + "jad": "text/vnd.sun.j2me.app-descriptor", + "wml": "text/vnd.wap.wml", + "wmls": "text/vnd.wap.wmlscript", + "bib": "text/x-bibtex", + "boo": "text/x-boo", + "h++": "text/x-c++hdr", + "hpp": "text/x-c++hdr", + "hxx": "text/x-c++hdr", + "hh": "text/x-c++hdr", + "c++": "text/x-c++src", + "cpp": "text/x-c++src", + "cxx": "text/x-c++src", + "cc": "text/x-c++src", + "h": "text/x-chdr", + "htc": "text/x-component", + "csh": "text/x-csh", + "c": "text/x-csrc", + "d": "text/x-dsrc", + "diff": "text/x-diff", + "patch": "text/x-diff", + "hs": "text/x-haskell", + "java": "text/x-java", + "lhs": "text/x-literate-haskell", + "moc": "text/x-moc", + "p": "text/x-pascal", + "pas": "text/x-pascal", + "gcd": "text/x-pcs-gcd", + "pl": "text/x-perl", + "pm": "text/x-perl", + "py": "text/x-python", + "scala": "text/x-scala", + "etx": "text/x-setext", + "sh": "text/x-sh", + "tcl": "text/x-tcl", + "tk": "text/x-tcl", + "tex": "text/x-tex", + "ltx": "text/x-tex", + "sty": "text/x-tex", + "cls": "text/x-tex", + "vcs": "text/x-vcalendar", + "vcf": "text/x-vcard", + "3gp": "video/3gpp", + "axv": "video/annodex", + "dl": "video/dl", + "dif": "video/dv", + "dv": "video/dv", + "fli": "video/fli", + "gl": "video/gl", + "mpeg": "video/mpeg", + "mpg": "video/mpeg", + "mpe": "video/mpeg", + "mp4": "video/mp4", + "qt": "video/quicktime", + "mov": "video/quicktime", + "ogv": "video/ogg", + "mxu": "video/vnd.mpegurl", + "flv": "video/x-flv", + "lsf": "video/x-la-asf", + "lsx": "video/x-la-asf", + "mng": "video/x-mng", + "asf": "video/x-ms-asf", + "asx": "video/x-ms-asf", + "wm": "video/x-ms-wm", + "wmv": "video/x-ms-wmv", + "wmx": "video/x-ms-wmx", + "wvx": "video/x-ms-wvx", + "avi": "video/x-msvideo", + "movie": "video/x-sgi-movie", + "mpv": "video/x-matroska", + "mkv": "video/x-matroska", + "ice": "x-conference/x-cooltalk", + "sisx": "x-epoc/x-sisx-app", + "vrm": "x-world/x-vrml", + "vrml": "x-world/x-vrml", + "wrl": "x-world/x-vrml"} + +proc newMimetypes*(): TMimeDB = + ## Creates a new Mimetypes database. The database will contain the most + ## common mimetypes. + + result.mimes = mimes.newStringTable() + +proc getMimetype*(mimedb: TMimeDB, ext: string, default = "text/plain"): string = + ## Gets mimetype which corresponds to ``ext``. Returns ``default`` if ``ext`` + ## could not be found. + result = mimedb.mimes[ext] + if result == "": + return default + +proc getExt*(mimedb: TMimeDB, mimetype: string, default = "txt"): string = + ## Gets extension which corresponds to ``mimetype``. Returns ``default`` if + ## ``mimetype`` could not be found. Extensions are returned without the + ## leading dot. + result = default + for e, m in mimedb.mimes: + if m == mimetype: + result = e + +proc register*(mimedb: var TMimeDB, ext: string, mimetype: string) = + ## Adds ``mimetype`` to the ``mimedb``. + mimedb.mimes[ext] = mimetype + +when isMainModule: + var m = newMimetypes() + echo m.getMimetype("mp4") + echo m.getExt("text/html") \ No newline at end of file diff --git a/lib/pure/times.nim b/lib/pure/times.nim index 47be91e09..968b317d6 100755 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -407,9 +407,17 @@ proc format*(info: TTimeInfo, f: string): string = ## HH The hours in two digits always. 0 is prepended if the hour is one digit. ``5pm -> 17``, ``2am -> 02`` ## m The minutes in 1 digit if possible. ``5:30 -> 30``, ``2:01 -> 1`` ## mm Same as above but always 2 digits, 0 is prepended if the minute is one digit. ``5:30 -> 30``, ``2:01 -> 01`` - ## M - - + ## M The month in one digit if possible. ``September -> 9``, ``December -> 12`` + ## MM The month in two digits always. 0 is prepended. ``September -> 09``, ``December -> 12`` + ## MMM Abbreviated three-letter form of the month. ``September -> Sep``, ``December -> Dec`` + ## MMMM Full month string, properly capitalized. ``September -> September`` + ## s Seconds as one digit if possible. ``00:00:06 -> 6`` + ## ss Same as above but always two digits. 0 is prepended. ``00:00:06 -> 06`` + ## t ``A`` when time is in the AM. ``P`` when time is in the PM. + ## tt Same as above, but ``AM`` and ``PM`` instead of ``A`` and ``P`` respectively. + ## y(yyyy) This displays the year to different digits. You most likely only want 2 or 4 'y's + ## yy Displays the year to two digits. ``2012 -> 12`` + ## yyyy Displays the year to four digits. ``2012 -> 2012`` ## ========== ================================================================================= ================================================ @@ -433,9 +441,9 @@ proc format*(info: TTimeInfo, f: string): string = of "dddd": result.add($info.month) of "h": - result.add($(0 - (info.hour - 12))) + result.add($(info.hour - 12)) of "hh": - let amerHour = 0 - (info.hour - 12) + let amerHour = info.hour - 12 if amerHour < 10: result.add('0') result.add($amerHour) diff --git a/web/nimrod.ini b/web/nimrod.ini index e39c41ee0..7e20be613 100755 --- a/web/nimrod.ini +++ b/web/nimrod.ini @@ -36,14 +36,14 @@ srcdoc: "impure/zipfiles;pure/htmlgen;pure/parseutils;pure/browsers" srcdoc: "impure/db_postgres;impure/db_mysql;impure/db_sqlite;impure/db_mongo" srcdoc: "pure/httpserver;pure/httpclient;pure/smtp;impure/ssl" srcdoc: "pure/ropes;pure/unidecode/unidecode;pure/xmldom;pure/xmldomparser" -srcdoc: "pure/xmlparser;pure/htmlparser;pure/xmltree;pure/colors" +srcdoc: "pure/xmlparser;pure/htmlparser;pure/xmltree;pure/colors;pure/mimetypes" srcdoc: "pure/json;pure/base64;pure/scgi;pure/redis;impure/graphics" srcdoc: "impure/rdstdin;wrappers/zmq;wrappers/sphinx" srcdoc: "pure/collections/tables;pure/collections/sets;pure/collections/lists" srcdoc: "pure/collections/intsets;pure/collections/queues;pure/encodings" srcdoc: "pure/events;pure/collections/sequtils;pure/irc;ecmas/dom;pure/cookies" srcdoc: "pure/ftpclient;pure/memfiles;pure/subexes;pure/collections/critbits" -srcdoc: "pure/asyncio;pure/actors;core/locks;pure/oids;pure/endians" +srcdoc: "pure/asyncio;pure/actors;core/locks;pure/oids;pure/endians;pure/uri" webdoc: "wrappers/libcurl;pure/md5;wrappers/mysql;wrappers/iup" webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc" |