From d744fb698b96870249a72402cc1db39d0fe81cc2 Mon Sep 17 00:00:00 2001 From: John Schember Date: Thu, 2 Dec 2010 06:54:36 -0500 Subject: [PATCH] TXT Output: change remove links to keep links and remove links by default with Markdown format output. TXT Output: Add keep image references option and remove images by default with Markdown format output. --- src/calibre/ebooks/txt/markdownml.py | 5 ++++- src/calibre/ebooks/txt/output.py | 13 +++++++++---- src/calibre/gui2/convert/txt_output.py | 2 +- src/calibre/gui2/convert/txt_output.ui | 15 +++++++++++---- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/calibre/ebooks/txt/markdownml.py b/src/calibre/ebooks/txt/markdownml.py index 2ea3e7dafe..2f7960e94c 100644 --- a/src/calibre/ebooks/txt/markdownml.py +++ b/src/calibre/ebooks/txt/markdownml.py @@ -31,9 +31,12 @@ class MarkdownMLizer(object): for item in self.oeb_book.spine: self.log.debug('Converting %s to Markdown formatted TXT...' % item.href) html = unicode(etree.tostring(item.data, encoding=unicode)) - if self.opts.remove_links: + if not self.opts.keep_links: html = re.sub(r'<\s*a[^>]*>', '', html) html = re.sub(r'<\s*/\s*a\s*>', '', html) + if not self.opts.keep_image_references: + html = re.sub(r'<\s*img[^>]*>', '', html) + html = re.sub(r'<\s*img\s*>', '', html) output += html2text(html) output = u''.join(output) diff --git a/src/calibre/ebooks/txt/output.py b/src/calibre/ebooks/txt/output.py index a6f52f92ca..a6369b6f0b 100644 --- a/src/calibre/ebooks/txt/output.py +++ b/src/calibre/ebooks/txt/output.py @@ -48,11 +48,16 @@ class TXTOutput(OutputFormatPlugin): OptionRecommendation(name='markdown_format', recommended_value=False, level=OptionRecommendation.LOW, help=_('Produce Markdown formatted text.')), - OptionRecommendation(name='remove_links', + OptionRecommendation(name='keep_links', recommended_value=False, level=OptionRecommendation.LOW, - help=_('Remove links within the document. This is only ' \ - 'useful when paried with the markdown-format option because' \ - 'links are removed with plain text output.')), + help=_('Do not remove links within the document. This is only ' \ + 'useful when paired with the markdown-format option because' \ + 'links are always removed with plain text output.')), + OptionRecommendation(name='keep_image_references', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Do not remove image references within the document. This is only ' \ + 'useful when paired with the markdown-format option because' \ + 'image references are always removed with plain text output.')), ]) def convert(self, oeb_book, output_path, input_plugin, opts, log): diff --git a/src/calibre/gui2/convert/txt_output.py b/src/calibre/gui2/convert/txt_output.py index 3d35151bb8..2fafad4b43 100644 --- a/src/calibre/gui2/convert/txt_output.py +++ b/src/calibre/gui2/convert/txt_output.py @@ -21,7 +21,7 @@ class PluginWidget(Widget, Ui_Form): def __init__(self, parent, get_option, get_help, db=None, book_id=None): Widget.__init__(self, parent, ['newline', 'max_line_length', 'force_max_line_length', - 'inline_toc', 'markdown_format', 'remove_links']) + 'inline_toc', 'markdown_format', 'keep_links', 'keep_image_references']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/txt_output.ui b/src/calibre/gui2/convert/txt_output.ui index 75eac8f5fc..19e4ec52a1 100644 --- a/src/calibre/gui2/convert/txt_output.ui +++ b/src/calibre/gui2/convert/txt_output.ui @@ -6,7 +6,7 @@ 0 0 - 470 + 477 300 @@ -27,7 +27,7 @@ - + Qt::Vertical @@ -75,9 +75,16 @@ - + - Remove links (<a> tags) before processing + Do not remove links (<a> tags) before processing + + + + + + + Do not remove image references before processing