Add schema.org BreadcrumbList to JSON+LD (#87)

* Add schema.org BreadcrumbList to JSON+LD

This implementation  depends on .Page.Ancestors, which requires Hugo
version v0.109.0.

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>

* Fix extraneous comma in schema

For blog posts we ended up with an extraneous comma due to it being
outside the condition for the breadcrumb
JSON+LD.

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>

* Pretty print breadcrumb JSON+LD for schema

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>

* Make breadcrumbs opt-in on non-blogSections

Sections except blogSections (which is a configurable set which is
defaulted to sections 'blog' and 'post'), may be part of
`breadcrumbSections`. For the breadcrumb Sections, the section and any
pages under it will have the `breadcrumb` attribute (of type
`BreadcrumbList`) added to the JSON+LD for their schema.org structured
data.

Update documentation of `params` for example `config.yaml` in README.

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>

---------

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
This commit is contained in:
Daniel F. Dickinson 2023-04-23 14:17:52 -04:00 • committed by GitHub
commit eb27a1e023
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -239,6 +239,13 @@ languageCode: "en-GB" # Set your language code (only needed for none multi
params:
alpine: # Add AlpineJS, default false.
blogSections: # Sections whose <schema.org> `JSON+LD` in the page `<head>`
- blog # will be `@type: BlogPosting`.
- post # Defaults to a list including only 'post' and 'blog'.
breadcrumbSections: # Sections in which pages will have a `BreadcrumbListing`
- section2 # in the <schema.org> `JSON+LD` in the page's `<head>`.
- section3 # This theme requires Hugo `v0.109.0` or higher to
# generate the `BreadcrumbListing`.
cookieConsent: true # Show cookie consent form, default false.
contact: "info@example.org"
copyright: "This site is licensed under a