Skip to content

Gretel extension for supporting JSON-LD breadcrumbs 🍞

License

Notifications You must be signed in to change notification settings

yasaichi/gretel-jsonld

Repository files navigation

gretel-jsonld

Gem Version Build Status Code Climate Test Coverage

gretel-jsonld enables gretel gem to handle JSON-LD based breadcrumbs.

Installation

Add this line to your application's Gemfile:

gem 'gretel-jsonld'

And then execute:

$ bundle

Usage

First, run the installation generator with:

$ rails generate gretel:install

Next, define "crumbs" in config/breadcrumbs.rb:

# See also: https://github.com/lassebunk/gretel#more-examples

# Root crumb
crumb :root do
  link 'Home', root_path
end

# Issue list
crumb :issues do
  link 'All issues', issues_path
end

# Issue
crumb :issue do |issue|
  link issue.title, issue
  parent :issues
end

Then, add this line to your application's layout:

<%= jsonld_breadcrumbs %>

Finally, specify a current breadcrumb in each view:

<% breadcrumb :issue, @issue %>

This will generate the following breadcrumbs, marked up with JSON-LD (indented for readability):

<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "item": {
          "@id": "/",
          "name": "Home"
        }
      },
      {
        "@type": "ListItem",
        "position": 2,
        "item": {
          "@id": "/issues",
          "name": "All issues"
        }
      },
      {
        "@type": "ListItem",
        "position": 3,
        "item": {
          "@id": "/issues/46",
          "name": "My Issue"
        }
      }
    ]
  }
</script>

Options

You can pass jsonld_breadcrumbs the same options as breadcrumbs:

<%= jsonld_breadcrumbs link_current_to_request_path: false %>

For further information, please see gretel's documentation.

Supported versions

Note that gretel-jsonld doesn't support all versions of gretel, Ruby and Rails:

  • gretel: gretel-jsonld supports only 3.x for now
  • Ruby: gretel 3.x supports 1.9.3 or later, but gretel-jsonld does only 2.2.2 or later
  • Rails: gretel 3.x supports 3.1 or later, but gretel-jsonld does only 3.2 or later

Contributing

You should follow the steps below:

  1. Fork the repository
  2. Create a feature branch: git checkout -b add-new-feature
  3. Commit your changes: git commit -am 'Add new feature'
  4. Push the branch: git push origin add-new-feature
  5. Send us a pull request

License

The gem is available as open source under the terms of the MIT License.

About

Gretel extension for supporting JSON-LD breadcrumbs 🍞

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published