| 
					
				 | 
			
			
				@@ -9,40 +9,68 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # @Last modified time: 21-04-2017 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # @License: GPL-V3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import sys, os 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from socket import socket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import socketserver 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import http.server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import threading 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from PyQt5.QtCore import QFile, QIODevice, Qt, QTextStream, QUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from PyQt5.QtCore import QFile, QIODevice, Qt, QTextStream, QUrl, QFileSystemWatcher 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from PyQt5.QtWidgets import (QAction, QApplication, QLineEdit, QMainWindow, QSizePolicy, QStyle, QTextEdit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from PyQt5.QtWebKitWidgets import QWebPage, QWebView 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# find free port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sock = socket() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sock.bind(('', 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-PORT = sock.getsockname()[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sock.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# PORT = 8000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# web werver 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Handler = http.server.SimpleHTTPRequestHandler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# httpd = socketserver.TCPServer(("", PORT), Handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# httpd.serve_forever() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-httpd = http.server.HTTPServer(('', PORT), http.server.SimpleHTTPRequestHandler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-thread = threading.Thread(target=httpd.serve_forever) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-thread.start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-print("serving at port", PORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# QT webkit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-app = QApplication(sys.argv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-browser = QWebView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# browser.settings().setAttribute(QWebSettings.PluginsEnabled, True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-browser.load(QUrl('http://localhost:'+str(PORT))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-browser.show() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sys.exit(app.exec_()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import sass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_PORT=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   server() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   compiler() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   app() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def server(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # find free port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   sock = socket() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   sock.bind(('', 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   global _PORT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   _PORT = sock.getsockname()[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   sock.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # PORT = 8000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # web werver 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # Handler = http.server.SimpleHTTPRequestHandler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # httpd = socketserver.TCPServer(("", PORT), Handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # httpd.serve_forever() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   httpd = http.server.HTTPServer(('', _PORT), http.server.SimpleHTTPRequestHandler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   thread = threading.Thread(target=httpd.serve_forever) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   thread.start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   print("serving at port", _PORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def compiler(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   fs_watcher = QFileSystemWatcher(['assets/scss']) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   fs_watcher.directoryChanged.connect(compile_scss) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   compile_scss() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def compile_scss(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # src = open( 'assets/scss/main.scss' ).read() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   scss = sass.compile_file(b'assets/scss/main.scss') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   with open('assets/scss/main.css', 'w') as fp: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fp.write(scss.decode('utf8')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def app(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # QT webkit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   app = QApplication(sys.argv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   browser = QWebView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   # browser.settings().setAttribute(QWebSettings.PluginsEnabled, True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   global _PORT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   browser.load(QUrl('http://localhost:'+str(_PORT))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   browser.show() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   sys.exit(app.exec_()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if __name__ == "__main__": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   main() 
			 |