ruby 如何在Rails 4应用程序中设置“application/ld+json”schema.org Meta数据

piah890a  于 11个月前  发布在  Ruby
关注(0)|答案(3)|浏览(114)

我想使用JSON ld设置 schema.org元数据。例如,以下链接使用ghost,它具有“application/ld+json”元数据。http://blog.ghost.org/distributed-team-tools/
我想为我的Rails应用程序实现类似的功能。我应该如何实现它。是否有一些gem来实现这一点等。
谢谢你,谢谢

mzsu5hc0

mzsu5hc01#

有一个JSON-LD gem(http://rubygems.org/gems/json-ld),但它可能不是您要找的特定对象。请注意,JSON-LD的要点是它只是JSON,在本例中使用schema.org上下文来解释值。假设您的数据在ActiveRecord模型中,您将需要一种方法来确保记录属性对应于适当的schema.org属性。如果是这种情况,然后,只需将模型序列化为JSON(#to_json)即可完成大部分工作。剩下的就是将@context@id@type字段添加到JSON中。
例如,假设你有一个User模型,它被序列化为如下内容:

{
  "name": "Harry",
  "email": "[email protected]"
}

字符串
作为http://schema.org/Person的“name”和“email”属性,您只需添加@context@type即可,如下所示:

{
  "@context": "http://schema.org/",
  "@type": "Person",
  "name": "Harry",
  "email": "[email protected]"
}


假设您正在构建一个RESTful应用程序,最好为每个对象给予一个@id,它对应于此人的资源URL。这可能类似于以下内容:

{
  "@context": "http://schema.org/",
  "@id": "http://example.com/people/harry",
  "@type": "Person",
  "name": "Harry",
  "email": "[email protected]"
}


现在,如果您将http://example.com/people/harry作为JSON(或JSON-LD)检索,则可以返回该表示。
关于JSON-LD的另一件事是,它是用于“关联数据”的,因此包括对其他资源的引用对于允许它们被发现是有用的,就像你可能在HTML中做的那样。schema.org文档包括许多关于如何生成不同类型的标记的示例,包括JSON-LD,对于它们定义的大多数类型。参见http://schema.org/Person的一个示例,或http://schema.org/docs/full.html来表示它们的完整类型层次结构。
当你想从其他来源(通常是一些RDF格式)生成这些数据,或者解释你收到的数据时,JSON-LD gem就派上用场了。你可以在http://json-ld.org/playground上进行实验。
你也可以像你的例子一样,使用type=“application/ld+json”的脚本标签在HTML中包含你的JSON-LD。如果你想看看你的数据看起来如何,你可以在Google结构化数据测试工具上测试它,或者在http://linter.structured-data.org/上测试它。

cetgtptt

cetgtptt2#

%script{type: "application/ld+json"}
 :plain
  {
    "@context": "http://schema.org",        
    "headline": "Headline",       
    "@type": "Article",
    "alternativeHeadline": "Alternative Headline}"
  }

字符串
我没有使用:javascript过滤器http://haml.info/docs/yardoc/file.REFERENCE.html#filters,而是使用了%script标记,它允许我通过使用attribute method(将类型定义为application/ld+json)来定义其type,http://haml.info/docs/yardoc/file.REFERENCE.html#attribute-methods
:plain过滤器,它不解析过滤后的文本。这对于没有HTML标记的大块文本很有用,当你http://haml.info/docs/yardoc/file.REFERENCE.html#plain-filter

qncylg1j

qncylg1j3#

如果你使用Rails 7+,请使用this gem。它可以很容易地将json+ld结构模式包含到Rails应用程序中。
PS:我是作者

相关问题