X-Git-Url: https://git.sthu.org/?p=shutils.git;a=blobdiff_plain;f=bib2html.py;h=3ad3a93ee061d6f44088be9ac134b7f308ce9d43;hp=28abd58ecbfebd88bfcdc56099a1a33619139f13;hb=58dbef0f4c9b483070f21df665e86ed63f7388ad;hpb=3ac17777f987e1c78ea411f149e450015da3dfc4
diff --git a/bib2html.py b/bib2html.py
index 28abd58..3ad3a93 100755
--- a/bib2html.py
+++ b/bib2html.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
"""Creates a webpage with all entries of a .bib file"""
__version__ = "1.0"
@@ -42,11 +42,12 @@ def format_field_span(type, value):
def format_field(bibentry, field, pre='', post=''):
if field in bibentry.fields:
- return format_field_span(field, pre + bibentry.fields[field] + post)
+ if bibentry.fields[field] != "":
+ return format_field_span(field, pre + bibentry.fields[field] + post)
return ""
def format_author(a):
- return ' '.join(' '.join(p) for p in (a.first(), a.middle(), a.prelast(), a.last(), a.lineage()) if p)
+ return ' '.join(' '.join(p) for p in (a.first_names, a.middle_names, a.prelast_names, a.last_names, a.lineage_names) if p)
def format_authors(entry):
return ", ".join([format_author(a) for a in entry.persons['author']])
@@ -95,12 +96,13 @@ def format_details_book(entry):
return [", ".join(line)]
def format_links(entry):
+ doi = format_field(entry, 'doi', pre='[DOI]')
webpdf = format_field(entry, 'webpdf', pre='[PDF]')
weblink = format_field(entry, 'weblink', pre='[link]')
webslides = format_field(entry, 'webslides', pre='[slides]')
weberrata = format_field(entry, 'weberrata', pre='[errata]')
- return " ".join([webpdf, weblink, webslides, weberrata])
+ return " ".join([doi, webpdf, weblink, webslides, weberrata])
def format_entry(entry):
lines = []
@@ -125,19 +127,19 @@ def format_entry(entry):
return "
\n".join(lines)
-def entryCompareDate(p1, p2):
- k1, e1 = p1
- k2, e2 = p2
+def entryDateSortKey(p):
+ k, e = p
-
- def toStr(e):
- month = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
- 'apr' : '04', 'may' : '05', 'jun' : '06', \
- 'jul' : '07', 'aug' : '08', 'sep' : '09', \
- 'oct' : '10', 'nov' : '11', 'dec' : '12'}
- return e.fields['year'] + "-" + month[e.fields['month'].lower()[0:3]]
-
- return cmp(toStr(e1), toStr(e2))
+ month2num = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
+ 'apr' : '04', 'may' : '05', 'jun' : '06', \
+ 'jul' : '07', 'aug' : '08', 'sep' : '09', \
+ 'oct' : '10', 'nov' : '11', 'dec' : '12'}
+ month = e.fields['month'].lower()[0:3]
+ if month in month2num:
+ month = month2num[month]
+ else:
+ month = ""
+ return e.fields['year'] + "-" + month
def usage():
@@ -193,8 +195,8 @@ if __name__ == "__main__":
print("