bib2html.py: Add incollection bibtype
[shutils.git] / bib2html.py
index a595f420b9679ec6efb1107ed4af8ec182a0ab64..7557ccead879e23eb94afeab328bc2420e01a5cc 100755 (executable)
@@ -103,6 +103,21 @@ def format_details_inproceedings(entry):
     line = filter(lambda l: l != "", line)
     return [where, ", ".join(line)]
 
+def format_details_incollection(entry):
+    where = format_field(entry, 'booktitle')
+
+    line = []
+    line.append(format_field(entry, 'publisher'))
+    line.append(format_field(entry, 'pages', pre='pp. '))
+    line.append(format_field(entry, 'address'))
+    line.append(format_field(entry, 'month', post=' ') + \
+            format_field(entry, 'year'))
+    line.append(format_field(entry, 'isbn', pre='ISBN '))
+    line.append(format_field(entry, 'note'))
+
+    line = filter(lambda l: l != "", line)
+    return [where, ", ".join(line)]
+
 def format_details_thesis(entry):
     line = []
     line.append(format_field(entry, 'school'))
@@ -124,6 +139,16 @@ def format_details_book(entry):
     line = filter(lambda l: l != "", line)
     return [", ".join(line)]
 
+def format_details_patent(entry):
+    line = []
+    line.append(format_field(entry, 'number', pre='Pat. '))
+    line.append(format_field(entry, 'month', post=' ') + \
+            format_field(entry, 'year'))
+    line.append(format_field(entry, 'note'))
+
+    line = filter(lambda l: l != "", line)
+    return [", ".join(line)]
+
 def format_links(entry):
     doi = format_field(entry, 'doi', pre='<a href="http://dx.doi.org/', post='">[DOI]</a>')
     webpdf = format_field(entry, 'webpdf', pre='<a href="', post='">[PDF]</a>')
@@ -143,8 +168,12 @@ def format_entry(entry):
         lines.extend(format_details_article(entry))
     elif entry.type=='inproceedings':
         lines.extend(format_details_inproceedings(entry))
+    elif entry.type=='incollection':
+        lines.extend(format_details_incollection(entry))
     elif entry.type=='book':
         lines.extend(format_details_book(entry))
+    elif entry.type=='patent':
+        lines.extend(format_details_patent(entry))
     elif entry.type in ['mastersthesis', 'phdthesis']:
         lines.extend(format_details_thesis(entry))
     else:
@@ -252,10 +281,8 @@ if __name__ == "__main__":
                 continue
 
             print("<div class=bibentry>")
-            print("<a class=bibentry_key id=" + key + ">[" + key + "]</a><br/>")
-
+            print("<a class=bibentry_key id={}>[{}]</a><br/><span class=bibentry_type>{}</span><br/>".format(key, key, entry.type))
             e = format_entry(entry)
             print(e)
 
             print("</div>\n")
-