2014-12-31 9 views
6

json ld를 사용하여 schema.org 메타 데이터를 설정하고 싶습니다. 예를 들어 다음 링크는 고스트를 사용하고 "application/ld + json"메타 데이터를 가지고 있습니다. http://blog.ghost.org/distributed-team-tools/레일 4 앱에 "application/ld + json"schema.org 메타 데이터를 설치하는 방법

나는 내 레일 앱과 비슷하게하고 싶습니다. 어떻게 구현해야합니까? 이 작업을 수행하는 데있어서 일부 보석이 있습니다.

감사합니다!

답변

7

JSON-LD 보석 (http://rubygems.org/gems/json-ld)이 있지만 특별히 찾고있는 것은 아닙니다. JSON-LD의 핵심은 단지 JSON이라는 점입니다.이 경우 schema.org 컨텍스트를 사용하여 값을 해석합니다. 데이터가 ActiveRecord 모델에 있다고 가정하면 레코드 속성이 해당 schema.org 속성과 일치하는지 확인하는 방법이 필요합니다. 이 경우 모델을 JSON (#to_json)으로 직렬화하면 대부분의 방법으로 사용할 수 있습니다. 남아있는 것은 @context, @id@type 필드를 JSON에 추가하는 것입니다. 예를 들어

, 당신은 다음과 같은 뭔가 직렬화 사용자 모델이 있다고 : http://schema.org/Person 모두 "이름"과 같이

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

"이메일"속성을, 당신은 단순히을 추가하여 도중에도 얻을 수 @context@type 다음과 같이 당신이 편안하고 응용 프로그램을 구축하고 있다는 가정하면

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

, 그것은 모든이 사람에 대한 리소스 URL에 해당하는 @id 객체주는 좋은 방법입니다. 이것은 다음과 같이 될 수있다 :

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

이제, JSON (또는 JSON-LD) 등의 http://example.com/people/harry를 검색 할 경우, 당신은 다시 그 표현을 얻을 수 있습니다.

JSON-LD의 다른 점은 "링크 된 데이터"를위한 것인데, 다른 리소스에 대한 참조를 포함하면 HTML 내에서하는 것처럼 찾을 수 있기 때문에 유용합니다. schema.org 문서에는 JSON-LD를 비롯하여 다양한 유형의 마크 업을 생성하는 방법에 대한 수많은 예제가 포함되어 있습니다. 한 예인 경우 http://schema.org/Person을, 완전한 유형 계층 구조 인 경우 http://schema.org/docs/full.html을 참조하십시오.

JSON-LD 젬은 다른 소스 (일반적으로 일부 RDF 형식)에서이 데이터를 생성하거나 수신 한 데이터를 해석 할 때 유용합니다. 이것을 http://json-ld.org/playground에서 실험해볼 수 있습니다.

예를 들어 type = "application/ld + json"인 script 태그를 사용하여 HTML에 JSON-LD를 포함시킬 수도 있습니다. 데이터가 어떻게 보이는지 보려면 Google 구조화 데이터 테스트 도구 또는 http://linter.structured-data.org/

+0

에서 블로그를 테스트하고 메타 데이터로 json-ld를 사용하는 것이 좋습니다. 어떻게 구현해야하는지 안내해 줄 수 있습니까? partials를 사용하고 html로이 json partial을 삽입 할 수 있습니까? 아니면 사용해야하는 몇 가지 다른 접근법이 있습니다. 감사합니다. – StarWars

+0

부분 및 jbuilder 템플릿을 사용하고 있습니다. 그것을 해결했습니다. 감사! – StarWars

+0

> 부분 템플릿과 jbuilder 템플릿을 사용하고 있습니다. 어떻게? – marvindanig