Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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