Zotonic standard library - a library with hopefully useful functions
Extracted from Zotonic, the Erlang CMS http://zotonic.com/
Due to historical reasons the library is called z_stdlib
.
It should be checked out as zotonic_stdlib
:
git clone https://github.com/zotonic/z_stdlib.git zotonic_stdlib
The library is also on Hex https://hex.pm/packages/zotonic_stdlib
In your rebar.config file, use Hex (for rebar3):
{deps, [
zotonic_stdlib
]}.
Or, directly git (rebar2):
{deps, [
{zotonic_stdlib, ".*", {git, "https://github.com/zotonic/z_stdlib.git", "master"}}
]}.
The following modules are provided:
Conversion routines for:
- all common data types (binary, boolean, integer, etc.).
- dates: to_utc, to_local, iso8601 parsing
- json, convert to simple json constructs
- IP address conversions
Strict CSS parser and sanitizer.
CSS minifier
Routines for formatting dates. Example:
z_dateformat:format({{2008,12,10},{15,30,0}}, "Y-m-d H:i:s", [ {tz, "GMT"} ]).
Check IP addresses for their presence on DNS block- or allowlists.
Test if an email address is syntactically valid. Extract email address from a text.
Convenience function to make nested directories.
HTML routines like escape, unescape, sanitize, etc.
Match an IP address against lists, check if an IP address is a non routable LAN address.
JavaScript minimizer, removes spaces, comments and newlines.
String routines. To uppercase, lowercase, truncate, trim, utf8 checks, and more.
SVG sanitizer.
Temporary file routines. Make tempfiles, including watch dog process to clean up the file.
UBF-A encoding and decoding routines. Safe for atoms and maximum memory size.
URL encode, decode and more.
Fetch the first N bytes of a URL. Protection against too large return body.
Fetch URL, extract metadata like mime type, title, description, images etc.
To run the test set:
make test
All tests should pass.