X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/3976b4e4cd70f87d0cdbd7191cc814a432eafc2d..cec81dc04a23808077505265a3f8bb0e9b6053cb:/librarian/fb2.py diff --git a/librarian/fb2.py b/librarian/fb2.py new file mode 100644 index 0000000..b0ad410 --- /dev/null +++ b/librarian/fb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# +import os.path +from copy import deepcopy +from lxml import etree + +from librarian import functions, OutputFile + + +functions.reg_substitute_entities() + +def transform(wldoc, verbose=False, + cover=None, flags=None): + """ produces a FB2 file + + cover: a cover.Cover object or True for default + flags: less-advertising, working-copy + """ + + document = deepcopy(wldoc) + del wldoc + + if flags: + for flag in flags: + document.edoc.getroot().set(flag, 'yes') + + style_filename = os.path.join(os.path.dirname(__file__), 'fb2/fb2.xslt') + style = etree.parse(style_filename) + + result = document.transform(style) + + return OutputFile.from_string(unicode(result).encode('utf-8'))