An APA-style citation plugin for the lektor static content management system (https://getlektor.com).
Go to file
Homer S. ed616698a8 Fixed the ampersand decoding problem. 2022-01-27 13:42:56 +01:00
.gitignore Initial commit 2022-01-20 06:52:49 +01:00
LICENSE Initial commit 2022-01-20 06:52:49 +01:00
README.md Removed Backslashs 2022-01-25 00:29:55 +01:00
lektor_citation.py Fixed the ampersand decoding problem. 2022-01-27 13:42:56 +01:00
setup.cfg Initial commit. 2022-01-20 07:02:55 +01:00
setup.py Extended the plugin with the lektor-jinja-content plugin, too in-text citation methods and a tidied code structure. 2022-01-25 00:24:48 +01:00

README.md

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

Bibliography

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.

Alternatively to the pybtex methods you can use the following jinja_env globals:

citation_authors_short(entry)
citation_authors_full(entry)
citation_editors_short(entry)
citation_editors_full(entry)
citation_pubYear(entry)
citation_edition(entry)
citation_publisher(entry)
citation_title(entry)
citation_url(entry)
citation_issbn(entry)
citation_pages(entry)
citation_note(entry)

In-text Cites

To cite a certain entry in your texts you can use the jinja_env globals:

citation_full_cite(id, link="")
citation_full_citeNP(id, link="")

Both methods create a complete hyperlink inside your text for the entry with id. You may give it any url to the link parameter to e.g. link it to your bibliography page. The NP in the second stands for No Parantheses. So you'll receive e.g.

AuthorI & AuthorII (2019)

or

(AuthorI & AuthorII, 2019)

Thanks to the lektor-jinja-content plugin which is a dependency of this plugin you might also use the globals inside your markdown or html contents, too.