# [![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&width=435&height=70&lines=HUGO-CV)](https://git.io/typing-svg)

## 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