RENDER HOOKS

Table render hooks

New in v0.134.0

上下文

表格渲染 Hook 模板會接收以下 上下文

Attributes

mapMarkdown 屬性,若您按以下配置網站則可用:

hugo.
     
markup:
  goldmark:
    parser:
      attribute:
        block: true
[markup]
  [markup.goldmark]
    [markup.goldmark.parser]
      [markup.goldmark.parser.attribute]
        block = true
{
   "markup": {
      "goldmark": {
         "parser": {
            "attribute": {
               "block": true
            }
         }
      }
   }
}
Ordinal

int)表格在頁面上的零基序號。

Page

page)對當前頁面的引用。

PageInner

page)通過 RenderShortcodes 方法嵌套的頁面引用。查看詳細資訊

Position

string)表格在頁面內容中的位置。

THead

slice)表格標題列的切片,每個元素都是一個表格單元格的切片。

TBody

slice)表格內容列的切片,每個元素都是一個表格單元格的切片。

表格單元格

THeadTBody 方法返回的切片中的每個表格單元格具有以下字段:

Alignment

string)表格單元格中文本的對齊方式,可能的值為 leftcenterright

Text

template.HTML)表格單元格中的文本內容。

範例

在其默認配置中,Hugo 會根據 GitHub Flavored Markdown 規範 渲染 Markdown 表格。若要創建一個實現相同功能的渲染 Hook:

layouts/_default/_markup/render-table.html
<table
  {{- range $k, $v := .Attributes }}
    {{- if $v }}
      {{- printf " %s=%q" $k $v | safeHTMLAttr }}
    {{- end }}
  {{- end }}>
  <thead>
    {{- range .THead }}
      <tr>
        {{- range . }}
          <th
            {{- with .Alignment }}
              {{- printf " style=%q" (printf "text-align: %s" .) | safeHTMLAttr }}
            {{- end -}}
          >
            {{- .Text -}}
          </th>
        {{- end }}
      </tr>
    {{- end }}
  </thead>
  <tbody>
    {{- range .TBody }}
      <tr>
        {{- range . }}
          <td
            {{- with .Alignment }}
              {{- printf " style=%q" (printf "text-align: %s" .) | safeHTMLAttr }}
            {{- end -}}
          >
            {{- .Text -}}
          </td>
        {{- end }}
      </tr>
    {{- end }}
  </tbody>
</table>

PageInner 詳細資訊

New in v0.125.0

PageInner 的主要用途是解析相對於包含的 Page 的連結和 頁面資源。例如,建立一個「include」掛載程式碼,從多個內容檔案組合成一個頁面,同時保留註腳和目錄的全域上下文:

layouts/shortcodes/include.html
{{ with site.GetPage (.Get 0) }}
  {{ .RenderShortcodes }}
{{ end }}

然後在您的 Markdown 中呼叫此掛載程式碼:

content/posts/p1.md
{{% include "/posts/p2" %}}

在渲染 /posts/p2 時觸發的任何渲染掛載將獲得:

  • /posts/p1 當呼叫 Page
  • /posts/p2 當呼叫 PageInner

如果不相關,PageInner 將回退到 Page 的值,並始終返回一個值。

作為一個實際範例,Hugo 的內嵌連結和圖片渲染掛載使用 PageInner 方法解析 Markdown 中連結和圖片的目標位置。請參考以下來源程式碼: