Ejemplo n.º 1
0
def code_snippet_knowl(D, full=True):
    r"""
    INPUT:

    - ``D`` -- a dictionary with the following keys
      - ``filename`` -- a filename within the lmfdb repository
      - ``code`` -- a list of code lines (without trailing \n)
      - ``lines`` -- (optional) a list of line numbers
    - ``full`` -- if False, display only the filename rather than the full path.
    """
    filename = D['filename']
    code = D['code']
    lines = D.get('lines')
    code = '\n'.join(code).replace('<', '&lt;').replace('>', '&gt;').replace(
        '"', '&quot;')
    if is_debug_mode():
        branch = "master"
    elif is_beta():
        branch = "dev"
    else:
        branch = "web"
    url = "%s%s/%s" % (_url_source, branch, filename)
    link_text = "%s on Github" % (filename)
    if not full:
        filename = filename.split('/')[-1]
    if lines:
        if len(lines) == 1:
            label = '%s (line %s)' % (filename, lines[0])
        else:
            lines = sorted(lines)
            label = '%s (lines %s-%s)' % (filename, lines[0], lines[-1])
        url += "#L%s" % lines[0]
    else:
        label = filename
    inner = u"<div>\n<pre></pre>\n</div>\n<div align='right'><a href='%s' target='_blank'>%s</a></div>"
    inner = inner % (url, link_text)
    return ur'<a title="[code]" knowl="dynamic_show" pretext="%s" kwargs="%s">%s</a>' % (
        code, inner, label)
Ejemplo n.º 2
0
def code_snippet_knowl(D, full=True):
    r"""
    INPUT:

    - ``D`` -- a dictionary with the following keys
      - ``filename`` -- a filename within the lmfdb repository
      - ``code`` -- a list of code lines (without trailing \n)
      - ``lines`` -- (optional) a list of line numbers
    - ``full`` -- if False, display only the filename rather than the full path.
    """
    filename = D['filename']
    code = D['code']
    lines = D.get('lines')
    code = '\n'.join(code).replace('<','&lt;').replace('>','&gt;').replace('"', '&quot;')
    if is_debug_mode():
        branch = "master"
    elif is_beta():
        branch = "dev"
    else:
        branch = "web"
    url = "%s%s/%s" % (_url_source, branch, filename)
    link_text = "%s on Github" % (filename)
    if not full:
        filename = filename.split('/')[-1]
    if lines:
        if len(lines) == 1:
            label = '%s (line %s)' % (filename, lines[0])
        else:
            lines = sorted(lines)
            label = '%s (lines %s-%s)' % (filename, lines[0], lines[-1])
        url += "#L%s" % lines[0]
    else:
        label = filename
    inner = u"<div>\n<pre></pre>\n</div>\n<div align='right'><a href='%s' target='_blank'>%s</a></div>"
    inner = inner % (url, link_text)
    return ur'<a title="[code]" knowl="dynamic_show" pretext="%s" kwargs="%s">%s</a>'%(code, inner, label)