16 Şubat 2019 Cumartesi

[Go]Hugo nedir? Nasıl kullanılır?

  Ahmet Şimşek       16 Şubat 2019 Cumartesi


Hugo nedir?

Hugo Go programlama dili ile geliştirilmiş statik siteler oluşturmayı sağlayan bir araç. Alternatiflerine göre sunduğu avantajlar şunlar;
  • Hugo hız konusunda oldukça iyi. https://gohugo.io/showcase/linode/ sayfasından Hugo kullanılan siteleri inceleyebilirsiniz.
  • Çok sayıda alternatif tema var ve tema kullanımı oldukça kolay. Mevcut temaları şu sayfadan inceleyebilirsiniz. https://themes.gohugo.io/
  • Cross platform desteği ile Windows, Mac ve Linux farketmeksizin her işletim sisteminde çalışma ortamını hazırlamak mümkün.
  • Alternatif deployment imkanları sunuyor. https://gohugo.io/hosting-and-deployment/
  • Mevcut LiveReload desteği ile yapılan değişiklikleri tarayıcı üzerinde otomatik sayfa yenileme ile anında görmek mümkün. 
  • Herşeyi yapabileceğiniz bir terminal paketi var. Site sunucusunu başlatmak yeni bir içerik oluşturmak gibi şeyleri terminalden kendi sunduğu paketi ile hızlı şekilde yapabilirsiniz.
  • Development ve Production ayrımını yapmak terminal aracı ile oldukça kolay. Örneğin LiveReload aracını development aşamasında açık ve production aşamasında kapalı hale getirebilirsiniz.
  • Tüm konfigürasyonları .toml, .yaml ya da json dosyası üzerinden yapabilirsiniz.

Kurulum

Aşağıdaki sayfadan sisteminize uygun kurulum adımlarını görebilirsiniz.

https://gohugo.io/getting-started/installing/

Bu yazıda Linux(Ubuntu/Debian) için iki farklı kurulumu göreceğiz.

1. Tarball ile kurulum

Dosyaları çıkartacağınız bir klasör oluşturalım ve dosya dizinine girelim.

mkdir -p ~/bin
cd ~/bin

tar.gz dosyasını indirelim ve klasöre çıkartalım.

wget https://github.com/gohugoio/hugo/releases/download/v0.54.0/hugo_0.54.0_Linux-64bit.tar.gz --no-check-certificate
tar -xvzf hugo_0.54.0_Linux-64bit.tar.gz

Klasöre üç adet dosya çıkarılmış olacak.

LICENSE
README.md
hugo

./hugo version komutunu çalıştırdığınızda aşağıdaki yazıyı göreceksiniz. İndirdiğiniz versiyona göre farklı bir versiyon numarası ve tarihi görebilirsiniz.

Hugo Static Site Generator v0.54.0-B1A82C61 linux/amd64 BuildDate: 2019-02-01T09:40:34Z

Şimdi .bashrc dosyasına aşağıdaki eklemeyi yaparak hugo komutunu klasör dışı heryerden çağırmayı ayarlayalım.
export PATH=$PATH:$HOME/bin
source .bashrc yaptığınızda artık herhangi bir klasörde hugo version yazdığınızda yukarıda yazan versiyon bilgilerini görebilirsiniz.

2. dpkg ile kurulum

Önce .deb dosyasını indirelim.
wget https://github.com/gohugoio/hugo/releases/download/v0.54.0/hugo_0.54.0_Linux-64bit.deb --no-check-certificate
Ve sonrasında kurulumı yapalım.
dpkg -i hugo_0.54.0_Linux-64bit.deb
hugo version komutunu çalıştırdığınızda versiyon bilgilerini görüyorsanız kurulum başarılı şekilde tamamlanmış demektir.

İlk sitemizi oluşturalım

blog kısmına oluşturmak istediğiniz sitenin dosya adını yazabilirsiniz.
hugo new site blog
git init ile git kurulumu yapalım.

git init

ve themes klasörü içerisine bir temayı submodule olarak ekleyelim.

git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke

ve tema adını config.toml dosyasında belirtelim.

echo 'theme = "ananke"' >> config.toml

hugo server -D 

komutunu çalıştırdığınızda aşağıdaki loglarla karşılaşacaksınız.


http://localhost:1313 adresini açarsanız aşağıdaki sayfayla karşılaşacaksınız.


Farklı bir tema eklemek git submodule add ile themes klasörü içerisine temayı ekleyebilirsiniz. Temayı değiştirmek için config.toml theme değerini değiştirmeniz yeterli.

Yeni bir yazı oluşturmak

Yazılar content/posts klasörü içerisinde tutulur. Aşağıdaki komutla yeni bir yazı oluşturduğunuzda sayfa yenilenecek ve My First Post yazısının listlelendiğini göreceksiniz.
hugo new posts/my-first-post.md
Hugo'da yazıları html ve markdown formatı birlikte olacak şekilde yazabilirsiniz. markdown kullanımı hakkında detaylı bir listeyi aşağıda bulabilirsiniz.

https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet

Yazıları düzenlemek için content/posts dosyası içerisine oluşturulan dosyaları düzenlenemiz yeterli.

---
title: "My First Post"
date: 2019-02-16T18:18:14+03:00
draft: true
---

Yazı ile ilgili konfigürasyonları yazı dosyasının hemen en üstünde görebilirsiniz. Bir değişiklik yapmanız durumunda sayfa yenileme sonrası ekrana yansıyacaktır.

Hugo ile bir siteyi yayına almak

Aşağıdaki komutla livereload kapalı şekilde hugo sunucusunu başlatabilirsiniz. -b parametresi olarak yayınlamak istediğiniz domain adını girin.

hugo server --appendPort=false --disableLiveReload -b ahmet.wtf

pm2 ile yukarıdaki komutu sunucunuzda arkaplanda sürekli çalışır hale getirmek için start.sh isminde bir dosya oluşturun ve içerisine aşağıdaki şekilde komutunuzu ekleyin.
#!/bin/bash
hugo server --appendPort=false --disableLiveReload -b ahmet.wtf
Sonrasında
pm2 start start.sh --name blog 
komutu ile çalışır duruma getirebilirsiniz.

pm2 kurulumu için nvm kurulumu yazısına göz atabilirsiniz. Node.js ve npm kurulumu sonrasında aşağıdaki komutla pm2 kurulumu yapabilirsiniz.
npm i -g pm2
Sonraki yazıda görüşmek üzere.

logoblog

Thanks for reading [Go]Hugo nedir? Nasıl kullanılır?

Previous
« Prev Post

Hiç yorum yok:

Yorum Gönder