Skip to main content

Allows the use of BibTeX citations within a Pelican site

Project description

pelican-cite

Allows the use of BibTeX citations within a Pelican site. This plugin is based on the pelican-bibtex plugin written by Vlad Niculae and pelican-cite written by Chris MacMackin and aims to improve the following points:

  • More flexibility using configuration
    • The user can use any label, soring and naming style
    • The user can create their own Jinja2 template for bibliography and label (This is still a TODO)
  • Better maintainability
  • Everything is tested with PyTest

Installation

To install simply run pip install pelican-cite and add it to the PLUGINS section of pelicanconf.py

PLUGINS = [
    '...',
    'pelican_cite'
    '...',
]

How to Use

This plugin reads a user-specified BibTeX file and generates bibliographic information within your articles and pages.

If the file is present and readable, then content will be scanned for references to citation keys. These take the format [@Bai2011]. The format [@@Bai2011] is also possible for backwards compatibility with pelican-cite by Chris MacMackin.

If a citation key is used which does not exist within the BibTeX file then a warning will be displayed.

Configuration

PUBLICATIONS_SRC

Location of the BibTeX file.

The BibTeX file may, optionally, be appended on a per-article basis by supplying the meta-data publications_src.

BIBLIOGRAPHY_NAME_STYLE

Defines how names will be formatted in the output. Styles included in "Pybtex" are "plain" and "lastfirst". Defaults to None.

BIBLIOGRAPHY_LABEL_STYLE

Defines how the labels will be formatted in the output.

Styles included in Pybtex are "alpha" and "number". Defaults to "alpha"

Author_year label style

There is also a custom style available called "author_year_1" and "author_year_2". The first will show labels like (Author,year), the second will show labels like Author (year)

You can use this by installing it with pip install pybtex-author-year-label.

BIBLIOGRAPHY_SORTING_STYLE

Defines how the bibliography will be sorted. Styles included in Pybtex are "author_year_title" and "none". Defaults to "author_year_title"

Usage in Pelican template

Labels

Labels are rendered with the BIBLIOGRAPHY_LABEL_STYLE setting, and you cannot set anything in the template.

Bibliography

Use out of the box template

You can add the bibliography anywhere in your template. pelican_cite comes with a rendered bibliography out of the box. Simply add the following to your template:

{% if article.bibliography %}
    {{ article.bibliography.rendered }}
{% endif %}

This will use the template from pelican_cite/templates/citations.html to render a bibliography

Create your own template

You can also create your own template. To do this article.bibliography has a cites attribute.

Attribute Description
article.bibliography.cites.cite_key The id you used for the citation in your .bib file.
article.bibliography.cites.ref_id The cite_key, without spaces.
article.bibliography.cites.rendered_entry A rendered string containing the citation.
article.bibliography.cites.count The number of times the entry was cited in the article.

Here is a template to get you started:

{% if article.bibliography %}
<div id="citations">
    <hr>
    <h3>Citations</h3>
    <ol class="references">
        {% for cite in article.bibliography.cites %}
            <li id="{{ cite.ref_id }}">
                <span class="reference-text">{{ cite.rendered_entry }}</span>
                {% for i in range(1, cite.count + 1) %}
                    <a class="cite-backref" href="#ref-{{ cite.ref_id }}-{{ i }}"
                       title="Jump back to reference {{ i }}">
                        <sup>
                            <i>
                                <b>
                                    {{ i }}
                                </b>
                            </i>
                        </sup>
                    </a>
                {% endfor %}
            </li>
        {% endfor %}
    </ol>
</div>
{% endif %}

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

pelican_cite2-1.1.4.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pelican_cite2-1.1.4-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file pelican_cite2-1.1.4.tar.gz.

File metadata

  • Download URL: pelican_cite2-1.1.4.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for pelican_cite2-1.1.4.tar.gz
Algorithm Hash digest
SHA256 a1dcc03bc083bd6acb384728bfaa4071625820acfc1ba247a1295e5c35f12aad
MD5 9c3f65d4d7b74bc9b03e1d8f52b60e42
BLAKE2b-256 c7d5946cb77bdf0930a6baa10f3930d3e320a1cdb0ba7c2fae1ed0afce1ca62d

See more details on using hashes here.

File details

Details for the file pelican_cite2-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: pelican_cite2-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for pelican_cite2-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e9aa5c5f5171296f4bdc24d0cd5c3c3a5b26d68106be3623eab8453584b660e1
MD5 062d95951ad8fef09c0f892835c14b94
BLAKE2b-256 4d21dc932bde05b97b4d8f3f8c8a86e61ae5f92de111f0e4da7b128c743babc1

See more details on using hashes here.

Supported by

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