Table of Contents
사용하던 github pages 기반 툴을 jekyll
에서 hugo
로 전환해보았다. 아래는 그 과정에서 느낀 점을 정리해보았다.
전환하면서 느낀 점
hugo
전환한 이유
jekyll
에서 hugo
로 전환한 이유는 아래와 같다.
hugo
가 반응속도가 훨~~씬 빠르다는 것. (jekyll 은 2 s, hugo 는 70ms )- theme 를 커스터마이징 하기가 손쉽다는 것.
- 매뉴얼이 잘 구성되어 있고, 심지어 영상으로 소개해준다는 것.
- 그리고 무엇보다
jekyll-paginate v2
를 쓰다가github page
에서 동작을 안해서.. (사실 이게 제일 크다)
hugo
에서 불편한 점
jekyll
에서는 plugin 으로 구현 가능한 것들이 직접 핸들링 해줘야 하는 부분들이 있었다.github page
가 native 로 연결되지 않아서 별도로 관리해주어야 한다는 점.- 템플릿 문법이 상대적으로 낯설어서 적응하는데 애를 먹었다. (RTFM)
전환 작업하면서 알아야 했던 것들
-
theme 는 별도로 구성하는게 편하다
매뉴얼에는 별도의 theme 프로젝트를 git submodule 로 관리하는걸 안내하고 있다. 내 경우는 아예 새로 만들었다.
-
기본 템플릿
hugo
에는 list 템플릿, single 템플릿 두 가지가 기본 템플릿이다. 테마를 구성한다면 요 차이를 명확하게 구분하자. -
pagination 은 jekyll 이 더 편해보인다.
-
seo, tag archive 같은 기능은 별도로 custom page 를 만들어서 쓰는게 편했다.
-
shortcode 라는 별도의 custom 단축기능을 만들 수 있다. 내 경우는 CSS class 와 맞추기 위해서 아래처럼 구성해서 썼다.
<figure class="full-width caption" {{ with .Get "border" }} style="border: 1px solid #ededed;" {{ end }}> <img src="{{ .Get "src" }}" alt="{{ .Get "alt" }}"/> {{ with .Get "caption" }} <figcaption class="caption-text">{{ . }}</figcaption> {{ end }} </figure>
-
related post 를 구성하는 건 옵션이 많으니 입맛에 맞게 잘 맞춰야 한다.
전체적인 소감
hugo
는 github page
를 직접 지원하지 않아서 별도의 build & push 를 해줘야 하지만 이건 크게 문제되지 않는 것 같다. 오히려 빨라진 반응 속도가 더 쾌적한 느낌이 들고,
빠른 업데이트와 함께 매뉴얼이 잘 마련되어 있다는 점이 긍정적이라고 느껴진다. 찔끔찔끔 마이그레이션 하느라 시간은 2주 정도 걸렸는데 하고나니 잘 했다는 느낌이다. 이제는 테마는 그만좀 고치고 글을 좀 더 써야 할텐데..
comments powered by Disqus
FEATURED TAGS
accesscontrol
alpine-linux
ansible
ansible-tower
apache2.4
architecture
argocd
aws
awx
backoffice
beautiful-goodbye
begining-docker
benchmark
blockhound
blocking-code
blog
book
brew-cask
build-cache
collaboration
communication
composer
confluence
cronjob
curl
customizing
customlog
data.sql
database
developer
difference
docker
docker-desktop
dockerize
dos-attack
eks
elasticsearch
empty-string
environment-to-do-well
errorlogformat
event-driven
experience
file-upload
filebeat
fluentd
forwarded-option
fuse.js
golang
graceful-deploy
happy-new-year
haproxy
haproxy-1.8
haproxy-acl-logging
haproxy-custom-variable-logging
haproxy-metric
haproxy-reload-fail
haproxy-stat
heap-memory
how-do-i-work
hugo
index-alias
install
installation
instance-type
inverted-index
istio
iterm
java
jdk-21
jekyll
jekyll-to-hugo
jetbrains
json
k8s
k8s-api
kmooc
kubernetes
leadership
learning-in-2019
lets-encrypt
letsencrypt
limit_req_zone
logstash
m1-macbook-pro
macro
macro-key-mapping
mapping
match
match_phrase
maven
microservice-설계-및-구현
migration
mm
multi-datasource
mysql
nginx
nginx-ingress
nginx-regexp
ngram
null
openjdk
partial-matching
phpstorm
poeaa
query-dsl
rate-limit
rate-litmiting
rds
reindex
rss-template
seamless-reload
search-on-hugo
service-account-role
sidebar-search
speed-up
speedup
spring
spring-boot
spring-camp
spring-camp-2023
spring-event
ssh
struct
study
system-manager
systemd-reload
template
term
throughput
timezone
tips
traffic-management
ulid
unused-plugins
uuid
ux-consideration
virtual-thread
vm-options
webflux
wildcard
zero-downtime
만들면서-배우는-클린-아키텍처
시작하세요-도커
엔터프라이즈-애플리케이션-아키텍처-패턴
쿠버네티스-시작하기