Browse Source

refactored, added first css style with scss compiler

Bachir Soussi Chiadmi 7 years ago
parent
commit
502e7bf873
4 changed files with 60 additions and 27 deletions
  1. 1 0
      .gitignore
  2. 55 27
      app.py
  3. 3 0
      assets/scss/main.scss
  4. 1 0
      index.html

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+assets/scss/*.css

+ 55 - 27
app.py

@@ -9,40 +9,68 @@
 # @Last modified time: 21-04-2017
 # @Last modified time: 21-04-2017
 # @License: GPL-V3
 # @License: GPL-V3
 
 
-import sys
+import sys, os
 
 
 from socket import socket
 from socket import socket
 import socketserver
 import socketserver
 import http.server
 import http.server
 import threading
 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.QtWidgets import (QAction, QApplication, QLineEdit, QMainWindow, QSizePolicy, QStyle, QTextEdit)
 from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest
 from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest
 from PyQt5.QtWebKitWidgets import QWebPage, QWebView
 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()

+ 3 - 0
assets/scss/main.scss

@@ -0,0 +1,3 @@
+body{
+  background-color: white;
+}

+ 1 - 0
index.html

@@ -3,6 +3,7 @@
   <head>
   <head>
     <meta charset="utf-8">
     <meta charset="utf-8">
     <title>Cascade</title>
     <title>Cascade</title>
+    <link rel="stylesheet" href="assets/scss/main.css">
   </head>
   </head>
   <body>
   <body>
     <h1>Cascade</h1>
     <h1>Cascade</h1>