Grav - Nozioni di base sui temi
I temi controllano l'aspetto del tuo sito Grav. I temi in Grav sono costruiti con il potente motore Twig Templating .
Pagine di contenuto e modelli Twig
Le pagine che crei fanno riferimento a un file modello specifico in base al nome o impostando la variabile di intestazione del modello per la pagina. Si consiglia di utilizzare il nome della pagina per una manutenzione più semplice.
Dopo aver installato il pacchetto Grav Base, troverai il file defauld.mdfile nella cartella user / pages / 01.home. Il nome del file, ovverodefault dice a Grav che questa pagina dovrebbe essere renderizzata con il modello twig default.html.twig posto all'interno del themes/<mytheme>/templates cartella.
Ad esempio, se hai un file chiamato contact.md, verrà renderizzato con il modello twig come themes/<mytheme>/templates/contact.html.twig.
Organizzazione del tema
Nelle sezioni seguenti, discuteremo dell'organizzazione del tema, cioè della sua definizione, configurazione e altro.
Definizione e configurazione
Le informazioni sul tema verranno definite in user/themes/antimatter/blueprints.yamlLe definizioni di file e moduli da utilizzare nel pannello di amministrazione sono fornite opzionalmente. Vedrai il seguente contenuto inuser/themes/antimatter/blueprints.yaml file per Antimatter theme.
name: Antimatter
version: 1.6.0
description: "Antimatter is the default theme included with **Grav**"
icon: empire
author:
name: Team Grav
email: [email protected]
url: http://getgrav.org
homepage: https://github.com/getgrav/grav-theme-antimatter
demo: http://demo.getgrav.org/blog-skeleton
keywords: antimatter, theme, core, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-antimatter/issues
license: MIT
form:
validation: loose
fields:
dropdown.enabled:
type: toggle
label: Dropdown in navbar
highlight: 1
default: 1
options:
1: Enabled
0: Disabled
validate:
type: bool
Per utilizzare le opzioni di configurazione del tema, è necessario fornire le impostazioni predefinite in un file chiamato user/themes/<mytheme>/<mytheme>.yaml.
Example
enable: true
Eventi di temi e plugin
La capacità del tema di interagire con Grav tramite l'architettura dei plugin è un'altra potente caratteristica di Grav. Per ottenere ciò, crea semplicementeuser/themes/<mytheme>/<mytheme>.php (per esempio, antimatter.php per il tema predefinito Antimatter) e utilizzare il seguente formato.
<?php
namespace Grav\Theme;
use Grav\Common\Theme;
class MyTheme extends Theme {
public static function getSubscribedEvents() {
return [
'onThemeInitialized' => ['onThemeInitialized', 0]
];
}
public function onThemeInitialized() {
if ($this->isAdmin()) {
$this->active = false;
return;
}
$this->enable([
'onTwigSiteVariables' => ['onTwigSiteVariables', 0]
]);
}
public function onTwigSiteVariables() {
$this->grav['assets']
->addCss('plugin://css/mytheme-core.css')
->addCss('plugin://css/mytheme-custom.css');
$this->grav['assets']
->add('jquery', 101)
->addJs('theme://js/jquery.myscript.min.js');
}
}
Modelli
La struttura del tema Grav non ha regole fisse tranne che devono essere associati modelli di ramoscello nei modelli / cartella per ogni contenuto di tipi di pagina.
A causa di questo stretto accoppiamento tra il contenuto della pagina e il template twig, è bene creare temi generali basati sui pacchetti Skeleton disponibili nella pagina dei download .
Supponi di voler supportare il modello modulare nel tuo tema, devi creare modular/cartella e memorizza i file dei modelli di ramoscello al suo interno. Se vuoi supportare i moduli, dovresti creareform/ cartella e archiviare i modelli di modulo in esso.
Cianografie
Definire moduli per opzioni e configurazione per ogni singolo file modello blueprints/viene utilizzata la cartella. Questi non saranno modificabili tramiteAdministrator Paneled è facoltativamente utilizzato. Il tema è completamente funzionale senzablueprints cartella.
SCSS / LESS / CSS
Se vuoi sviluppare un sito con SASS o LESS, devi creare sottocartelle in user/themes/<mytheme>/scss/, o less/ se vuoi MENO insieme a una cartella css /.
Per i file generati automaticamente che vengono compilati da SASS o LESS, il css-compiled/viene utilizzata la cartella. In tema Antimateria,scss viene utilizzata la variante di SASS.
Segui questi passaggi per installare SASS nella tua macchina.
Alla radice del tema, digita il comando fornito di seguito per eseguire lo script di shell scss.
$ ./scss.sh
- Digita il seguente comando per eseguirlo direttamente.
$ scss --sourcemap --watch scss:css-compiled
Il css-compiled/ conterrà tutti i file scss compilati e il file css verrà generato all'interno del tuo tema.
Altre cartelle
Si consiglia di creare file separati images/, fonts/ e js/ cartelle nel tuo user/themes/<mytheme>/ cartella per tutte le immagini, i caratteri e i file JavaScript utilizzati nel tema.
Esempio di tema
La struttura generale delle cartelle di Antimatter il tema di cui abbiamo discusso finora è mostrato di seguito.