mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
html output first version
This commit is contained in:
parent
735b22b934
commit
5451c38d5d
@ -434,6 +434,7 @@ from calibre.ebooks.rb.output import RBOutput
|
|||||||
from calibre.ebooks.rtf.output import RTFOutput
|
from calibre.ebooks.rtf.output import RTFOutput
|
||||||
from calibre.ebooks.tcr.output import TCROutput
|
from calibre.ebooks.tcr.output import TCROutput
|
||||||
from calibre.ebooks.txt.output import TXTOutput
|
from calibre.ebooks.txt.output import TXTOutput
|
||||||
|
from calibre.ebooks.html.output import HTMLOutput
|
||||||
|
|
||||||
from calibre.customize.profiles import input_profiles, output_profiles
|
from calibre.customize.profiles import input_profiles, output_profiles
|
||||||
|
|
||||||
@ -510,6 +511,7 @@ plugins += [
|
|||||||
RTFOutput,
|
RTFOutput,
|
||||||
TCROutput,
|
TCROutput,
|
||||||
TXTOutput,
|
TXTOutput,
|
||||||
|
HTMLOutput,
|
||||||
]
|
]
|
||||||
# Order here matters. The first matched device is the one used.
|
# Order here matters. The first matched device is the one used.
|
||||||
plugins += [
|
plugins += [
|
||||||
@ -874,4 +876,3 @@ plugins += [LookAndFeel, Behavior, Columns, Toolbar, InputOptions,
|
|||||||
Email, Server, Plugins, Tweaks, Misc]
|
Email, Server, Plugins, Tweaks, Misc]
|
||||||
|
|
||||||
#}}}
|
#}}}
|
||||||
|
|
||||||
|
@ -1644,6 +1644,22 @@ class TOC(object):
|
|||||||
node.to_ncx(point)
|
node.to_ncx(point)
|
||||||
return parent
|
return parent
|
||||||
|
|
||||||
|
def to_xhtml(self, parent=None):
|
||||||
|
print parent.__class__
|
||||||
|
if parent is None:
|
||||||
|
parent = etree.Element(XHTML('ul'))
|
||||||
|
elif len(self.nodes):
|
||||||
|
parent = element(parent, (XHTML('ul')))
|
||||||
|
for node in self.nodes:
|
||||||
|
point = element(parent, XHTML('li'))
|
||||||
|
link = element(point, XHTML('a'), href=urlunquote(node.href))
|
||||||
|
title = node.title
|
||||||
|
if title:
|
||||||
|
title = re.sub(r'\s+', ' ', title)
|
||||||
|
link.text=title
|
||||||
|
node.to_xhtml(point)
|
||||||
|
return parent
|
||||||
|
|
||||||
def rationalize_play_orders(self):
|
def rationalize_play_orders(self):
|
||||||
'''
|
'''
|
||||||
Ensure that all nodes with the same play_order have the same href and
|
Ensure that all nodes with the same play_order have the same href and
|
||||||
@ -1962,3 +1978,14 @@ class OEBBook(object):
|
|||||||
spine.attrib['page-map'] = id
|
spine.attrib['page-map'] = id
|
||||||
results[PAGE_MAP_MIME] = (href, self.pages.to_page_map())
|
results[PAGE_MAP_MIME] = (href, self.pages.to_page_map())
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
def html_toc(self):
|
||||||
|
lang = unicode(self.metadata.language[0])
|
||||||
|
html = etree.Element(XHTML('html'),
|
||||||
|
attrib={XML('lang'): lang},
|
||||||
|
nsmap={None: XHTML_NS})
|
||||||
|
head = etree.SubElement(html, XHTML('head'))
|
||||||
|
title = etree.SubElement(head, XHTML('title'))
|
||||||
|
body = etree.SubElement(html, XHTML('body'))
|
||||||
|
body.append(self.toc.to_xhtml())
|
||||||
|
return html
|
||||||
|
@ -49,5 +49,3 @@ class OEBOutput(OutputFormatPlugin):
|
|||||||
with open(path, 'wb') as f:
|
with open(path, 'wb') as f:
|
||||||
f.write(str(item))
|
f.write(str(item))
|
||||||
item.unload_data_from_memory(memory=path)
|
item.unload_data_from_memory(memory=path)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user