Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- @echo off
- taskkill /fi "WINDOWTITLE eq markdown-server" >nul
- start "markdown-server" /min cmd /C "D:\lib\Python27\python %FARHOME%\..\FarExt\Markdown\md-server.py"
- echo [InternetShortcut]>%~dp0md.url
- echo URL=http://localhost:4000/%~1>>%~dp0md.url
- start "markdown-browser" /min cmd /C %~dp0md.url
- """
- import sys
- import time
- import BaseHTTPServer
- import markdown
- HOST_NAME = '127.0.0.1'
- PORT_NUMBER = 4000
- md = markdown.Markdown(safe_mode=True, extensions=['gfm'])
- class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
- def do_HEAD(s):
- s.send_response(200)
- s.send_header("Content-type", "text/html")
- s.end_headers()
- def do_GET(s):
- try:
- f = open(s.path[1:], "rb")
- except Exception,e:
- s.send_response(404)
- s.send_header("Content-type", "text/plain")
- s.end_headers()
- s.wfile.write('%s not found - %s' % (s.path, repr(e)))
- return
- if s.path[-2:]=='md':
- s.send_response(200)
- s.send_header("Content-type", "text/html")
- s.end_headers()
- try:
- text = f.read()
- text = md.convert(text.decode('utf-8',errors='replace'))
- except Exception,e:
- s.wfile.write(repr(e))
- return
- header = file('D:/Shared/FarExt/Markdown/md-header.html').read()
- text = "%s%s\n" % (header, text)
- try:
- s.wfile.write(text.encode('utf-8',errors='replace'))
- except Exception,e:
- s.wfile.write(repr(e))
- return
- else:
- s.send_response(200)
- #s.send_header("Content-type", "text/plain; charset=utf-8")
- s.end_headers()
- #s.wfile.write(len(text))
- try:
- text = f.read()
- s.wfile.write(text)
- except Exception,e:
- s.wfile.write(repr(e))
- return
- if __name__ == '__main__':
- server_class = BaseHTTPServer.HTTPServer
- httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
- print(time.asctime(), "Server Starts - %s:%s" % (HOST_NAME, PORT_NUMBER))
- try:
- httpd.serve_forever()
- except KeyboardInterrupt:
- pass
- httpd.server_close()
- print time.asctime(), "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement