У меня есть несколько постов в Ху go с ресурсами страницы, которые представляют собой файлы 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-адреса в сообщениях .