{# SPDX-License-Identifier: CC0-1.0 koszko.org website base page template. Copyright (C) 2022 Wojtek Kosior <koszko@koszko.org> #} {% macro same_lang_url(page_path) -%} {{ url_for('.show_page_in_' ~ lang_short, page_path=page_path) }} {%- endmacro %} {% set section_ns = namespace( in_section = false, id = none, linked = false, first = true ) %} {% macro maybe_link(to, link=true) %} {%- if to is not none and link -%} <a href="{{ to }}">{{ caller() }}</a> {%- else -%} {{ caller() }} {%- endif -%} {% endmacro %} {% macro header(level, text='', link_to_section=true) %} <h{{ level }}{{ header_attrs|default({})|xmlattr }}> {% set should_link = section_ns.in_section and link_to_section and not section_ns.linked and section_ns.id is not none %} {% set section_ns.linked = section_ns.linked or should_link %} {% set caller_markup = caller() if caller is defined else '' %} {% call maybe_link('#' ~ section_ns.id, link=should_link) -%} {{ text }}{{ caller_markup }} {%- endcall %} </h{{ level }}> {% endmacro %} {% macro section(id=none) %} {% set attrs = {} %} {% do attrs.update(section_attrs|default({})) %} {% if section_ns.first %} {% set section_ns.first = false %} {% set classes = attrs.get('class') %} {% set classes = (classes ~ ' ' if classes else '') ~ 'first-section' %} {% do attrs.update({'class': classes}) %} {% endif %} <section{{ attrs|xmlattr }}> {% if id is not none %} <div{{ {'class': 'section-anchor', 'id': id}|xmlattr }}></div> {% endif %} {% if section_ns.in_section %} {{ raise_exception('Section defined inside another section.') }} {% else %} {% set section_ns.in_section = true %} {% set section_ns.id = id %} {% set section_ns.linked = false %} {% endif %} {{ caller() }} {% set section_ns.in_section = false %} </section> {% endmacro %} {% macro para(ensure_containing_section=true) %} {% if section_ns.in_section or not ensure_containing_section %} <p> {{ caller() }} </p> {% else %} {% set caller_snapshot = caller %} {% call section() %} <p> {{ caller_snapshot() }} </p> {% endcall %} {% endif %} {% endmacro %} {% macro link(to, text='') -%} <a href="{{ to }}">{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </a> {%- endmacro %} {% macro bold(text='') -%} <span class="bold">{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </span> {%- endmacro %} {% macro italic(text='') -%} <span class="italic">{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </span> {%- endmacro %} {% macro unordered_list() %} <ul> {{ caller() }} </ul> {% endmacro %} {% macro list_entry() %} <li> {{ caller() }} </li> {% endmacro %} {% macro descriptions() %} <dl> {{ caller() }} </dl> {% endmacro %} {% macro desc_term(text='') %} {{ '<div>'|safe }} <dt>{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </dt> {% endmacro %} {% macro desc_desc(text='') %} <dd>{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </dd> {{ '</div>'|safe }} {% endmacro %} {% macro img(url, alt_text, extra_classes=[]) %} {% set attrs = {'class': (['pure-img'] + extra_classes)|join(' ')} %} {% do attrs.update({'src': url, 'alt': alt_text, 'draggable': false}) %} <img {{ attrs|xmlattr }}> {% endmacro %} {% macro aside(text='') %} <aside>{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </aside> {% endmacro %} {% macro sup(text='') -%} <sup>{{ text }} {%- if caller is defined -%} {{ caller() }} {%- endif -%} </sup> {%- endmacro %} {% set numberlinks_ns = namespace(next_num=1, nums={}) %} {% macro numberlink(link_url) -%} {%- if link_url not in numberlinks_ns.nums -%} {%- do numberlinks_ns.nums.update({link_url: numberlinks_ns.next_num}) -%} {%- set numberlinks_ns.next_num = numberlinks_ns.next_num + 1 -%} {%- endif -%} {%- call sup() -%} {{ link(link_url, '[' ~ numberlinks_ns.nums[link_url] ~ ']') }} {%- endcall -%} {%- endmacro %} {% macro newline() %} <br> {% endmacro %} {% macro nbsp() -%} {%- endmacro %} {% macro unicode(code) -%} &#{{ code }}; {%- endmacro %} <!DOCTYPE html> <html> <head> {% block head %} <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Security-Policy" content="script-src 'none'"> <title> {% block title %} {% endblock %} </title> {% block external_css %} <link rel="stylesheet" href="/static/normalize.css"> <link rel="stylesheet" href="/static/pure-base.css"> <link rel="stylesheet" href="/static/pure-tables.css"> <link rel="stylesheet" href="/static/pure-menus-core.css"> <link rel="stylesheet" href="/static/pure-menus-skin.css"> {% endblock %} <style> {% block style %} .bold { font-weight: bold; } .italic { font-style: italic; } h1 a, h2 a, h1 a:visited, h2 a:visited { text-decoration: none; color: inherit; } .section-anchor { position: relative; } section > p, section > dl { margin-left: 20px; } section > .center_text { margin-left: 0px; } .center-text { text-align: center; } .pure-menu { user-select: none; } {% endblock %} </style> {% endblock %} </head> <body> {% block body %} Kocham Asię Ɛ> {% endblock %} </body> </html>