Framework pour créer son site web en 2 minutes, et en Markdown!
https://www.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
222 lines
3.8 KiB
222 lines
3.8 KiB
7 months ago
|
# ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&width=435&height=70&lines=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
|