Microdata semantic markups support for Sphinx Documentation Generator.
This plugin is derived from pelican-microdata.
Written by Fabrice Salvaire.
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
To load the plugin, you have to add it in your conf.py
file.
extensions = [
...
'sphinxcontrib.microdata',
]
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/>`
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>