我在 Hugo 中有一些帖子,其中的页面资源是 SVG 文件,我希望在生成的 HTML 中内联包含这些文件。例如,这是一个典型的文件夹结构:
content
+-- posts
+-- somepost
+-- index.md
+-- diagram.svg
在帖子中,我想将diagram.svg
inline 的内容作为生成的 HTML 的一部分包含在内。阅读另一个相关问题,我创建了一个短代码来执行此操作,如下所示:
{{- readFile (.Get 0) | safeHTML -}}
但是,这意味着我需要提供 SVG 资源的完整路径,这导致我的降价:
{{< readsvg "content/posts/somepost/diagram.svg" >}}
理想情况下,我希望简码找到页面资源,以便降价可以简化为:
{{< readsvg "diagram.svg" >}}
如果我使用页面资源函数,我可以通过以下方式获取资源本身:{{ $svg := $.Page.Resources.GetMatch (.Get 0) }}
但是生成的文件名是相对于资源包的,而readFile
需要它是相对于项目的顶部的。如何获取资源的完整路径以便将其传递给readFile
?
我试图absURL
这样做,但这不起作用,因为我在帖子上有自定义 URL。