gretel-jsonld enables gretel gem to handle JSON-LD based breadcrumbs.
Add this line to your application's Gemfile
:
gem 'gretel-jsonld'
And then execute:
$ bundle
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>
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.
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
You should follow the steps below:
- Fork the repository
- Create a feature branch:
git checkout -b add-new-feature
- Commit your changes:
git commit -am 'Add new feature'
- Push the branch:
git push origin add-new-feature
- Send us a pull request
The gem is available as open source under the terms of the MIT License.