Hugo 템플릿 기초
Hugo용 Git 기반 CMS인 CloudCannon에서 제공했습니다.
Hugo 템플릿을 사용하면 페이지가 렌더링되는 방식을 제어할 수 있습니다. 변수를 사용하고, 배열을 반복하고, 조건을 확인하고, 함수를 실행할 수 있습니다. 사이트에서 페이지를 구축하는 데 도움이 되는 간단한 프로그래밍 언어라고 생각하세요. 레이아웃에 있는 중괄호
{{ }}
는 Hugo 템플릿입니다.서두란 무엇입니까?
머리말은 콘텐츠 파일 상단에 있는 메타데이터 스니펫입니다. 예를 들어 레이아웃을 설정하거나 현재 페이지가 초안임을 나타내는 일부 메타데이터는 Hugo 전용입니다. 다른 형식의 메타데이터는 예를 들어 페이지에서 사용할 영웅의 유형을 나타내거나 가장 좋아하는 5가지 음식 목록을 나타내는 등 사이트에 따라 다릅니다.
머리말은 콘텐츠 파일 상단에 작은YAML 스니펫 형식으로 제공됩니다. 인덱스 페이지와 정보 페이지 모두에서 다음과 같이 확인했습니다.
---
title: Home
---
별거 아닌 것 같지만 Hugo 템플릿을 사용하여 레이아웃에서 이 머리말을 참조할 수 있습니다.
Hugo 템플릿이란 무엇입니까?
Hugo는 레이아웃에서 템플릿 언어로 Go 템플릿을 사용합니다. 머리만 굴리면 쉽습니다. Hugo 땅의 많은 것들과 마찬가지로 때때로 말하는 것보다 보여주는 것이 더 쉽습니다.
Hugo 템플릿의 예
문자열 출력
<p>A Go template is a normal HTML page. When you want to execute a piece of
code, you can use double curly braces like this: {{ "Hello!" }}.</p>
머리말 출력
<!-- You can reference a variable from your front matter in a layout with .Params. For example, you
could output the title on your pages with: -->
<title>{{ .Params.title }}</title>
사이트 구성의 출력
<!-- Sometimes you'll want to set a variable globally in your config.toml.
Hugo has already initalized a title in your config.toml. You can access
a variable from your global config with site. For example: -->
<title>{{ .Params.title }} | {{ .Site.title }}</title>
정황
<!-- We might want to check if the front matter title exists. If
it exists, output it; if not, use the global config title. -->
{{ if isset .Params "title" }}
<title>{{ .Params.title }}</title>
{{ else }}
<title>{{ .Site.title }}</title>
{{ end }}
변수 설정 및 출력
<!-- variables at set with a $ sign. For example: -->
{{ $favorite_food := "Gazelle" }}
{{ $favorite_food }}
루핑
<!-- In Go, an array that can change size is called a slice.
You can iterate over an array or slice using range. -->
{{ $best_friends := slice "pumbaa" "timon" "nala" "rafiki" }}
<ul>
{{ range $best_friends }}
<li>{{ . }}</li>
{{ end }}
</ul>
중첩된 키 값
콘텐츠 파일:
---
title: Appearance
apperance:
eyes: green
snoot: boopable
whiskers: true
limbs:
- claws: 5
side: left
position: front
- claws: 4
side: right
position: front
- claws: 3
side: left
position: back
- claws: 5
side: right
position: back
---
레이아웃 파일:
<!-- If we want to output all of these variables, we could call
.Params.appearance.x for each one. Instead we could use `with` to change
the context to '.'. It also has the benefit of checking whether the
variable exists and won't run the block if it doesn't. -->
{{ with .Params.appearance }}
<h3>My top appearance traits</h3>
<dl>
<dt>Eyes</dt>
<dd>{{ .eyes }}</dd>
<dt>Snoot</dt>
<dd>{{ .snoot }}</dd>
<dt>Whiskers</dt>
<dd>{{ .whiskers }}</dd>
{{ with .limbs }}
<dt>Claws</dt>
<dd>
<ul>
{{ range . }}
<li>{{ .position }} {{ .side }} {{ .claws }</li>
{{ end }}
</ul>
</dd>
{{ end }}
</dl>
{{ end }}
이것이 템플릿의 기초입니다. Hugo 여정 전반에 걸쳐 이러한 모든 개념을 사용하게 될 것입니다. templating documentation을 탐색하여 수행할 수 있는 다른 작업에 대한 아이디어를 얻을 수 있습니다.
HTML 출력을 깔끔하게 유지하려면
{{-</code> and <code>-}}
를 사용하여 태그 주변의 공백을 잘라낼 수 있습니다. The Hugo documentation has a great example of this .함께 모아서
이름과 현재 연도가 포함된 바닥글을 웹사이트에 추가하여 새로운 Hugo 템플릿 지식을 실행해 보겠습니다. 또한 특정 페이지에서 바닥글을 숨기는 데 사용할 수 있는 선택적 머리말 필드를 추가합니다.
쉬운 것부터 시작합시다. 당신의 이름.
config.toml
에 새 키로 추가하십시오. 이것은 특별한 Hugo 용어가 아니라 이 사이트에 대한 것이므로 params 개체 아래에 넣습니다. [params]
name = 'Simba'
이제 부분을 만들어 봅시다. 다음을 사용하여 레이아웃 부분 디렉터리에
footer.html
를 추가합니다. {{ with .Params.hide_footer }}
<!-- No footer here! -->
{{ else }}
<footer>
Website made by {{ .Site.Params.name }} in {{ now.Year }}
</footer>
{{ end }}
마지막으로
</body>
레이아웃에서 부분 이전baseof.html
을 호출합니다. {{ partial "footer.html" . }}
hide_footer
머리말이 작동하는지 확인하려면 다음을 머리말에 추가하여 about.md
페이지에서 바닥글을 끄십시오. hide_footer: true
hugo serve
를 실행하고 브라우저에서 사이트를 봅니다. 홈페이지에는 바닥글이 있고 정보 페이지에는 없습니다.무엇 향후 계획?
다음으로 Hugo에서 블로그를 만들고 새로운 Hugo 템플릿 지식을 테스트해 보겠습니다.
Reference
이 문제에 관하여(Hugo 템플릿 기초), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cloudcannon/hugo-templating-basics-1827텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)