Skip to main content

Designvorlagen

Paligo verwendet bis zu vier Vorlagen, die sich alle im Ordner templates/ befinden:

Vorlage

Verwendet für

Erforderlich

page.html.twig

Jede Topics-Seite

Ja

portal.html.twig

Die Portalseite, die Startseite der Website

Nein

search.html.twig

Die Suchergebnisseite

Nein

base.html.twig

Nichts direkt. Die anderen können es erweitern, sodass der Seitenrahmen nur einmal geschrieben wird.

Nein

Wenn das Theme keine portal, search oder base enthält, verwendet Paligo eine einfache integrierte Vorlage. Die Suchseite wird nur generiert, wenn im Layout eine Suchfunktion aktiviert ist.

Alle anderen Vorlagen, wie beispielsweise ein Partial für die Kopfzeile, können einen beliebigen Namen haben und werden nur verwendet, wenn eine Ihrer Vorlagen sie einbindet. Paligo überprüft jede .twig-Datei im Theme, auch solche, die von keiner anderen Datei verwendet werden.

Ein minimalistisches Design

Die Datei page.html.twig erzeugt eine vollständige Seite:

<!doctype html>
<html lang="{{ site.lang }}"{% if site.dir %} dir="{{ site.dir }}"{% endif %}>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{{ page.title }} | {{ site.title }}</title>
    <link rel="stylesheet" href="{{ asset('css/main.css') }}">
    {{ paligo.head }}
</head>
<body>
    <main>
        <h1>{{ page.title }}</h1>
        {{ page.content }}
    </main>
    {{ paligo.foot }}
</body>
</html>

Was jede Seite braucht

  • {{ paligo.head }} direkt vor </head>. Dadurch werden das Stylesheet für Ihre Inhalte, die Sucheinstellungen, die Analysefunktionen, die SEO-Tags und der benutzerdefinierte &lt;head&gt;-Code des Layouts hinzugefügt.

  • {{ paligo.foot }} direkt vor </body>. Dadurch werden die Skripte für die Suche, die Schaltflächen zum Kopieren von Code und die Popup-Fenster für das Glossar sowie der benutzerdefinierte Code am Ende des Body-Tags des Layouts hinzugefügt.

  • lang="{{ site.lang }}" unter <html>. Bei der Suche in mehreren Sprachen wird diese Angabe verwendet, um den richtigen Index auszuwählen.

  • dir="{{ site.dir }}" auf <html>, wenn „site.dir“ festgelegt ist, damit Sprachen, die von rechts nach links geschrieben werden, korrekt angezeigt werden.

Wenn in einer Vorlage paligo.head oder paligo.foot fehlt, fügt Paligo diese Elemente vor </head> bzw. </body> selbst ein und schreibt eine Warnung in das Veröffentlichungsprotokoll. Fügen Sie sie selbst ein, damit Sie die Platzierung selbst bestimmen können.

Einen Seitenrahmen zwischen Vorlagen gemeinsam nutzen

Schreiben Sie die Teile, die auf jeder Seite gleich sind, einmal in die Datei base.html.twig und füllen Sie die Teile, die sich unterscheiden, mit Blöcken aus:

templates/base.html.twig:

<!doctype html>
<html lang="{{ site.lang }}"{% if site.dir %} dir="{{ site.dir }}"{% endif %}>
<head>
    <meta charset="utf-8">
    <title>{% block title %}{{ page.title }} | {{ site.title }}{% endblock %}</title>
    <link rel="stylesheet" href="{{ asset('css/main.css') }}">
    {{ paligo.head }}
</head>
<body>
    {% include 'partials/header.html.twig' %}
    {% block content %}{% endblock %}
    {{ paligo.foot }}
</body>
</html>

templates/page.html.twig:

{% extends 'base.html.twig' %}

{% block content %}
    <main>
        <h1>{{ page.title }}</h1>
        {{ page.content }}
    </main>
{% endblock %}

Die Namen der Vorlagen beziehen sich auf den Ordner templates/ .

HTML wird maskiert

Alles, was eine Vorlage ausgibt, wird HTML-escaped, sodass Text aus Ihren Inhalten oder dem Layout die Seite nicht beschädigen kann. Die Werte, die bereits HTML sind, werden ohne zusätzliche Formatierung als HTML ausgegeben: page.content, paligo.head, paligo.foot und die Ausgabe der paligo_…() -Komponenten.

Grenzen

Jede Seite muss innerhalb von 10 Sekunden vollständig gerendert sein. Eine Vorlage, die sich selbst einbindet, oder ein Makro, das sich selbst endlos aufruft, wird nach 128 Ebenen gestoppt.