簡體   English   中英

如何在rails 4 app中設置“application / ld + json”schema.org元數據

[英]How to setup “application/ld+json” schema.org meta data in rails 4 app

我想使用json ld設置schema.org元數據。 例如,以下鏈接使用ghost並且它具有“application / ld + json”元數據。 http://blog.ghost.org/distributed-team-tools/

我想為我的rails應用程序實現類似的功能。 我應該如何實現它。 這樣做是否有一些寶石

謝謝!

有一個JSON-LD gem( http://rubygems.org/gems/json-ld ),但它可能不是你想要的。 請注意,JSON-LD的重點在於它只是JSON,在這種情況下使用schema.org上下文來解釋值。 假設您的數據在ActiveRecord模型中,您需要一種方法來確保記錄屬性對應於相應的schema.org屬性。 如果是這種情況,那么只需將您的模型序列化為JSON(#to_json)就可以獲得最大的收益。 剩下的是在加@context@id@type領域的JSON。

例如,假設您有一個用戶模型,其序列化為如下所示:

{
  "name": "Harry",
  "email": "Harry@example.org"
}

作為http://schema.org/Person的 “名稱”和“電子郵件”屬性,您可以通過簡單地添加@context@type ,如下所示:

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

假設您正在構建RESTful應用程序,最好為每個對象提供一個@id ,它對應於此人的資源URL。 這可能如下所示:

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

現在,如果您將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/上進行測試。

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

而不是使用:javascript過濾器, http :javascript //haml.info/docs/yardoc/file.REFERENCE.html#filters ,而是使用了%script標簽,它允許我通過使用定義它的attribute method來定義其type 。鍵入application/ld+jsonhttp://haml.info/docs/yardoc/file.REFERENCE.html#attribute-methods

:plain過濾器,它不解析過濾后的文本。 當您不希望以行開頭的行時,這對於沒有HTML標記的大塊文本很有用。 或者 - 要解析,請參閱doc http://haml.info/docs/yardoc/file.REFERENCE.html#plain-filter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM