{#- Inline SVG icon set (stroke-based, inherits the button colour) -#} {% macro icon(name) %}
{%- if name == 'edit' -%}
{%- elif name == 'close' -%}
{%- elif name == 'hide' -%}
{%- elif name == 'show' -%}
{%- elif name == 'trash' -%}
{%- elif name == 'up' -%}
{%- elif name == 'down' -%}
{%- elif name == 'grip' -%}
{%- elif name == 'check' -%}
{%- elif name == 'plus' -%}
{%- elif name == 'logout' -%}
{%- endif -%}
{% endmacro %} {#- Reusable style-controls block: live colour preview + presets + custom colour + bold/italic + size. IMPORTANT: the hex text field itself carries name="color", so the chosen colour is always submitted — even if the JavaScript never loads. #} {% macro style_controls(scope, color, bold, italic, font_size, presets, limits) %}
Link appearance
Applies to this link only
Aa
{{ color }}
Preset colors
{% for c in presets %}
{% endfor %}
Custom color
Click the square to open the color picker, or type a hex code.
Text style
Bold
Italic
Font size
−
+
{{ limits.MIN_FONT }}–{{ limits.MAX_FONT }} px
{% endmacro %}
F
Footer Manager
Manage website footer content and external links.
{{ icon('logout') }} Logout
{{ data.active_count }}
Active links
{{ data.inactive_count }}
Disabled links
{{ data.links.length }}
Total links
COPYRIGHT TEXT
Use
{year}
to insert the current year automatically.
Copyright text
{{ data.copyright_text }}
{{ icon('check') }} Save copyright
LINKS LAYOUT
Row alignment, spacing between links, and max links per row (extra links wrap to the next row).
Row alignment
Left
Center
Right
Space between links
{{ data.settings.gap }}px
Max links per row (1–{{ limits.MAX_PER_ROW_CAP }})
{{ data.settings.per_row }}
{{ icon('check') }} Save layout
FOOTER LINKS
Drag to reorder, or use the arrows. Disabled links are not shown on the site.
{% if data.links.length == 0 %}
No footer links yet.
Add your first footer link using the form below.
{% else %}
{% for link in data.links %}
{{ icon('grip') }}
{{ link.title }}
{% if link.is_active %}
Active
{% else %}
Disabled
{% endif %} {% if link.bold %}
B
{% endif %} {% if link.italic %}
I
{% endif %}
{{ link.font_size }}px
{{ link.color }}
{{ link.url }}
Link name
URL
{{ style_controls('edit-' + link.id|string, link.color, link.bold, link.italic, link.font_size, data.color_presets, limits) }}
Active
{{ icon('check') }} Save changes
{{ icon('close') }} Cancel
{{ icon('up') }}
{{ icon('down') }}
{{ icon('edit') }}{{ icon('close') }}
{% if link.is_active %}
{{ icon('hide') }}
{% else %}
{{ icon('show') }}
{% endif %}
{{ icon('trash') }}
{% endfor %}
{% endif %}
+ ADD NEW LINK
Link name
URL
{{ style_controls('add', '#ffffff', false, false, limits.DEFAULT_FONT, data.color_presets, limits) }}
Active
{{ icon('plus') }} Add link
FOOTER PREVIEW
Approximate view of how the footer will look on the site. Server-saved data is the source of truth.
{{ data.copyright_text | replace("{year}", year) }}
Last updated: {{ data.updated_at }} · Changes apply to the site instantly.
Delete link
Delete this link?
{{ icon('close') }} Cancel
{{ icon('trash') }} Delete