[英]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+json
, http://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.