Pug 标签名称带有 at-signs/asperands (@)

Pug tag names with at-signs/asperands (@)

我使用 pug 编写 .json 文件(使用 gulpgulp-puggulp-xml2json 编译)。

它正常工作得很好,但我不知道如何让它处理 github 上的 json-ld structured data. I've tried every type of interpolation I can think of, including the method suggested by the author for a similar problem (see issue #2783 所需的 asperands (@),但避风港'运气好。

有没有我忽略的简单解决方案?

有效

// data.json.xml.pug   

root
  context https://json-ld.org/contexts/person.jsonld

编译为

// data.json

{
  "context": "https://json-ld.org/contexts/person.jsonld"
}

这不是

// data.json.xml.pug   

root
  @context https://json-ld.org/contexts/person.jsonld

unexpected text "@cont"

这也不行

// data.json.xml.pug   

root
  #{'@context'} https://json-ld.org/contexts/person.jsonld

Error: Error: Unencoded <

...

Char: @

Answer from @ForbesLindsay GitHub(谢谢!)—

#{'@context'}

产生

<@context></@context>

你遇到的问题是 xml2json 没有将其解释为有效的 xml(因为它不是)你需要找出是否有任何有效的 xml 字符串生成你想要的 JSON,然后你就可以弄清楚如何在 pug.XML 中生成那个 XML。