def to_html(localtime = true)
s = "<table border=\"1\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" borderspacing=\"0\"><tr><td>\n<table width=\"100%\" bgcolor=\"#EDEDED\" cellpadding=\"4\" cellspacing=\"2\">\n"
r = ""
r += "<a href=\"#{@feed.link}\">\n" if @feed.link
if @feed.title
r += "<b>#{@feed.title.escape_html}</b>\n"
elsif @feed.link
r += "<b>#{@feed.link.escape_html}</b>\n"
else
r += "<b>Unnamed feed</b>\n"
end
r += "</a>\n" if @feed.link
headline = "<tr><td align=\"right\"><b>%s</b></td>\n<td width=\"100%%\">%s</td></tr>"
s += (headline % ["Feed:", r])
r = ""
r += "<a href=\"#{@link}\">" if @link
if @title
r += "<b>#{@title.escape_html}</b>\n"
elsif @link
r += "<b>#{@link.escape_html}</b>\n"
end
r += "</a>\n" if @link
s += (headline % ["Item:", r])
s += "</table></td></tr></table>\n"
s += "\n"
if @content and @content !~ /\A\s*</m
s += "<br/>\n"
end
s += "#{@content}" if @content
if @enclosures and @enclosures.length > 0
s += "<table border=\"1\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" borderspacing=\"0\"><tr><td>\n<table width=\"100%\" bgcolor=\"#EDEDED\" cellpadding=\"2\" cellspacing=\"2\">\n"
s += '<tr><td width="100%"><b>Files:</b></td></tr>'
s += "\n"
@enclosures.each do |e|
s += "<tr><td> <a href=\"#{e[0]}\">#{e[0].split('/')[-1]}</a> (#{e[1].to_i.to_human_readable}, #{e[2]})</td></tr>\n"
end
s += "</table></td></tr></table>\n"
end
s += "\n<hr width=\"100%\"/>\n"
s += '<table width="100%" cellpadding="0" cellspacing="0">' + "\n"
l = '<tr><td align="right"><font color="#ababab">%s</font> </td><td><font color="#ababab">%s</font></td></tr>' + "\n"
if @date
if localtime
s += l % [ 'Date:', @date.to_s ]
else
s += l % [ 'Date:', @date.getutc.to_s ]
end
end
s += l % [ 'Author:', creator.escape_html ] if creator
s += l % [ 'Subject:', @subject.escape_html ] if @subject
s += l % [ 'Filed under:', @categories.join(', ').escape_html ] unless @categories.empty?
s += "</table>\n"
s
end