1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
import re
from plasTeX.Renderers.PageTemplate import Renderer as _Renderer
class XHTML(_Renderer):
""" Renderer for XHTML documents """
fileExtension = '.html'
imageTypes = ['.png','.jpg','.jpeg','.gif']
vectorImageTypes = ['.svg']
def cleanup(self, document, files, postProcess=None):
res = _Renderer.cleanup(self, document, files, postProcess=postProcess)
return res
def processFileContent(self, document, s):
s = _Renderer.processFileContent(self, document, s)
# Force XHTML syntax on empty tags
s = re.compile(r'(<(?:hr|br|img|link|meta|col)\b.*?)\s*/?\s*(>)',
re.I|re.S).sub(r'\1 /\2', s)
# Remove empty paragraphs
s = re.compile(r'<p>\s*</p>', re.I).sub(r'', s)
# Add a non-breaking space to empty table cells
s = re.compile(r'(<(td|th)\b[^>]*>)\s*(</\2>)', re.I).sub(r'\1 \3', s)
return s
Renderer = XHTML
|