[Hugo] Learn 주제에 디렉터리를 숨기는 방법
TL; DR
front-matter
에 지정disableToc = true
1. 발단
개인이 개발한 강화학습용cpprb, 이용Hugo으로 프로젝트 사이트를 만들고 있다.
한 번은 페이지 위의 내비게이션에 신비로운 영역이 표시되어 있다는 것을 갑자기 깨달았다.
왼쪽 상단에 불가사의한 영역이 하나 있다
사용된 영역테마 프레젠테이션 페이지을 살펴보면 마우스를 통해 디렉토리(Table of Contents)를 과도하게 표시하는 영역입니다.
왜 잘 나타나지 않았는지 모르겠고, 각 페이지의 상부에 디렉터리가 필요하며, 각 페이지의 정보량이 많지 않기 때문에 디렉터리 자체를 더 이상 표시하지 않기로 결정했다.
2. 숨기는 법
나중에야 알아차렸어...
Learn 주제에 대해 지정하면
disableToc = true
좋겠다고 적혀 있습니다.https://learn.netlify.app/en/cont/pages/#front-matter-configuration
Hugo는 주제에 따라 사용 가능한 기능과 설정 방법도 다르기 때문에 실제 소스 코드 조사 행위를 보는 방법을 기재했다.
Hugo의 주제는
layouts/partials
아래 페이지의 구성 요소를 템플릿으로 사용하는 것입니다.카탈로그를 관장하는 것toc.html일 수도 있으니까 들여다봤죠.
layouts/partials/toc.html
<div class="progress">
<div class="wrapper">
{{ .TableOfContents }}
</div>
</div>
이 구성 요소는 조건 없이 디렉터리를 표시합니다.{{ .TableOfContents }}
는 페이지 내용 디렉토리를 표시하는 Hugo의 표준 기능입니다.호출
toc.html
의 부분을 찾아 엿보기header.html.layouts/partials/header.> (82행-84행)
{{ if $toc }}
{{ partial "toc.html" . }}
{{ end }}
이것은 $toc
변수가 실시간 호출 toc.html
이기 때문에 목적 디렉터리의 표시와 숨겨진 전환을 전환할 수 있습니다.$toc
의 정의를 찾아보면 같은 파일63행에 있습니다.layouts/partials/header.> (63행)
{{$toc := (and (not .Params.disableToc) (not .Params.chapter))}}
알겠습니다. .Params.disableToc
진짜로 지정하면 됩니다.약간 헷갈리기 쉬워요.
config.toml
등 설정전체 사이트 설정은.Site.Params
,.Params
은 개별 페이지의fronnt-matter가 설정한 값입니다.따라서 개별 페이지의markedown 파일의front-matter에 지정
disableToc = true
하면 목적을 달성할 수 있습니다.페이지md
+++
title = "hogehoge"
author = ["name"]
+ disableToc = true
+++
以下、普通のmarkdownドキュメント
3. 혜택
markdown 파일을 직접 편집하면 이상으로 완성됩니다. 저는 README의 내용을 사이트에 옮기고 싶습니다. 그리고 매번 front-matter를 쓰는 것이 번거롭기 때문에 Emacs Org Mode를 모아 놓은 파일ox-hugo을 썼고 노드마다markdown 파일로 출력했습니다.
내보낼 때front-matter의 지정은 다음 페이지에 기록됩니다.
#+hugo_custom_front_matter: :disableToc true
문서에서 이 속성의 지정이front-matter를 덮어쓰는지 기본 설정에 추가되었는지 판단할 수 없지만 시도한 후에 추가되기 때문에 상기 설정만으로 디렉터리를 숨길 수 있습니다.
Reference
이 문제에 관하여([Hugo] Learn 주제에 디렉터리를 숨기는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ymd_h/articles/5d98709ebec576텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)