mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
k and T code patches from WayneD.
This commit is contained in:
parent
c254f63a07
commit
fe9f40e4a6
@ -36,6 +36,7 @@ class PML_HTMLizer(object):
|
|||||||
't',
|
't',
|
||||||
's',
|
's',
|
||||||
'l',
|
'l',
|
||||||
|
'k',
|
||||||
'T',
|
'T',
|
||||||
'Fn',
|
'Fn',
|
||||||
'Sd',
|
'Sd',
|
||||||
@ -67,6 +68,7 @@ class PML_HTMLizer(object):
|
|||||||
'd': ('<span style="text-decoration: line-through;">', '</span>'),
|
'd': ('<span style="text-decoration: line-through;">', '</span>'),
|
||||||
'b': ('<span style="font-weight: bold;">', '</span>'),
|
'b': ('<span style="font-weight: bold;">', '</span>'),
|
||||||
'l': ('<span style="font-size: 150%;">', '</span>'),
|
'l': ('<span style="font-size: 150%;">', '</span>'),
|
||||||
|
'k': ('<span style="font-size: 75%;">', '</span>'),
|
||||||
'FS': ('<div id="%s">', '</div>'),
|
'FS': ('<div id="%s">', '</div>'),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +93,7 @@ class PML_HTMLizer(object):
|
|||||||
'b': 'b',
|
'b': 'b',
|
||||||
'B': 'b',
|
'B': 'b',
|
||||||
'l': 'l',
|
'l': 'l',
|
||||||
|
'k': 'k',
|
||||||
'Fn': 'a',
|
'Fn': 'a',
|
||||||
'Sd': 'a',
|
'Sd': 'a',
|
||||||
'FN': 'FS',
|
'FN': 'FS',
|
||||||
@ -107,6 +110,7 @@ class PML_HTMLizer(object):
|
|||||||
|
|
||||||
SPAN_STATES = [
|
SPAN_STATES = [
|
||||||
'l',
|
'l',
|
||||||
|
'k',
|
||||||
'i',
|
'i',
|
||||||
'u',
|
'u',
|
||||||
'd',
|
'd',
|
||||||
@ -125,11 +129,11 @@ class PML_HTMLizer(object):
|
|||||||
pml = re.sub(r'(?mus)<footnote\s+id="(?P<target>.+?)">\s*(?P<text>.*?)\s*</footnote>', lambda match: '\\FN="fns-%s"%s\\FN' % (match.group('target'), match.group('text')) if match.group('text') else '', pml)
|
pml = re.sub(r'(?mus)<footnote\s+id="(?P<target>.+?)">\s*(?P<text>.*?)\s*</footnote>', lambda match: '\\FN="fns-%s"%s\\FN' % (match.group('target'), match.group('text')) if match.group('text') else '', pml)
|
||||||
pml = re.sub(r'(?mus)<sidebar\s+id="(?P<target>.+?)">\s*(?P<text>.*?)\s*</sidebar>', lambda match: '\\SB="fns-%s"%s\\SB' % (match.group('target'), match.group('text')) if match.group('text') else '', pml)
|
pml = re.sub(r'(?mus)<sidebar\s+id="(?P<target>.+?)">\s*(?P<text>.*?)\s*</sidebar>', lambda match: '\\SB="fns-%s"%s\\SB' % (match.group('target'), match.group('text')) if match.group('text') else '', pml)
|
||||||
|
|
||||||
pml = prepare_string_for_xml(pml)
|
|
||||||
|
|
||||||
pml = re.sub(r'\\a(?P<num>\d{3})', lambda match: '&#%s;' % match.group('num'), pml)
|
pml = re.sub(r'\\a(?P<num>\d{3})', lambda match: '&#%s;' % match.group('num'), pml)
|
||||||
pml = re.sub(r'\\U(?P<num>[0-9a-f]{4})', lambda match: '%s' % my_unichr(int(match.group('num'), 16)), pml)
|
pml = re.sub(r'\\U(?P<num>[0-9a-f]{4})', lambda match: '%s' % my_unichr(int(match.group('num'), 16)), pml)
|
||||||
|
|
||||||
|
pml = prepare_string_for_xml(pml)
|
||||||
|
|
||||||
return pml
|
return pml
|
||||||
|
|
||||||
def prepare_line(self, line):
|
def prepare_line(self, line):
|
||||||
@ -181,7 +185,7 @@ class PML_HTMLizer(object):
|
|||||||
if val[0]:
|
if val[0]:
|
||||||
if key == 'T':
|
if key == 'T':
|
||||||
self.state['T'][0] = False
|
self.state['T'][0] = False
|
||||||
elif key in self.DIV_STATES:
|
if key in self.DIV_STATES:
|
||||||
div.append(key)
|
div.append(key)
|
||||||
elif key in self.SPAN_STATES:
|
elif key in self.SPAN_STATES:
|
||||||
span.append(key)
|
span.append(key)
|
||||||
@ -238,6 +242,11 @@ class PML_HTMLizer(object):
|
|||||||
ss = []
|
ss = []
|
||||||
|
|
||||||
if self.state[code][0]:
|
if self.state[code][0]:
|
||||||
|
# Ignore multilple T's on the same line. They do not have a closing
|
||||||
|
# code. They get closed at the end of the line.
|
||||||
|
if code == 'T':
|
||||||
|
self.code_value(stream)
|
||||||
|
return text
|
||||||
# Close all.
|
# Close all.
|
||||||
for c in ss+ds:
|
for c in ss+ds:
|
||||||
if self.state[c][0]:
|
if self.state[c][0]:
|
||||||
@ -346,7 +355,7 @@ class PML_HTMLizer(object):
|
|||||||
text = self.process_code_simple('%s%s' % (c, l))
|
text = self.process_code_simple('%s%s' % (c, l))
|
||||||
elif c == 'q':
|
elif c == 'q':
|
||||||
text = self.process_code_link(line)
|
text = self.process_code_link(line)
|
||||||
elif c in 'crtTiIuobBl':
|
elif c in 'crtTiIuobBlk':
|
||||||
text = self.process_code_div_span(c, line)
|
text = self.process_code_div_span(c, line)
|
||||||
elif c == 'm':
|
elif c == 'm':
|
||||||
empty = False
|
empty = False
|
||||||
@ -384,6 +393,9 @@ class PML_HTMLizer(object):
|
|||||||
else:
|
else:
|
||||||
if c != ' ':
|
if c != ' ':
|
||||||
empty = False
|
empty = False
|
||||||
|
if self.state['k'][0]:
|
||||||
|
text = c.upper()
|
||||||
|
else:
|
||||||
text = c
|
text = c
|
||||||
parsed.append(text)
|
parsed.append(text)
|
||||||
c = line.read(1)
|
c = line.read(1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user