diff --git a/lektor_citation.py b/lektor_citation.py index 9f37453..2697a58 100644 --- a/lektor_citation.py +++ b/lektor_citation.py @@ -18,19 +18,65 @@ class CitationPlugin(Plugin): self.bib_data = parse_file(os.path.join(env.root_path, 'assets', self.bibfile)) - - def citation_entries(self): return self.bib_data.entries def citation_entry(self, id): return self.bib_data.entries[id] + def citation_short_output(self, id, link="?"): + e = self.citation_entry(id) + link = link+"#"+id + authors = "" + lAuthor = e.persons['author'] + n = 1 + for author in lAuthor: + if len(author.prelast_names) > 0: + authors += str(author.prelast_names) + authors += str(author.last_names[0]) + + if len(lAuthor) > 1: + + if n == (len(lAuthor) - 1): + authors += " \& " + elif n < (len(lAuthor) -1): + authors += ", " + n = n + 1 + + + year = e.fields['year'] + edition = "" + if 'edition' in e.fields.keys(): + edition = " ({ed}. Aufl.)".format(ed = edition) + else: + edition = "" + + + if 'publisher' in e.fields.keys(): + publisher = e.fields['publisher'] + if 'address' in e.fields.keys(): + location = e.fields['address'] + publisher = " {location}:{publisher}.".format(location = location, publisher = publisher) + elif publisher: + publisher = " {publisher}.".format(publisher = publisher) + else: + publisher = "" + + output = '