]> git.phdru.name Git - bookmarks_db.git/blob - Writers/bkmk_whtml.py
Store icon's URIs.
[bookmarks_db.git] / Writers / bkmk_whtml.py
1 """
2    Convert a bkmk database back to bookmarks.html
3
4    Written by Broytman. Copyright (C) 2000-2010 PhiloSoft Design
5 """
6
7 from bkmk_objects import Writer, BKMK_FORMAT, quote_title
8
9
10 def dump_comment(comment):
11    comment = comment.replace("<BR>\n", "\n")
12    if BKMK_FORMAT == "NETSCAPE":
13       comment = comment.replace("\n", "<BR>\n")
14    return comment
15
16
17 ind_s = " "*4
18
19 class writer_html(Writer):
20    filename = "bookmarks.html"
21
22    def _folder(self, f, level):
23       if f.comment: self.outfile.write('<DD>%s\n' % dump_comment(f.comment))
24       self.outfile.write(ind_s*level + "<DL><p>\n")
25
26    def root_folder(self, f):
27       self.outfile.write("<!DOCTYPE NETSCAPE-Bookmark-file-1>\n")
28       self.outfile.write(f.header + "\n")
29       self.outfile.write('<H1>%s</H1>\n\n' % quote_title(f.name))
30       self._folder(f, 0)
31
32    def start_folder(self, f, level):
33       self.outfile.write(ind_s*level + '<DT><H3 ADD_DATE="%s"' % f.add_date)
34       if (BKMK_FORMAT == "MOZILLA") and f.last_modified: self.outfile.write(' LAST_MODIFIED="%s"' % f.last_modified)
35       self.outfile.write('>%s</H3>\n' % quote_title(f.name))
36       self._folder(f, level)
37
38    def end_folder(self, f, level):
39       self.outfile.write(ind_s*level + "</DL><p>\n")
40
41    def bookmark(self, b, level):
42       self.outfile.write(ind_s*(level+1) + '<DT><A HREF="%s" ADD_DATE="%s" LAST_VISIT="%s" LAST_MODIFIED="%s"' % (b.href, b.add_date, b.last_visit, b.last_modified))
43       if BKMK_FORMAT == "MOZILLA":
44          if b.keyword: self.outfile.write(' SHORTCUTURL="%s"' % b.keyword)
45          if b.icon_href: self.outfile.write(' ICON_URI="%s"' % b.icon_href)
46          if b.icon: self.outfile.write(' ICON="%s"' % b.icon)
47          if b.charset: self.outfile.write(' LAST_CHARSET="%s"' % b.charset)
48       self.outfile.write('>%s</A>\n' % quote_title(b.name))
49       if b.comment: self.outfile.write('<DD>%s\n' % dump_comment(b.comment))
50
51    def ruler(self, r, level):
52       self.outfile.write(ind_s*(level+1) + "<HR>\n")