def send_doc(path):
siteURL = current_app.config.get('SITE_URL')
location = current_app.config.get('DOCS')
if location is None:
abort(404)
if location[0:4]=='http':
url = location + path
req = requests.get(url, stream = True,headers={'Connection' : 'close'})
if req.headers['Content-Type'][0:9]=='text/html':
return render_template_string(generate_template(current_app.config,'content.html'), siteURL=siteURL if siteURL is not None else request.url_root[0:-1], html=req.text, entry=None)
else:
return Response(stream_with_context(req.iter_content()), headers = dict(req.headers))
else:
dir = os.path.abspath(location)
if path.endswith('.html'):
glob = StringIO()
try:
with open(os.path.join(dir,path), mode='r', encoding='utf-8') as doc:
peeked = doc.readline()
if peeked.startswith('<!DOCTYPE'):
return send_from_directory(dir, path)
glob.write(peeked)
for line in doc:
glob.write(line)
return render_template_string(generate_template(current_app.config,'content.html'), siteURL=siteURL if siteURL is not None else request.url_root[0:-1], html=glob.getvalue(), entry=None)
except FileNotFoundError:
abort(404)
return send_from_directory(dir, path)
评论列表
文章目录