L’installation de Golang sur mon serveur étant enfin prête, je vais donc pouvoir m’amuser avec Hugo.
Hugo qu’est-ce que c’est ?
Hugo est un programme écrit en Go qui permet de créer rapidement des sites. Ceux-ci sont statiques et écrit en Markdown.
Voici une vidéos qui présente comment créer un site en 2 minutes, mais que l’on soit bien d’accord, il faut bien connaitre comment fonctionne l’outil. Votre premier site vous prendra un peu plus de temps. De plus la phase installation n’est pas indiqué dans cette vidéos.
Présentation :
Installation :
Après avoir vu cette présentation, je suis donc passé a la phase d’installation en suivant ce guide :
– Guide d’installation
Celui-ci est en soit simple, mais j’ai manqué l’info capital : Go 1.5+ Or ce n’était pas le cas … d’où mon précédent ticket sur l’installation de Go.
Au final voici les instructions que j’ai suivi pour faire l’installation complète :
# creating folder where go application will be
$ mkdir $HOME/go
# setting GOPATH environnement variable
$ echo 'export GOPATH=$HOME/go' >> $HOME/.zsh_local
# reloading current config
$ source ~/.zshrc
# getting Hugo application from sources
$ go get -u -v github.com/spf13/hugo
# editing PATH environnement variable to use new application
$ echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.zsh_local
# reloading current config
$ source ~/.zshrc
# testing Hugo
$ hugo version
Hugo Static Site Generator v0.17-DEV BuildDate: 2016-06-27T01:25:28+02:00
# Being Happy =)
Initialisation :
# creating new go project
$ hugo new site myWishlist
$ cd myWishlist
# create a welcome post
$ hugo new post/welcome.md
/home/scorfly/myWishlist/content/post/welcome.md created
Mon message d’accueil :
$ cat content/post/welcome.md +++ date = "2016-07-01T01:04:28+02:00" title = "Welcome" type = "welcome" +++ Je fait enfin mes premiers pas avec Hugo pour réaliser un blog / wishlist \o/ **Pourquoi un site wishlist ?** Dans un premier temps par ce qu'il me faut des projets divers et varier afin de tester les technologies qui ont la hype actuellement ! De plus je suis toujours "en galère" pour indiquer à mes proches ce que je souhaite à Noël ou à mon anniversaire ... et bien souvent les idées, je les ai une fois les fêtes passées ... Donc autan les noter :D ### J'organiserais les articles suivant différentes catégories : * [books] - les livres (genre j'ouvre les bouquins parfois) * [clothes] - les vêtements * [tools] - les objets * [others] - divers
Gestion du thème
Ensuite une liste de theme est disponible sur https://themes.gohugo.io/
J’ai pour ma part sélectionné Hugo Futur Imperfect
$ cd themes
$ git clone https://github.com/jpescador/hugo-future-imperfect.git
Pour le thème que j’ai sélectionné un exemple de fichier de configuration est disponible. J’ai donc copié celui-ci afin d’avoir une bonne base.
$ cd hugo-future-imperfect
$ cp exampleSite/config.toml > ../../config.toml
Après l’avoir personnalisé, voici mon fichier config.toml
baseurl = "http://wishlist.scorfly.ovh/"
languageCode = "en-us"
title = "My WishList - Scorfly"
theme = "hugo-future-imperfect"
preserveTaxonomyNames = true
paginate = 3
googleAnalytics = "UA-19965251-5"
publishdir = "public"
[params]
# Sets the meta tag description, usually reserved for the main page
description = "Wishlist de Scrofly"
# This will appear on the top left of the navigation bar
navbarTitle = "My Wishlist"
# Social media buttons that appear on the sidebar
socialAppearAtTop = true
socialAppearAtBottom = true
# set this to the section name if section is not post
viewMorePostLink = "/blog/"
# Optional Params
categoriesByCount = true
includeReadingTime = true
loadFavicon = false
faviconVersion = ""
# parms.intro will appear on the sidebar
# This is optional, but it's suggested to use
[params.intro]
header = "My Wishlist"
paragraph = ""
about = ""
# This will also appear on the sidebar.
# A width of less than 100px is recommended
# This is optional
[params.intro.pic]
src = "/img/main/logo.jpg"
circle = false
imperfect = true
width = ""
alt = "My WhisList"
# Adjust the amount of recent posts on the sidebar.
# This is optional. The default value 5 will be used
[params.postAmount]
sidebar = 2
# Set up your menu items in the navigation bar
# You can use identifier to prepend a font awesome icon to your text
[[menu.main]]
name = "Categories"
url = "/categories"
weight = 2
[[menu.main]]
name = "List"
url = "/blog"
identifier = "fa fa-newspaper-o"
weight = 1
# Insert your username and the icon will apear on the page as long as
# socialAppearAtTop or socialAppearAtBottom is set to true in the params area
# The social media icons will appear on the sidebar
[social]
github = "scorfly"
facebook = "scorfly"
twitter = "scorfly"
email = "scorfly@gmail.com"
linkedin = "Scorfly"
Gestion de la configuration nginx
$ cat /etc/nginx/sites-enabled/wishlist
server {
listen 80;
server_name www.wishlist.scorfly.ovh wishlist.scorfly.ovh;
access_log /var/log/nginx/default.access.wishlist.log;
# hide nginx version on error page
server_tokens off;
location / {
# Be sur this folder is created
root /home/scorfly/myWishlist/public;
index index.html index.htm;
}
}
$ /etc/init.d/nginx restart
Avec goHugo, les modifications réalisé aux articles ne sont pas directement appliqué.
Pour que les modification soit appliqué, il faut relancer le programme hugo
Ceci recréera le site en statique suivant les fichiers qui ont été modifier. Il vous suiffit donc de vous placer dans le dossier de votre projet, puis de lancer hugo.
$ cd $HOME/myWishlit
$ hugo
Started building site
0 draft content
0 future content
0 expired content
2 pages created
0 non-page files copied
3 paginator pages created
0 tags created
1 categories created
in 82 ms
Voilà, c’est fini, il n’y a plus qu’à créer des articles !
Vous pouvez récupérer le début de mon dépôt sur :
– GitHub