Asok Logo Asok
esc

Type to search across all documentation

1 min read
Edit on GitHub

Utilities#

Asok provides several built-in utilities to simplify common tasks in web development, all accessible via the asok.utils package.

Humanize#

The asok.utils.humanize module helps convert data into a friendly, readable format.

from asok.utils import humanize

# Relative time
humanize.time_ago("2023-10-15T10:00:00Z")  # "3 days ago"

# File sizes
humanize.file_size(1048576)               # "1.0 MB"

# Thousands separators
humanize.intcomma(1500000)                # "1,500,000"

# Successive durations
humanize.duration(125)                    # "2m 5s"

HTML Minification#

Used automatically in production to reduce bundle sizes.

from asok.utils.minify import minify_html

clean_html = minify_html("<div>  <span>  Hello  </span>  </div>")
# Result: "<div><span>Hello</span></div>"

CSS & JS Scoping#

These utilities are used internally by the Asok Component system but can be used manually.

scope_css(content, page_id)#

Prefixes all CSS selectors (except those inside :global()) with a specific page ID.

scope_js(content)#

Wraps JavaScript content in an Immediately Invoked Function Expression (IIFE) to prevent variable leakage.

Image Optimization#

Asok can optimize images by converting them to WebP.

from asok.utils.image import optimize_image

# Converts source.jpg to source.jpg.webp
optimize_image("src/partials/images/source.jpg")