mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
FB2 Input: Add support for FB2 books that use the FictionBook 2.1 XML schema. Fixes #1401915 [can't read fb2, saved from samlib.ru](https://bugs.launchpad.net/calibre/+bug/1401915)
This commit is contained in:
parent
74b391f1c7
commit
610f2e32cb
@ -1,4 +1,4 @@
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fb="http://www.gribuser.ru/xml/fictionbook/2.0">
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fb="__FB_NS__">
|
||||
<!--
|
||||
#########################################################################
|
||||
# #
|
||||
|
@ -58,6 +58,10 @@ class FB2Input(InputFormatPlugin):
|
||||
parser=RECOVER_PARSER)
|
||||
if doc is None:
|
||||
raise ValueError('The FB2 file is not valid XML')
|
||||
try:
|
||||
fb_ns = doc.nsmap[doc.prefix]
|
||||
except Exception:
|
||||
fb_ns = 'http://www.gribuser.ru/xml/fictionbook/2.0'
|
||||
stylesheets = doc.xpath('//*[local-name() = "stylesheet" and @type="text/css"]')
|
||||
css = ''
|
||||
for s in stylesheets:
|
||||
@ -78,6 +82,7 @@ class FB2Input(InputFormatPlugin):
|
||||
self.extract_embedded_content(doc)
|
||||
log.debug('Converting XML to HTML...')
|
||||
ss = open(P('templates/fb2.xsl'), 'rb').read()
|
||||
ss = ss.replace("__FB_NS__", fb_ns)
|
||||
if options.no_inline_fb2_toc:
|
||||
log('Disabling generation of inline FB2 TOC')
|
||||
ss = re.compile(r'<!-- BUILD TOC -->.*<!-- END BUILD TOC -->',
|
||||
|
Loading…
x
Reference in New Issue
Block a user