archivebox.core.widgets

Module Contents

Classes

TagEditorWidget

A widget that renders tags as clickable pills with inline editing.

URLFiltersWidget

Render URL allowlist / denylist controls with same-domain autofill.

InlineTagEditorWidget

Inline version of TagEditorWidget for use in list views. Includes AJAX save functionality for immediate persistence.

API

class archivebox.core.widgets.TagEditorWidget(attrs=None, snapshot_id=None)[source]

Bases: django.forms.Widget

A widget that renders tags as clickable pills with inline editing.

  • Displays existing tags alphabetically as styled pills with X remove button

  • Text input with HTML5 datalist for autocomplete suggestions

  • Press Enter or Space to create new tags (auto-creates if doesn’t exist)

  • Uses AJAX for autocomplete and tag creation

Initialization

template_name = <Multiline-String>[source]
class Media[source]
css[source]

None

js[source]

[]

_escape(value)[source]

Escape HTML entities in value.

_normalize_id(value)[source]

Normalize IDs for HTML + JS usage (letters, digits, underscore; JS-safe start).

_tag_style(value)[source]

Compute a stable pastel color style for a tag value.

render(name, value, attrs=None, renderer=None)[source]

Render the tag editor widget.

Args: name: Field name value: Can be: - QuerySet of Tag objects (from M2M field) - List of tag names - Comma-separated string of tag names - None attrs: HTML attributes renderer: Not used

class archivebox.core.widgets.URLFiltersWidget(attrs=None, *, source_selector='textarea[name="url"]')[source]

Bases: django.forms.Widget

Render URL allowlist / denylist controls with same-domain autofill.

Initialization

template_name = <Multiline-String>[source]
render(name, value, attrs=None, renderer=None)[source]
value_from_datadict(data, files, name)[source]
class archivebox.core.widgets.InlineTagEditorWidget(attrs=None, snapshot_id=None, editable=True)[source]

Bases: archivebox.core.widgets.TagEditorWidget

Inline version of TagEditorWidget for use in list views. Includes AJAX save functionality for immediate persistence.

Initialization

render(name, value, attrs=None, renderer=None, snapshot_id=None)[source]

Render inline tag editor with AJAX save.