Skip to main content

Sphinx "microdata" extension

Project description

Microdata semantic markups support for Sphinx Documentation Generator.

This plugin is derived from pelican-microdata.

Written by Fabrice Salvaire.

Installation

See sphinx-contrib for more details.

To install the plugin, you have to run these commands:

python setup.py build
python setup.py install

The PySpice source code is hosted at https://github.com/FabriceSalvaire/sphinx-microdata

To clone the Git repository, run this command in a terminal:

git clone git@github.com:FabriceSalvaire/sphinx-microdata

Usage

To load the plugin, you have to add it in your conf.py file.

extensions = [
  ...
  'sphinxcontrib.microdata',
  ]

Directives

Microdata plugin provides two directives:

  • itemscope, a block directive allowing to declare an itemscope block:

    .. itemscope:: <Schema type>
        :tag: element type (default: div)
        :itemprop: optionnal itemprop attribute
        :compact: optionnal
    
        Nested content
  • itemprop, an inline directive/role allowing to annotate some text with an itemprop attribute.

    :itemprop:`Displayed text <itemprop name>`
    :itemprop:`Displayed text <itemprop name:http://some.url/>`

Example

This reStructuredText document:

.. itemscope: Person
    :tag: p

    My name is :itemprop:`Bob Smith <name>`
    but people call me :itemprop:`Smithy <nickanme>`.
    Here is my home page:
    :itemprop:`www.exemple.com <url:http://www.example.com>`
    I live in Albuquerque, NM and work as an :itemprop:`engineer <title>`
    at :itemprop:`ACME Corp <affiliation>`.

will result in:

<p itemscope itemtype="http://data-vocabulary.org/Person">
    My name is <span itemprop="name">Bob Smith</span>
    but people call me <span itemprop="nickname">Smithy</span>.
    Here is my home page:
    <a href="http://www.example.com" itemprop="url">www.example.com</a>
    I live in Albuquerque, NM and work as an <span itemprop="title">engineer</span>
    at <span itemprop="affiliation">ACME Corp</span>.
</p>

This reStructuredText document using nested itemscope:

.. itemscope:: Person

    My name is :itemprop:`John Doe <name>`

    .. itemscope:: Address
        :tag: p
        :itemprop: address

        I live in :itemprop:`Albuquerque <name>`

will result in:

<div itemscope itemtype="http://data-vocabulary.org/Person">
<p>
My name is <span itemprop="name">John Doe</span>
</p>
<p itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live in <span itemprop="name">Albuquerque</span>'
</p>
</div>

This reStructuredText document using nested and compact itemscope:

.. itemscope:: Person
    :tag: p
    :compact:

    My name is :itemprop:`John Doe <name>`

    .. itemscope:: Address
        :tag: span
        :itemprop: address

        I live in :itemprop:`Albuquerque <name>`

will result in:

<p itemscope itemtype="http://data-vocabulary.org/Person">
My name is <span itemprop="name">John Doe</span>
<span itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
I live in <span itemprop="name">Albuquerque</span>
</span>
</p>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page