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.
hugo-site/README.md

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