YehYeh 記事本2.0

Version 0.8.3

竹科碼農的記事本

Templating

.

  • 在Hugo中,.類似其它程式語言的this
  • . = context

safeHTML & safeCSS

safeHTML

  • 在輸入的字前面加上safeHTML,代表這串字是安全的HTML,叫go不要處理這串字
    • go在遇到<會轉成lt;,遇到>會轉成’gt;’
safeHTML INPUT

EX safeHTML 原始字串

copyright = "© 2015 Jane Doe.  <a href=\"https://creativecommons.org/licenses/by/4.0/\">Some rights reserved</a>."

EX 有加 safeHTML

© 2015 Jane Doe.  <a href="https://creativecommons.org/licenses/by/4.0/">Some rights reserved</a>.

EX 沒加 safeHTML

<p>© 2015 Jane Doe.  &lt;a href=&#34;https://creativecommons.org/licenses by/4.0/&#34;&gt;Some rights reserved&lt;/a&gt;.</p>

safeCSS

  • 在輸入的字前面加上safeCSS,代表這串字是安全的CSS,叫go不要處理這串字
safeCSS INPUT

EX 有加 safeCSS

  • 假設在.md檔裡的front-matter定義 style="color: red;"
<p style="{{ .Params.style | safeCSS }}"></p><p style="color: red;"></p>

EX 沒加 safeCSS

  • “ZgotmplZ”是一組特殊的值,代表不安全的CSS或URL內容
<p style="{{ .Params.style }}"></p><p style="ZgotmplZ"></p>

使用內建變數

{{ .Title }}

使用自訂變數

{{ $address := "123 Main St." }}
{{ $address }}

Partial

{{ partial "header.html" . }}

Template

  • 以前Template可以用來叫用Partial,現在只能用來叫用internal templates
    • internal templates: https://gohugo.io/templates/internal/
    • _internal/disqus.html
    • _internal/google_news.html
    • _internal/google_analytics.html
    • _internal/google_analytics_async.html
    • _internal/opengraph.html
    • _internal/pagination.html
    • _internal/schema.html
    • _internal/twitter_cards.html
{{ template "_internal/<TEMPLATE>.<EXTENSION>" . }}.

eq, ge, gt, le, lt, ne

程式 邏輯
eq ==
ne !=
ge >=
gt >
le <=
lt <

if else

  • 寫法
{{ if eq .Site.Params.menu_style "open-menu" }}
    {{- partial "menu/open-menu.html" . -}}
{{ else if eq .Site.Params.menu_style "slide-menu" }}
    {{- partial "menu/slide-menu.html" . -}}
{{ end }}
  • 相當於
if(.Site.Params.menu_style == "open-menu") {
    include("menu/open-menu.html", this)
}else if(.Site.Params.menu_style == "slide-menu") {
    include("menu/slide-menu.html", this)
}


  • 寫法
{{ if or (isset .Params "alt") (isset .Params "caption") }}
    Caption
{{ end }}
  • 相當於
if ( (.Param["alt"].isset()) or (.Param["caption"].isset()) ){
  print(Caption)
}

with

  • 在with區塊的範圍內,把.改為with指定的值
{{ with .Param "description" }}
    {{ . }}
{{ else }}
    {{ .Summary }}
{{ end }}
Last updated on 2020-04-18
Published on 2020-04-18
Edit on GitHub