dev0.21 #2
10
README.md
10
README.md
|
@ -15,6 +15,10 @@ Create an _citation.ini_ in its _configs_-folder:
|
||||||
```
|
```
|
||||||
[Bibtex]
|
[Bibtex]
|
||||||
file = Literature.bib
|
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.
|
And put a _Literature.bib_ BibTex-file into the project's _assets_-folder respectively.
|
||||||
|
@ -95,4 +99,10 @@ or
|
||||||
|
|
||||||
(AuthorI & AuthorII, 2019)
|
(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.
|
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.
|
||||||
|
|
|
@ -15,6 +15,8 @@ class CitationPlugin(Plugin):
|
||||||
|
|
||||||
config = self.get_config()
|
config = self.get_config()
|
||||||
self.bibfile = config.get('Bibtex.file', []).strip()
|
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))
|
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 len(lAuthor) > 1:
|
||||||
|
|
||||||
if n == (len(lAuthor) - 1):
|
if n == (len(lAuthor) - 1):
|
||||||
authors += " \& "
|
authors += " & "
|
||||||
elif n < (len(lAuthor) -1):
|
elif n < (len(lAuthor) -1):
|
||||||
authors += ", "
|
authors += ", "
|
||||||
|
|
||||||
|
@ -77,7 +79,7 @@ class CitationPlugin(Plugin):
|
||||||
if len(lAuthor) > 1:
|
if len(lAuthor) > 1:
|
||||||
|
|
||||||
if n == (len(lAuthor) - 1):
|
if n == (len(lAuthor) - 1):
|
||||||
authors += " \& "
|
authors += " & "
|
||||||
elif n < (len(lAuthor) -1):
|
elif n < (len(lAuthor) -1):
|
||||||
authors += ", "
|
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)
|
""".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
|
return output
|
||||||
|
|
||||||
def citation_full_cite(self,id,link=""):
|
def citation_base_cite(self,id,link="",output=""):
|
||||||
e = self.citation_entry(id)
|
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)
|
authors = self.get_authors_short(e)
|
||||||
year = self.get_pubYear(e)
|
year = self.get_pubYear(e)
|
||||||
output = """<a href=\"{link}#{id}\" class=\"litref\">({authors}, {pubYear})</a>""".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="""<a href=\"{link}#{id}\" class=\"litref\">({authors}, {pubYear})</a>""")
|
||||||
return output
|
return output
|
||||||
|
|
||||||
def citation_full_citeNP(self,id,link=""):
|
def citation_full_citeNP(self,id,link=""):
|
||||||
e = self.citation_entry(id)
|
output = self.citation_base_cite(id,link="",output="""<a href=\"{link}#{id}\" class=\"litref\">{authors} ({pubYear})</a>""")
|
||||||
authors = self.get_authors_short(e)
|
|
||||||
year = self.get_pubYear(e)
|
|
||||||
output = """<a href=\"{link}#{id}\" class=\"litref\">{authors} ({pubYear})</a>""".format(link = link, id = id, authors = authors, pubYear = year)
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
def on_setup_env(self, **extra):
|
def on_setup_env(self, **extra):
|
||||||
def decode_filter(value):
|
def decode_filter(value):
|
||||||
""" Make sure that special chars like german umlaute or accents are displayed in unicode """
|
""" 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_entries'] = self.citation_entries
|
||||||
self.env.jinja_env.globals['citation_entry'] = self.citation_entry
|
self.env.jinja_env.globals['citation_entry'] = self.citation_entry
|
||||||
|
|
Loading…
Reference in New Issue