{% extends "base.html" %} {% block title %}Metadata: {{ page.title }} — Waikiki{% endblock %} {% block topbar_actions %}{% if not trashed %}{% include "_page_options.html" %}{% endif %}{% endblock %} {% block content %}
{% if crumbs %} {% endif %}

{{ page.title }} — Metadata

{% if msg %}

{{ msg }}

{% endif %} {% if error %}

{{ error }}

{% endif %} {# The template's schema is a warning, never a blocker: the page saved, and this says what does not match. #} {% set errkeys = schema.errors | map(attribute='key') | list %} {% if schema.fields %}

{% if schema.errors %}⚠{% else %}✓{% endif %} Checked against the {{ schema.template }} template. {% if not schema.errors %}Everything matches.{% endif %}

{% if schema.errors %}

Your values were saved exactly as typed. Fix them when you are ready — or edit the schema on the {{ schema.template }} template.

{% endif %}

Expects {% for f in schema.fields %}{{ f.name }} ({{ f.choices | join(' | ') if f.choices else f.type }}{% if f.required %}, required{% endif %}){% if not loop.last %}, {% endif %} {% endfor %}.

{% elif schema.template and not schema.template_found %}

This page says it came from a {{ schema.template }} template, which no longer exists.

{% endif %}
{% for k, v in properties.items() %} {% else %} {% endfor %}
PropertyValue
No properties yet. Add one below.

Values are free text and are stored exactly as typed — 20 / 100 stays 20 / 100. Clearing a property's name removes it.

Tags

{% for t in tags %} {{ t }} {% endfor %} {% for t in all_tags %}{% endfor %}

Tags drive the index pages and search. Typing offers tags already used in this wiki, so related pages stay together rather than drifting into near-duplicates.

{% endblock %}