SEO.JSONLD.BreadcrumbList (SEO v0.3.0-rc.0)

View Source

A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.

The position property is used to reconstruct the order of the items in a BreadcrumbList. The convention is that a breadcrumb list has an itemListOrder of ItemListOrderAscending (lower values listed first), and that the first items in this list correspond to the "top" or beginning of the breadcrumb trail, e.g. with a site or section homepage. The specific values of 'position' are not assigned meaning for a BreadcrumbList, but they should be integers, e.g. beginning with '1' for the first item in the list.

BreadcrumbList rich-result example

Example

SEO.JSONLD.BreadcrumbList.build(%{
  item_list_element: [
    SEO.JSONLD.ListItem.build(%{
      position: 1,
      name: "Home",
      item: "https://example.com/"
    }),
    SEO.JSONLD.ListItem.build(%{
      position: 2,
      name: "Blog",
      item: "https://example.com/blog/"
    })
  ]
})

Helper for building a Schema.org BreadcrumbList JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "BreadcrumbList", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a BreadcrumbList JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:aggregate_element) => SEO.JSONLD.Thing.t() | map(),
    :item_list_element =>
      String.t() | SEO.JSONLD.Thing.t() | map() | SEO.JSONLD.ListItem.t(),
    optional(:item_list_order) =>
      String.t()
      | :item_list_order_ascending
      | :item_list_order_descending
      | :item_list_unordered,
    optional(:number_of_items) => integer(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      aggregate_element: SEO.JSONLD.Thing.t() | map(),
      item_list_element:
        String.t() | SEO.JSONLD.Thing.t() | map() | SEO.JSONLD.ListItem.t(),
      item_list_order:
        String.t()
        | :item_list_order_ascending
        | :item_list_order_descending
        | :item_list_unordered,
      number_of_items: integer(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "BreadcrumbList", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a BreadcrumbList JSON-LD map.

Fields

This type has no own properties. See the inherited properties below.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: