Relearn 커스터마이징

사이드바 메뉴 정렬하기

모든 설정이 끝났을 거라고 생각하고 이 글을 작성했더니 좌측 사이드바 메뉴에서 최신순으로 글이 나열된 것을 발견했다.

오래된순으로 나열되기를 원해 방법을 찾기 시작했다. 물론, 직접 매번 weight를 지정하면 원하는대로 정렬이 가능하지만, 그건 너무 번거롭다.

참고문서

이 테마가 지원하는 정렬 방법은 여기에 나와있다.

이 설정은 한 가지 값만 받기 때문에 2가지 기준을 적용하는 유일한 값은 default였다. 하지만 Hugo의 default는 동일 weight에 대해 최신순으로 정렬한다.

원하는 대로 정렬하는 기능을 추가하기 위해서는 기본 레이아웃을 덮어써야 했다.

우선, 최상위 정렬 설정명은 params.ordersectionsby이므로 Relearn 레포지토리에서 검색을 했다.

발견된 파일은 단 1개: layouts/partials/_relearn/pages.gotmpl

이 파일을 동일한 경로에 저장한 다음, 아래의 내용을 추가했다. 이 블로그 예시
참고자료

@@ -23,8 +23,14 @@
 {{- else if eq $by "length" }}
        {{- $pages = $page.Pages.ByLength }}
 {{- else if eq $by "default" }}
        {{- $pages = $page.Pages }}
+{{- else if eq $by "weighted-old"}}                        # 새로운 정렬 옵션명: "weighted-old"
+       {{- range $page.Pages.GroupBy "Weight" }}
+               {{- range .Pages.ByDate}}
+                       {{- $pages = $pages | append . }}
+               {{ end }}
+       {{ end }}
 {{- else }}
        {{- warnf "%q: Unknown pages sort order '%s'" $page.File.Filename }}
        {{- $pages = $page.Pages }}
 {{- end }}
경로주의

layouts/partials/pages.gotmpl에 만들면 동작하지 않고 빌드 오류가 발생한다.

반드시 layouts/partials/_relearn/pages.gotmpl에 변경된 레이아웃 파일을 저장해야 한다.

미지원

공식문서에서 안전하게 변경해도 되는 파일 목록에 포함되어 있지 않으므로 업데이트 시 주의해야 하며 이 테마의 버전을 직접 지정하는 것을 추천한다.

go.sum 삭제 이후 hugo mod get -u github.com/McShelby/hugo-theme-relearn@<release tag> 명령어를 실행해 버전을 지정한다.

예: hugo mod get -u github.com/McShelby/hugo-theme-relearn@7.1.1

Word wrapping

본문에서의 단어 단위 word wrap

기본 설정에서는 한글 본문은 글자단위로 word wrap이 이루어진다. 이걸 단어 단위로 변경하려면 아래의 CSS를 추가해줘야 한다.

<style>
    div {
        word-break: keep-all;
    }
</style>

코드 블록에서의 word wrap 해제하기

기본 설정에서는 코드 블록에서 word wrap이 활성화되어 있다. 줄 번호가 꺼져있는 경우(=기본설정)에는 코드를 잘못 이해할 수도 있다.

설정은 hugo.toml에서 꺼주면 된다.

[params]
  highlightWrap = false

본문 폭 변경하기

글 본문은 기본으로 최대 폭을 제한하고 있어 큰 모니터에서는 양 옆에 공간이 남는다. 이를 변경하려면 CSS를 추가하면 된다.
참고자료

<style>
    :root {
        --MAIN-WIDTH-MAX: 85rem;
    }
</style>

h2 글꼴 변경하기

Relearn 테마에서 페이지의 제목은 h1과 같은 글꼴을 공유한다. 가운데 정렬이라 글의 흐름을 깨기 때문에 글 본문에서는 h2부터 쓰는데 h3 이하랑 크기만 달라 구분이 잘 안 되는 것이 불만이었다. 그래서 밑줄을 추가했다.

<style>
    h2 {
        text-decoration: underline;
    }
</style>