A more sensible error when markdown fails

This commit is contained in:
Kovid Goyal 2009-06-01 20:49:30 -07:00
parent e3fabe843a
commit 3fecb610dc

View File

@ -10,7 +10,7 @@ from calibre.customize.conversion import InputFormatPlugin
from calibre.ebooks.txt.processor import txt_to_markdown, opf_writer from calibre.ebooks.txt.processor import txt_to_markdown, opf_writer
class TXTInput(InputFormatPlugin): class TXTInput(InputFormatPlugin):
name = 'TXT Input' name = 'TXT Input'
author = 'John Schember' author = 'John Schember'
description = 'Convert TXT files to HTML' description = 'Convert TXT files to HTML'
@ -22,16 +22,20 @@ class TXTInput(InputFormatPlugin):
if options.input_encoding: if options.input_encoding:
ienc = options.input_encoding ienc = options.input_encoding
txt = stream.read().decode(ienc) txt = stream.read().decode(ienc)
html = txt_to_markdown(txt) try:
html = txt_to_markdown(txt)
except RuntimeError:
raise ValueError('This txt file has malformed markup, it cannot be'
'converted by calibre. See http://daringfireball.net/projects/markdown/syntax')
with open('index.html', 'wb') as index: with open('index.html', 'wb') as index:
index.write(html.encode('utf-8')) index.write(html.encode('utf-8'))
from calibre.ebooks.metadata.meta import get_metadata from calibre.ebooks.metadata.meta import get_metadata
mi = get_metadata(stream, 'txt') mi = get_metadata(stream, 'txt')
manifest = [('index.html', None)] manifest = [('index.html', None)]
spine = ['index.html'] spine = ['index.html']
opf_writer(os.getcwd(), 'metadata.opf', manifest, spine, mi) opf_writer(os.getcwd(), 'metadata.opf', manifest, spine, mi)
return os.path.join(os.getcwd(), 'metadata.opf') return os.path.join(os.getcwd(), 'metadata.opf')