|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
# Créer un site web avec Hugo
|
|
|
|
|
|
|
|
|
|
!!! important "**Dans ce tutoriel, vous devez remplacer `<name-of-project>`, par le nom de votre site, ex: info2000**)"
|
|
|
|
|
!!! important "**Dans ce tutoriel, vous devez remplacer `<name-of-project>`, par le nom de votre site (ex: info2000)**"
|
|
|
|
|
|
|
|
|
|
## Étape 1: Construire le site
|
|
|
|
|
|
|
|
|
@ -72,45 +72,41 @@ Dans le dossier `layouts` on créé l'arborescence suivante:
|
|
|
|
|
??? note "**layouts/index.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{{define "main"}}
|
|
|
|
|
{{ partial "hero.html" }}
|
|
|
|
|
{{end}}
|
|
|
|
|
{\{define "main"}}
|
|
|
|
|
{\{ partial "hero.html" }}
|
|
|
|
|
{\{end}}
|
|
|
|
|
```
|
|
|
|
|
=== "Explication"
|
|
|
|
|
Il s'agit d'un template spécifique à la page d'accueil.
|
|
|
|
|
On appelle le template `layouts/default/baseof.html` avec la directive `{% raw %} {{define main}} {% endraw %}`.
|
|
|
|
|
On appelle le template `layouts/default/baseof.html` avec la directive `{\{define main}}`.
|
|
|
|
|
On appelle aussi `partials/hero.html`, qui est en quelque sort le slogan de bannière du site.
|
|
|
|
|
|
|
|
|
|
??? note "**layouts/partials/hero.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{% raw %}
|
|
|
|
|
<main class="hero"
|
|
|
|
|
<main class="hero">
|
|
|
|
|
<div class="hero__caption" >
|
|
|
|
|
{{ .Content }}
|
|
|
|
|
{\{ .Content }}
|
|
|
|
|
</div>
|
|
|
|
|
</main>
|
|
|
|
|
{% endraw %}
|
|
|
|
|
```
|
|
|
|
|
=== "Explication"
|
|
|
|
|
La directive `{% raw %} {{ .Content }} {% endraw %}` récupère le contenu de `content/_index.md` après les balises de l'en-tête Toml.
|
|
|
|
|
La directive `{\{ .Content }}` récupère le contenu de `content/_index.md` après les balises de l'en-tête Toml.
|
|
|
|
|
|
|
|
|
|
??? note "**layouts/default/baseof.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{% raw %}
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
{{- partial "head.html" . -}}
|
|
|
|
|
{\{- partial "head.html" . -}}
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
{{- partial "header.html" . -}}
|
|
|
|
|
{{- block "main" . }}{{- end }}
|
|
|
|
|
{{- partial "footer.html" . -}}
|
|
|
|
|
{\{- partial "header.html" . -}}
|
|
|
|
|
{\{- block "main" . }}{\{- end }}
|
|
|
|
|
{\{- partial "footer.html" . -}}
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|
|
|
|
|
{% endraw %}
|
|
|
|
|
```
|
|
|
|
|
=== "Explication"
|
|
|
|
|
On appelle le partial `head.html`, puis on créé le `body` avec les partials `header.html` et `footer.html` .
|
|
|
|
@ -119,20 +115,18 @@ Dans le dossier `layouts` on créé l'arborescence suivante:
|
|
|
|
|
??? note "**layouts/partials/head.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{% raw %}
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
|
|
|
<meta name="robots" content="index, follow" />
|
|
|
|
|
<title>{{ $.Site.Title }} - {{ .Title }}</title>
|
|
|
|
|
<link rel="icon" href="{{ $.Site.BaseURL }}{{ $.Site.Params.favicon }}" />
|
|
|
|
|
<meta name="description" content="{{ $.Site.Params.description }}" />
|
|
|
|
|
<title>{\{ $.Site.Title }} - {\{ .Title }}</title>
|
|
|
|
|
<link rel="icon" href="{\{ $.Site.BaseURL }}{\{ $.Site.Params.favicon }}" />
|
|
|
|
|
<meta name="description" content="{\{ $.Site.Params.description }}" />
|
|
|
|
|
|
|
|
|
|
{{ hugo.Generator }}
|
|
|
|
|
{\{ hugo.Generator }}
|
|
|
|
|
<!-- CSS -->
|
|
|
|
|
{{ partial "styles.html" . }}
|
|
|
|
|
{\{ partial "styles.html" . }}
|
|
|
|
|
</head>
|
|
|
|
|
{% endraw %}
|
|
|
|
|
```
|
|
|
|
|
=== "Explication"
|
|
|
|
|
C'est ici qu'on placera notamment les informations de référencement **SEO**.
|
|
|
|
@ -143,37 +137,48 @@ Dans le dossier `layouts` on créé l'arborescence suivante:
|
|
|
|
|
??? note "**layouts/partials/header.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{% raw %}
|
|
|
|
|
<header class="header">
|
|
|
|
|
<div class="header__title">
|
|
|
|
|
<a href="{{ "/" | relLangURL }}" class="header__title__link" alt="Home">
|
|
|
|
|
{{ if $.Site.Params.logo }}
|
|
|
|
|
<img src="{{ $.Site.BaseURL }}{{ $.Site.Params.logo }}" class="header__title__logo" alt="{{ $.Site.Title }}">
|
|
|
|
|
{{ else }}
|
|
|
|
|
{{ $.Site.Title }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
<a href="{\{ "/" | relLangURL }}" class="header__title__link" alt="Home">
|
|
|
|
|
{\{ if $.Site.Params.logo }}
|
|
|
|
|
<img src="{\{ $.Site.BaseURL }}{\{ $.Site.Params.logo }}" class="header__title__logo" alt="{\{ $.Site.Title }}">
|
|
|
|
|
{\{ else }}
|
|
|
|
|
{\{ $.Site.Title }}
|
|
|
|
|
{\{ end }}
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
{% endraw %}
|
|
|
|
|
```
|
|
|
|
|
=== "Explication"
|
|
|
|
|
Ici des classes CSS sont appellées (`header`, `header__title`, etc.).
|
|
|
|
|
Elles doivent être définies dans le fichier `assets/css/style.css`
|
|
|
|
|
|
|
|
|
|
??? note "**layouts/partials/footer.html**"
|
|
|
|
|
```
|
|
|
|
|
<div class="container content">
|
|
|
|
|
<footer>
|
|
|
|
|
<div>
|
|
|
|
|
<p class="right credit">
|
|
|
|
|
Fancy footer here. Link to <a href="/">Home Page</a>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Le CSS
|
|
|
|
|
|
|
|
|
|
??? note "**layouts/partials/styles.html**"
|
|
|
|
|
=== "Contenu"
|
|
|
|
|
```
|
|
|
|
|
{% raw %}
|
|
|
|
|
{{ $style := resources.Get "css/style.css" }}
|
|
|
|
|
{{ $base := resources.Get "css/base.css" }}
|
|
|
|
|
{{ $bundle := $style $base | resources.Concat "css/bundle.css" }}
|
|
|
|
|
{{ $css := $bundle | resources.Minify }}
|
|
|
|
|
<link rel="stylesheet" href="{{ $css.Permalink }}">
|
|
|
|
|
{% endraw %}
|
|
|
|
|
{\{ $style := resources.Get "css/style.css" }}
|
|
|
|
|
{\{ $base := resources.Get "css/base.css" }}
|
|
|
|
|
{\{ $bundle := slice $style $base | resources.Concat "css/bundle.css" }}
|
|
|
|
|
{\{ $css := $bundle | resources.Minify }}
|
|
|
|
|
<link rel="stylesheet" href="{\{ $css.Permalink }}">
|
|
|
|
|
=== "Explication"
|
|
|
|
|
On appelle les fichiers `style.css` et `base.css` dans `assets/css/` et on les minimise, après les avoir concaténés.
|
|
|
|
|
|
|
|
|
@ -249,6 +254,15 @@ Dans le dossier `layouts` on créé l'arborescence suivante:
|
|
|
|
|
margin-top: 0.45rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* FOOTER */
|
|
|
|
|
.right {
|
|
|
|
|
float: right;
|
|
|
|
|
margin-left: 1rem;
|
|
|
|
|
}
|
|
|
|
|
.credit {
|
|
|
|
|
padding-top: 3rem;
|
|
|
|
|
font-size: small;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
??? note "**assets/css/base.css**"
|
|
|
|
|