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('<', '<').replace('>', '>').replace( '"', '"') 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)
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('<','<').replace('>','>').replace('"', '"') 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)