最近我给了一个网站的重新开发。重新加工的网站将在Markdown内完成并运行Hugo static site生成器。
有没有办法在通过Hugo处理的Markdown网页中包含其他文件?如果是这样,怎么样?除非我遗漏了某些内容,否则Hugo docs中没有解决这个问题。
使用HTML和一些服务器(至少是Apache),您可以执行以下操作:
getLaunchIntentForPackager()
我尝试创建一个模板页面,将“Some content”和“More content”等内容放入模板中,然后将我们的.md文件中包含的内容通过{{.Content}}“包含”模板。但是,1)这似乎是使用模板的错误方法。 2)如果我需要,我还没想办法引入更多文件。
答案 0 :(得分:10)
对于内容文件,有两个选项:
mmark
作为降价渲染引擎及其include
功能。将内容文件重命名为" * .mmark"。请参阅https://github.com/miekg/mmark 我是雨果的维护者。
答案 1 :(得分:4)
我有一个自定义短代码,用于通过降价将我的静态演示文件渲染为代码,这很简单:
布局/简码/ code.html
{{ $file := .Get "file" | readFile }}
{{ $lang := .Get "language" }}
{{ (print "```" $lang "\n" $file "\n```") | markdownify }}
内容/后/ some-post.md
{{% code file="/static/some-script.js" language="js" %}}
答案 2 :(得分:3)
一位同事建议creating a shortcode帮助解决这个问题。虽然这不是我的想法 - 它比我想要的更复杂 - 它不是太糟糕,我没有找到更好的方法。因此,我使用shortcode和CSV文件实现了解决方案。简单的示例文件如下:
内容文件仍然(主要)是Markdown,看起来像是:
+++
date = "2016-09-29"
title = "short_code_test"
type = "pages"
+++
## Short Code test
Test table should appear below:
{{< display_table_csv "static/test_data.csv" >}}
<tr><th>Name</th><th>Birthday</th>
{{< /test_table_shortcode >}}
(请注意,type = "pages"
只会提取一个模板,该模板会修改/覆盖hugo-uno默认页面/ single.html模板,以使输出更清晰,以便在下方显示。)
布局/简码/ display_table_csv.html:
<table>
<thead>
{{ .Inner }}
</thead>
<tbody>
{{ $url := (index .Params 0) }}
{{ $sep := "," }}
{{ range $row_i, $row := getCSV $sep $url }}
<tr>
{{ range $col_i, $col := $row }}
<td>{{ $col }}</td>
{{ end }}
</tr>
{{ end }}
</tbody>
</table>
静态/ test_data.csv:
John, 1940-10-09
Paul, 1942-06-18
George, 1943-02-25
Ringo, 1940-07-07