InnerDeindent
返回 shortcode 開始和結束標簽之間的內容,並移除縮進,適用於 shortcode 調用包含結束標簽的情況。
Syntax
SHORTCODE.InnerDeindent
Returns
template.HTML
與 Inner 方法類似,InnerDeindent 返回 shortcode 開始和結束標簽之間的內容。但是,使用 InnerDeindent 時,內容前的縮進會被移除。
這使我們能夠有效地繞過 CommonMark 規范中規定的有關 縮進 的規則。
考慮此 Markdown,一個無序列表,每個列表項內包含一個縮略圖圖像的小畫廊:
content/about.md
- Gallery one
{{< gallery >}}


{{< /gallery >}}
- Gallery two
{{< gallery >}}


{{< /gallery >}}在上面的示例中,注意 shortcode 開始和結束標簽之間的內容縮進了四個空格。根據 CommonMark 規范,這被視為縮進代碼塊。
使用此 shortcode,調用 Inner 而不是 InnerDeindent:
layouts/_shortcodes/gallery.html
<div class="gallery">
{{ .Inner | strings.TrimSpace | .Page.RenderString }}
</div>Hugo 將 Markdown 渲染為:
<ul>
<li>
<p>Gallery one</p>
<div class="gallery">
<pre><code>

</code></pre>
</div>
</li>
<li>
<p>Gallery two</p>
<div class="gallery">
<pre><code>

</code></pre>
</div>
</li>
</ul>盡管根據 CommonMark 規范在技術上是正確的,但這不是我們想要的。如果我們使用 InnerDeindent 方法移除縮進:
layouts/_shortcodes/gallery.html
<div class="gallery">
{{ .InnerDeindent | strings.TrimSpace | .Page.RenderString }}
</div>Hugo 將 Markdown 渲染為:
<ul>
<li>
<p>Gallery one</p>
<div class="gallery">
<img src="images/a.jpg" alt="kitten a">
<img src="images/b.jpg" alt="kitten b">
</div>
</li>
<li>
<p>Gallery two</p>
<div class="gallery">
<img src="images/c.jpg" alt="kitten c">
<img src="images/d.jpg" alt="kitten d">
</div>
</li>
</ul>