archivebox.core.templatetags.core_tags

Module Contents

Functions

_normalize_output_files

_snapshot_id

_coerce_output_file_size

_count_media_files

_list_media_files

_resolve_snapshot_output_file

_is_text_preview_path

_is_image_preview_path

_is_root_snapshot_output_path

_build_snapshot_files_url

_build_snapshot_preview_url

_render_text_preview

_render_fallback_card

_render_text_file_preview

split

index

file_size

intcomma

result_list

Monkey patched result

result_list_tag

_machine_health_stats

Cached wrapper around the Machine-admin stats util.

system_warnings_banner

Render the top-of-page warning banner for one of the conditions below, in priority order (highest first):

url_replace

has_real_admin_users

True if any non-system superuser exists. Used by the login page to only show the bootstrap hint (createsuperuser / ADMIN_USERNAME env vars) when the collection still has no real admin.

admin_base_url

web_base_url

snapshot_base_url

snapshot_url

snapshot_archiveresult_url

snapshot_index_row

snapshot_preview_url

plugin_icon

Render the icon for a plugin.

plugin_card

Render the card template for an archive result.

output_card

plugin_full

Render the full template for an archive result.

plugin_name

Get the base name of a plugin (strips numeric prefix).

api_token

Return an API token string for the logged-in user, creating one if needed.

Data

register

_TEXT_PREVIEW_EXTS

_IMAGE_PREVIEW_EXTS

_MEDIA_FILE_EXTS

_LOW_DISK_THRESHOLD_GB

_HIGH_MEMORY_THRESHOLD_PCT

_HIGH_LOAD_MULTIPLE

_HEALTH_CHECK_INTERVAL_SECONDS

_health_cache

API

archivebox.core.templatetags.core_tags.register[source]

‘Library(…)’

archivebox.core.templatetags.core_tags._TEXT_PREVIEW_EXTS[source]

(‘.json’, ‘.jsonl’, ‘.txt’, ‘.csv’, ‘.tsv’, ‘.xml’, ‘.yml’, ‘.yaml’, ‘.md’, ‘.log’)

archivebox.core.templatetags.core_tags._IMAGE_PREVIEW_EXTS[source]

(‘.png’, ‘.jpg’, ‘.jpeg’, ‘.gif’, ‘.webp’, ‘.bmp’, ‘.ico’, ‘.avif’)

archivebox.core.templatetags.core_tags._MEDIA_FILE_EXTS[source]

None

archivebox.core.templatetags.core_tags._normalize_output_files(output_files: Any) dict[str, dict[str, Any]][source]
archivebox.core.templatetags.core_tags._snapshot_id(value: Any) Any[source]
archivebox.core.templatetags.core_tags._coerce_output_file_size(value: Any) int | None[source]
archivebox.core.templatetags.core_tags._count_media_files(result) int[source]
archivebox.core.templatetags.core_tags._list_media_files(result) list[dict][source]
archivebox.core.templatetags.core_tags._resolve_snapshot_output_file(snapshot_dir: str | pathlib.Path | None, raw_output_path: str | None) pathlib.Path | None[source]
archivebox.core.templatetags.core_tags._is_text_preview_path(raw_output_path: str | None) bool[source]
archivebox.core.templatetags.core_tags._is_image_preview_path(raw_output_path: str | None) bool[source]
archivebox.core.templatetags.core_tags._is_root_snapshot_output_path(raw_output_path: str | None) bool[source]
archivebox.core.templatetags.core_tags._build_snapshot_files_url(snapshot_id: str, request=None, config=None) str[source]
archivebox.core.templatetags.core_tags._build_snapshot_preview_url(snapshot_id: str, path: str = '', request=None, config=None, plugin: str = '') str[source]
archivebox.core.templatetags.core_tags._render_text_preview(plugin: str, icon_html: str, snippet: str) str[source]
archivebox.core.templatetags.core_tags._render_fallback_card(plugin: str, icon_html: str, fallback_label: str) str[source]
archivebox.core.templatetags.core_tags._render_text_file_preview(snapshot_dir: str | pathlib.Path | None, raw_output_path: str | None, plugin: str, icon_html: str) str | None[source]
archivebox.core.templatetags.core_tags.split(value, separator: str = ',')[source]
archivebox.core.templatetags.core_tags.index(value, position)[source]
archivebox.core.templatetags.core_tags.file_size(num_bytes: float) str[source]
archivebox.core.templatetags.core_tags.intcomma(value: int | str | None) str[source]
archivebox.core.templatetags.core_tags.result_list(context, cl)[source]

Monkey patched result

archivebox.core.templatetags.core_tags.result_list_tag(parser, token)[source]
archivebox.core.templatetags.core_tags._LOW_DISK_THRESHOLD_GB[source]

1.0

archivebox.core.templatetags.core_tags._HIGH_MEMORY_THRESHOLD_PCT[source]

95.0

archivebox.core.templatetags.core_tags._HIGH_LOAD_MULTIPLE[source]

3

archivebox.core.templatetags.core_tags._HEALTH_CHECK_INTERVAL_SECONDS[source]

30

archivebox.core.templatetags.core_tags._health_cache: dict[source]

None

archivebox.core.templatetags.core_tags._machine_health_stats() dict[source]

Cached wrapper around the Machine-admin stats util.

The Machine list/change pages already render disk / mem / load via archivebox.machine.detect.get_host_stats() — we reuse the same call so the banner thresholds line up 1:1 with what’s shown on /admin/machine/. Cached for 30s because the inclusion tag fires on every page render and get_host_stats shells into several psutil probes.

archivebox.core.templatetags.core_tags.system_warnings_banner(context)[source]

Render the top-of-page warning banner for one of the conditions below, in priority order (highest first):

  1. mode="unconfigured"BASE_URL is empty. Security/correctness issue: until it’s pinned, generated URLs can echo any Host the client sends, and admin/web/api routing has no canonical anchor.

  2. mode="base_url_mismatch" — the browser reached ArchiveBox through an origin that differs from the configured canonical BASE_URL.

  3. mode="unsafe"SERVER_SECURITY_MODE explicitly enables a lower-security replay mode.

  4. mode="low_disk"DATA_DIR has <1 GiB free; new archive jobs will start failing on ENOSPC.

  5. mode="high_memory" — virtual memory utilization at/above 95%; the host is one OOM-kill from a crash.

  6. mode="high_load" — 15-minute load average exceeds 3 × CPU count (the kernel’s own sustained-load EMA, so no rolling buffer of ours is needed).

Config/security warnings come first because they affect correctness + security and need explicit operator action; host-health warnings come after and reuse machine.detect.get_host_stats (the same function that populates the Machine admin page), cached for 30s.

archivebox.core.templatetags.core_tags.url_replace(context, **kwargs)[source]
archivebox.core.templatetags.core_tags.has_real_admin_users() bool[source]

True if any non-system superuser exists. Used by the login page to only show the bootstrap hint (createsuperuser / ADMIN_USERNAME env vars) when the collection still has no real admin.

archivebox.core.templatetags.core_tags.admin_base_url(context) str[source]
archivebox.core.templatetags.core_tags.web_base_url(context) str[source]
archivebox.core.templatetags.core_tags.snapshot_base_url(context, snapshot) str[source]
archivebox.core.templatetags.core_tags.snapshot_url(context, snapshot, path: str = '') str[source]
archivebox.core.templatetags.core_tags.snapshot_archiveresult_url(context, snapshot, plugin: str, filename: str) str[source]
archivebox.core.templatetags.core_tags.snapshot_index_row(context, link) str[source]
archivebox.core.templatetags.core_tags.snapshot_preview_url(context, snapshot, path: str = '', result=None) str[source]
archivebox.core.templatetags.core_tags.plugin_icon(plugin: str) str[source]

Render the icon for a plugin.

Usage: {% plugin_icon “screenshot” %}

archivebox.core.templatetags.core_tags.plugin_card(context, result) str[source]

Render the card template for an archive result.

Usage: {% plugin_card result %}

Context variables passed to template: - result: ArchiveResult object - snapshot: Parent Snapshot object - output_path: Path to output relative to snapshot dir (from embed_path()) - plugin: Plugin base name

archivebox.core.templatetags.core_tags.output_card(snapshot, output_path: str, plugin: str) str[source]
archivebox.core.templatetags.core_tags.plugin_full(context, result) str[source]

Render the full template for an archive result.

Usage: {% plugin_full result %}

archivebox.core.templatetags.core_tags.plugin_name(value: str) str[source]

Get the base name of a plugin (strips numeric prefix).

Usage: {{ result.plugin|plugin_name }}

archivebox.core.templatetags.core_tags.api_token(context) str[source]

Return an API token string for the logged-in user, creating one if needed.