【问题标题】:amp-html: mustache script is marked as user-authored scriptsamp-html:mustache 脚本被标记为用户编写的脚本
【发布时间】:2017-02-09 12:40:20
【问题描述】:

根据以下官方文档,我正在尝试使用 amp-mustache 模板引擎使用我的自定义模板创建一个 amp-list:https://www.ampproject.org/docs/reference/components/amp-mustache
但是,由于 AMP-mustache 脚本被标记为无效(用户编写的脚本),Google AMP Search Console 将我的 AMP 页面标记为无效,同时我只是按照官方文档进行操作。

我该如何解决这个问题?
对不起,我的英语不好。

【问题讨论】:

  • 如果您希望我们分析问题,请提供您的来源
  • 非常感谢。 1 天后再次仔细阅读文件,我发现了我的错误。 custom-template="amp-mustache" 而不是 custom-element="amp-mustache" 解决了这个问题。只需在 wordpress 的官方 AMP 插件中稍作修改 :)

标签: amp-html


【解决方案1】:

根据thread,在 AMP 中使用模板语言的一个关键方面是它需要有效的 DOM。但是,template 元素提供了这种保证,但验证者必须确认。虽然它在 Mustache 中有效,但它不允许:

  • 不允许使用元素名称的表达式,例如<{{tagName}}></{{tagName}}> 无效。
  • 不允许在元素属性名称上使用表达式,例如是无效的。请注意,属性值表达式是完全有效的。

请注意,您需要关注某些Restrictions,这可能是您的 AMP 页面无效的原因。

与所有 AMP 模板一样,amp-mustache 模板必须是格式良好的 DOM 片段。这意味着除其他外,您不能使用amp-mustache 来:

  • 计算标签名称。例如。不允许使用{{tagName}}。
  • 计算属性名称。例如。不允许使用<div =something>。
  • 使用{{unescaped}}} 输出任意HTML。 “triple-mustache”的输出经过清理,只允许格式化标签,例如 <b>、<i> 等。

还要注意,因为template 的主体必须在模板元素中指定,所以不可能指定{{&var}} 表达式——它们总是被转义为{{&var}}。对于这些情况,必须使用三重胡须{{var}}}。

希望这会有所帮助!

【讨论】:

  • 非常感谢。 1 天后再次仔细阅读文件,我发现了我的错误。 custom-template="amp-mustache" 而不是 custom-element="amp-mustache" 解决了这个问题。只需在 wordpress 的官方 AMP 插件中稍作修改 :)
猜你喜欢
  • 1970-01-01
  • 2013-09-29
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多