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
 # @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()

+ 3 - 0
assets/scss/main.scss

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

+ 1 - 0
index.html

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