|
|
|
# ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&width=435&height=70&lines=HUGO-SITE)
|
|
|
|
|
|
|
|
[![Build Status](https://drone.gregandev.fr/api/badges/gregandev/hugo-site/status.svg)](https://drone.gregandev.fr/gregandev/hugo-site)
|
|
|
|
|
|
|
|
## INSTALLATION :hammer:
|
|
|
|
|
|
|
|
- Via APT:
|
|
|
|
```bash
|
|
|
|
sudo apt install hugo
|
|
|
|
```
|
|
|
|
|
|
|
|
- Via la ligne de commande:
|
|
|
|
```bash
|
|
|
|
cd /tmp
|
|
|
|
curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \
|
|
|
|
| grep browser_download_url \
|
|
|
|
| grep linux-amd64.deb \
|
|
|
|
| grep extended \
|
|
|
|
| cut -d '"' -f 4 \
|
|
|
|
| wget -i -
|
|
|
|
|
|
|
|
sudo dpkg -i hugo*_linux-amd64.deb
|
|
|
|
rm -rf hugo*_linux-amd64.deb
|
|
|
|
```
|
|
|
|
|
|
|
|
## UTILISATION
|
|
|
|
|
|
|
|
### CREATION DU SITE :page_with_curl:
|
|
|
|
|
|
|
|
- Vérifier l'installation:
|
|
|
|
```bash
|
|
|
|
hugo version
|
|
|
|
```
|
|
|
|
|
|
|
|
- Créer la structure du site:
|
|
|
|
```bash
|
|
|
|
hugo new site mon-site
|
|
|
|
```
|
|
|
|
|
|
|
|
- Créer du contenu:
|
|
|
|
```bash
|
|
|
|
cd mon-site
|
|
|
|
hugo new posts/mon-post.md
|
|
|
|
nano posts/mon-post.md
|
|
|
|
```
|
|
|
|
|
|
|
|
Ajouter des medias:
|
|
|
|
- images:
|
|
|
|
```bash
|
|
|
|
## Image via link:
|
|
|
|
![](https://pbs.twimg.com/media/DGKRMoPXcAIyA8y.jpg)
|
|
|
|
|
|
|
|
------
|
|
|
|
|
|
|
|
## Image via url locale (/static):
|
|
|
|
![](/images/test/1.png)
|
|
|
|
```
|
|
|
|
- videos:
|
|
|
|
```bash
|
|
|
|
## Vidéo Youtube:
|
|
|
|
{{< youtube ZSWzPI4BqvA >}}
|
|
|
|
```
|
|
|
|
|
|
|
|
### AJOUT D'UN THEME :art:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git init
|
|
|
|
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
|
|
|
|
echo theme = \"ananke\" >> config.toml
|
|
|
|
```
|
|
|
|
|
|
|
|
Les thèmes HUGO:
|
|
|
|
- https://jamstackthemes.dev/ssg/hugo/
|
|
|
|
- https://hugothemesfree.com/
|
|
|
|
- https://master--hugothemes.netlify.app/
|
|
|
|
|
|
|
|
### CONFIGURATION DU CONFIG.TOML :wrench:
|
|
|
|
|
|
|
|
- Configuration de base
|
|
|
|
```bash
|
|
|
|
# Configuration de l'adresse, titre (onglet) et des chemins vers les contenus
|
|
|
|
baseurl = "/"
|
|
|
|
contentdir = "content"
|
|
|
|
layoutdir = "layouts"
|
|
|
|
publishdir = "public"
|
|
|
|
title = "Mon super site!!!"
|
|
|
|
canonifyurls = true
|
|
|
|
|
|
|
|
# ACCUEIL
|
|
|
|
[Params]
|
|
|
|
subtitle = "Portfolio made in HUGO !"
|
|
|
|
logo = "img/logo2.png"
|
|
|
|
favicon = "img/favicon.ico"
|
|
|
|
dateFormat = "January 2, 2006"
|
|
|
|
commit = false
|
|
|
|
rss = false
|
|
|
|
comments = true
|
|
|
|
```
|
|
|
|
|
|
|
|
- Création d'un menu
|
|
|
|
```bash
|
|
|
|
[[menu.main]]
|
|
|
|
name = "Post 1"
|
|
|
|
url = "/post/post1"
|
|
|
|
weight = 1
|
|
|
|
|
|
|
|
[[menu.main]]
|
|
|
|
name = "A propos"
|
|
|
|
url = "/page/about"
|
|
|
|
weight = 2
|
|
|
|
|
|
|
|
[[menu.main]]
|
|
|
|
name = "Projets"
|
|
|
|
url = "/page/about"
|
|
|
|
weight = 3
|
|
|
|
```
|
|
|
|
|
|
|
|
- Création d'un sous menu
|
|
|
|
```bash
|
|
|
|
[[menu.main]]
|
|
|
|
parent = "Projets"
|
|
|
|
name = "Projet 1"
|
|
|
|
url = "/projets/projet1"
|
|
|
|
weight = 1
|
|
|
|
|
|
|
|
[[menu.main]]
|
|
|
|
parent = "Projets"
|
|
|
|
name = "Projet 2"
|
|
|
|
url = "/projets/projet2"
|
|
|
|
weight = 2
|
|
|
|
```
|
|
|
|
|
|
|
|
:warning: Créer les dossiers et les fichiers correspondant. Les urls ne prennent pas l'extension .md du fichier
|
|
|
|
|
|
|
|
- Création des icônes reseaux sociaux
|
|
|
|
```bash
|
|
|
|
[Author]
|
|
|
|
name = ""
|
|
|
|
email = ""
|
|
|
|
gitlab = ""
|
|
|
|
github = ""
|
|
|
|
twitter = ""
|
|
|
|
reddit = ""
|
|
|
|
linkedin = ""
|
|
|
|
```
|
|
|
|
|
|
|
|
### LANCER LE SERVEUR :rocket:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# L'option -D est pour servir les fichiers en Draft = true (non publiés)
|
|
|
|
hugo server -D
|
|
|
|
```
|
|
|
|
|
|
|
|
> Visiter http://localhost:1313
|
|
|
|
|
|
|
|
|
|
|
|
### BUILDER LE SITE :construction:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
hugo
|
|
|
|
```
|
|
|
|
|
|
|
|
> Les fichiers générés sont dans le dossier public
|
|
|
|
|
|
|
|
## DEPLOIEMENT :checkered_flag:
|
|
|
|
|
|
|
|
### VIA GITLAB AUTO DEVOPS
|
|
|
|
|
|
|
|
Compléter le config.toml comme ceci:
|
|
|
|
```bash
|
|
|
|
baseURL = "https://gitlab_user.gitlab.io/"
|
|
|
|
```
|
|
|
|
|
|
|
|
Compléter le fichier .gitlab-ci.yml comme ceci:
|
|
|
|
```bash
|
|
|
|
image: registry.gitlab.com/pages/hugo/hugo_extended:latest
|
|
|
|
|
|
|
|
variables:
|
|
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
|
|
|
|
|
|
pages:
|
|
|
|
script:
|
|
|
|
- hugo
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
|
|
|
only:
|
|
|
|
- main
|
|
|
|
```
|
|
|
|
|
|
|
|
### VIA DOCKER :whale:
|
|
|
|
|
|
|
|
- Créer une Dockerfile contenant:
|
|
|
|
|
|
|
|
```Dockerfile
|
|
|
|
FROM nginx:alpine
|
|
|
|
|
|
|
|
COPY ./public/* /usr/share/nginx/html
|
|
|
|
COPY ./docs/nginx-exemple.conf /etc/nginx/conf.d/default.conf
|
|
|
|
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker build -t hugo-site:1.0 .
|
|
|
|
docker run -d -p 8989:80 hugo-site:1.0
|
|
|
|
```
|
|
|
|
|
|
|
|
## DOCUMENTATION :books:
|
|
|
|
|
|
|
|
[DOC DU GARAGE](https://docs.legaragenumerique.xyz/divers/devops/hugo/)
|
|
|
|
[DOC OFFICIELLE](https://gohugo.io/documentation/)
|
|
|
|
[DOC MARKDOWN](https://www.markdownguide.org/basic-syntax/)
|
|
|
|
|
|
|
|
## CI/CD :repeat:
|
|
|
|
|
|
|
|
- WEB2PDF.py
|
|
|
|
- .drone.yml
|
|
|
|
|
|
|
|
## TO DO :bookmark_tabs:
|
|
|
|
|
|
|
|
- [ ] CI/CD schema
|