[Rails][data-vocabulary.org 스키마 지원은 종료됩니다. ] gem Gretel을 schema.org와 일치시키는 방법.

data-vocabulary.org 스키마 지원은 종료됩니다.





2020년 4월 6일부터 Google에서 'data-vocabulary.org'를 이용한 구조화된 데이터가 리치 결과물로 지원되지 않으므로 계속해서 리치 결과물을 이용하고 싶은 경우에는 'schema.org'를 이용한 구조화된 데이터 로 마이그레이션해야 합니다.

빵 부스러기 목록  |  Google 검색 개발자 가이드  |  Google Developers
htps : //에서 ゔぇぺぺrs. 오, ぇ. 이 m/세아 rch/도 cs/다타-tyぺs/b 어 dc 하는 mb? hl = 그럼

Gem Gretel이란?



Gretel( htps : / / 루 바이 게 ms. rg/게 ms/g 되어 l/ゔぇr 시온 s/3.0.7 )은 설정 파일을 작성하여 쉽게 펑크 리스트를 출력할 수 있게 되는 Gem입니다.
펑크스 출력 옵션으로 semantic: true 를 붙임으로써 리치 결과에도 대응하고 있었습니다 (data-vocabulary.org).

그러나 이 젬은 유지보수가 길어 멈추고 있으며 Google의 'schema.org'를 이용하려면 패치를 해야 합니다.
스스로 검색한 곳 같은 대응을 하고 있는 사람이 산견되었으므로, 내 방법을 보여 가려고 생각합니다.

※ 본래는 다른 Gem 등으로 이행하는 것을 추천합니다만, 옛날부터 사용하고 있는 사람이 손쉽게 대응할 수 있는 방법을 본 기사로 하고 있습니다.

원숭이 패치 적용



Gretel Gem을 사용하는 Rails 프로젝트에서 config/initializers/gretel.rb
루비
# frozen_string_literal: true

module Gretel
  module ViewHelpers
    delegate :breadcrumbs_json_ld, to: :gretel_renderer
  end

  class Renderer
    # rubocop:disable Rails/OutputSafety
    def breadcrumbs_json_ld
      {
        "@context": 'http://schema.org/',
        "@type": 'BreadcrumbList',
        "itemListElement": links.map.with_index do |link, i|
          {
            '@type': 'ListItem',
            'position': i + 1,
            'item': {
              '@id': "#{root_url.chop}#{link}",
              'name': link.text
            }
          }
        end
      }.to_json.html_safe
    end
    # rubocop:enable Rails/OutputSafety
  end
end

Yamitake gist gretel.rb htps : // 기 st. 기주 b. 이 m/야미타케/3659b9d87404아 d975f8아881b05971에33

사용법


breadcrumbs_json_ld를 선언했으므로 view 파일 측에서 아래와 같이 선언하면 schema.org에 해당하는 jsonLD가 출력됩니다.
.breadcrumbs
  == breadcrumbs
  = tag.script(breadcrumbs_json_ld, type: 'application/ld+json')

결론



지금까지 Gretel에서 개발해 온 사람이 잠정 대응으로서는 상기의 방법으로 간편하게 대응할 수 있습니다만, gretel는 메인터넌스가 길게 되어 있지 않기 때문에 다른 Gem을 찾거나 자전으로 펑크스의 실장을 하는 쪽이 좋다고 생각합니다.

좋은 웹페이지 즐겨찾기