diff options
author | liris <liris.pp@gmail.com> | 2014-05-02 15:11:37 +0900 |
---|---|---|
committer | liris <liris.pp@gmail.com> | 2014-05-02 15:11:37 +0900 |
commit | 853628d0036294f9d6d09f36e2968e20bae400e0 (patch) | |
tree | e68cd644c9410b997963ca1c4d1004799d85abf2 | |
parent | 394f7fc7785b7be86e431d1109dc50c09b4365eb (diff) | |
download | websocket-client-853628d0036294f9d6d09f36e2968e20bae400e0.tar.gz |
Create gh-pages branch via GitHub
-rw-r--r-- | images/bg_hr.png | bin | 0 -> 943 bytes | |||
-rw-r--r-- | images/blacktocat.png | bin | 0 -> 1428 bytes | |||
-rw-r--r-- | images/icon_download.png | bin | 0 -> 1162 bytes | |||
-rw-r--r-- | images/sprite_download.png | bin | 0 -> 16799 bytes | |||
-rw-r--r-- | index.html | 133 | ||||
-rw-r--r-- | params.json | 2 | ||||
-rw-r--r-- | stylesheets/pygment_trac.css | 117 | ||||
-rw-r--r-- | stylesheets/stylesheet.css | 568 |
8 files changed, 438 insertions, 382 deletions
diff --git a/images/bg_hr.png b/images/bg_hr.png Binary files differnew file mode 100644 index 0000000..7973bd6 --- /dev/null +++ b/images/bg_hr.png diff --git a/images/blacktocat.png b/images/blacktocat.png Binary files differnew file mode 100644 index 0000000..6e264fe --- /dev/null +++ b/images/blacktocat.png diff --git a/images/icon_download.png b/images/icon_download.png Binary files differnew file mode 100644 index 0000000..a2a287f --- /dev/null +++ b/images/icon_download.png diff --git a/images/sprite_download.png b/images/sprite_download.png Binary files differnew file mode 100644 index 0000000..f2babd5 --- /dev/null +++ b/images/sprite_download.png @@ -1,37 +1,37 @@ <!DOCTYPE html> <html> + <head> - <meta charset='utf-8'> - <meta http-equiv="X-UA-Compatible" content="chrome=1"> - <link href='https://fonts.googleapis.com/css?family=Chivo:900' rel='stylesheet' type='text/css'> - <link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" /> - <link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" /> - <link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" /> - <!--[if lt IE 9]> - <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> - <![endif]--> - <title>Websocket-client by liris</title> + <meta charset='utf-8' /> + <meta http-equiv="X-UA-Compatible" content="chrome=1" /> + <meta name="description" content="Websocket-client : websocket client for python" /> + + <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css"> + + <title>Websocket-client</title> </head> <body> - <div id="container"> - <div class="inner"> - <header> - <h1>Websocket-client</h1> - <h2>websocket client for python</h2> - </header> + <!-- HEADER --> + <div id="header_wrap" class="outer"> + <header class="inner"> + <a id="forkme_banner" href="https://github.com/liris/websocket-client">View on GitHub</a> - <section id="downloads" class="clearfix"> - <a href="https://github.com/liris/websocket-client/zipball/master" id="download-zip" class="button"><span>Download .zip</span></a> - <a href="https://github.com/liris/websocket-client/tarball/master" id="download-tar-gz" class="button"><span>Download .tar.gz</span></a> - <a href="https://github.com/liris/websocket-client" id="view-on-github" class="button"><span>View on GitHub</span></a> - </section> + <h1 id="project_title">Websocket-client</h1> + <h2 id="project_tagline">websocket client for python</h2> - <hr> + <section id="downloads"> + <a class="zip_download_link" href="https://github.com/liris/websocket-client/zipball/master">Download this project as a .zip file</a> + <a class="tar_download_link" href="https://github.com/liris/websocket-client/tarball/master">Download this project as a tar.gz file</a> + </section> + </header> + </div> - <section id="main_content"> - <h1></h1> + <!-- MAIN CONTENT --> + <div id="main_content_wrap" class="outer"> + <section id="main_content" class="inner"> + <h1></h1> <h1> <a name="websocket-client" class="anchor" href="#websocket-client"><span class="octicon octicon-link"></span></a>websocket-client</h1> @@ -110,38 +110,38 @@ ws = create_connection("ws://echo.websocket.org/". <p>JavaScript websocket-like API example::</p> -<p>import websocket - import thread - import time</p> - -<p>def on_message(ws, message): - print message</p> - -<p>def on_error(ws, error): - print error</p> - -<p>def on_close(ws): - print "### closed ###"</p> - -<p>def on_open(ws): - def run(*args): - for i in range(3): - time.sleep(1) - ws.send("Hello %d" % i) - time.sleep(1) - ws.close() - print "thread terminating..." - thread.start_new_thread(run, ())</p> - -<p>if <strong>name</strong> == "<strong>main</strong>": - websocket.enableTrace(True) - ws = websocket.WebSocketApp("ws://echo.websocket.org/", - on_message = on_message, - on_error = on_error, - on_close = on_close) - ws.on_open = on_open</p> - -<pre><code> ws.run_forever() +<pre><code>import websocket +import thread +import time + +def on_message(ws, message): + print message + +def on_error(ws, error): + print error + +def on_close(ws): + print "### closed ###" + +def on_open(ws): + def run(*args): + for i in range(3): + time.sleep(1) + ws.send("Hello %d" % i) + time.sleep(1) + ws.close() + print "thread terminating..." + thread.start_new_thread(run, ()) + + +if __name__ == "__main__": + websocket.enableTrace(True) + ws = websocket.WebSocketApp("ws://echo.websocket.org/", + on_message = on_message, + on_error = on_error, + on_close = on_close) + ws.on_open = on_open + ws.run_forever() </code></pre> <h1> @@ -304,15 +304,18 @@ WebSocketApp </ul> </li> </ul> - </section> - - <footer> - Websocket-client is maintained by <a href="https://github.com/liris">liris</a><br> - This page was generated by <a href="http://pages.github.com">GitHub Pages</a>. Tactile theme by <a href="https://twitter.com/jasonlong">Jason Long</a>. - </footer> + </section> + </div> - - </div> + <!-- FOOTER --> + <div id="footer_wrap" class="outer"> + <footer class="inner"> + <p class="copyright">Websocket-client maintained by <a href="https://github.com/liris">liris</a></p> + <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p> + </footer> </div> + + + </body> -</html>
\ No newline at end of file +</html> diff --git a/params.json b/params.json index 7db9c70..fd09e76 100644 --- a/params.json +++ b/params.json @@ -1 +1 @@ -{"name":"Websocket-client","tagline":"websocket client for python","body":"=================\r\nwebsocket-client\r\n=================\r\n\r\nwebsocket-client module is WebSocket client for python. This provide the low level APIs for WebSocket. All APIs are the synchronous functions.\r\n\r\nwebsocket-client supports only hybi-13.\r\n\r\nCAUTION\r\n============\r\n\r\nWe have a big change on version 0.14.0.\r\nSo, please test on trunk repository.\r\n\r\nv0.14 release schedule\r\n=======================\r\n\r\nNow, under testing.\r\nv0.14 will be released on May 15.\r\n\r\n\r\nLicense\r\n============\r\n\r\n - LGPL\r\n\r\nInstallation\r\n=============\r\n\r\nThis module is tested on Python 2.7 and Python 3.x.\r\n\r\nType \"python setup.py install\" or \"pip install websocket-client\" to install.\r\n\r\nThis module depend on\r\n\r\n - six\r\n - backports.ssl_match_hostname for Python 2.x\r\n\r\nHow about Python 3\r\n===========================\r\n\r\nNow, we support python 3 on single source code from version 0.14.0. Thanks, @battlemidget and @ralphbean.\r\n\r\nHTTP Proxy\r\n=============\r\n\r\nSupport websocket access via http proxy.\r\nThe proxy server must allow \"CONNECT\" method to websocket port.\r\nDefault squid setting is \"ALLOWED TO CONNECT ONLY HTTPS PORT\".\r\n\r\nCurrent implementation of websocket-client is using \"CONNECT\" method via proxy.\r\n\r\nExample\r\n=============\r\n\r\nLow Level API example::\r\n\r\n from websocket import create_connection\r\n ws = create_connection(\"ws://echo.websocket.org/\")\r\n print \"Sending 'Hello, World'...\"\r\n ws.send(\"Hello, World\")\r\n print \"Sent\"\r\n print \"Reeiving...\"\r\n result = ws.recv()\r\n print \"Received '%s'\" % result\r\n ws.close()\r\n\r\nIf you want to customize socket options, set sockopt.\r\n\r\nsockopt example:\r\n\r\n from websocket import create_connection\r\n ws = create_connection(\"ws://echo.websocket.org/\".\r\n sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),) )\r\n\r\n\r\nJavaScript websocket-like API example::\r\n\r\n import websocket\r\n import thread\r\n import time\r\n\r\n def on_message(ws, message):\r\n print message\r\n\r\n def on_error(ws, error):\r\n print error\r\n\r\n def on_close(ws):\r\n print \"### closed ###\"\r\n\r\n def on_open(ws):\r\n def run(*args):\r\n for i in range(3):\r\n time.sleep(1)\r\n ws.send(\"Hello %d\" % i)\r\n time.sleep(1)\r\n ws.close()\r\n print \"thread terminating...\"\r\n thread.start_new_thread(run, ())\r\n\r\n\r\n if __name__ == \"__main__\":\r\n websocket.enableTrace(True)\r\n ws = websocket.WebSocketApp(\"ws://echo.websocket.org/\",\r\n on_message = on_message,\r\n on_error = on_error,\r\n on_close = on_close)\r\n ws.on_open = on_open\r\n\r\n ws.run_forever()\r\n\r\n\r\nwsdump.py\r\n============\r\n\r\nwsdump.py is simple WebSocket test(debug) tool.\r\n\r\nsample for echo.websocket.org::\r\n\r\n $ wsdump.py ws://echo.websocket.org/\r\n Press Ctrl+C to quit\r\n > Hello, WebSocket\r\n < Hello, WebSocket\r\n > How are you?\r\n < How are you?\r\n\r\nUsage\r\n---------\r\n\r\nusage::\r\n wsdump.py [-h] [-v [VERBOSE]] ws_url\r\n\r\nWebSocket Simple Dump Tool\r\n\r\npositional arguments:\r\n ws_url websocket url. ex. ws://echo.websocket.org/\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\nWebSocketApp\r\n -v VERBOSE, --verbose VERBOSE set verbose mode. If set to 1, show opcode. If set to 2, enable to trace websocket module\r\n\r\nexample::\r\n\r\n $ wsdump.py ws://echo.websocket.org/\r\n $ wsdump.py ws://echo.websocket.org/ -v\r\n $ wsdump.py ws://echo.websocket.org/ -vv\r\n\r\nChangeLog\r\n============\r\n\r\n- v0.14.0\r\n\r\n - Support python 3(#73)\r\n - Support IPv6(#77)\r\n - Support explicit web proxy(#57)\r\n\r\n- v0.13.0\r\n\r\n - MemoryError when receiving large amount of data (~60 MB) at once(ISSUE#59)\r\n - Controlling fragmentation(ISSUE#55)\r\n - server certificate validation(ISSUE#56)\r\n - PyPI tarball is missing test_websocket.py(ISSUE#65)\r\n - Payload length encoding bug(ISSUE#58)\r\n - disable Nagle algorithm by default(ISSUE#41)\r\n - Better event loop in WebSocketApp(ISSUE#63)\r\n - Skip tests that require Internet access by default(ISSUE#66)\r\n\r\n- v0.12.0\r\n\r\n - support keep alive for WebSocketApp(ISSUE#34)\r\n - fix some SSL bugs(ISSUE#35, #36)\r\n - fix \"Timing out leaves websocket library in bad state\"(ISSUE#37)\r\n - fix \"WebSocketApp.run_with_no_err() silently eats all exceptions\"(ISSUE#38)\r\n - WebSocketTimeoutException will be raised for ws/wss timeout(ISSUE#40)\r\n - improve wsdump message(ISSUE#42)\r\n - support fragmentation message(ISSUE#43)\r\n - fix some bugs\r\n\r\n- v0.11.0\r\n\r\n - Only log non-normal close status(ISSUE#31)\r\n - Fix default Origin isn't URI(ISSUE#32)\r\n - fileno support(ISSUE#33)\r\n\r\n- v0.10.0\r\n\r\n - allow to set HTTP Header to WebSocketApp(ISSUE#27)\r\n - fix typo in pydoc(ISSUE#28)\r\n - Passing a socketopt flag to the websocket constructor(ISSUE#29)\r\n - websocket.send fails with long data(ISSUE#30)\r\n\r\n\r\n- v0.9.0\r\n\r\n - allow to set opcode in WebSocketApp.send(ISSUE#25)\r\n - allow to modify Origin(ISSUE#26)\r\n\r\n- v0.8.0\r\n\r\n - many bug fix\r\n - some performance improvement\r\n\r\n- v0.7.0\r\n\r\n - fixed problem to read long data.(ISSUE#12)\r\n - fix buffer size boundary violation\r\n\r\n- v0.6.0\r\n\r\n - Patches: UUID4, self.keep_running, mask_key (ISSUE#11)\r\n - add wsdump.py tool\r\n\r\n- v0.5.2\r\n\r\n - fix Echo App Demo Throw Error: 'NoneType' object has no attribute 'opcode (ISSUE#10)\r\n\r\n- v0.5.1\r\n\r\n - delete invalid print statement.\r\n\r\n- v0.5.0\r\n\r\n - support hybi-13 protocol.\r\n\r\n- v0.4.1\r\n\r\n - fix incorrect custom header order(ISSUE#1)\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file +{"name":"Websocket-client","tagline":"websocket client for python","body":"=================\r\nwebsocket-client\r\n=================\r\n\r\nwebsocket-client module is WebSocket client for python. This provide the low level APIs for WebSocket. All APIs are the synchronous functions.\r\n\r\nwebsocket-client supports only hybi-13.\r\n\r\nCAUTION\r\n============\r\n\r\nWe have a big change on version 0.14.0.\r\nSo, please test on trunk repository.\r\n\r\nv0.14 release schedule\r\n=======================\r\n\r\nNow, under testing.\r\nv0.14 will be released on May 15.\r\n\r\n\r\nLicense\r\n============\r\n\r\n - LGPL\r\n\r\nInstallation\r\n=============\r\n\r\nThis module is tested on Python 2.7 and Python 3.x.\r\n\r\nType \"python setup.py install\" or \"pip install websocket-client\" to install.\r\n\r\nThis module depend on\r\n\r\n - six\r\n - backports.ssl_match_hostname for Python 2.x\r\n\r\nHow about Python 3\r\n===========================\r\n\r\nNow, we support python 3 on single source code from version 0.14.0. Thanks, @battlemidget and @ralphbean.\r\n\r\nHTTP Proxy\r\n=============\r\n\r\nSupport websocket access via http proxy.\r\nThe proxy server must allow \"CONNECT\" method to websocket port.\r\nDefault squid setting is \"ALLOWED TO CONNECT ONLY HTTPS PORT\".\r\n\r\nCurrent implementation of websocket-client is using \"CONNECT\" method via proxy.\r\n\r\nExample\r\n=============\r\n\r\nLow Level API example::\r\n\r\n from websocket import create_connection\r\n ws = create_connection(\"ws://echo.websocket.org/\")\r\n print \"Sending 'Hello, World'...\"\r\n ws.send(\"Hello, World\")\r\n print \"Sent\"\r\n print \"Reeiving...\"\r\n result = ws.recv()\r\n print \"Received '%s'\" % result\r\n ws.close()\r\n\r\nIf you want to customize socket options, set sockopt.\r\n\r\nsockopt example:\r\n\r\n from websocket import create_connection\r\n ws = create_connection(\"ws://echo.websocket.org/\".\r\n sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),) )\r\n\r\n\r\nJavaScript websocket-like API example::\r\n\r\n import websocket\r\n import thread\r\n import time\r\n\r\n def on_message(ws, message):\r\n print message\r\n\r\n def on_error(ws, error):\r\n print error\r\n\r\n def on_close(ws):\r\n print \"### closed ###\"\r\n\r\n def on_open(ws):\r\n def run(*args):\r\n for i in range(3):\r\n time.sleep(1)\r\n ws.send(\"Hello %d\" % i)\r\n time.sleep(1)\r\n ws.close()\r\n print \"thread terminating...\"\r\n thread.start_new_thread(run, ())\r\n\r\n\r\n if __name__ == \"__main__\":\r\n websocket.enableTrace(True)\r\n ws = websocket.WebSocketApp(\"ws://echo.websocket.org/\",\r\n on_message = on_message,\r\n on_error = on_error,\r\n on_close = on_close)\r\n ws.on_open = on_open\r\n ws.run_forever()\r\n\r\n\r\nwsdump.py\r\n============\r\n\r\nwsdump.py is simple WebSocket test(debug) tool.\r\n\r\nsample for echo.websocket.org::\r\n\r\n $ wsdump.py ws://echo.websocket.org/\r\n Press Ctrl+C to quit\r\n > Hello, WebSocket\r\n < Hello, WebSocket\r\n > How are you?\r\n < How are you?\r\n\r\nUsage\r\n---------\r\n\r\nusage::\r\n wsdump.py [-h] [-v [VERBOSE]] ws_url\r\n\r\nWebSocket Simple Dump Tool\r\n\r\npositional arguments:\r\n ws_url websocket url. ex. ws://echo.websocket.org/\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\nWebSocketApp\r\n -v VERBOSE, --verbose VERBOSE set verbose mode. If set to 1, show opcode. If set to 2, enable to trace websocket module\r\n\r\nexample::\r\n\r\n $ wsdump.py ws://echo.websocket.org/\r\n $ wsdump.py ws://echo.websocket.org/ -v\r\n $ wsdump.py ws://echo.websocket.org/ -vv\r\n\r\nChangeLog\r\n============\r\n\r\n- v0.14.0\r\n\r\n - Support python 3(#73)\r\n - Support IPv6(#77)\r\n - Support explicit web proxy(#57)\r\n\r\n- v0.13.0\r\n\r\n - MemoryError when receiving large amount of data (~60 MB) at once(ISSUE#59)\r\n - Controlling fragmentation(ISSUE#55)\r\n - server certificate validation(ISSUE#56)\r\n - PyPI tarball is missing test_websocket.py(ISSUE#65)\r\n - Payload length encoding bug(ISSUE#58)\r\n - disable Nagle algorithm by default(ISSUE#41)\r\n - Better event loop in WebSocketApp(ISSUE#63)\r\n - Skip tests that require Internet access by default(ISSUE#66)\r\n\r\n- v0.12.0\r\n\r\n - support keep alive for WebSocketApp(ISSUE#34)\r\n - fix some SSL bugs(ISSUE#35, #36)\r\n - fix \"Timing out leaves websocket library in bad state\"(ISSUE#37)\r\n - fix \"WebSocketApp.run_with_no_err() silently eats all exceptions\"(ISSUE#38)\r\n - WebSocketTimeoutException will be raised for ws/wss timeout(ISSUE#40)\r\n - improve wsdump message(ISSUE#42)\r\n - support fragmentation message(ISSUE#43)\r\n - fix some bugs\r\n\r\n- v0.11.0\r\n\r\n - Only log non-normal close status(ISSUE#31)\r\n - Fix default Origin isn't URI(ISSUE#32)\r\n - fileno support(ISSUE#33)\r\n\r\n- v0.10.0\r\n\r\n - allow to set HTTP Header to WebSocketApp(ISSUE#27)\r\n - fix typo in pydoc(ISSUE#28)\r\n - Passing a socketopt flag to the websocket constructor(ISSUE#29)\r\n - websocket.send fails with long data(ISSUE#30)\r\n\r\n\r\n- v0.9.0\r\n\r\n - allow to set opcode in WebSocketApp.send(ISSUE#25)\r\n - allow to modify Origin(ISSUE#26)\r\n\r\n- v0.8.0\r\n\r\n - many bug fix\r\n - some performance improvement\r\n\r\n- v0.7.0\r\n\r\n - fixed problem to read long data.(ISSUE#12)\r\n - fix buffer size boundary violation\r\n\r\n- v0.6.0\r\n\r\n - Patches: UUID4, self.keep_running, mask_key (ISSUE#11)\r\n - add wsdump.py tool\r\n\r\n- v0.5.2\r\n\r\n - fix Echo App Demo Throw Error: 'NoneType' object has no attribute 'opcode (ISSUE#10)\r\n\r\n- v0.5.1\r\n\r\n - delete invalid print statement.\r\n\r\n- v0.5.0\r\n\r\n - support hybi-13 protocol.\r\n\r\n- v0.4.1\r\n\r\n - fix incorrect custom header order(ISSUE#1)\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css index c6a6452..e65cedf 100644 --- a/stylesheets/pygment_trac.css +++ b/stylesheets/pygment_trac.css @@ -1,64 +1,65 @@ -.highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f0f3f3; } +.highlight .c { color: #0099FF; font-style: italic } /* Comment */ +.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */ +.highlight .k { color: #006699; font-weight: bold } /* Keyword */ +.highlight .o { color: #555555 } /* Operator */ +.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #009999 } /* Comment.Preproc */ +.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */ +.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */ +.highlight .go { color: #AAAAAA } /* Generic.Output */ +.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #99CC66 } /* Generic.Traceback */ +.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #006699 } /* Keyword.Pseudo */ +.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #FF6600 } /* Literal.Number */ +.highlight .s { color: #CC3300 } /* Literal.String */ +.highlight .na { color: #330099 } /* Name.Attribute */ +.highlight .nb { color: #336666 } /* Name.Builtin */ +.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */ +.highlight .no { color: #336600 } /* Name.Constant */ +.highlight .nd { color: #9999FF } /* Name.Decorator */ +.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #CC00FF } /* Name.Function */ +.highlight .nl { color: #9999FF } /* Name.Label */ +.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #003333 } /* Name.Variable */ +.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ +.highlight .mf { color: #FF6600 } /* Literal.Number.Float */ +.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */ +.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */ +.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */ +.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */ +.highlight .sc { color: #CC3300 } /* Literal.String.Char */ +.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #CC3300 } /* Literal.String.Double */ +.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */ +.highlight .si { color: #AA0000 } /* Literal.String.Interpol */ +.highlight .sx { color: #CC3300 } /* Literal.String.Other */ +.highlight .sr { color: #33AAAA } /* Literal.String.Regex */ +.highlight .s1 { color: #CC3300 } /* Literal.String.Single */ +.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */ +.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #003333 } /* Name.Variable.Class */ +.highlight .vg { color: #003333 } /* Name.Variable.Global */ +.highlight .vi { color: #003333 } /* Name.Variable.Instance */ +.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */ .type-csharp .highlight .k { color: #0000FF } .type-csharp .highlight .kt { color: #0000FF } diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css index 020ad6d..7a08b01 100644 --- a/stylesheets/stylesheet.css +++ b/stylesheets/stylesheet.css @@ -1,7 +1,14 @@ -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ +/******************************************************************************* +Slate Theme for GitHub Pages +by Jason Costello, @jsncostello +*******************************************************************************/ + +@import url(pygment_trac.css); + +/******************************************************************************* +MeyerWeb Reset +*******************************************************************************/ + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, @@ -11,361 +18,406 @@ b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; + margin: 0; + padding: 0; + border: 0; + font: inherit; + vertical-align: baseline; } + /* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { - display: block; -} -body { - line-height: 1; + display: block; } + ol, ul { - list-style: none; -} -blockquote, q { - quotes: none; -} -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; + list-style: none; } + table { - border-collapse: collapse; - border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; } -/* LAYOUT STYLES */ +/******************************************************************************* +Theme Styles +*******************************************************************************/ + body { - font-size: 1em; - line-height: 1.5; - background: #e7e7e7 url(../images/body-bg.png) 0 0 repeat; - font-family: 'Helvetica Neue', Helvetica, Arial, serif; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); - color: #6d6d6d; + box-sizing: border-box; + color:#373737; + background: #212121; + font-size: 16px; + font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif; + line-height: 1.5; + -webkit-font-smoothing: antialiased; } -a { - color: #d5000d; -} -a:hover { - color: #c5000c; +h1, h2, h3, h4, h5, h6 { + margin: 10px 0; + font-weight: 700; + color:#222222; + font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif; + letter-spacing: -1px; } -header { - padding-top: 35px; - padding-bottom: 25px; +h1 { + font-size: 36px; + font-weight: 700; } -header h1 { - font-family: 'Chivo', 'Helvetica Neue', Helvetica, Arial, serif; font-weight: 900; - letter-spacing: -1px; - font-size: 48px; - color: #303030; - line-height: 1.2; +h2 { + padding-bottom: 10px; + font-size: 32px; + background: url('../images/bg_hr.png') repeat-x bottom; } -header h2 { - letter-spacing: -1px; +h3 { font-size: 24px; - color: #aaa; - font-weight: normal; - line-height: 1.3; } -#container { - background: transparent url(../images/highlight-bg.jpg) 50% 0 no-repeat; - min-height: 595px; +h4 { + font-size: 21px; } -.inner { - width: 620px; - margin: 0 auto; +h5 { + font-size: 18px; } -#container .inner img { - max-width: 100%; +h6 { + font-size: 16px; } -#downloads { - margin-bottom: 40px; -} - -a.button { - -moz-border-radius: 30px; - -webkit-border-radius: 30px; - border-radius: 30px; - border-top: solid 1px #cbcbcb; - border-left: solid 1px #b7b7b7; - border-right: solid 1px #b7b7b7; - border-bottom: solid 1px #b3b3b3; - color: #303030; - line-height: 25px; - font-weight: bold; - font-size: 15px; - padding: 12px 8px 12px 8px; - display: block; - float: left; - width: 179px; - margin-right: 14px; - background: #fdfdfd; /* Old browsers */ - background: -moz-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f2f2f2)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* IE10+ */ - background: linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f2f2f2',GradientType=0 ); /* IE6-9 */ - -webkit-box-shadow: 10px 10px 5px #888; - -moz-box-shadow: 10px 10px 5px #888; - box-shadow: 0px 1px 5px #e8e8e8; -} -a.button:hover { - border-top: solid 1px #b7b7b7; - border-left: solid 1px #b3b3b3; - border-right: solid 1px #b3b3b3; - border-bottom: solid 1px #b3b3b3; - background: #fafafa; /* Old browsers */ - background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* IE10+ */ - background: linear-gradient(top, #fdfdfd 0%,#f6f6f6, 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */ -} - -a.button span { - padding-left: 50px; - display: block; - height: 23px; +p { + margin: 10px 0 15px 0; } -#download-zip span { - background: transparent url(../images/zip-icon.png) 12px 50% no-repeat; +footer p { + color: #f2f2f2; } -#download-tar-gz span { - background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat; + +a { + text-decoration: none; + color: #007edf; + text-shadow: none; + + transition: color 0.5s ease; + transition: text-shadow 0.5s ease; + -webkit-transition: color 0.5s ease; + -webkit-transition: text-shadow 0.5s ease; + -moz-transition: color 0.5s ease; + -moz-transition: text-shadow 0.5s ease; + -o-transition: color 0.5s ease; + -o-transition: text-shadow 0.5s ease; + -ms-transition: color 0.5s ease; + -ms-transition: text-shadow 0.5s ease; } -#view-on-github span { - background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat; + +a:hover, a:focus {text-decoration: underline;} + +footer a { + color: #F2F2F2; + text-decoration: underline; } -#view-on-github { - margin-right: 0; + +em { + font-style: italic; +} + +strong { + font-weight: bold; +} + +img { + position: relative; + margin: 0 auto; + max-width: 739px; + padding: 5px; + margin: 10px 0 10px 0; + border: 1px solid #ebebeb; + + box-shadow: 0 0 5px #ebebeb; + -webkit-box-shadow: 0 0 5px #ebebeb; + -moz-box-shadow: 0 0 5px #ebebeb; + -o-box-shadow: 0 0 5px #ebebeb; + -ms-box-shadow: 0 0 5px #ebebeb; +} + +p img { + display: inline; + margin: 0; + padding: 0; + vertical-align: middle; + text-align: center; + border: none; } -code, pre { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; +pre, code { + width: 100%; color: #222; - margin-bottom: 30px; + background-color: #fff; + + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-size: 14px; -} -code { - background-color: #f2f2f2; - border: solid 1px #ddd; - padding: 0 3px; + border-radius: 2px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; } pre { - padding: 20px; - background: #303030; - color: #f2f2f2; - text-shadow: none; + width: 100%; + padding: 10px; + box-shadow: 0 0 10px rgba(0,0,0,.1); overflow: auto; } + +code { + padding: 3px; + margin: 0 3px; + box-shadow: 0 0 10px rgba(0,0,0,.1); +} + pre code { - color: #f2f2f2; - background-color: #303030; - border: none; - padding: 0; + display: block; + box-shadow: none; } -ul, ol, dl { +blockquote { + color: #666; margin-bottom: 20px; + padding: 0 0 0 20px; + border-left: 3px solid #bbb; } -/* COMMON STYLES */ +ul, ol, dl { + margin-bottom: 15px +} -hr { - height: 1px; - line-height: 1px; - margin-top: 1em; - padding-bottom: 1em; - border: none; - background: transparent url('../images/hr.png') 50% 0 no-repeat; +ul { + list-style: inside; + padding-left: 20px; } -strong { +ol { + list-style: decimal inside; + padding-left: 20px; +} + +dl dt { font-weight: bold; } -em { +dl dd { + padding-left: 20px; font-style: italic; } -table { - width: 100%; - border: 1px solid #ebebeb; +dl p { + padding-left: 20px; + font-style: italic; } -th { - font-weight: 500; +hr { + height: 1px; + margin-bottom: 5px; + border: none; + background: url('../images/bg_hr.png') repeat-x center; } +table { + border: 1px solid #373737; + margin-bottom: 20px; + text-align: left; + } + +th { + font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif; + padding: 10px; + background: #373737; + color: #fff; + } + td { - border: 1px solid #ebebeb; - text-align: center; - font-weight: 300; -} + padding: 10px; + border: 1px solid #373737; + } form { background: #f2f2f2; padding: 20px; - } +/******************************************************************************* +Full-Width Styles +*******************************************************************************/ -/* GENERAL ELEMENT TYPE STYLES */ - -h1 { - font-size: 32px; -} - -h2 { - font-size: 22px; - font-weight: bold; - color: #303030; - margin-bottom: 8px; -} - -h3 { - color: #d5000d; - font-size: 18px; - font-weight: bold; - margin-bottom: 8px; -} - -h4 { - font-size: 16px; - color: #303030; - font-weight: bold; -} - -h5 { - font-size: 1em; - color: #303030; -} +.outer { + width: 100%; +} -h6 { - font-size: .8em; - color: #303030; -} +.inner { + position: relative; + max-width: 640px; + padding: 20px 10px; + margin: 0 auto; +} -p { +#forkme_banner { + display: block; + position: absolute; + top:0; + right: 10px; + z-index: 10; + padding: 10px 50px 10px 10px; + color: #fff; + background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%; + font-weight: 700; + box-shadow: 0 0 10px rgba(0,0,0,.5); + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; +} + +#header_wrap { + background: #212121; + background: -moz-linear-gradient(top, #373737, #212121); + background: -webkit-linear-gradient(top, #373737, #212121); + background: -ms-linear-gradient(top, #373737, #212121); + background: -o-linear-gradient(top, #373737, #212121); + background: linear-gradient(top, #373737, #212121); +} + +#header_wrap .inner { + padding: 50px 10px 30px 10px; +} + +#project_title { + margin: 0; + color: #fff; + font-size: 42px; + font-weight: 700; + text-shadow: #111 0px 0px 10px; +} + +#project_tagline { + color: #fff; + font-size: 24px; font-weight: 300; - margin-bottom: 20px; -} - -a { - text-decoration: none; + background: none; + text-shadow: #111 0px 0px 10px; } -p a { - font-weight: 400; +#downloads { + position: absolute; + width: 210px; + z-index: 10; + bottom: -40px; + right: 0; + height: 70px; + background: url('../images/icon_download.png') no-repeat 0% 90%; } -blockquote { - font-size: 1.6em; - border-left: 10px solid #e9e9e9; - margin-bottom: 20px; - padding: 0 0 0 30px; +.zip_download_link { + display: block; + float: right; + width: 90px; + height:70px; + text-indent: -5000px; + overflow: hidden; + background: url(../images/sprite_download.png) no-repeat bottom left; } -ul li { - list-style: disc inside; - padding-left: 20px; +.tar_download_link { + display: block; + float: right; + width: 90px; + height:70px; + text-indent: -5000px; + overflow: hidden; + background: url(../images/sprite_download.png) no-repeat bottom right; + margin-left: 10px; } -ol li { - list-style: decimal inside; - padding-left: 3px; +.zip_download_link:hover { + background: url(../images/sprite_download.png) no-repeat top left; } -dl dt { - color: #303030; +.tar_download_link:hover { + background: url(../images/sprite_download.png) no-repeat top right; } -footer { - background: transparent url('../images/hr.png') 0 0 no-repeat; - margin-top: 40px; - padding-top: 20px; - padding-bottom: 30px; - font-size: 13px; - color: #aaa; +#main_content_wrap { + background: #f2f2f2; + border-top: 1px solid #111; + border-bottom: 1px solid #111; } -footer a { - color: #666; -} -footer a:hover { - color: #444; +#main_content { + padding-top: 40px; } -/* MISC */ -.clearfix:after { - clear: both; - content: '.'; - display: block; - visibility: hidden; - height: 0; +#footer_wrap { + background: #212121; } -.clearfix {display: inline-block;} -* html .clearfix {height: 1%;} -.clearfix {display: block;} - -/* #Media Queries -================================================== */ -/* Smaller than standard 960 (devices and browsers) */ -@media only screen and (max-width: 959px) {} -/* Tablet Portrait size to standard 960 (devices and browsers) */ -@media only screen and (min-width: 768px) and (max-width: 959px) {} +/******************************************************************************* +Small Device Styles +*******************************************************************************/ -/* All Mobile Sizes (devices and browser) */ -@media only screen and (max-width: 767px) { - header { - padding-top: 10px; - padding-bottom: 10px; +@media screen and (max-width: 480px) { + body { + font-size:14px; } + #downloads { - margin-bottom: 25px; - } - #download-zip, #download-tar-gz { display: none; } + .inner { - width: 94%; - margin: 0 auto; + min-width: 320px; + max-width: 480px; } -} -/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ -@media only screen and (min-width: 480px) and (max-width: 767px) {} + #project_title { + font-size: 32px; + } -/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ -@media only screen and (max-width: 479px) {} + h1 { + font-size: 28px; + } + + h2 { + font-size: 24px; + } + + h3 { + font-size: 21px; + } + + h4 { + font-size: 18px; + } + + h5 { + font-size: 14px; + } + + h6 { + font-size: 12px; + } + + code, pre { + min-width: 320px; + max-width: 480px; + font-size: 11px; + } + +} |