Edit editorcongif file and indentation style

This commit is contained in:
Paul Nicoué 2022-07-07 17:02:05 +02:00
parent dac66b054d
commit 4bb1ea6b1c
47 changed files with 2392 additions and 2405 deletions

View file

@ -1,34 +1,34 @@
title: Artwork
accept:
mime: image/jpeg, image/png, video/mp4
mime: image/jpeg, image/png, video/mp4
fields:
alt_text:
when:
file_type: image
label:
en: Alternative text
fr: Texte alternatif
type: text
poster:
when:
file_type: video
label:
en: Poster
fr: Vignette
type: files
uploads: image
layout: cards
image:
ratio: 16/9
cover: true
back: white
multiple: false
help:
en: "Image displayed before video playback (format: JPEG or PNG). The first image of the video is used if this field is empty."
fr: "Image affichée avant la lecture de la vidéo (format : JPEG ou PNG). La première image de la vidéo est utilisée si ce champ est vide."
width: 1/4
caption:
label:
en: Caption
fr: Légende
type: text
alt_text:
when:
file_type: image
label:
en: Alternative text
fr: Texte alternatif
type: text
poster:
when:
file_type: video
label:
en: Poster
fr: Vignette
type: files
uploads: image
layout: cards
image:
ratio: 16/9
cover: true
back: white
multiple: false
help:
en: "Image displayed before video playback (format: JPEG or PNG). The first image of the video is used if this field is empty."
fr: "Image affichée avant la lecture de la vidéo (format : JPEG ou PNG). La première image de la vidéo est utilisée si ce champ est vide."
width: 1/4
caption:
label:
en: Caption
fr: Légende
type: text

View file

@ -1,14 +1,14 @@
title: Image
accept:
mime: image/jpeg, image/png
mime: image/jpeg, image/png
fields:
alt_text:
label:
en: Alternative text
fr: Texte alternatif
type: text
caption:
label:
en: Caption
fr: Légende
type: text
alt_text:
label:
en: Alternative text
fr: Texte alternatif
type: text
caption:
label:
en: Caption
fr: Légende
type: text

View file

@ -1,21 +1,21 @@
title:
en: Biography
fr: Biographie
en: Biography
fr: Biographie
icon: text
status:
draft: true
unlisted: true
draft: true
unlisted: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/biography_content
seo: tabs/biography_seo
content: tabs/biography_content
seo: tabs/biography_seo

View file

@ -1,5 +1,5 @@
title:
en: Error
fr: Erreur
en: Error
fr: Erreur
options:
read: false
read: false

View file

@ -1,10 +1,10 @@
title:
en: Gallery
fr: Galerie
en: Gallery
fr: Galerie
icon: file-image
status:
draft: true
listed: true
draft: true
listed: true
tabs:
content: tabs/gallery_content
seo: tabs/gallery_seo
content: tabs/gallery_content
seo: tabs/gallery_seo

View file

@ -1,21 +1,21 @@
title:
en: Home
fr: Accueil
en: Home
fr: Accueil
icon: home
status:
draft: true
unlisted: true
draft: true
unlisted: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/home_content
seo: tabs/home_seo
content: tabs/home_content
seo: tabs/home_seo

View file

@ -1,20 +1,20 @@
type: fields
fields:
text:
label:
en: Presentation text
fr: Texte de présentation
type: textarea
required: true
size: large
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'
text:
label:
en: Presentation text
fr: Texte de présentation
type: textarea
required: true
size: large
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'

View file

@ -1,6 +1,6 @@
headline:
en: Artworks
fr: Œuvres
en: Artworks
fr: Œuvres
type: files
template: artwork
min: 1
@ -8,5 +8,5 @@ layout: cards
size: small
limit: 40
image:
ratio: 1/1
back: white
ratio: 1/1
back: white

View file

@ -1,19 +1,19 @@
type: fields
fields:
text:
label:
en: Introduction text
fr: Texte d'introduction
type: textarea
size: medium
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'
text:
label:
en: Introduction text
fr: Texte d'introduction
type: textarea
size: medium
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'

View file

@ -1,43 +1,43 @@
type: fields
fields:
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters). Home page meta description is used if this field is empty."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères). La méta description de la page d'accueil est utilisée si ce champ est vide."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
uploads: image
layout: cards
image:
cover: true
back: white
multiple: false
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG). Home page meta image is used if this field is empty."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG). La méta image de la page d'accueil est utilisée si ce champ est vide."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: article
twitter_card_type:
type: hidden
default: summary_large_image
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters). Home page meta description is used if this field is empty."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères). La méta description de la page d'accueil est utilisée si ce champ est vide."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
uploads: image
layout: cards
image:
cover: true
back: white
multiple: false
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG). Home page meta image is used if this field is empty."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG). La méta image de la page d'accueil est utilisée si ce champ est vide."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: article
twitter_card_type:
type: hidden
default: summary_large_image

View file

@ -1,6 +1,6 @@
headline:
en: Background image
fr: Image de fond
en: Background image
fr: Image de fond
type: files
template: image
min: 1
@ -8,5 +8,5 @@ max: 1
layout: cards
size: medium
image:
ratio: 1/1
back: white
ratio: 1/1
back: white

View file

@ -1,18 +1,18 @@
headline:
en: Contact and social networks
fr: Contact et réseaux sociaux
en: Contact and social networks
fr: Contact et réseaux sociaux
type: fields
fields:
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
instagram:
type: url
label:
en: Instagram account
fr: Compte Instagram
icon: instagram
required: true
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
instagram:
type: url
label:
en: Instagram account
fr: Compte Instagram
icon: instagram
required: true

View file

@ -1,44 +1,44 @@
type: fields
fields:
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
required: true
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters)."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
layout: cards
image:
cover: true
back: white
multiple: false
required: true
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG)."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG)."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: website
twitter_card_type:
type: hidden
default: summary_large_image
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
required: true
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters)."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
layout: cards
image:
cover: true
back: white
multiple: false
required: true
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG)."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG)."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: website
twitter_card_type:
type: hidden
default: summary_large_image

View file

@ -1,6 +1,6 @@
headline:
en: Galleries
fr: Galeries
en: Galleries
fr: Galeries
type: pages
template: gallery
min: 2
@ -8,7 +8,7 @@ max: 4
layout: cards
size: small
image:
ratio: 1/1
cover: true
query: page.images.template('artwork').sortBy('sort').first
back: white
ratio: 1/1
cover: true
query: page.images.template('artwork').sortBy('sort').first
back: white

View file

@ -1,14 +1,14 @@
headline:
en: Pages
fr: Pages
en: Pages
fr: Pages
type: pages
templates:
- home
- biography
- home
- biography
sortBy: title asc
create: false
layout: cardlets
image:
cover: true
query: page.images.template('image').first
back: white
cover: true
query: page.images.template('image').first
back: white

View file

@ -1,6 +1,6 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
sections:
presentation: sections/biography_content_presentation
presentation: sections/biography_content_presentation

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/generic_seo_metadata
seo_basic_meta: sections/generic_seo_metadata

View file

@ -1,7 +1,7 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
sections:
introduction: sections/gallery_content_introduction
artworks: sections/gallery_content_artworks
introduction: sections/gallery_content_introduction
artworks: sections/gallery_content_artworks

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/generic_seo_metadata
seo_basic_meta: sections/generic_seo_metadata

View file

@ -1,11 +1,11 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
columns:
- width: 1/2
sections:
background_image: sections/home_content_background_image
- width: 1/2
sections:
contact: sections/home_content_contact
- width: 1/2
sections:
background_image: sections/home_content_background_image
- width: 1/2
sections:
contact: sections/home_content_contact

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/home_seo_metadata
seo_basic_meta: sections/home_seo_metadata

View file

@ -1,15 +1,15 @@
label:
en: Analytics
fr: Audience
en: Analytics
fr: Audience
icon: chart
columns:
- width: 1/4
sticky: true
sections:
sidebar:
type: matomo-sidebar
link: false
- width: 3/4
sections:
main:
type: matomo-main
- width: 1/4
sticky: true
sections:
sidebar:
type: matomo-sidebar
link: false
- width: 3/4
sections:
main:
type: matomo-main

View file

@ -1,12 +1,12 @@
label:
en: Website
fr: Site web
en: Website
fr: Site web
icon: home
columns:
- width: 1/4
sticky: true
sections:
pages: sections/site_content_pages
- width: 3/4
sections:
galleries: sections/site_content_galleries
- width: 1/4
sticky: true
sections:
pages: sections/site_content_pages
- width: 3/4
sections:
galleries: sections/site_content_galleries

View file

@ -1,18 +1,15 @@
title:
en: Administrator
fr: Administrateur·ice
en: Administrator
fr: Administrateur·ice
description:
en: The Administrator has all rights
fr: L'Administrateur·ice dispose de tous les droits
en: The Administrator has all rights
fr: L'Administrateur·ice dispose de tous les droits
sections:
info:
headline:
en: Website
fr: Site internet
theme: none
width: 1/2
text:
en: |
(link: https://paulnicoue.com text: paulnicoue.com target: _blank)
fr: |
(link: https://www.paulnicoue.com text: paulnicoue.com target: _blank)
info:
headline:
en: Website
fr: Site internet
theme: none
width: 1/2
text: |
(link: https://paulnicoue.com text: paulnicoue.com target: _blank)

View file

@ -1,29 +1,29 @@
title:
en: Editor
fr: Éditeur·ice
en: Editor
fr: Éditeur·ice
description:
en: The Editor can create and edit pages
fr: L'éditeur·ice peut créer et modifier des pages
en: The Editor can create and edit pages
fr: L'éditeur·ice peut créer et modifier des pages
permissions:
access:
settings: false
languages:
create: false
delete: false
site:
changeTitle: false
user:
changeRole: false
delete: false
users:
changeEmail: false
changeLanguage: false
changeName: false
changePassword: false
changeRole: false
create: false
delete: false
update: false
access:
settings: false
languages:
create: false
delete: false
site:
changeTitle: false
user:
changeRole: false
delete: false
users:
changeEmail: false
changeLanguage: false
changeName: false
changePassword: false
changeRole: false
create: false
delete: false
update: false
sections:
info: false
info: false

View file

@ -1,41 +1,41 @@
<?php
return [
// Kirby configuration settings
'home' => 'accueil',
'error' => 'erreur',
'panel' => [
'language' => 'fr',
'css' => 'assets/css/panel.min.css'
],
// Sitemapper plugin options
'kirbyzone.sitemapper' => [
'intro' => false,
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
],
// Hooks
'hooks' => [
'file.create:after' => function($file) {
// Populate file_type field with $file->type() method after file creation
if ($file->type()) {
$file->update([
'file_type' => $file->type()
]);
}
},
'kirbytext:after' => function (string $text) {
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
}
],
// Thumbnails and srcsets presets
'thumbs' => [
'srcsets' => [
'default' => [
'640w' => ['width' => 640, 'quality' => 80],
'1280w' => ['width' => 1280, 'quality' => 80],
'1920w' => ['width' => 1920, 'quality' => 80]
]
]
]
// Kirby configuration settings
'home' => 'accueil',
'error' => 'erreur',
'panel' => [
'language' => 'fr',
'css' => 'assets/css/panel.min.css'
],
// Sitemapper plugin options
'kirbyzone.sitemapper' => [
'intro' => false,
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
],
// Hooks
'hooks' => [
'file.create:after' => function($file) {
// Populate file_type field with $file->type() method after file creation
if ($file->type()) {
$file->update([
'file_type' => $file->type()
]);
}
},
'kirbytext:after' => function (string $text) {
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
}
],
// Thumbnails and srcsets presets
'thumbs' => [
'srcsets' => [
'default' => [
'640w' => ['width' => 640, 'quality' => 80],
'1280w' => ['width' => 1280, 'quality' => 80],
'1920w' => ['width' => 1920, 'quality' => 80]
]
]
]
];

View file

@ -1,4 +1,3 @@
<!-- Favicon -->
<link rel="icon" sizes="any" href="assets/favicon/xiao-wang-favicon.ico">
<link rel="icon" type="image/svg+xml" href="assets/favicon/xiao-wang-favicon.svg">
<link rel="apple-touch-icon" href="assets/favicon/xiao-wang-apple-touch-icon.png">

View file

@ -1,16 +1,16 @@
<!-- Basic metadata -->
{# Basic metadata #}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<html lang="fr">
<!-- Schema -->
{# Schema #}
<style itemscope itemtype="https://schema.org/WebSite" itemref="schema_name schema_description schema_image"></style>
<!-- Title -->
{# Title #}
<title>{{ site.title }} | {{ page.title }}</title>
<meta id="schema_name" itemprop="name" content="{{ site.title }} | {{ page.title }}">
<!-- Description -->
{# Description #}
{% if page.meta_description is not empty %}
<meta name="description" content="{{ page.meta_description }}">
<meta id="schema_description" itemprop="description" content="{{ page.meta_description }}">
@ -19,16 +19,16 @@
<meta id="schema_description" itemprop="description" content="{{ site.homePage.meta_description }}">
{% endif %}
<!-- Canonical URL -->
{# Canonical URL #}
<link rel="canonical" href="{{ page.url }}">
<!-- Author -->
{# Author #}
<meta name="author" content="{{ site.title }}">
<!-- Date -->
{# Date #}
<meta name="date" content="{{ page.modified('Y-m-d') }}">
<!-- Image -->
{# Image #}
{% if page.meta_image is not empty %}
<meta id="schema_image" itemprop="image" content="{{ page.meta_image.toImage.url }}">
{% elseif site.homePage.meta_image is not empty %}
@ -37,7 +37,7 @@
{% if page.template != 'error' %}
<!-- Open Graph -->
{# Open Graph #}
<meta property="og:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if page.meta_description is not empty %}
<meta property="og:description" content="{{ page.meta_description }}">
@ -56,7 +56,7 @@
<meta property="og:url" content="{{ page.url }}">
<meta property="og:type" content="{{ page.og_type }}">
<!-- Twitter Card -->
{# Twitter Card #}
<meta name="twitter:card" content="{{ page.twitter_card_type.value }}">
<meta name="twitter:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if page.meta_description is not empty %}

View file

@ -4,148 +4,148 @@
<head>
{{ snippet('metadata') }}
{{ snippet('favicon') }}
{{ snippet('metadata') }}
{{ snippet('favicon') }}
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.paulnicoue.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.paulnicoue.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- Stylesheets -->
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
<!-- Stylesheets -->
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
</head>
<body>
{% block header %}
<header>
{% block header %}
<header>
<div class="header-bar">
<div class="header-bar">
<div class="header-bar__logo" aria-hidden="true">
<a class="header-bar__logo-link" href="{{ site.homePage.url }}" target="_self" aria-label="Accéder à la page d'accueil de {{ site.title }}" tabindex="-1">
<h1 class="header-bar__logo-title">{{ site.title }}</h1>
</a>
</div>
<div class="header-bar__logo" aria-hidden="true">
<a class="header-bar__logo-link" href="{{ site.homePage.url }}" target="_self" aria-label="Accéder à la page d'accueil de {{ site.title }}" tabindex="-1">
<h1 class="header-bar__logo-title">{{ site.title }}</h1>
</a>
</div>
<nav class="header-bar__nav" aria-label="Menu">
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M7.5 36Q6.85 36 6.425 35.575Q6 35.15 6 34.5Q6 33.85 6.425 33.425Q6.85 33 7.5 33H30.5Q31.15 33 31.575 33.425Q32 33.85 32 34.5Q32 35.15 31.575 35.575Q31.15 36 30.5 36ZM7.5 25.4Q6.85 25.4 6.425 24.975Q6 24.55 6 23.9Q6 23.25 6.425 22.825Q6.85 22.4 7.5 22.4H24.5Q25.15 22.4 25.575 22.825Q26 23.25 26 23.9Q26 24.55 25.575 24.975Q25.15 25.4 24.5 25.4ZM7.5 15Q6.85 15 6.425 14.575Q6 14.15 6 13.5Q6 12.85 6.425 12.425Q6.85 12 7.5 12H30.5Q31.15 12 31.575 12.425Q32 12.85 32 13.5Q32 14.15 31.575 14.575Q31.15 15 30.5 15ZM34.75 23.95 41 30.2Q41.45 30.65 41.425 31.25Q41.4 31.85 40.95 32.3Q40.5 32.75 39.875 32.75Q39.25 32.75 38.8 32.3L31.5 25Q31.05 24.55 31.05 23.95Q31.05 23.35 31.5 22.9L38.8 15.6Q39.25 15.15 39.875 15.15Q40.5 15.15 40.95 15.6Q41.4 16.05 41.4 16.675Q41.4 17.3 40.95 17.75Z"/>
</svg>
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M24 26.1 13.5 36.6Q13.05 37.05 12.45 37.05Q11.85 37.05 11.4 36.6Q10.95 36.15 10.95 35.55Q10.95 34.95 11.4 34.5L21.9 24L11.4 13.5Q10.95 13.05 10.95 12.45Q10.95 11.85 11.4 11.4Q11.85 10.95 12.45 10.95Q13.05 10.95 13.5 11.4L24 21.9L34.5 11.4Q34.95 10.95 35.55 10.95Q36.15 10.95 36.6 11.4Q37.05 11.85 37.05 12.45Q37.05 13.05 36.6 13.5L26.1 24L36.6 34.5Q37.05 34.95 37.05 35.55Q37.05 36.15 36.6 36.6Q36.15 37.05 35.55 37.05Q34.95 37.05 34.5 36.6Z"/>
</svg>
</button>
<ul class="header-bar__nav-menu" tabindex="-1">
{% set headerNavItemNo = 1 %}
{% if site.homePage.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if pages.template('biography').first.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<span>Galeries</span>
</div>
<ul>
{% for gallery in pages.template('gallery') %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if gallery.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
</nav>
<nav class="header-bar__nav" aria-label="Menu">
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M7.5 36Q6.85 36 6.425 35.575Q6 35.15 6 34.5Q6 33.85 6.425 33.425Q6.85 33 7.5 33H30.5Q31.15 33 31.575 33.425Q32 33.85 32 34.5Q32 35.15 31.575 35.575Q31.15 36 30.5 36ZM7.5 25.4Q6.85 25.4 6.425 24.975Q6 24.55 6 23.9Q6 23.25 6.425 22.825Q6.85 22.4 7.5 22.4H24.5Q25.15 22.4 25.575 22.825Q26 23.25 26 23.9Q26 24.55 25.575 24.975Q25.15 25.4 24.5 25.4ZM7.5 15Q6.85 15 6.425 14.575Q6 14.15 6 13.5Q6 12.85 6.425 12.425Q6.85 12 7.5 12H30.5Q31.15 12 31.575 12.425Q32 12.85 32 13.5Q32 14.15 31.575 14.575Q31.15 15 30.5 15ZM34.75 23.95 41 30.2Q41.45 30.65 41.425 31.25Q41.4 31.85 40.95 32.3Q40.5 32.75 39.875 32.75Q39.25 32.75 38.8 32.3L31.5 25Q31.05 24.55 31.05 23.95Q31.05 23.35 31.5 22.9L38.8 15.6Q39.25 15.15 39.875 15.15Q40.5 15.15 40.95 15.6Q41.4 16.05 41.4 16.675Q41.4 17.3 40.95 17.75Z"/>
</svg>
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M24 26.1 13.5 36.6Q13.05 37.05 12.45 37.05Q11.85 37.05 11.4 36.6Q10.95 36.15 10.95 35.55Q10.95 34.95 11.4 34.5L21.9 24L11.4 13.5Q10.95 13.05 10.95 12.45Q10.95 11.85 11.4 11.4Q11.85 10.95 12.45 10.95Q13.05 10.95 13.5 11.4L24 21.9L34.5 11.4Q34.95 10.95 35.55 10.95Q36.15 10.95 36.6 11.4Q37.05 11.85 37.05 12.45Q37.05 13.05 36.6 13.5L26.1 24L36.6 34.5Q37.05 34.95 37.05 35.55Q37.05 36.15 36.6 36.6Q36.15 37.05 35.55 37.05Q34.95 37.05 34.5 36.6Z"/>
</svg>
</button>
<ul class="header-bar__nav-menu" tabindex="-1">
{% set headerNavItemNo = 1 %}
{% if site.homePage.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if pages.template('biography').first.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<span>Galeries</span>
</div>
<ul>
{% for gallery in pages.template('gallery') %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if gallery.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
</nav>
</div>
</div>
</header>
{% endblock %}
</header>
{% endblock %}
{% block main %}
{% endblock %}
{% block main %}
{% endblock %}
{% block footer %}
<footer>
{% block footer %}
<footer>
<div class="footer-bar">
<div class="footer-bar">
<div class="footer-bar__social">
<a class="footer-bar__instagram-button" rel="me" href="{{ site.homePage.instagram }}" target="_blank" aria-label="Accéder au profil Instagram de {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/>
</svg>
</a>
<a class="footer-bar__email-button" href="mailto:{{ site.homePage.email }}" target="_blank" aria-label="Écrire un e-mail à {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 48 48" fill="currentColor">
<path d="M7 40Q5.8 40 4.9 39.1Q4 38.2 4 37V11Q4 9.8 4.9 8.9Q5.8 8 7 8H41Q42.2 8 43.1 8.9Q44 9.8 44 11V37Q44 38.2 43.1 39.1Q42.2 40 41 40ZM41 13.75 24.8 24.35Q24.6 24.45 24.425 24.525Q24.25 24.6 24 24.6Q23.75 24.6 23.575 24.525Q23.4 24.45 23.2 24.35L7 13.75V37Q7 37 7 37Q7 37 7 37H41Q41 37 41 37Q41 37 41 37ZM24 21.9 40.8 11H7.25ZM7 13.75V14.1Q7 13.95 7 13.7Q7 13.45 7 13.15Q7 12.5 7 12.125Q7 11.75 7 12.15V11V12.15Q7 11.75 7 12.1Q7 12.45 7 13.1Q7 13.4 7 13.675Q7 13.95 7 14.1V13.75V37Q7 37 7 37Q7 37 7 37Q7 37 7 37Q7 37 7 37Z"/>
</svg>
</a>
</div>
<div class="footer-bar__copyright">
<p>&copy; {{ 'now' | date('Y') }} {{ site.title }}</p>
</div>
<div class="footer-bar__social">
<a class="footer-bar__instagram-button" rel="me" href="{{ site.homePage.instagram }}" target="_blank" aria-label="Accéder au profil Instagram de {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/>
</svg>
</a>
<a class="footer-bar__email-button" href="mailto:{{ site.homePage.email }}" target="_blank" aria-label="Écrire un e-mail à {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 48 48" fill="currentColor">
<path d="M7 40Q5.8 40 4.9 39.1Q4 38.2 4 37V11Q4 9.8 4.9 8.9Q5.8 8 7 8H41Q42.2 8 43.1 8.9Q44 9.8 44 11V37Q44 38.2 43.1 39.1Q42.2 40 41 40ZM41 13.75 24.8 24.35Q24.6 24.45 24.425 24.525Q24.25 24.6 24 24.6Q23.75 24.6 23.575 24.525Q23.4 24.45 23.2 24.35L7 13.75V37Q7 37 7 37Q7 37 7 37H41Q41 37 41 37Q41 37 41 37ZM24 21.9 40.8 11H7.25ZM7 13.75V14.1Q7 13.95 7 13.7Q7 13.45 7 13.15Q7 12.5 7 12.125Q7 11.75 7 12.15V11V12.15Q7 11.75 7 12.1Q7 12.45 7 13.1Q7 13.4 7 13.675Q7 13.95 7 14.1V13.75V37Q7 37 7 37Q7 37 7 37Q7 37 7 37Q7 37 7 37Z"/>
</svg>
</a>
</div>
<div class="footer-bar__copyright">
<p>&copy; {{ 'now' | date('Y') }} {{ site.title }}</p>
</div>
</div>
</div>
</footer>
{% endblock %}
</footer>
{% endblock %}
<!-- Scripts -->
{% block scripts %}
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}
<!-- Scripts -->
{% block scripts %}
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}
</body>

View file

@ -1,16 +1,16 @@
{% extends "base.twig" %}
{% block main %}
<main>
<main>
<section class="biography-section">
<section class="biography-section">
<article class="biography">
<h2 class="biography__title">{{ page.title }}</h2>
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
</article>
<article class="biography">
<h2 class="biography__title">{{ page.title }}</h2>
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
</article>
</section>
</section>
</main>
</main>
{% endblock %}

View file

@ -7,13 +7,13 @@
<article class="error">
<h2 class="error__title">Erreur {{ kirby.response.code }}</h2>
{% if kirby.response.code == 404 %}
<p class="error__message">La page que vous demandez n'existe pas...</p>
{% else %}
<p class="error__message">Une erreur est survenue...</p>
{% endif %}
<p class="error__message">La page que vous demandez n'existe pas...</p>
{% else %}
<p class="error__message">Une erreur est survenue...</p>
{% endif %}
<div class="error__button">
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
</div>
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
</div>
</article>
</section>

View file

@ -1,52 +1,52 @@
{% extends "base.twig" %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/libraries/plyr.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/libraries/plyr.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
{% block main %}
<main>
<main>
<section class="gallery-section">
<section class="gallery-section">
<article class="gallery">
<h2 class="gallery__title">{{ page.title }}</h2>
{% if page.text.isNotEmpty %}
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
{% endif %}
{% if page.files.template("artwork").isNotEmpty %}
{% set artworks = page.files.template("artwork").sortBy('sort') %}
{% for artwork in artworks %}
<figure class="gallery__artwork">
{% if artwork.type == 'video' %}
{% if artwork.poster is not empty %}
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% else %}
<video class="gallery__video" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% endif %}
{% endif %}
{% if artwork.type == 'image' %}
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
{% endif %}
{% if artwork.caption %}
<figcaption>{{ artwork.caption }}</figcaption>
{% endif %}
</figure>
{% endfor %}
{% endif %}
</article>
<article class="gallery">
<h2 class="gallery__title">{{ page.title }}</h2>
{% if page.text.isNotEmpty %}
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
{% endif %}
{% if page.files.template("artwork").isNotEmpty %}
{% set artworks = page.files.template("artwork").sortBy('sort') %}
{% for artwork in artworks %}
<figure class="gallery__artwork">
{% if artwork.type == 'video' %}
{% if artwork.poster is not empty %}
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% else %}
<video class="gallery__video" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% endif %}
{% endif %}
{% if artwork.type == 'image' %}
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
{% endif %}
{% if artwork.caption %}
<figcaption>{{ artwork.caption }}</figcaption>
{% endif %}
</figure>
{% endfor %}
{% endif %}
</article>
</section>
</section>
</main>
</main>
{% endblock %}
{% block scripts %}
<script src="{{ asset('assets/libraries/plyr.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('assets/libraries/plyr.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}

View file

@ -1,35 +1,35 @@
{% extends "base.twig" %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
{% block main %}
<main>
<main>
<section class="home-section" aria-hidden="true">
<section class="home-section" aria-hidden="true">
<div class="home">
<nav class="home__nav" aria-label="Menu">
{% set navItemNo = 1 %}
{% for gallery in pages.template('gallery') %}
<div class="home__nav-item-{{ navItemNo }}">
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
</div>
{% set navItemNo = navItemNo + 1 %}
{% endfor %}
<div class="home__nav-image" aria-hidden="true">
<img src="{{ page.images.template("image").first.url }}" srcset="{{ page.images.template("image").first.srcset() }}" alt="{{ page.images.template("image").first.alt_text }}">
</div>
</nav>
</div>
<div class="home">
<nav class="home__nav" aria-label="Menu">
{% set navItemNo = 1 %}
{% for gallery in pages.template('gallery') %}
<div class="home__nav-item-{{ navItemNo }}">
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
</div>
{% set navItemNo = navItemNo + 1 %}
{% endfor %}
<div class="home__nav-image" aria-hidden="true">
<img src="{{ page.images.template("image").first.url }}" srcset="{{ page.images.template("image").first.srcset() }}" alt="{{ page.images.template("image").first.alt_text }}">
</div>
</nav>
</div>
</section>
</section>
</main>
</main>
{% endblock %}
{% block scripts %}
<script src="{{ asset('assets/libraries/circletype.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('assets/libraries/circletype.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}