Microdata semantic markups support for Sphinx Documentation Generator.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sphinxcontrib
.bzrignore
LICENSE.txt
MANIFEST.in
README.rst
setup.cfg
setup.py
tox.ini

README.rst

Microdata plugin for Sphinx

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>