diff --git a/README.md b/README.md
index 68a4fc4..d530d1d 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,10 @@ Create an _citation.ini_ in its _configs_-folder:
```
[Bibtex]
file = Literature.bib
+
+[default]
+priority = url
+link = /for-example/link-to-your/biblioprahy
```
And put a _Literature.bib_ BibTex-file into the project's _assets_-folder respectively.
@@ -94,5 +98,11 @@ Both methods create a complete hyperlink inside your text for the entry with _id
or
(AuthorI & AuthorII, 2019)
-
+
+#### link parameter
+Which url is used for your citation's link depends on what you set in the _citation.ini_ file.
+* If you set _priority_ in the _default_ section to __url__ the link is set to the value of the _url_ field of the entry.
+* If there's no value in it the default-link you may set with _link_ in the same section is used.
+* If you set the _link_ parameter of the function it overwrites the former options.
+
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.
diff --git a/lektor_citation.py b/lektor_citation.py
index d5b2385..c3837e9 100644
--- a/lektor_citation.py
+++ b/lektor_citation.py
@@ -15,6 +15,8 @@ class CitationPlugin(Plugin):
config = self.get_config()
self.bibfile = config.get('Bibtex.file', []).strip()
+ self.default_prio = config.get('default.priority', []).strip()
+ self.default_link = config.get('default.link', []).strip()
self.bib_data = parse_file(os.path.join(env.root_path, 'assets', self.bibfile))
@@ -46,7 +48,7 @@ class CitationPlugin(Plugin):
if len(lAuthor) > 1:
if n == (len(lAuthor) - 1):
- authors += " \& "
+ authors += " & "
elif n < (len(lAuthor) -1):
authors += ", "
@@ -77,7 +79,7 @@ class CitationPlugin(Plugin):
if len(lAuthor) > 1:
if n == (len(lAuthor) - 1):
- authors += " \& "
+ authors += " & "
elif n < (len(lAuthor) -1):
authors += ", "
@@ -223,24 +225,35 @@ class CitationPlugin(Plugin):
""".format(eid = id, link = link, authors = authors, pubYear = year, title = title, edition = edition, publisher = publisher, editors = editors, pages = pages, issbn = issbn, note = note)
return output
- def citation_full_cite(self,id,link=""):
+ def citation_base_cite(self,id,link="",output=""):
e = self.citation_entry(id)
+
+ if len(link) > 1:
+ link = link
+ elif self.default_prio == "url":
+ link = self.get_url(e)
+ if len(link) < 2:
+ link = self.default_link
+ else:
+ link = self.default_link
+
authors = self.get_authors_short(e)
year = self.get_pubYear(e)
- output = """({authors}, {pubYear})""".format(link = link, id = id, authors = authors, pubYear = year)
+ output = output.format(link = link, id = id, authors = authors, pubYear = year)
+ return output
+
+ def citation_full_cite(self,id,link=""):
+ output = self.citation_base_cite(id,link="",output="""({authors}, {pubYear})""")
return output
def citation_full_citeNP(self,id,link=""):
- e = self.citation_entry(id)
- authors = self.get_authors_short(e)
- year = self.get_pubYear(e)
- output = """{authors} ({pubYear})""".format(link = link, id = id, authors = authors, pubYear = year)
+ output = self.citation_base_cite(id,link="",output="""{authors} ({pubYear})""")
return output
def on_setup_env(self, **extra):
def decode_filter(value):
""" Make sure that special chars like german umlaute or accents are displayed in unicode """
- return LatexNodes2Text().latex_to_text(value)
+ return LatexNodes2Text().latex_to_text(value.replace(" & ", " \& "))
self.env.jinja_env.globals['citation_entries'] = self.citation_entries
self.env.jinja_env.globals['citation_entry'] = self.citation_entry