mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 05:39:17 +02:00
Create gh-pages branch via GitHub
This commit is contained in:
commit
0ef3e14f77
6 changed files with 620 additions and 0 deletions
BIN
images/checker.png
Normal file
BIN
images/checker.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 108 B |
114
index.html
Normal file
114
index.html
Normal file
|
@ -0,0 +1,114 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<title>Cyclone by justinethier</title>
|
||||
|
||||
<link rel="stylesheet" href="stylesheets/styles.css">
|
||||
<link rel="stylesheet" href="stylesheets/github-dark.css">
|
||||
<script src="javascripts/scale.fix.js"></script>
|
||||
<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>Cyclone</h1>
|
||||
<p>Cyclone Scheme - Cheney on the M.T.A. with native threads.</p>
|
||||
<p class="view"><a href="https://github.com/justinethier/cyclone">View the Project on GitHub <small>justinethier/cyclone</small></a></p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/justinethier/cyclone/zipball/master">Download <strong>ZIP File</strong></a></li>
|
||||
<li><a href="https://github.com/justinethier/cyclone/tarball/master">Download <strong>TAR Ball</strong></a></li>
|
||||
<li><a href="https://github.com/justinethier/cyclone">View On <strong>GitHub</strong></a></li>
|
||||
</ul>
|
||||
</header>
|
||||
<section>
|
||||
<p><a href="http://github.com/justinethier/cyclone"><img src="docs/images/cyclone-logo-04-header.png" alt="cyclone-scheme"></a></p>
|
||||
|
||||
<p>Cyclone is an experimental Scheme-to-C compiler that uses a variant of the <a href="http://www.pipeline.com/%7Ehbaker1/CheneyMTA.html">Cheney on the MTA</a> technique to implement full tail recursion, continuations, and generational garbage collection. Unlike previous Cheney on the MTA compilers, Cyclone also allows execution of multiple native threads. An on-the-fly garbage collector is used to manage the second-generation heap and perform major collections without "stopping the world".</p>
|
||||
|
||||
<h2>
|
||||
<a id="getting-started" class="anchor" href="#getting-started" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Getting Started</h2>
|
||||
|
||||
<ol>
|
||||
<li><p>To install Cyclone on your machine for the first time use <a href="https://github.com/justinethier/cyclone-bootstrap"><strong>cyclone-bootstrap</strong></a> to build a set of binaries. </p></li>
|
||||
<li>
|
||||
<p>After installing you can run the <code>cyclone</code> command to compile a single Scheme file:</p>
|
||||
|
||||
<pre><code>$ cyclone examples/fac.scm
|
||||
$ examples/fac
|
||||
3628800
|
||||
</code></pre>
|
||||
|
||||
<p>And the <code>icyc</code> command to start an interactive interpreter:</p>
|
||||
|
||||
<pre><code>$ icyc
|
||||
|
||||
:@
|
||||
@@@
|
||||
@@@@:
|
||||
`@@@@@+
|
||||
.@@@+@@@ Cyclone
|
||||
@@ @@ An experimental Scheme compiler
|
||||
,@ https://github.com/justinethier/cyclone
|
||||
'@
|
||||
.@
|
||||
@@ #@ (c) 2014 Justin Ethier
|
||||
`@@@#@@@. Version 0.0.1 (Pre-release)
|
||||
#@@@@@
|
||||
+@@@+
|
||||
@@#
|
||||
`@.
|
||||
|
||||
cyclone> (write 'hello-world)
|
||||
hello-world
|
||||
</code></pre>
|
||||
|
||||
<p>You can use <a href="http://linux.die.net/man/1/rlwrap"><code>rlwrap</code></a> to make the interpreter more friendly, EG: <code>rlwrap icyc</code>.</p>
|
||||
</li>
|
||||
<li><p>Read the documentation below for more information on how to use Cyclone.</p></li>
|
||||
</ol>
|
||||
|
||||
<h2>
|
||||
<a id="documentation" class="anchor" href="#documentation" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Documentation</h2>
|
||||
|
||||
<ul>
|
||||
<li><p>The <a href="docs/User-Manual.md">User Manual</a> covers in detail how to use Cyclone, and provides information and API documentation on the Scheme language features implemented by Cyclone.</p></li>
|
||||
<li><p>Cyclone's <a href="docs/Garbage-Collector.md">Garbage Collector</a> is documented at a high-level. This document includes details on extending Cheney on the MTA to support multiple stacks and fusing that approach with a tri-color marking collector.</p></li>
|
||||
<li><p>The <a href="docs/Benchmarks.md">Benchmarks</a> page compares the performance of Cyclone with other R<sup>7</sup>RS Schemes using a common set of benchmarks.</p></li>
|
||||
<li><p><a href="docs/Writing-the-Cyclone-Scheme-Compiler.md">Writing the Cyclone Scheme Compiler</a> provides high-level details on how the compiler was written and how it works.</p></li>
|
||||
<li><p>Finally, if you need another resource to start learning the Scheme language you may want to try a classic textbook such as <a href="https://mitpress.mit.edu/sicp/full-text/book/book.html">Structure and Interpretation of Computer Programs</a>.</p></li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a id="example-programs" class="anchor" href="#example-programs" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Example Programs</h2>
|
||||
|
||||
<p>Cyclone provides several example programs, including:</p>
|
||||
|
||||
<ul>
|
||||
<li><p><a href="examples/game-of-life">Game of Life</a> - The game of life example program and libraries from R<sup>7</sup>RS.</p></li>
|
||||
<li><p><a href="examples/threading">Threading</a> - Various examples of multi-threaded programs.</p></li>
|
||||
<li><p><a href="examples/tail-call-optimization.scm">Tail Call Optimization</a> - A simple example of Scheme tail call optimization; this program runs forever, calling into two mutually recursive functions.</p></li>
|
||||
<li><p>Finally, the largest program is the compiler itself. Most of the code is contained in a series of libraries which are used by <a href="cyclone.scm"><code>cyclone.scm</code></a> and <a href="icyc.scm"><code>icyc.scm</code></a> to create executables for Cyclone's compiler and interpreter.</p></li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a id="license" class="anchor" href="#license" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>License</h2>
|
||||
|
||||
<p>Copyright (C) 2014 <a href="http://github.com/justinethier">Justin Ethier</a>.</p>
|
||||
|
||||
<p>Cyclone is available under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT license</a>.</p>
|
||||
</section>
|
||||
</div>
|
||||
<footer>
|
||||
<p>Project maintained by <a href="https://github.com/justinethier">justinethier</a></p>
|
||||
<p>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></p>
|
||||
</footer>
|
||||
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
|
||||
|
||||
</body>
|
||||
</html>
|
20
javascripts/scale.fix.js
Normal file
20
javascripts/scale.fix.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
fixScale = function(doc) {
|
||||
|
||||
var addEvent = 'addEventListener',
|
||||
type = 'gesturestart',
|
||||
qsa = 'querySelectorAll',
|
||||
scales = [1, 1],
|
||||
meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : [];
|
||||
|
||||
function fix() {
|
||||
meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1];
|
||||
doc.removeEventListener(type, fix, true);
|
||||
}
|
||||
|
||||
if ((meta = meta[meta.length - 1]) && addEvent in doc) {
|
||||
fix();
|
||||
scales = [.25, 1.6];
|
||||
doc[addEvent](type, fix, true);
|
||||
}
|
||||
|
||||
};
|
6
params.json
Normal file
6
params.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"name": "Cyclone",
|
||||
"tagline": "Cyclone Scheme - Cheney on the M.T.A. with native threads.",
|
||||
"body": "[<img src=\"docs/images/cyclone-logo-04-header.png\" alt=\"cyclone-scheme\">](http://github.com/justinethier/cyclone)\r\n\r\nCyclone is an experimental Scheme-to-C compiler that uses a variant of the [Cheney on the MTA](http://www.pipeline.com/~hbaker1/CheneyMTA.html) technique to implement full tail recursion, continuations, and generational garbage collection. Unlike previous Cheney on the MTA compilers, Cyclone also allows execution of multiple native threads. An on-the-fly garbage collector is used to manage the second-generation heap and perform major collections without \"stopping the world\".\r\n\r\nGetting Started\r\n---------------\r\n\r\n1. To install Cyclone on your machine for the first time use [**cyclone-bootstrap**](https://github.com/justinethier/cyclone-bootstrap) to build a set of binaries. \r\n\r\n2. After installing you can run the `cyclone` command to compile a single Scheme file:\r\n\r\n $ cyclone examples/fac.scm\r\n $ examples/fac\r\n 3628800\r\n \r\n And the `icyc` command to start an interactive interpreter:\r\n \r\n $ icyc\r\n \r\n :@\r\n @@@\r\n @@@@:\r\n `@@@@@+\r\n .@@@+@@@ Cyclone\r\n @@ @@ An experimental Scheme compiler\r\n ,@ https://github.com/justinethier/cyclone\r\n '@\r\n .@\r\n @@ #@ (c) 2014 Justin Ethier\r\n `@@@#@@@. Version 0.0.1 (Pre-release)\r\n #@@@@@\r\n +@@@+\r\n @@#\r\n `@.\r\n \r\n cyclone> (write 'hello-world)\r\n hello-world\r\n\r\n You can use [`rlwrap`](http://linux.die.net/man/1/rlwrap) to make the interpreter more friendly, EG: `rlwrap icyc`.\r\n\r\n3. Read the documentation below for more information on how to use Cyclone.\r\n\r\nDocumentation\r\n-------------\r\n\r\n- The [User Manual](docs/User-Manual.md) covers in detail how to use Cyclone, and provides information and API documentation on the Scheme language features implemented by Cyclone.\r\n\r\n- Cyclone's [Garbage Collector](docs/Garbage-Collector.md) is documented at a high-level. This document includes details on extending Cheney on the MTA to support multiple stacks and fusing that approach with a tri-color marking collector.\r\n\r\n- The [Benchmarks](docs/Benchmarks.md) page compares the performance of Cyclone with other R<sup>7</sup>RS Schemes using a common set of benchmarks.\r\n\r\n- [Writing the Cyclone Scheme Compiler](docs/Writing-the-Cyclone-Scheme-Compiler.md) provides high-level details on how the compiler was written and how it works.\r\n\r\n- Finally, if you need another resource to start learning the Scheme language you may want to try a classic textbook such as [Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html).\r\n\r\nExample Programs\r\n----------------\r\n\r\nCyclone provides several example programs, including:\r\n\r\n- [Game of Life](examples/game-of-life) - The game of life example program and libraries from R<sup>7</sup>RS.\r\n\r\n- [Threading](examples/threading) - Various examples of multi-threaded programs.\r\n\r\n- [Tail Call Optimization](examples/tail-call-optimization.scm) - A simple example of Scheme tail call optimization; this program runs forever, calling into two mutually recursive functions.\r\n\r\n- Finally, the largest program is the compiler itself. Most of the code is contained in a series of libraries which are used by [`cyclone.scm`](cyclone.scm) and [`icyc.scm`](icyc.scm) to create executables for Cyclone's compiler and interpreter.\r\n\r\nLicense\r\n-------\r\nCopyright (C) 2014 [Justin Ethier](http://github.com/justinethier).\r\n\r\nCyclone is available under the [MIT license](http://www.opensource.org/licenses/mit-license.php).\r\n",
|
||||
"note": "Don't delete this file! It's used internally to help with page regeneration."
|
||||
}
|
124
stylesheets/github-dark.css
Normal file
124
stylesheets/github-dark.css
Normal file
|
@ -0,0 +1,124 @@
|
|||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 GitHub, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
.pl-c /* comment */ {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
.pl-c1 /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */,
|
||||
.pl-s .pl-v /* string variable */ {
|
||||
color: #0099cd;
|
||||
}
|
||||
|
||||
.pl-e /* entity */,
|
||||
.pl-en /* entity.name */ {
|
||||
color: #9774cb;
|
||||
}
|
||||
|
||||
.pl-s .pl-s1 /* string source */,
|
||||
.pl-smi /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.pl-ent /* entity.name.tag */ {
|
||||
color: #7bcc72;
|
||||
}
|
||||
|
||||
.pl-k /* keyword, storage, storage.type */ {
|
||||
color: #cc2372;
|
||||
}
|
||||
|
||||
.pl-pds /* punctuation.definition.string, string.regexp.character-class */,
|
||||
.pl-s /* string */,
|
||||
.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
|
||||
.pl-sr /* string.regexp */,
|
||||
.pl-sr .pl-cce /* string.regexp constant.character.escape */,
|
||||
.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */,
|
||||
.pl-sr .pl-sre /* string.regexp source.ruby.embedded */ {
|
||||
color: #3c66e2;
|
||||
}
|
||||
|
||||
.pl-v /* variable */ {
|
||||
color: #fb8764;
|
||||
}
|
||||
|
||||
.pl-id /* invalid.deprecated */ {
|
||||
color: #e63525;
|
||||
}
|
||||
|
||||
.pl-ii /* invalid.illegal */ {
|
||||
background-color: #e63525;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
|
||||
color: #7bcc72;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.pl-ml /* markup.list */ {
|
||||
color: #c26b2b;
|
||||
}
|
||||
|
||||
.pl-mh /* markup.heading */,
|
||||
.pl-mh .pl-en /* markup.heading entity.name */,
|
||||
.pl-ms /* meta.separator */ {
|
||||
color: #264ec5;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.pl-mq /* markup.quote */ {
|
||||
color: #00acac;
|
||||
}
|
||||
|
||||
.pl-mi /* markup.italic */ {
|
||||
color: #ddd;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.pl-mb /* markup.bold */ {
|
||||
color: #ddd;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.pl-md /* markup.deleted, meta.diff.header.from-file */ {
|
||||
background-color: #ffecec;
|
||||
color: #bd2c00;
|
||||
}
|
||||
|
||||
.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
|
||||
background-color: #eaffea;
|
||||
color: #55a532;
|
||||
}
|
||||
|
||||
.pl-mdr /* meta.diff.range */ {
|
||||
color: #9774cb;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.pl-mo /* meta.output */ {
|
||||
color: #264ec5;
|
||||
}
|
||||
|
356
stylesheets/styles.css
Normal file
356
stylesheets/styles.css
Normal file
|
@ -0,0 +1,356 @@
|
|||
@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
|
||||
html {
|
||||
background: #6C7989;
|
||||
background: #6c7989 -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #6c7989), color-stop(100%, #434b55)) fixed;
|
||||
background: #6c7989 -webkit-linear-gradient(#6c7989, #434b55) fixed;
|
||||
background: #6c7989 -moz-linear-gradient(#6c7989, #434b55) fixed;
|
||||
background: #6c7989 -o-linear-gradient(#6c7989, #434b55) fixed;
|
||||
background: #6c7989 -ms-linear-gradient(#6c7989, #434b55) fixed;
|
||||
background: #6c7989 linear-gradient(#6c7989, #434b55) fixed;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 50px 0;
|
||||
margin: 0;
|
||||
font: 14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #555;
|
||||
font-weight: 300;
|
||||
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAUdEVYdENyZWF0aW9uIFRpbWUAMy82LzEygrTcTAAAAFRJREFUSIljfPDggZRf5RIGGNjUHsNATz6jXmSL1Kb2GLiAX+USBnrymRgGGDCORgFmoNAXjEbBaBSMRsFoFIxGwWgUjEbBaBSMRsFoFIxGwWgUAABYNujumib3wAAAAABJRU5ErkJggg==') fixed;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 640px;
|
||||
margin: 0 auto;
|
||||
background: #DEDEDE;
|
||||
-webkit-border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
-ms-border-radius: 8px;
|
||||
-o-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
|
||||
}
|
||||
|
||||
header, section, footer {
|
||||
display: block;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #069;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
strong {
|
||||
color: #222;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
header {
|
||||
-webkit-border-radius: 8px 8px 0 0;
|
||||
-moz-border-radius: 8px 8px 0 0;
|
||||
-ms-border-radius: 8px 8px 0 0;
|
||||
-o-border-radius: 8px 8px 0 0;
|
||||
border-radius: 8px 8px 0 0;
|
||||
background: #C6EAFA;
|
||||
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ddfbfc), color-stop(100%, #c6eafa));
|
||||
background: -webkit-linear-gradient(#ddfbfc, #c6eafa);
|
||||
background: -moz-linear-gradient(#ddfbfc, #c6eafa);
|
||||
background: -o-linear-gradient(#ddfbfc, #c6eafa);
|
||||
background: -ms-linear-gradient(#ddfbfc, #c6eafa);
|
||||
background: linear-gradient(#ddfbfc, #c6eafa);
|
||||
position: relative;
|
||||
padding: 15px 20px;
|
||||
border-bottom: 1px solid #B2D2E1;
|
||||
}
|
||||
header h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 24px;
|
||||
line-height: 1.2;
|
||||
color: #069;
|
||||
text-shadow: rgba(255, 255, 255, 0.9) 0 1px 0;
|
||||
}
|
||||
header.without-description h1 {
|
||||
margin: 10px 0;
|
||||
}
|
||||
header p {
|
||||
margin: 0;
|
||||
color: #61778B;
|
||||
width: 300px;
|
||||
font-size: 13px;
|
||||
}
|
||||
header p.view {
|
||||
display: none;
|
||||
font-weight: 700;
|
||||
text-shadow: rgba(255, 255, 255, 0.9) 0 1px 0;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
header p.view a {
|
||||
color: #06c;
|
||||
}
|
||||
header p.view small {
|
||||
font-weight: 400;
|
||||
}
|
||||
header ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
right: 20px;
|
||||
top: 20px;
|
||||
height: 38px;
|
||||
padding: 1px 0;
|
||||
background: #5198DF;
|
||||
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #77b9fb), color-stop(100%, #3782cd));
|
||||
background: -webkit-linear-gradient(#77b9fb, #3782cd);
|
||||
background: -moz-linear-gradient(#77b9fb, #3782cd);
|
||||
background: -o-linear-gradient(#77b9fb, #3782cd);
|
||||
background: -ms-linear-gradient(#77b9fb, #3782cd);
|
||||
background: linear-gradient(#77b9fb, #3782cd);
|
||||
border-radius: 5px;
|
||||
-webkit-box-shadow: inset rgba(255, 255, 255, 0.45) 0 1px 0, inset rgba(0, 0, 0, 0.2) 0 -1px 0;
|
||||
-moz-box-shadow: inset rgba(255, 255, 255, 0.45) 0 1px 0, inset rgba(0, 0, 0, 0.2) 0 -1px 0;
|
||||
box-shadow: inset rgba(255, 255, 255, 0.45) 0 1px 0, inset rgba(0, 0, 0, 0.2) 0 -1px 0;
|
||||
width: auto;
|
||||
}
|
||||
header ul:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
left: -5px;
|
||||
top: -4px;
|
||||
right: -5px;
|
||||
bottom: -6px;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
-webkit-border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
-ms-border-radius: 8px;
|
||||
-o-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0, inset rgba(255, 255, 255, 0.7) 0 -1px 0;
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0, inset rgba(255, 255, 255, 0.7) 0 -1px 0;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0, inset rgba(255, 255, 255, 0.7) 0 -1px 0;
|
||||
}
|
||||
header ul li {
|
||||
width: 79px;
|
||||
float: left;
|
||||
border-right: 1px solid #3A7CBE;
|
||||
height: 38px;
|
||||
}
|
||||
header ul li.single {
|
||||
border: none;
|
||||
}
|
||||
header ul li + li {
|
||||
width: 78px;
|
||||
border-left: 1px solid #8BBEF3;
|
||||
}
|
||||
header ul li + li + li {
|
||||
border-right: none;
|
||||
width: 79px;
|
||||
}
|
||||
header ul a {
|
||||
line-height: 1;
|
||||
font-size: 11px;
|
||||
color: #fff;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
padding-top: 6px;
|
||||
height: 40px;
|
||||
text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0;
|
||||
}
|
||||
header ul a strong {
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
color: #fff;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 15px 20px;
|
||||
font-size: 15px;
|
||||
border-top: 1px solid #fff;
|
||||
background: -webkit-gradient(linear, 50% 0%, 50% 700, color-stop(0%, #fafafa), color-stop(100%, #dedede));
|
||||
background: -webkit-linear-gradient(#fafafa, #dedede 700px);
|
||||
background: -moz-linear-gradient(#fafafa, #dedede 700px);
|
||||
background: -o-linear-gradient(#fafafa, #dedede 700px);
|
||||
background: -ms-linear-gradient(#fafafa, #dedede 700px);
|
||||
background: linear-gradient(#fafafa, #dedede 700px);
|
||||
-webkit-border-radius: 0 0 8px 8px;
|
||||
-moz-border-radius: 0 0 8px 8px;
|
||||
-ms-border-radius: 0 0 8px 8px;
|
||||
-o-border-radius: 0 0 8px 8px;
|
||||
border-radius: 0 0 8px 8px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #222;
|
||||
padding: 0;
|
||||
margin: 0 0 20px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 -20px 20px;
|
||||
padding: 15px 20px 1px 40px;
|
||||
font-style: italic;
|
||||
background: #ccc;
|
||||
background: rgba(0, 0, 0, 0.06);
|
||||
color: #222;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-family: Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
|
||||
color: #333;
|
||||
font-size: 12px;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 20px;
|
||||
background: #3A3C42;
|
||||
color: #f8f8f2;
|
||||
margin: 0 -20px 20px;
|
||||
}
|
||||
pre code {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
li pre {
|
||||
margin-left: -60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th, td {
|
||||
text-align: left;
|
||||
padding: 5px 10px;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
dt {
|
||||
color: #222;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
th {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
background: #aaa;
|
||||
height: 1px;
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 640px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 0 0;
|
||||
color: #ccc;
|
||||
overflow: hidden;
|
||||
}
|
||||
footer a {
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
footer p {
|
||||
float: left;
|
||||
}
|
||||
footer p + p {
|
||||
float: right;
|
||||
}
|
||||
|
||||
@media print, screen and (max-width: 740px) {
|
||||
body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
footer {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
padding: 20px;
|
||||
width: auto;
|
||||
}
|
||||
footer p {
|
||||
float: none;
|
||||
margin: 0;
|
||||
}
|
||||
footer p + p {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
@media print, screen and (max-width:580px) {
|
||||
header ul {
|
||||
display: none;
|
||||
}
|
||||
|
||||
header p.view {
|
||||
display: block;
|
||||
}
|
||||
|
||||
header p {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
header p.view a small:before {
|
||||
content: 'at https://github.com/';
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue