Skip to main content

This Plugin should extend lektor with APA-styled citations using bibtex files. It was based on the known lektor-bibtex-support plugin by arunpersaud.

Project description

lektor-citation

An APA-styled citation plugin for the lektor static content management system (https://getlektor.com).

Preparations

Install the plugin by

lektor plugin add lektor-citation

or by copying this repository into the packages-folder of your lektor-project.

Create an citation.ini in its configs-folder:

[Bibtex]
file = Literature.bib

And put a Literature.bib BibTex-file into the project's assets-folder respectively.

Jinja_env

To get a formated output of your whole BibTex library you can either

  1. Use method citation_short_output in the template of your literature page. It creates an unordered list of entries.
  <ul id="literatur">
  {% for entry in citation_entries() %}
  {{ citation_short_output(entry)|decode|safe }}
  {% endfor %}

</ul>
  1. Use method citation_full_output instead. This creates a more complete html-output for every entry.
  {% for entry in citation_entries() %}
  {{ citation_full_output(entry)|decode|safe }}
  {% endfor %}

produces

<h2>{title}</h2><h3>{authors} ({pubYear})</h3>
<p>{note}</p>
<dl class="literature">
<dt class="edition"></dt>
<dd>{edition}</dd>
<dt class="editors"></dt>
<dd>{editors}</dd>
<dt class="pages"></dt>
<dd>{pages}</dd>
<dt class="issbn"></dt>
<dd>{issbn}</dd>
<dt class="publisher"></dt>
<dd>{publisher}</dd>
</dl>
  1. You may also use the citation_entry method in combination with pybtex*s Entry-class. For example:
<ul>
  {% for entry in citation_entries() %}
<li>{{ citation_entry(entry).fields['title'] |decode }}</li>
  {% endfor %}
  </ul>

This creates an unordered list of all the titles of your bibtex file. Of course you can also use citation_entry without a loop and put any id of your bibtex entries into it as parameter.

Limitations

It would be awesome if one could use s.th. like a cite(id)-function in the entire project to automatically convert it to proper links to the literature list. Like e.g. <a href="/myproject/literature/#Stahl2015" class="litref">Stahl (2015)</a> But as the only templates can make use of the functions this won't be possible for the markdown content of the page. Or maybe I just don't know how to implement this :shrug:

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

lektor-citation-0.1.tar.gz (15.5 kB view hashes)

Uploaded Source

Built Distribution

lektor_citation-0.1-py2.py3-none-any.whl (16.0 kB view hashes)

Uploaded Python 2 Python 3

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