def pygments_style(page, elem, dummy_uid='42', vlam=None): cssclass = config[page.username]['style'] wrap = False if vlam is not None: show_vlam = create_show_vlam(page, elem, vlam) elif 'show_vlam' in elem.attrib['title']: show_vlam = create_show_vlam(page, elem, elem.attrib['title']) wrap = True else: show_vlam = None language = elem.attrib['title'].split()[0] if language in ['py_code', 'python_code']: language = "python" text = extract_code(elem) styled_code = _style(text, language, cssclass) if vlam is None: vlam = elem.attrib['title'] if 'linenumber' in vlam: styled_code = add_linenumber(styled_code, vlam) markup = fromstring(styled_code) elem[:] = markup[:] elem.text = markup.text if 'class' in elem.attrib: elem.attrib['class'] += " " + CRUNCHY_PYGMENTS else: elem.attrib['class'] = CRUNCHY_PYGMENTS if not page.includes("pygment_cssclass"): # replacing class name for security reasons. page.add_css_code(HtmlFormatter(style=cssclass).get_style_defs("."+cssclass).replace(cssclass, CRUNCHY_PYGMENTS)) page.add_include("pygment_cssclass") if wrap: wrap_in_div(elem, dummy_uid, '', "show_vlam", show_vlam) return text, show_vlam
def create_show_vlam(page, elem, vlam): '''Creates a <code> element showing the complete vlam options used, as well as the element type.''' if 'show_vlam' not in vlam: return None cssclass = config[page.username]['style'] attributes = ' title="%s"' % vlam for attr in elem.attrib: if attr != 'title': attributes += ' %s="%s"' % (attr, elem.attrib[attr]) elem_info = '<%s%s> ... </%s>' % (elem.tag, attributes, elem.tag) styled_elem_info = _style(elem_info, 'html', cssclass) show_vlam = fromstring(styled_elem_info) show_vlam.tag = 'code' show_vlam.attrib['class'] = CRUNCHY_PYGMENTS display = Element('h3') display.attrib['class'] = "show_vlam" display.text = "VLAM = " display.append(show_vlam) return display
def pygments_style(page, elem, dummy_uid='42', vlam=None): cssclass = config[page.username]['style'] wrap = False if vlam is not None: show_vlam = create_show_vlam(page, elem, vlam) elif 'show_vlam' in elem.attrib['title']: show_vlam = create_show_vlam(page, elem, elem.attrib['title']) wrap = True else: show_vlam = None language = elem.attrib['title'].split()[0] if language in ['py_code', 'python_code']: language = "python" text = extract_code(elem) styled_code = _style(text, language, cssclass) if vlam is None: vlam = elem.attrib['title'] if 'linenumber' in vlam: styled_code = add_linenumber(styled_code, vlam) markup = fromstring(styled_code) elem[:] = markup[:] elem.text = markup.text if 'class' in elem.attrib: elem.attrib['class'] += " " + CRUNCHY_PYGMENTS else: elem.attrib['class'] = CRUNCHY_PYGMENTS if not page.includes("pygment_cssclass"): # replacing class name for security reasons. page.add_css_code( HtmlFormatter(style=cssclass).get_style_defs("." + cssclass).replace( cssclass, CRUNCHY_PYGMENTS)) page.add_include("pygment_cssclass") if wrap: wrap_in_div(elem, dummy_uid, '', "show_vlam", show_vlam) return text, show_vlam