Create gh-pages branch via GitHub

This commit is contained in:
Alexandre Dulaunoy 2013-10-26 02:07:45 -07:00
parent 544782441d
commit 57c77ff517
11 changed files with 633 additions and 462 deletions

BIN
images/body-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
images/highlight-bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
images/hr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

BIN
images/octocat-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/tar-gz-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/zip-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,37 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta name="description" content="Netbeacon : netbeacon - monitoring your network capture, NIDS or network analysis process" />
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>Netbeacon</title>
<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>Netbeacon by adulau</title>
</head>
<body>
<div id="container">
<div class="inner">
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<a id="forkme_banner" href="https://github.com/adulau/netbeacon">View on GitHub</a>
<h1 id="project_title">Netbeacon</h1>
<h2 id="project_tagline">netbeacon - monitoring your network capture, NIDS or network analysis process</h2>
<section id="downloads">
<a class="zip_download_link" href="https://github.com/adulau/netbeacon/zipball/master">Download this project as a .zip file</a>
<a class="tar_download_link" href="https://github.com/adulau/netbeacon/tarball/master">Download this project as a tar.gz file</a>
</section>
<header>
<h1>Netbeacon</h1>
<h2>netbeacon - monitoring your network capture, NIDS or network analysis process</h2>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h1>netbeacon - monitoring your network capture</h1>
<section id="downloads" class="clearfix">
<a href="https://github.com/adulau/netbeacon/zipball/master" id="download-zip" class="button"><span>Download .zip</span></a>
<a href="https://github.com/adulau/netbeacon/tarball/master" id="download-tar-gz" class="button"><span>Download .tar.gz</span></a>
<a href="https://github.com/adulau/netbeacon" id="view-on-github" class="button"><span>View on GitHub</span></a>
</section>
<hr>
<section id="main_content">
<h1>
<a name="netbeacon---monitoring-your-network-capture" class="anchor" href="#netbeacon---monitoring-your-network-capture"><span class="octicon octicon-link"></span></a>netbeacon - monitoring your network capture</h1>
<p>netbeacon is a set of free software tools to send beacons over
the network to test the accuracy and the precision of your network
@ -44,7 +45,8 @@ data interception devices, NIDS, DPI ...):</p>
<li>Time inconsistencies between devices.</li>
<li>Finding missing packets or its (re)ordering.</li>
<li>Watchdog to verify an operational network capture.</li>
</ul><h2>netbeacon - packet format</h2>
</ul><h2>
<a name="netbeacon---packet-format" class="anchor" href="#netbeacon---packet-format"><span class="octicon octicon-link"></span></a>netbeacon - packet format</h2>
<p>The netbeacon format is a simple ASCII format encapsulated in an UDP
packet. The format is the following:</p>
@ -64,7 +66,8 @@ and netbeacon recipient to ensure packet integrity using HMAC (SHA1).
There is a default key "netbeacon" but we highly recommend to set your
own for your systems.</p>
<h3>sample netbeacon messages</h3>
<h3>
<a name="sample-netbeacon-messages" class="anchor" href="#sample-netbeacon-messages"><span class="octicon octicon-link"></span></a>sample netbeacon messages</h3>
<p>Here is a serie of 3 netbeacon messages extracted from 3 UDP packets:</p>
@ -73,9 +76,11 @@ own for your systems.</p>
nb;1354960619;103;854207f54c1c4be97bdf4cd4a0d1068731848698
</code></pre>
<h2>netbeacon - usage</h2>
<h2>
<a name="netbeacon---usage" class="anchor" href="#netbeacon---usage"><span class="octicon octicon-link"></span></a>netbeacon - usage</h2>
<h3>How to use it?</h3>
<h3>
<a name="how-to-use-it" class="anchor" href="#how-to-use-it"><span class="octicon octicon-link"></span></a>How to use it?</h3>
<p>On a device where you able to send packets on the monitored/tapped network, you
can send beacons using nb_send.py</p>
@ -88,7 +93,8 @@ can send beacons using nb_send.py</p>
<pre><code>python nb_collect.py -i dag0 | python nb_verify.py -s -t
</code></pre>
<h3>nb_send.py</h3>
<h3>
<a name="nb_sendpy" class="anchor" href="#nb_sendpy"><span class="octicon octicon-link"></span></a>nb_send.py</h3>
<pre><code> Usage: nb_send.py [options]
@ -100,11 +106,12 @@ can send beacons using nb_send.py</p>
-i ITERATION, --iteration=ITERATION
set the number of interation for sending the netbeacon
-d DESTINATION, --destination=DESTINATION
set the destination IPv4 address (default: 127.0.0.1)
set the destination(s) IPv4 address (default: 127.0.0.1)
-v, --verbose output netbeacon sent
</code></pre>
<h3>nb_collect.py</h3>
<h3>
<a name="nb_collectpy" class="anchor" href="#nb_collectpy"><span class="octicon octicon-link"></span></a>nb_collect.py</h3>
<pre><code> Usage: nb_collect.py [options]
@ -118,7 +125,8 @@ can send beacons using nb_send.py</p>
enable extended format including pcap timestamp
</code></pre>
<h3>nb_verify.py</h3>
<h3>
<a name="nb_verifypy" class="anchor" href="#nb_verifypy"><span class="octicon octicon-link"></span></a>nb_verify.py</h3>
<pre><code> Usage: nb_verify.py [options] &lt;netbeacon messages&gt;
@ -129,26 +137,24 @@ can send beacons using nb_send.py</p>
-p PSK, --psk=PSK pre-shared key used by the HMAC-SHA1 (default: netbeacon)
</code></pre>
<h1>License</h1>
<h1>
<a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h1>
<p>netbeacon is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.</p>
<p>Copyright (c) 2012 Alexandre Dulaunoy - <a href="https://github.com/adulau/">https://github.com/adulau/</a></p>
<p>Copyright (c) 2012,2013 Alexandre Dulaunoy - <a href="https://github.com/adulau/">https://github.com/adulau/</a></p>
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<p class="copyright">Netbeacon maintained by <a href="https://github.com/adulau">adulau</a></p>
<p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
<footer>
Netbeacon is maintained by <a href="https://github.com/adulau">adulau</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>
</div>
</div>
</body>
</html>

View file

@ -1 +1 @@
{"name":"Netbeacon","google":"","tagline":"netbeacon - monitoring your network capture, NIDS or network analysis process","body":"\r\nnetbeacon - monitoring your network capture\r\n===========================================\r\n\r\nnetbeacon is a set of free software tools to send beacons over\r\nthe network to test the accuracy and the precision of your network\r\ncapture framework. With netbeacon you can test the following properties\r\nof your network capture (e.g. for honeypot packet data capture,\r\ndata interception devices, NIDS, DPI ...):\r\n\r\n- How long it takes for a packet to reach your monitoring.\r\n- Time inconsistencies between devices.\r\n- Finding missing packets or its (re)ordering.\r\n- Watchdog to verify an operational network capture.\r\n\r\nnetbeacon - packet format\r\n-------------------------\r\n\r\nThe netbeacon format is a simple ASCII format encapsulated in an UDP\r\npacket. The format is the following:\r\n\r\n header;epoch;sequence;hmac\r\n\r\n* The current header is nb\r\n* The epoch value (in UTC format)\r\n* The sequence an unsigned integer\r\n* and the HMAC-SHA1 signature.\r\n\r\nEach message is encapsulated in UDP and by default using port 12345.\r\n\r\nA pre-shared key (PSK) is agreed between the netbeacon sender\r\nand netbeacon recipient to ensure packet integrity using HMAC (SHA1).\r\nThere is a default key \"netbeacon\" but we highly recommend to set your\r\nown for your systems.\r\n\r\n### sample netbeacon messages ###\r\n\r\nHere is a serie of 3 netbeacon messages extracted from 3 UDP packets:\r\n \r\n nb;1354960619;101;335540bf3dae684c3d5cd5795fd09b9097bad656\r\n nb;1354960619;102;56fc82c066644f179b58eb84a47e577bf92adc47\r\n nb;1354960619;103;854207f54c1c4be97bdf4cd4a0d1068731848698\r\n\r\nnetbeacon - usage\r\n-----------------\r\n\r\n### How to use it? ###\r\n\r\nOn a device where you able to send packets on the monitored/tapped network, you\r\ncan send beacons using nb_send.py\r\n\r\n python nb_send.py -s -i 3 -d 1.2.3.4\r\n\r\nWhere you are processing your network capture, you can run the following:\r\n\r\n python nb_collect.py -i dag0 | python nb_verify.py -s -t\r\n\r\n### nb_send.py ###\r\n\r\n Usage: nb_send.py [options]\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -p PSK, --psk=PSK pre-shared key used by the HMAC-SHA1 (default:\r\n netbeacon)\r\n -s, --storeseq store sequence and validate sequence\r\n -i ITERATION, --iteration=ITERATION\r\n set the number of interation for sending the netbeacon\r\n -d DESTINATION, --destination=DESTINATION\r\n set the destination IPv4 address (default: 127.0.0.1)\r\n -v, --verbose output netbeacon sent\r\n\r\n\r\n### nb_collect.py ###\r\n\r\n Usage: nb_collect.py [options]\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -i INTERFACE, --interface=INTERFACE\r\n live capture on interface (default:lo)\r\n -r FILEDUMP, --read=FILEDUMP\r\n read pcap file\r\n -e EXTENDED, --extended=EXTENDED\r\n enable extended format including pcap timestamp\r\n\r\n### nb_verify.py ###\r\n\r\n Usage: nb_verify.py [options] <netbeacon messages>\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -t, --timedelta show timedelta\r\n -s, --storeseq store sequence and validate sequence\r\n -p PSK, --psk=PSK pre-shared key used by the HMAC-SHA1 (default: netbeacon)\r\n\r\n\r\n\r\nLicense\r\n=======\r\n\r\nnetbeacon is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 3 of the License, or\r\n(at your option) any later version.\r\n\r\nCopyright (c) 2012 Alexandre Dulaunoy - https://github.com/adulau/\r\n","note":"Don't delete this file! It's used internally to help with page regeneration."}
{"name":"Netbeacon","tagline":"netbeacon - monitoring your network capture, NIDS or network analysis process","body":"\r\nnetbeacon - monitoring your network capture\r\n===========================================\r\n\r\nnetbeacon is a set of free software tools to send beacons over\r\nthe network to test the accuracy and the precision of your network\r\ncapture framework. With netbeacon you can test the following properties\r\nof your network capture (e.g. for honeypot packet data capture,\r\ndata interception devices, NIDS, DPI ...):\r\n\r\n- How long it takes for a packet to reach your monitoring.\r\n- Time inconsistencies between devices.\r\n- Finding missing packets or its (re)ordering.\r\n- Watchdog to verify an operational network capture.\r\n\r\nnetbeacon - packet format\r\n-------------------------\r\n\r\nThe netbeacon format is a simple ASCII format encapsulated in an UDP\r\npacket. The format is the following:\r\n\r\n header;epoch;sequence;hmac\r\n\r\n* The current header is nb\r\n* The epoch value (in UTC format)\r\n* The sequence an unsigned integer\r\n* and the HMAC-SHA1 signature.\r\n\r\nEach message is encapsulated in UDP and by default using port 12345.\r\n\r\nA pre-shared key (PSK) is agreed between the netbeacon sender\r\nand netbeacon recipient to ensure packet integrity using HMAC (SHA1).\r\nThere is a default key \"netbeacon\" but we highly recommend to set your\r\nown for your systems.\r\n\r\n### sample netbeacon messages ###\r\n\r\nHere is a serie of 3 netbeacon messages extracted from 3 UDP packets:\r\n \r\n nb;1354960619;101;335540bf3dae684c3d5cd5795fd09b9097bad656\r\n nb;1354960619;102;56fc82c066644f179b58eb84a47e577bf92adc47\r\n nb;1354960619;103;854207f54c1c4be97bdf4cd4a0d1068731848698\r\n\r\nnetbeacon - usage\r\n-----------------\r\n\r\n### How to use it? ###\r\n\r\nOn a device where you able to send packets on the monitored/tapped network, you\r\ncan send beacons using nb_send.py\r\n\r\n python nb_send.py -s -i 3 -d 1.2.3.4\r\n\r\nWhere you are processing your network capture, you can run the following:\r\n\r\n python nb_collect.py -i dag0 | python nb_verify.py -s -t\r\n\r\n### nb_send.py ###\r\n\r\n Usage: nb_send.py [options]\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -p PSK, --psk=PSK pre-shared key used by the HMAC-SHA1 (default:\r\n netbeacon)\r\n -s, --storeseq store sequence and validate sequence\r\n -i ITERATION, --iteration=ITERATION\r\n set the number of interation for sending the netbeacon\r\n -d DESTINATION, --destination=DESTINATION\r\n set the destination(s) IPv4 address (default: 127.0.0.1)\r\n -v, --verbose output netbeacon sent\r\n\r\n\r\n### nb_collect.py ###\r\n\r\n Usage: nb_collect.py [options]\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -i INTERFACE, --interface=INTERFACE\r\n live capture on interface (default:lo)\r\n -r FILEDUMP, --read=FILEDUMP\r\n read pcap file\r\n -e EXTENDED, --extended=EXTENDED\r\n enable extended format including pcap timestamp\r\n\r\n### nb_verify.py ###\r\n\r\n Usage: nb_verify.py [options] <netbeacon messages>\r\n\r\n Options:\r\n -h, --help show this help message and exit\r\n -t, --timedelta show timedelta\r\n -s, --storeseq store sequence and validate sequence\r\n -p PSK, --psk=PSK pre-shared key used by the HMAC-SHA1 (default: netbeacon)\r\n\r\n\r\n\r\nLicense\r\n=======\r\n\r\nnetbeacon is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 3 of the License, or\r\n(at your option) any later version.\r\n\r\nCopyright (c) 2012,2013 Alexandre Dulaunoy - https://github.com/adulau/\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

226
stylesheets/print.css Normal file
View file

@ -0,0 +1,226 @@
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
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,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
font-size: 13px;
line-height: 1.5;
font-family: 'Helvetica Neue', Helvetica, Arial, serif;
color: #000;
}
a {
color: #d5000d;
font-weight: bold;
}
header {
padding-top: 35px;
padding-bottom: 10px;
}
header h1 {
font-weight: bold;
letter-spacing: -1px;
font-size: 48px;
color: #303030;
line-height: 1.2;
}
header h2 {
letter-spacing: -1px;
font-size: 24px;
color: #aaa;
font-weight: normal;
line-height: 1.3;
}
#downloads {
display: none;
}
#main_content {
padding-top: 20px;
}
code, pre {
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
color: #222;
margin-bottom: 30px;
font-size: 12px;
}
code {
padding: 0 3px;
}
pre {
border: solid 1px #ddd;
padding: 20px;
overflow: auto;
}
pre code {
padding: 0;
}
ul, ol, dl {
margin-bottom: 20px;
}
/* COMMON STYLES */
table {
width: 100%;
border: 1px solid #ebebeb;
}
th {
font-weight: 500;
}
td {
border: 1px solid #ebebeb;
text-align: center;
font-weight: 300;
}
form {
background: #f2f2f2;
padding: 20px;
}
/* GENERAL ELEMENT TYPE STYLES */
h1 {
font-size: 2.8em;
}
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;
}
h6 {
font-size: .8em;
color: #303030;
}
p {
font-weight: 300;
margin-bottom: 20px;
}
a {
text-decoration: none;
}
p a {
font-weight: 400;
}
blockquote {
font-size: 1.6em;
border-left: 10px solid #e9e9e9;
margin-bottom: 20px;
padding: 0 0 0 30px;
}
ul li {
list-style: disc inside;
padding-left: 20px;
}
ol li {
list-style: decimal inside;
padding-left: 3px;
}
dl dd {
font-style: italic;
font-weight: 100;
}
footer {
margin-top: 40px;
padding-top: 20px;
padding-bottom: 30px;
font-size: 13px;
color: #aaa;
}
footer a {
color: #666;
}
/* MISC */
.clearfix:after {
clear: both;
content: '.';
display: block;
visibility: hidden;
height: 0;
}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}

View file

@ -1,65 +1,64 @@
.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 { 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 .ge { font-style: italic } /* Generic.Emph */
.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 .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 .gs { font-weight: bold } /* Generic.Strong */
.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 .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 .w { color: #bbbbbb } /* Text.Whitespace */
.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 */
.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 */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }

View file

@ -1,14 +1,7 @@
/*******************************************************************************
Slate Theme for Github Pages
by Jason Costello, @jsncostello
*******************************************************************************/
@import url(pygment_trac.css);
/*******************************************************************************
MeyerWeb Reset
*******************************************************************************/
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
@ -25,407 +18,354 @@ time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
a:focus {
outline: none;
}
/*******************************************************************************
Theme Styles
*******************************************************************************/
/* LAYOUT STYLES */
body {
box-sizing: border-box;
color:#373737;
background: #212121;
font-size: 16px;
font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
font-size: 1em;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
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;
}
h1 {
font-size: 36px;
font-weight: 700;
}
h2 {
padding-bottom: 10px;
font-size: 32px;
background: url('../images/bg_hr.png') repeat-x bottom;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 21px;
}
h5 {
font-size: 18px;
}
h6 {
font-size: 16px;
}
p {
margin: 10px 0 15px 0;
}
footer p {
color: #f2f2f2;
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;
}
a {
text-decoration: none;
color: #007edf;
color: #d5000d;
}
a:hover {
color: #c5000c;
}
header {
padding-top: 35px;
padding-bottom: 25px;
}
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;
}
header h2 {
letter-spacing: -1px;
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;
}
.inner {
width: 620px;
margin: 0 auto;
}
#container .inner img {
max-width: 100%;
}
#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;
}
#download-zip span {
background: transparent url(../images/zip-icon.png) 12px 50% no-repeat;
}
#download-tar-gz span {
background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat;
}
#view-on-github span {
background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat;
}
#view-on-github {
margin-right: 0;
}
code, pre {
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
color: #222;
margin-bottom: 30px;
font-size: 14px;
}
code {
background-color: #f2f2f2;
border: solid 1px #ddd;
padding: 0 3px;
}
pre {
padding: 20px;
background: #303030;
color: #f2f2f2;
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;
overflow: auto;
}
pre code {
color: #f2f2f2;
background-color: #303030;
border: none;
padding: 0;
}
#main_content a:hover {
color: #0069ba;
text-shadow: #0090ff 0px 0px 2px;
ul, ol, dl {
margin-bottom: 20px;
}
footer a:hover {
color: #43adff;
text-shadow: #0090ff 0px 0px 2px;
}
em {
font-style: italic;
/* COMMON STYLES */
hr {
height: 1px;
line-height: 1px;
margin-top: 1em;
padding-bottom: 1em;
border: none;
background: transparent url('../images/hr.png') 50% 0 no-repeat;
}
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;
}
pre, code {
width: 100%;
color: #222;
background-color: #fff;
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
font-size: 14px;
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
pre {
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 {
display: block;
box-shadow: none;
}
blockquote {
color: #666;
margin-bottom: 20px;
padding: 0 0 0 20px;
border-left: 3px solid #bbb;
}
ul, ol, dl {
margin-bottom: 15px
}
ul li {
list-style: inside;
padding-left: 20px;
}
ol li {
list-style: decimal inside;
padding-left: 20px;
}
dl dt {
font-weight: bold;
}
dl dd {
padding-left: 20px;
em {
font-style: italic;
}
dl p {
padding-left: 20px;
font-style: italic;
}
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;
width: 100%;
border: 1px solid #ebebeb;
}
th {
font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
padding: 10px;
background: #373737;
color: #fff;
font-weight: 500;
}
td {
padding: 10px;
border: 1px solid #373737;
border: 1px solid #ebebeb;
text-align: center;
font-weight: 300;
}
form {
background: #f2f2f2;
padding: 20px;
}
img {
width: 100%;
max-width: 100%;
}
/*******************************************************************************
Full-Width Styles
*******************************************************************************/
.outer {
width: 100%;
}
.inner {
position: relative;
max-width: 640px;
padding: 20px 10px;
margin: 0 auto;
}
#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;
background: none;
text-shadow: #111 0px 0px 10px;
}
#downloads {
position: absolute;
width: 210px;
z-index: 10;
bottom: -40px;
right: 0;
height: 70px;
background: url('../images/icon_download.png') no-repeat 0% 90%;
}
.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;
}
.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;
}
.zip_download_link:hover {
background: url(../images/sprite_download.png) no-repeat top left;
}
.tar_download_link:hover {
background: url(../images/sprite_download.png) no-repeat top right;
}
#main_content_wrap {
background: #f2f2f2;
border-top: 1px solid #111;
border-bottom: 1px solid #111;
}
#main_content {
padding-top: 40px;
}
#footer_wrap {
background: #212121;
}
/* GENERAL ELEMENT TYPE STYLES */
/*******************************************************************************
Small Device Styles
*******************************************************************************/
@media screen and (max-width: 480px) {
body {
font-size:14px;
}
#downloads {
display: none;
}
.inner {
min-width: 320px;
max-width: 480px;
}
#project_title {
h1 {
font-size: 32px;
}
h1 {
font-size: 28px;
}
h2 {
font-size: 24px;
font-size: 22px;
font-weight: bold;
color: #303030;
margin-bottom: 8px;
}
h3 {
font-size: 21px;
color: #d5000d;
font-size: 18px;
font-weight: bold;
margin-bottom: 8px;
}
h4 {
font-size: 18px;
font-size: 16px;
color: #303030;
font-weight: bold;
}
h5 {
font-size: 14px;
font-size: 1em;
color: #303030;
}
h6 {
font-size: 12px;
font-size: .8em;
color: #303030;
}
code, pre {
min-width: 320px;
max-width: 480px;
font-size: 11px;
p {
font-weight: 300;
margin-bottom: 20px;
}
a {
text-decoration: none;
}
p a {
font-weight: 400;
}
blockquote {
font-size: 1.6em;
border-left: 10px solid #e9e9e9;
margin-bottom: 20px;
padding: 0 0 0 30px;
}
ul li {
list-style: disc inside;
padding-left: 20px;
}
ol li {
list-style: decimal inside;
padding-left: 3px;
}
dl dt {
color: #303030;
}
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;
}
footer a {
color: #666;
}
footer a:hover {
color: #444;
}
/* MISC */
.clearfix:after {
clear: both;
content: '.';
display: block;
visibility: hidden;
height: 0;
}
.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) {}
/* All Mobile Sizes (devices and browser) */
@media only screen and (max-width: 767px) {
header {
padding-top: 10px;
padding-bottom: 10px;
}
#downloads {
margin-bottom: 25px;
}
#download-zip, #download-tar-gz {
display: none;
}
.inner {
width: 94%;
margin: 0 auto;
}
}
/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
@media only screen and (min-width: 480px) and (max-width: 767px) {}
/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
@media only screen and (max-width: 479px) {}