雨果与 Asciidoctor

Hugo with Asciidoctor

我正在尝试使用 Hugo 建立一个博客,只要我使用 Markdown,它基本上就可以正常工作。但是因为我在 repo 中还有一些其他网站内容(文档)和 antora 我想用 asciidoc 写我所有的文本。但是当我尝试从 adoc 文件生成网站时,我总是 运行 进入这个错误。 Markdown 有效,但 Asciidoc 给出了这个例外:

sebastian@kobol:~/work/repos/sommerfeld-io/website/blog$ hugo
Start building sites … 
hugo v0.92.1-85E2E862 linux/amd64 BuildDate=2022-01-27T11:44:41Z VendorInfo=gohugoio
Error: Error building site: "/home/sebastian/work/repos/sommerfeld-io/website/blog/content/posts/my-second-post.adoc:1:1": access denied: "asciidoctor" is not whitelisted in policy "security.exec.allow"; the current security configuration is:

[security]
  enableInlineShortcodes = false
  [security.exec]
    allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']
    osEnv = ['(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$']

  [security.funcs]
    getenv = ['^HUGO_']

  [security.http]
    methods = ['(?i)GET|POST']
    urls = ['.*']


Total in 40 ms

谁能告诉我如何允许从 hugo builds 访问 asciidoctor?

这是默认设置 Security Policy。您需要编辑 config.toml 文件(或放置 Hugo 配置文件的任何位置)并添加自定义安全策略。

至少,自定义安全策略将是默认的“剪切和粘贴”,添加一两个额外的正则表达式。

例如:

[security]
enableInlineShortcodes = false

[security.exec]
allow = ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$", "^asciidoctor$"]
osEnv = ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM|RUBYLIB)$"]

[security.funcs]
getenv = ["^HUGO_"]

[security.http]
methods = ["(?i)GET|POST"]
urls = [".*"]

我还添加了 RUBYLIB 环境变量来告诉 Hugo 告诉 AsciiDoctor 它的 inline macro extensions 在哪里。