from . import tool import datetime import html import re class head_render: def __init__(self): pass def __call__(self, match): head_len = str(len(match[1])) head_data = match[2] return '' + head_data + '' class link_render: def __init__(self): pass def __call__(self, match): if match[1] == '!': if re.search(r'^http(s)?:\/\/', match[3], flags = re.I): return '' + match[2] + '' else: file_name = re.search(r'^([^.]+)\.([^.]+)$', match[3]) if file_name: file_end = file_name.group(2) file_name = file_name.group(1) else: file_name = 'Test' file_end = 'jpg' file_src = '/image/' + tool.sha224_replace(file_name) + '.' + file_end file_alt = 'file:' + file_name + '.' + file_end return '' + \ '' + match[2] + '' + \ '' + file_alt + '' + \ '' else: if re.search(r'^http(s)?:\/\/', match[3], flags = re.I): return '' + match[2] + '' else: return '' + match[2] + '' def markdown(conn, data, title, include_num): backlink = [] include_num = include_num + '_' if include_num else '' plus_data = '' + \ 'get_link_state("' + include_num + '");\n' + \ 'get_file_state("' + include_num + '");\n' + \ '' data = html.escape(data) data = data.replace('\r\n', '\n') data = '\n' + data head_r = r'\n(#{1,6}) ?([^\n]+)' head_do = head_render() data = re.sub(head_r, head_do, data) link_r = r'(!)?\[((?:(?!\]\().)+)\]\(([^\]]+)\)' link_do = link_render() data = re.sub(link_r, link_do, data) data = re.sub(r'\*\*((?:(?!\*\*).)+)\*\*', '\1', data) data = re.sub(r'__((?:(?!__).)+)__', '\1', data) data = re.sub('^\n', '', data) data = re.sub('\n', '
', data) return [data, plus_data, backlink]