{% extends "admin/base.html" %} {% from "admin/_image_picker_field.html" import image_picker_field %} {% set is_edit = site is not none %} {% block title %}{{ 'Edit' if is_edit else 'New' }} site · bragi admin{% endblock %} {% block content %}

{{ 'Edit site' if is_edit else 'New site' }}

Short identifier; used as a stable handle in imports and CLI.
Public hostname the Host header must match (e.g. blog.example.com).
BCP-47 tag; drives <html lang> and date formatting.
IANA timezone name; defaults to UTC.
Defaults to https://<hostname> when blank.
{% if themes | rejectattr('slug', 'equalto', 'default') | list %} Override the default theme with one of the installed themes. {% else %} No alternate themes installed; install a bragi-theme-* package to populate this list. {% endif %}
{% if not is_edit %}
{% endif %} {% if is_edit %} {{ image_picker_field( name="default_featured_image_id", value=form.get("default_featured_image_id"), attachment=default_featured_image, thumb_storage_key=default_featured_image_thumb_key, label="Default featured image", picker_url=url_for("attachment_admin.picker", site_slug=site.slug), site_slug=site.slug, helper="Optional. Fallback used wherever a post or page reads featured_image: og:image / twitter:image, landing-page cards, post-detail hero." ) }}
{% if home_pages %} Pick a published page to serve as this site's /. Leaving this blank shows the default welcome stub. {% else %} No published pages on this site yet; publish one to set a homepage. {% endif %}
{% endif %} {% if is_edit and settings %}
Plugin settings

Per-site tunables contributed by plugins. Unset keys fall back to the plugin's default.

{% for setting in settings %} {% set raw = current_setting_values.get(setting.key, setting.default) %} {% set widget = setting_widget(setting) %}
{% if widget == 'bool' %} {% elif widget == 'int' %} {% else %} {% endif %} {% if setting_errors and setting_errors.get(setting.key) %}
{{ setting_errors[setting.key] }}
{% endif %}
{{ setting.help_text }} ยท default: {{ setting.default if setting.default != '' else '(unset)' }}
{% endfor %}
{% endif %}
Cancel
{% if is_edit %}

Maintenance

One-shot site-wide cleanups. Run on demand.

Recompute the short summary for every post and page on this site. Useful after an import or after fixing the excerpt-rendering logic.

Hostname aliases

Extra hostnames that resolve to this site. Useful for legacy www. prefixes or vanity domains.

{% if aliases %} {% for alias in aliases %} {% endfor %}
Hostname
{{ alias.hostname }}
{% else %}

No aliases.

{% endif %}
{% endif %} {% endblock %}