如何使用自定义输出格式在 hugo 中创建打印友好的模板
How to use custom output formats to create a printer-friendly template in hugo
我希望能够定义一个针对打印进行了优化的 HTML 模板。 Hugo 自定义输出格式似乎正是我所需要的,但我正在努力了解如何使其工作。
这是定义新格式的 config.yaml
文件的摘录:
outputFormats:
printFormat:
name: print
mediaType: text/html
isHTML: true
path: print
outputs:
page:
- HTML
- print
home:
- HTML
- RSS
section:
- HTML
- RSS
taxonomy:
- HTML
- RSS
term:
- HTML
- RSS
我还创建了 <theme>/layouts/_default/baseof.print.html
和 <theme>/layouts/_default/single.print.html
。
我在尝试构建时没有收到任何错误,但是我也没有看到生成的任何打印模板。
我也不完全理解 url 结构以资源为目标会是什么样子。这是我试过的
https://<domain-name>/posts/<post-name>.print
https://<domain-name>/posts/<post-name>.print.html
https://<domain-name>/posts/print/<post-name>
https://<domain-name>/posts/<post-name>/print/index.html
有人可以帮助我了解我在配置中做错了什么以及 URL 访问自定义输出会是什么样子吗?
我能够解决这个问题。这是对 config.yaml
的更改,使其起作用 ...
outputFormats:
printFormat:
name: print
mediaType: text/html
baseName: print
isPlainText: false
rel: alternate
isHTML: false
noUgly: true
permalinkable: false
进行此更改后,url 现在将允许我访问“printer-friendly”模板:
https://<domain-name>/posts/<post-name>/print.html
我希望能够定义一个针对打印进行了优化的 HTML 模板。 Hugo 自定义输出格式似乎正是我所需要的,但我正在努力了解如何使其工作。
这是定义新格式的 config.yaml
文件的摘录:
outputFormats:
printFormat:
name: print
mediaType: text/html
isHTML: true
path: print
outputs:
page:
- HTML
- print
home:
- HTML
- RSS
section:
- HTML
- RSS
taxonomy:
- HTML
- RSS
term:
- HTML
- RSS
我还创建了 <theme>/layouts/_default/baseof.print.html
和 <theme>/layouts/_default/single.print.html
。
我在尝试构建时没有收到任何错误,但是我也没有看到生成的任何打印模板。
我也不完全理解 url 结构以资源为目标会是什么样子。这是我试过的
https://<domain-name>/posts/<post-name>.print
https://<domain-name>/posts/<post-name>.print.html
https://<domain-name>/posts/print/<post-name>
https://<domain-name>/posts/<post-name>/print/index.html
有人可以帮助我了解我在配置中做错了什么以及 URL 访问自定义输出会是什么样子吗?
我能够解决这个问题。这是对 config.yaml
的更改,使其起作用 ...
outputFormats:
printFormat:
name: print
mediaType: text/html
baseName: print
isPlainText: false
rel: alternate
isHTML: false
noUgly: true
permalinkable: false
进行此更改后,url 现在将允许我访问“printer-friendly”模板:
https://<domain-name>/posts/<post-name>/print.html