reStructuredText¶
Roles and directives¶
Bibgen provides a reStructuredText directive to define a bibliography
database, bibliography
, and a directive to cite elements from that
database, cite
.
A typical document might look like:
.. default-role:: cite
In their classical articles, `Ball1982;Ball1987`
shown that subject performance in a motion discrimination task
is able to increase with training. See also `Matthews1999`.
.. bibliography::
:mendeley:
- .. bibliography::¶
Define a bibliography source for the current document, and print the list of cited items. The optional argument
database
can be used to specify a non-default database name.The following options are accepted:
:encoding: name
Defines the encoding of the bibliography database. Defaults to
utf-8
.:hidden:
Do not print entries for cited bibliographic elements.
:mendeley:
Indicates to use a Mendeley sqlite database. By default a BibTeX database is assume.
:style: name
Specify the formated citation style. Defaults to
harvard1
.:sort: order
Specify order by which bibliographic entries are displayed. Defaults to
alpha
for alphabetic order. You can usecited
for citation order.
bibliography
directives can also include content referencing specific bibliographic items to be displayed:.. bibliography:: :mendeley: Bayerl2004 Gros1998
In this case, the entries will not be referencable by
cite
roles and you will need anotherbibliography
directive with no content.
- :cite:¶
Insert a formatted citation to a specific bibliography item. The cited item will be added to the printed bibliography. Cited items can be inserted before the corresponding
bibliography
directive.
Command-line¶
When using the command-line script bibgen
, you can specify the
bibliography database through as a command-line argument. It will have
the same effect as equivalent to using a hidden
bibliography
directive.
Integration¶
When using bibgen as a library, you can call the
bibgen.rst.register()
function to register the roles and
directives of bibgen.
For instance, in a documentation generated by Sphinx you can add
a setup()
function which register bibgen to your conf.py
file:
def setup(app):
import bibgen.rst
bibgen.rst.register()
Alternatively, you could define a domain to cleanly separate the extension.