CONTENT MANAGEMENT

Markdown attributes

概述

Hugo 支援在圖片和區塊元素(包括區塊引言、圍欄式程式碼區塊、標題、水平線、列表、段落和表格)上使用 Markdown 屬性。

例如:

這是一段文字。
{class="foo bar" id="baz"}

使用 classid 時,您可以使用簡寫表示法:

這是一段文字。
{.foo .bar #baz}

Hugo 會將這兩種方式渲染為:

<p class="foo bar" id="baz">這是一段文字。</p>

區塊元素

更新您的網站設定,啟用區塊級元素的 Markdown 屬性。

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

獨立圖片

預設情況下,當 Goldmark Markdown 渲染器遇到獨立圖片元素(該行上沒有其他元素或文字)時,它會根據 CommonMark 規範 把圖片元素包裹在段落元素中。

如果您將屬性列表放在圖片元素下方,Hugo 會將屬性應用於包圍的段落,而不是圖片。

若要將屬性應用於獨立圖片元素,必須禁用預設的包裹行為:

hugo.
     
markup:
  goldmark:
    parser:
      wrapStandAloneImageWithinParagraph: false
[markup]
  [markup.goldmark]
    [markup.goldmark.parser]
      wrapStandAloneImageWithinParagraph = false
{
   "markup": {
      "goldmark": {
         "parser": {
            "wrapStandAloneImageWithinParagraph": false
         }
      }
   }
}

使用方式

您可以添加 全域 HTML 屬性,或是針對當前元素類型特定的 HTML 屬性。符合其內容安全模型的要求,Hugo 會移除 HTML 事件屬性,如 onclickonmouseover

屬性列表由一個或多個鍵值對組成,這些鍵值對之間由空格或逗號分隔,並被大括號包裹。包含空格的字串值必須加上引號。與 HTML 不同的是,布林屬性必須同時包含鍵和值。

例如:

> 這是一段區塊引言。
{class="foo bar" hidden=hidden}

Hugo 會將其渲染為:

<blockquote class="foo bar" hidden="hidden">
  <p>這是一段區塊引言。</p>
</blockquote>

在大多數情況下,請將屬性列表放在標記元素的下方。對於標題和圍欄式程式碼區塊,請將屬性列表放在右側。

元素 屬性列表位置
區塊引言 下方
圍欄式程式碼區塊 右側
標題 右側
水平線 下方
圖片 下方
列表 下方
段落 下方
表格 下方

例如:

## 第一節 {class=foo}

```bash {class=foo linenos=inline}
declare a=1
echo "${a}"
```

這是一段文字。
{class=foo}

如上所示,圍欄式程式碼區塊的屬性列表不僅限於 HTML 屬性。您還可以通過傳遞一個或多個 這些選項 配置語法高亮顯示。