summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Antonuk <alan.antonuk@gmail.com>2012-10-04 13:26:15 -0700
committerAlan Antonuk <alan.antonuk@gmail.com>2012-10-04 13:26:15 -0700
commitbd7a6b7a3f57538a994a95bee183fbf29fc7b068 (patch)
tree6000ad92f49e82212852815c7eb8c54f8463d0b3
downloadrabbitmq-c-bd7a6b7a3f57538a994a95bee183fbf29fc7b068.tar.gz
Create gh-pages branch via GitHub
-rw-r--r--index.html188
-rw-r--r--javascripts/scale.fix.js17
-rw-r--r--params.json1
-rw-r--r--stylesheets/pygment_trac.css69
-rw-r--r--stylesheets/styles.css255
5 files changed, 530 insertions, 0 deletions
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b35d8e9
--- /dev/null
+++ b/index.html
@@ -0,0 +1,188 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="chrome=1">
+ <title>rabbitmq-c by alanxz</title>
+
+ <link rel="stylesheet" href="stylesheets/styles.css">
+ <link rel="stylesheet" href="stylesheets/pygment_trac.css">
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ <div class="wrapper">
+ <header>
+ <h1>rabbitmq-c</h1>
+ <p>C client library for the RabbitMQ broker</p>
+
+ <p class="view"><a href="https://github.com/alanxz/rabbitmq-c">View the Project on GitHub <small>alanxz/rabbitmq-c</small></a></p>
+
+
+ <ul>
+ <li><a href="https://github.com/alanxz/rabbitmq-c/zipball/master">Download <strong>ZIP File</strong></a></li>
+ <li><a href="https://github.com/alanxz/rabbitmq-c/tarball/master">Download <strong>TAR Ball</strong></a></li>
+ <li><a href="https://github.com/alanxz/rabbitmq-c">View On <strong>GitHub</strong></a></li>
+ </ul>
+ </header>
+ <section>
+ <h1>RabbitMQ C AMQP client library</h1>
+
+<p><a href="http://travis-ci.org/alanxz/rabbitmq-c"><img src="https://secure.travis-ci.org/alanxz/rabbitmq-c.png?branch=master" alt="Build Status"></a></p>
+
+<h2>Introduction</h2>
+
+<p>This is a C-language AMQP client library for use with AMQP servers
+speaking protocol versions 0-9-1.</p>
+
+<ul>
+<li><a href="http://www.rabbitmq.com/">http://www.rabbitmq.com/</a></li>
+<li><a href="http://www.amqp.org/">http://www.amqp.org/</a></li>
+<li><a href="http://github.com/alanxz/rabbitmq-c">http://github.com/alanxz/rabbitmq-c</a></li>
+</ul><p>Announcements regarding the library are periodically made on the
+RabbitMQ mailing list and on the RabbitMQ blog.</p>
+
+<ul>
+<li><a href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a></li>
+<li><a href="http://www.rabbitmq.com/blog/">http://www.rabbitmq.com/blog/</a></li>
+</ul><h2>Retrieving the code</h2>
+
+<p>In addition to the source code for this library, you will require a
+copy of <code>rabbitmq-codegen</code>, which resides in the <code>codegen</code> directory
+as a git submodule. To update the submodule(s):</p>
+
+<pre><code>git clone git://github.com/alanxz/rabbitmq-c.git
+cd rabbitmq-c
+git submodule init
+git submodule update
+</code></pre>
+
+<p>You will also need a recent python with the simplejson module
+installed, and the GNU autotools (autoconf, automake, libtool etc.),
+or as an alternative CMake.</p>
+
+<h2>Building the code</h2>
+
+<h3>Using autoconf</h3>
+
+<p>Once you have all the prerequisites, change to the <code>rabbitmq-c</code>
+directory and run</p>
+
+<pre><code>autoreconf -i
+</code></pre>
+
+<p>to run the GNU autotools and generate the configure script, followed
+by</p>
+
+<pre><code>./configure
+make
+</code></pre>
+
+<p>to build the <code>librabbitmq</code> library and the example programs.</p>
+
+<h3>Using cmake</h3>
+
+<p>You will need CMake (v2.6 or better): <a href="http://cmake.org/">http://cmake.org/</a></p>
+
+<p>You will need a working python install (2.6+) with the json or simplejson
+modules installed.</p>
+
+<p>You will need to do the git submodule init/update as above.
+Alternatively you can clone the rabbitmq-codegen repository and point
+cmake to it using the RABBITMQ_CODEGEN_DIR cmake variable</p>
+
+<p>Create a binary directory in a sibling directory from the directory
+you cloned the rabbitmq-c repository</p>
+
+<pre><code>mkdir bin-rabbitmq-c
+</code></pre>
+
+<p>Run CMake in the binary directory</p>
+
+<pre><code>cmake /path/to/source/directory
+</code></pre>
+
+<p>Build it:</p>
+
+<ul>
+<li>On linux: <code>make</code>
+</li>
+<li>On win32: <code>nmake</code> or <code>msbuild</code>, or open it in visual studio and
+build from there</li>
+</ul><p>Things you can pass to cmake to change the build:</p>
+
+<ul>
+<li>
+<code>-DRABBITMQ_CODEGEN_DIR=/path/to/rabbitmq-codegen/checkout</code> - if you
+have your codegen directory in a different place [Default is
+sibiling directory to source]</li>
+<li>
+<code>-DBUILD_TOOLS=OFF</code> build the programs in the tools directory
+[Default is ON if the POPT library can be found]</li>
+</ul><p>Other interesting flags to pass to CMake (see cmake docs for more info)</p>
+
+<ul>
+<li>
+<code>-DCMAKE_BUILD_TYPE</code> - specify the type of build (Debug or Release)</li>
+<li>
+<code>-DCMAKE_INSTALL_PREFIX</code> - specify where the install target puts files</li>
+</ul><h2>Running the examples</h2>
+
+<p>Arrange for a RabbitMQ or other AMQP server to be running on
+<code>localhost</code> at TCP port number 5672.</p>
+
+<p>In one terminal, run</p>
+
+<pre><code>./examples/amqp_listen localhost 5672 amq.direct test
+</code></pre>
+
+<p>In another terminal,</p>
+
+<pre><code>./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"
+</code></pre>
+
+<p>You should see output similar to the following in the listener's
+terminal window:</p>
+
+<pre><code>Result 1
+Frame type 1, channel 1
+Method AMQP_BASIC_DELIVER_METHOD
+Delivery 1, exchange amq.direct routingkey test
+Content-type: text/plain
+----
+00000000: 68 65 6C 6C 6F 20 77 6F : 72 6C 64 hello world
+0000000B:
+</code></pre>
+
+<h2>Writing applications using <code>librabbitmq</code>
+</h2>
+
+<p>Please see the <code>examples</code> directory for short examples of the use of
+the <code>librabbitmq</code> library.</p>
+
+<h3>Threading</h3>
+
+<p>You cannot share a socket, an <code>amqp_connection_state_t</code>, or a channel
+between threads using <code>librabbitmq</code>. The <code>librabbitmq</code> library is
+built with event-driven, single-threaded applications in mind, and
+does not yet cater to any of the requirements of <code>pthread</code>ed
+applications.</p>
+
+<p>Your applications instead should open an AMQP connection (and an
+associated socket, of course) per thread. If your program needs to
+access an AMQP connection or any of its channels from more than one
+thread, it is entirely responsible for designing and implementing an
+appropriate locking scheme. It will generally be much simpler to have
+a connection exclusive to each thread that needs AMQP service.</p>
+ </section>
+ <footer>
+ <p>This project is maintained by <a href="https://github.com/alanxz">alanxz</a></p>
+ <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
+ </footer>
+ </div>
+ <script src="javascripts/scale.fix.js"></script>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js
new file mode 100644
index 0000000..87a40ca
--- /dev/null
+++ b/javascripts/scale.fix.js
@@ -0,0 +1,17 @@
+var metas = document.getElementsByTagName('meta');
+var i;
+if (navigator.userAgent.match(/iPhone/i)) {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
+ }
+ }
+ document.addEventListener("gesturestart", gestureStart, false);
+}
+function gestureStart() {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
+ }
+ }
+} \ No newline at end of file
diff --git a/params.json b/params.json
new file mode 100644
index 0000000..2855712
--- /dev/null
+++ b/params.json
@@ -0,0 +1 @@
+{"tagline":"C client library for the RabbitMQ broker","google":"","body":"# RabbitMQ C AMQP client library\r\n\r\n[![Build Status](https://secure.travis-ci.org/alanxz/rabbitmq-c.png?branch=master)](http://travis-ci.org/alanxz/rabbitmq-c)\r\n\r\n## Introduction\r\n\r\nThis is a C-language AMQP client library for use with AMQP servers\r\nspeaking protocol versions 0-9-1.\r\n\r\n - <http://www.rabbitmq.com/>\r\n - <http://www.amqp.org/>\r\n - <http://github.com/alanxz/rabbitmq-c>\r\n\r\nAnnouncements regarding the library are periodically made on the\r\nRabbitMQ mailing list and on the RabbitMQ blog.\r\n\r\n - <http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>\r\n - <http://www.rabbitmq.com/blog/>\r\n\r\n## Retrieving the code\r\n\r\nIn addition to the source code for this library, you will require a\r\ncopy of `rabbitmq-codegen`, which resides in the `codegen` directory\r\nas a git submodule. To update the submodule(s):\r\n\r\n git clone git://github.com/alanxz/rabbitmq-c.git\r\n cd rabbitmq-c\r\n git submodule init\r\n git submodule update\r\n\r\nYou will also need a recent python with the simplejson module\r\ninstalled, and the GNU autotools (autoconf, automake, libtool etc.),\r\nor as an alternative CMake.\r\n\r\n## Building the code\r\n\r\n### Using autoconf\r\n\r\nOnce you have all the prerequisites, change to the `rabbitmq-c`\r\ndirectory and run\r\n\r\n autoreconf -i\r\n\r\nto run the GNU autotools and generate the configure script, followed\r\nby\r\n\r\n ./configure\r\n make\r\n\r\nto build the `librabbitmq` library and the example programs.\r\n\r\n### Using cmake\r\n\r\nYou will need CMake (v2.6 or better): http://cmake.org/\r\n\r\nYou will need a working python install (2.6+) with the json or simplejson\r\nmodules installed.\r\n\r\nYou will need to do the git submodule init/update as above.\r\nAlternatively you can clone the rabbitmq-codegen repository and point\r\ncmake to it using the RABBITMQ_CODEGEN_DIR cmake variable\r\n\r\nCreate a binary directory in a sibling directory from the directory\r\nyou cloned the rabbitmq-c repository\r\n\r\n mkdir bin-rabbitmq-c\r\n\r\nRun CMake in the binary directory\r\n\r\n cmake /path/to/source/directory\r\n\r\nBuild it:\r\n\r\n* On linux: `make`\r\n* On win32: `nmake` or `msbuild`, or open it in visual studio and\r\n build from there\r\n\r\nThings you can pass to cmake to change the build:\r\n\r\n* `-DRABBITMQ_CODEGEN_DIR=/path/to/rabbitmq-codegen/checkout` - if you\r\n have your codegen directory in a different place [Default is\r\n sibiling directory to source]\r\n* `-DBUILD_TOOLS=OFF` build the programs in the tools directory\r\n [Default is ON if the POPT library can be found]\r\n\r\nOther interesting flags to pass to CMake (see cmake docs for more info)\r\n\r\n* `-DCMAKE_BUILD_TYPE` - specify the type of build (Debug or Release)\r\n* `-DCMAKE_INSTALL_PREFIX` - specify where the install target puts files\r\n\r\n## Running the examples\r\n\r\nArrange for a RabbitMQ or other AMQP server to be running on\r\n`localhost` at TCP port number 5672.\r\n\r\nIn one terminal, run\r\n\r\n ./examples/amqp_listen localhost 5672 amq.direct test\r\n\r\nIn another terminal,\r\n\r\n ./examples/amqp_sendstring localhost 5672 amq.direct test \"hello world\"\r\n\r\nYou should see output similar to the following in the listener's\r\nterminal window:\r\n\r\n Result 1\r\n Frame type 1, channel 1\r\n Method AMQP_BASIC_DELIVER_METHOD\r\n Delivery 1, exchange amq.direct routingkey test\r\n Content-type: text/plain\r\n ----\r\n 00000000: 68 65 6C 6C 6F 20 77 6F : 72 6C 64 hello world\r\n 0000000B:\r\n\r\n## Writing applications using `librabbitmq`\r\n\r\nPlease see the `examples` directory for short examples of the use of\r\nthe `librabbitmq` library.\r\n\r\n### Threading\r\n\r\nYou cannot share a socket, an `amqp_connection_state_t`, or a channel\r\nbetween threads using `librabbitmq`. The `librabbitmq` library is\r\nbuilt with event-driven, single-threaded applications in mind, and\r\ndoes not yet cater to any of the requirements of `pthread`ed\r\napplications.\r\n\r\nYour applications instead should open an AMQP connection (and an\r\nassociated socket, of course) per thread. If your program needs to\r\naccess an AMQP connection or any of its channels from more than one\r\nthread, it is entirely responsible for designing and implementing an\r\nappropriate locking scheme. It will generally be much simpler to have\r\na connection exclusive to each thread that needs AMQP service.\r\n","note":"Don't delete this file! It's used internally to help with page regeneration.","name":"rabbitmq-c"} \ No newline at end of file
diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css
new file mode 100644
index 0000000..c6a6452
--- /dev/null
+++ b/stylesheets/pygment_trac.css
@@ -0,0 +1,69 @@
+.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: #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: #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: #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 }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/stylesheets/styles.css b/stylesheets/styles.css
new file mode 100644
index 0000000..dacf2e1
--- /dev/null
+++ b/stylesheets/styles.css
@@ -0,0 +1,255 @@
+@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
+
+body {
+ padding:50px;
+ font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color:#777;
+ font-weight:300;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color:#222;
+ margin:0 0 20px;
+}
+
+p, ul, ol, table, pre, dl {
+ margin:0 0 20px;
+}
+
+h1, h2, h3 {
+ line-height:1.1;
+}
+
+h1 {
+ font-size:28px;
+}
+
+h2 {
+ color:#393939;
+}
+
+h3, h4, h5, h6 {
+ color:#494949;
+}
+
+a {
+ color:#39c;
+ font-weight:400;
+ text-decoration:none;
+}
+
+a small {
+ font-size:11px;
+ color:#777;
+ margin-top:-0.6em;
+ display:block;
+}
+
+.wrapper {
+ width:860px;
+ margin:0 auto;
+}
+
+blockquote {
+ border-left:1px solid #e5e5e5;
+ margin:0;
+ padding:0 0 0 20px;
+ font-style:italic;
+}
+
+code, pre {
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+ color:#333;
+ font-size:12px;
+}
+
+pre {
+ padding:8px 15px;
+ background: #f8f8f8;
+ border-radius:5px;
+ border:1px solid #e5e5e5;
+ overflow-x: auto;
+}
+
+table {
+ width:100%;
+ border-collapse:collapse;
+}
+
+th, td {
+ text-align:left;
+ padding:5px 10px;
+ border-bottom:1px solid #e5e5e5;
+}
+
+dt {
+ color:#444;
+ font-weight:700;
+}
+
+th {
+ color:#444;
+}
+
+img {
+ max-width:100%;
+}
+
+header {
+ width:270px;
+ float:left;
+ position:fixed;
+}
+
+header ul {
+ list-style:none;
+ height:40px;
+
+ padding:0;
+
+ background: #eee;
+ background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
+ background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+
+ border-radius:5px;
+ border:1px solid #d2d2d2;
+ box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
+ width:270px;
+}
+
+header li {
+ width:89px;
+ float:left;
+ border-right:1px solid #d2d2d2;
+ height:40px;
+}
+
+header ul a {
+ line-height:1;
+ font-size:11px;
+ color:#999;
+ display:block;
+ text-align:center;
+ padding-top:6px;
+ height:40px;
+}
+
+strong {
+ color:#222;
+ font-weight:700;
+}
+
+header ul li + li {
+ width:88px;
+ border-left:1px solid #fff;
+}
+
+header ul li + li + li {
+ border-right:none;
+ width:89px;
+}
+
+header ul a strong {
+ font-size:14px;
+ display:block;
+ color:#222;
+}
+
+section {
+ width:500px;
+ float:right;
+ padding-bottom:50px;
+}
+
+small {
+ font-size:11px;
+}
+
+hr {
+ border:0;
+ background:#e5e5e5;
+ height:1px;
+ margin:0 0 20px;
+}
+
+footer {
+ width:270px;
+ float:left;
+ position:fixed;
+ bottom:50px;
+}
+
+@media print, screen and (max-width: 960px) {
+
+ div.wrapper {
+ width:auto;
+ margin:0;
+ }
+
+ header, section, footer {
+ float:none;
+ position:static;
+ width:auto;
+ }
+
+ header {
+ padding-right:320px;
+ }
+
+ section {
+ border:1px solid #e5e5e5;
+ border-width:1px 0;
+ padding:20px 0;
+ margin:0 0 20px;
+ }
+
+ header a small {
+ display:inline;
+ }
+
+ header ul {
+ position:absolute;
+ right:50px;
+ top:52px;
+ }
+}
+
+@media print, screen and (max-width: 720px) {
+ body {
+ word-wrap:break-word;
+ }
+
+ header {
+ padding:0;
+ }
+
+ header ul, header p.view {
+ position:static;
+ }
+
+ pre, code {
+ word-wrap:normal;
+ }
+}
+
+@media print, screen and (max-width: 480px) {
+ body {
+ padding:15px;
+ }
+
+ header ul {
+ display:none;
+ }
+}
+
+@media print {
+ body {
+ padding:0.4in;
+ font-size:12pt;
+ color:#444;
+ }
+}