1

我正在尝试编写一个{{< gallery >}}短代码,它将生成一个画廊,其中包含您定义的目录中的所有图像、您通过定义的内容.Inner,或者只是与页面相关的所有图像资源。以下是我试图支持的表格:

  1. {{< gallery dir="/gallery/alaska/" />}}- 指定目录
  2. {{< gallery >}} {{< figure src="image1.jpg" >}} {{< /gallery >}}- 指定的内部内容
  3. {{< gallery >}}- 使用所有图像资源

我可以处理前两个,但我不清楚如何确定.Inner变量中是否没有任何内容,因此我可以处理上面的表格 3。我希望执行以下操作:

{{- with (.Get "dir") -}}
  // do stuff with the specified directory (works fine)
{{- else -}}
  {{- if .Inner }}
    {{ .Inner }} // Always executes
  {{- else -}}
    // do stuff related to resources in this page
  {{- end }}
{{- end }}

如何检测没有参数或内部内容的裸简码?

4

1 回答 1

1

使这项工作的关键是使用形式的空标签,<tag/>以便有内部内容但它是空的。

这意味着如果您使用以下代码{{< gallery />}}作为简码,则以下代码有效:

{{ with (.Get "dir") }}
  // do stuff with the directory
{{ else }}
  {{ with .Inner }}
    {{ . }}
  {{ else }}
    // do stuff related to this page
  {{ end }}
{{ end }}
于 2020-10-30T14:18:34.113 回答