projects
/
shutils.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
794b051
)
bib2html.py: Make use of date field
author
Stefan Huber <shuber@sthu.org>
Thu, 3 Aug 2023 19:15:29 +0000
(21:15 +0200)
committer
Stefan Huber <shuber@sthu.org>
Thu, 3 Aug 2023 19:16:23 +0000
(21:16 +0200)
bib2html.py
patch
|
blob
|
history
diff --git
a/bib2html.py
b/bib2html.py
index 5d5b4db16f6e75bbd796858d792714130052a614..a595f420b9679ec6efb1107ed4af8ec182a0ab64 100755
(executable)
--- a/
bib2html.py
+++ b/
bib2html.py
@@
-32,6
+32,7
@@
__license__ = "MIT"
import os, sys, getopt, re
import os, sys, getopt, re
+import dateutil.parser
def format_latex(text):
def format_latex(text):
@@
-159,6
+160,9
@@
def format_entry(entry):
def entryDateSortKey(p):
k, e = p
def entryDateSortKey(p):
k, e = p
+ if 'date' in e.fields:
+ return e.fields['date']
+
month2num = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
'apr' : '04', 'may' : '05', 'jun' : '06', \
'jul' : '07', 'aug' : '08', 'sep' : '09', \
month2num = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
'apr' : '04', 'may' : '05', 'jun' : '06', \
'jul' : '07', 'aug' : '08', 'sep' : '09', \
@@
-176,6
+180,17
@@
def entryDateSortKey(p):
return e.fields['year'] + "-" + month
return e.fields['year'] + "-" + month
+def entryGetYear(e):
+ if 'year' in e.fields:
+ return e.fields['year']
+
+ if 'date' in e.fields:
+ dt = dateutil.parser.isoparse(e.fields['date'])
+ return str(dt.year)
+
+ return None
+
+
def usage():
"""Print usage text of this program"""
def usage():
"""Print usage text of this program"""
@@
-222,7
+237,7
@@
if __name__ == "__main__":
bib_data = parser.parse_file(bibfile)
entries = bib_data.entries
bib_data = parser.parse_file(bibfile)
entries = bib_data.entries
- years = list(set([
b.fields['year'] for b in entries.values()
]))
+ years = list(set([
entryGetYear(e) for e in entries.values()
]))
years.sort(reverse=True)
for year in years:
years.sort(reverse=True)
for year in years:
@@
-233,7
+248,7
@@
if __name__ == "__main__":
iteritems.sort(key=entryDateSortKey, reverse=True)
for key, entry in iteritems:
iteritems.sort(key=entryDateSortKey, reverse=True)
for key, entry in iteritems:
- if entry
.fields['year']
!= year:
+ if entry
GetYear(entry)
!= year:
continue
print("<div class=bibentry>")
continue
print("<div class=bibentry>")