Compare commits
No commits in common. "master" and "gh-pages" have entirely different histories.
15 changed files with 857 additions and 187 deletions
1
CNAME
Normal file
1
CNAME
Normal file
|
@ -0,0 +1 @@
|
|||
pavatar.com
|
19
Readme.md
19
Readme.md
|
@ -1,19 +0,0 @@
|
|||
# Pavatar
|
||||
The Personal Avatar (aka Pavatar) is a personal picture hosted on **your** webspace which is then used by websites to display whenever referring to content provided by **YOU**, the user. An example would be if you made a comment or a site posting where an avatar is required. This way, delivering your Personal Avatar is peripheral and can be (nearly) anonymous. This option inhibits companies from collecting personal information about your habits on the web.
|
||||
|
||||
## Why should I use Pavatar?
|
||||
**Pavatars** are a great and open alternative to Gravatar which makes you independent of a central and not working server because you host all Pavatars yourself.
|
||||
|
||||
Pavatars have all advantages of Favatars, but are bigger and you can use different Pavatars on one domain.
|
||||
|
||||
Because everyone hosts his/her own Pavatar on his/her own page, there is no need to sign in on external pages and wait for a activation.
|
||||
|
||||
## How to add a Pavatar?
|
||||
A Pavatar must be a 80x80 px in either PNG, JPG or GIF format.
|
||||
|
||||
If you want to be recognized, you have to set up your homepage so it's Pavatar ready. This is not a big problem and there are multiple ways to do it:
|
||||
|
||||
1. For geeks: add the X-Pavatar: http://example.com/path/my-pavatar.png header to your homepage.
|
||||
2. For webmasters: add this tag to your HTML:
|
||||
`<link rel="pavatar" href="http://example.com/path/my-pavatar.png" />`
|
||||
3. For others: Upload your Pavatar with the name pavatar.png to your homepage.
|
168
Specification.md
168
Specification.md
|
@ -1,168 +0,0 @@
|
|||
# Personal Avatar 0.3.0
|
||||
|
||||
This version:
|
||||
: [http://pavatar.com/spec/pavatar-0.3.0](http://pavatar.com/spec/pavatar-0.3.0)
|
||||
|
||||
Latest version:
|
||||
: [http://pavatar.com/spec](http://pavatar.com/spec)
|
||||
|
||||
Previous versions:
|
||||
: [http://pavatar.com/spec/pavatar-0.2.0](http://pavatar.com/spec/pavatar-0.2.0)
|
||||
: [http://jeenaparadies.net/specs/pavatar-0.1.2](http://jeenaparadies.net/specs/pavatar-0.1.2)
|
||||
: [http://jeenaparadies.net/specs/pavatar-0.1.1](http://jeenaparadies.net/specs/pavatar-0.1.1)
|
||||
: [http://jeenaparadies.net/specs/pavatar-0.1.0](http://jeenaparadies.net/specs/pavatar-0.1.0)
|
||||
|
||||
Editors
|
||||
: [Jeena Paradies](http://jeenaparadies.net/contact/) <spec@pavatar.com>
|
||||
|
||||
© 2006 Jeena Paradies
|
||||
|
||||
## Abstract
|
||||
|
||||
The Personal Avatar (short Pavatar) system is a way to use small personalized images to standardize a providers profile picture through various websites when leaving comments and other content. Providers are able to host their Personal Avatars themselves.
|
||||
|
||||
## Status of This Document
|
||||
|
||||
This is the 18 December 2006 Candidate Recommendation of the Personal Avatar. This Candidate Recommendation was published to indicate that the document is believed to be stable and to encourage implementation by the developer community.
|
||||
|
||||
Comments are welcome, please write to <spec@pavatar.com>.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. Definitions
|
||||
2. Personal Avatar Conformance Requirements
|
||||
1. Technical Definition
|
||||
2. Refusing Personal Avatar Requests
|
||||
3. Autodiscovery
|
||||
1. HTTP Header
|
||||
2. Link Element
|
||||
3. Direct URL
|
||||
4. Precedence
|
||||
4. Dealing with Personal Avatars
|
||||
1. Autodiscovery Algorithm
|
||||
2. Manipulating
|
||||
3. Caching
|
||||
4. Updating Cached Personal Avatars
|
||||
5. Appendix
|
||||
1. Optimization
|
||||
2. Support of Conformance to Arbitrary Rules
|
||||
|
||||
## 1. Definitions
|
||||
|
||||
**Provider**
|
||||
: Provider is the person who leaves a comment, post, annotation or similar content on a publishers page and possesses the Personal Avatar. The provider and the consumer **may** be the same.
|
||||
|
||||
**Providers website**
|
||||
: A providers website must be a valid HTTP URL according to [RFC 1738](http://www.faqs.org/rfcs/rfc1738.html), which the provider has specified as his website.
|
||||
|
||||
**Personal Avatar**
|
||||
: A Personal Avatar is a picture stored on the provider's website conforming to the Personal Avatar conformance requirements described in [2](#2-personal-avatar-conformance-requirements).
|
||||
|
||||
**Consumer**
|
||||
: The consumer provides the service for the provider to act. The consumer and the provider may be the same.
|
||||
|
||||
**The Personal Avatar implementation (short: *implementation*)**
|
||||
: This is the implementation running the provider's service dealing the Personal Avatars.
|
||||
|
||||
**Now**
|
||||
: Now refers to the time the HTTP request is finished.
|
||||
|
||||
The key words **must**, **must not**, **required**, **shall**, **shall not**, **should**, **should not**, **recommended**, **may**, and **optional** in this document are to be interpreted as described in [RFC 2119](http://www.faqs.org/rfcs/rfc2119.html).
|
||||
|
||||
## 2. Personal Avatar Conformance Requirements
|
||||
### 2.a. Technical Definition
|
||||
A valid Personal Avatar **must** be a 80x80 pixel sized image in GIF ([GIF89a](http://www.w3.org/Graphics/GIF/spec-gif89a.txt)), PNG ([PNG](http://www.w3.org/TR/PNG/)) or JPEG ([ISO/IEC IS 10918-1], [ISO/IEC IS 14495-1], [ISO/IEC IS 15444-1]) format.
|
||||
|
||||
A valid Personal Avatar **must not** exceed the size of 409600 Bit (the octuple size of an uncompressed 80x80pixel big picture with 8-bit color depth).
|
||||
|
||||
A valid Personal Avatar **must** be publicly accessible through a valid HTTP URL ([RFC 1738](http://www.faqs.org/rfcs/rfc1738.html)). This URL **must** be used to reference the Personal Avatar (see [Autodiscovery](#3-autodiscovery)).
|
||||
|
||||
The Personal Avatar **must** have the correct `Content-Type` header.
|
||||
|
||||
### 2.b. Refusing Personal Avatar Requests
|
||||
The provider **may** restrict access to the Personal Avatar. The provider **must** act accordingly to HTTP, e.g. **should** response with a 403 HTTP status code, if access is denied. It is **recommended** to use the keyword "**none**" of the HTTP-Header `X-Pavatar` as described in [3.a](#3a-http-header). to refuse the delivery of the Personal Avatar completely.
|
||||
|
||||
## 3. Autodiscovery
|
||||
The URL of the Personal Avatar **must** be offered by the provider in one or more of the following ways to the consumer, the use of [3.a](#3a-http-header). and [3.b](#3b-link-element). is recommended. The consumer **must** accept all three ways.
|
||||
|
||||
### 3.a. HTTP Header
|
||||
If chosen, a reference to a Personal Avatar must be returned with a X-Pavatar HTTP header, for example:
|
||||
|
||||
X-Pavatar: http://example.com/path/to/my-own_pavatar.png
|
||||
|
||||
The value of the `X-Pavatar` header **must** be the absolute URL of the Personal Avatar or the keyword "**none**".
|
||||
|
||||
The server response **must not** include more than one such header.
|
||||
|
||||
### 3.b. Link Element
|
||||
If chosen, an HTML or XHTML Personal Avatar enabled page **must** contain a `<link>` element. It **must** have one of the following forms:
|
||||
|
||||
**HTML**
|
||||
: `<link rel="pavatar" href="URL">`
|
||||
|
||||
**XHTML**
|
||||
: `<link rel="pavatar" href="URL" />`
|
||||
|
||||
The URL in the "`href`" attribute **must** be a valid and absolute HTTP URL according to [RFC 1738](http://www.faqs.org/rfcs/rfc1738.html) or the keyword "**none**".
|
||||
|
||||
### 3.c. Direct URL (the favicon.ico way)
|
||||
If chosen, there **must** be a file named "*pavatar.png*" on the providers server. The URL for this file **must** conform to the following form. The EBNF keywords used here are similar to the ones used in [RFC 1738](http://www.faqs.org/rfcs/rfc1738.html).
|
||||
|
||||
hostport = host [ ":" port ]
|
||||
hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
|
||||
puri = "http://" hostport *[ "/" hsegment ] "/pavatar.png"
|
||||
|
||||
**Example in Pseudocode:**
|
||||
|
||||
1. IF the last `hsegmet` ends with a slash: GOTO 3
|
||||
2. Remove the first `hsegment`
|
||||
3. Append "*pavatar.png*" to the result
|
||||
4. IF success (i.e. a 2xx answer to an HEAD request) EXIT(SUCCESS)
|
||||
5. ELSE remove all `hsegments`
|
||||
6. Append "*pavatar.png*" to the result
|
||||
7. IF success (i.e. a 2xx answer to an HEAD request) EXIT(SUCCESS)
|
||||
8. EXIT(FAILURE)
|
||||
|
||||
### Precedence
|
||||
The HTTP Header ([3.a.](#3a-http-header)) method **must** have the highest precedence, the Direct URL ([3.c](#3c-direct-url-the-faviconico-way)) method the lowest.
|
||||
|
||||
## Dealing with Personal Avatars
|
||||
The implementation should ensure to use as little traffic as possible to deal with Personal Avatars (e.g., use conditional get HTTP headers like If-Modified-Since).
|
||||
|
||||
### 4.a. Autodiscovery Algorithm
|
||||
|
||||
Personal Avatar implementations, given a publisher's website URL, **should** follow the following steps to find the Personal Avatar URL (obs. if the implementation finds the keyword "**none**" instead of a valid URL it **must** abort the autodiscovery because there will be no Personal Avatar at all):
|
||||
|
||||
1. Examine the HTTP headers of the response. If there are any `X-Pavatar` headers then the first such header's value **should** be used as the Personal Avatar resource. Clients **must** examine the HTTP headers if they are able to. If for some reason the HTTP headers are not available to the implementation then this step **may** be skipped, however, implementers **should** be aware that this will reduce the usefulness of their application as link elements cannot be used for resources that are neither HTML nor XHTML, and HTTP headers are defined to override link elements when they differ.
|
||||
2. If there is no `X-Pavatar` HTTP Header, search the entity body for the first match of the following regular expression:
|
||||
|
||||
<link rel="pavatar" href="([^"]+)" ?/?>
|
||||
|
||||
If the regular expression matched, clients **must** decode the allowed HTML entities (`&` for `&`, `<` for `<`, `>` for `>`, and `"` for `"`).
|
||||
|
||||
3. If no `X-Pavatar` HTTP Header and no `<link>` could be found the implementation **shall** check first if there is a Personal Avatar in the publisher's website directory. If not, it **shall** check if there is a Personal Avatar in the publisher's website document root.
|
||||
|
||||
### 4.b. Manipulating
|
||||
The implementation **may** manipulate the cached Personal Avatar if necessary, e.g. changes in width and height, colors, etc. but it **must** respect the visual identity of the provider and therefore avoid destructive transformations of the Personal Avatar, such as those that fundamentally alter the content of the image.
|
||||
|
||||
### 4.c. Caching
|
||||
The implementation **should** cache **all** Personal Avatars it wants to serve. It **should not** serve them remotely.
|
||||
|
||||
### 4.d. Updating Cached Personal Avatars
|
||||
The implementation **may** check regularly for changed Personal Avatars using the information given in the `Cache-Control` or `Expires` headers. If the publisher's website doesn't send these headers, it is **recommended** that it checks weekly for changes.
|
||||
|
||||
The implementation **should** remember URLs for which the [autodiscovery](#4a-autodiscovery-algorithm) didn't find a Personal Avatar and not check them for changes until the provider posts something new.
|
||||
|
||||
## Appendix
|
||||
|
||||
This chapter is informative. Useragents are not required to implement the properties of this chapter in order to conform to the Personal Avatar specification.
|
||||
|
||||
### 5.a. Optimization
|
||||
Clients **may** optimize the search. For example:
|
||||
|
||||
1. The client **may** initally only send an HTTP HEAD request in the hope that the header will be found and the content will not have to be fetched.
|
||||
2. Since `<link>` elements may only appear in the document's head, clients **may** abort when the strings `</head>` or `<body>` are seen (e.g. if the client reads the content one line at a time).
|
||||
3. Since the Personal Avatar links are most likely to appear near the top of the document, clients **may** abort the search after passing a certain size threshold. Clients **may** similarly use the HTTP Content-Range header to only fetch the first few kilobytes of the target URI.
|
||||
|
||||
### 5.b. Support of Conformance to Arbitrary Rules
|
||||
The implementation **may** include an automatic denial-of-publish mechanism if the Personal Avatar is unknown to the system. It **may** include a notification mechanism in case of an automatic denial-of-publish.
|
BIN
images/body-bg.jpg
Normal file
BIN
images/body-bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
images/download-button.png
Normal file
BIN
images/download-button.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
images/github-button.png
Normal file
BIN
images/github-button.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
images/header-bg.jpg
Normal file
BIN
images/header-bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
images/highlight-bg.jpg
Normal file
BIN
images/highlight-bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
images/sidebar-bg.jpg
Normal file
BIN
images/sidebar-bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
80
index.html
Normal file
80
index.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link href='https://fonts.googleapis.com/css?family=Architects+Daughter' 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>Pavatar by pavatar</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="inner">
|
||||
<h1>Pavatar</h1>
|
||||
<h2>The Personal Avatar (aka Pavatar) is a personal picture hosted on your webspace</h2>
|
||||
<a href="https://github.com/pavatar/pavatar" class="button"><small>View project on</small>GitHub</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="content-wrapper">
|
||||
<div class="inner clearfix">
|
||||
<section id="main-content">
|
||||
<h1>
|
||||
<a name="pavatar" class="anchor" href="#pavatar"><span class="octicon octicon-link"></span></a>Pavatar</h1>
|
||||
|
||||
<p>The Personal Avatar (aka Pavatar) is a personal picture hosted on <strong>your</strong> webspace which is then used by websites to display whenever referring to content provided by <strong>YOU</strong>, the user. An example would be if you made a comment or a site posting where an avatar is required. This way, delivering your Personal Avatar is peripheral and can be (nearly) anonymous. This option inhibits companies from collecting personal information about your habits on the web.</p>
|
||||
|
||||
<h2>
|
||||
<a name="why-should-i-use-pavatar" class="anchor" href="#why-should-i-use-pavatar"><span class="octicon octicon-link"></span></a>Why should I use Pavatar?</h2>
|
||||
|
||||
<p><strong>Pavatars</strong> are a great and open alternative to Gravatar which makes you independent of a central and not working server because you host all Pavatars yourself.</p>
|
||||
|
||||
<p>Pavatars have all advantages of Favatars, but are bigger and you can use different Pavatars on one domain.</p>
|
||||
|
||||
<p>Because everyone hosts his/her own Pavatar on his/her own page, there is no need to sign in on external pages and wait for a activation.</p>
|
||||
|
||||
<h2>
|
||||
<a name="how-to-add-a-pavatar" class="anchor" href="#how-to-add-a-pavatar"><span class="octicon octicon-link"></span></a>How to add a Pavatar?</h2>
|
||||
|
||||
<p>A Pavatar must be a 80x80 px in either PNG, JPG or GIF format.</p>
|
||||
|
||||
<p>If you want to be recognized, you have to set up your homepage so it's Pavatar ready. This is not a big problem and there are multiple ways to do it:</p>
|
||||
|
||||
<ol>
|
||||
<li>For geeks: add the X-Pavatar: <a href="http://example.com/path/my-pavatar.png">http://example.com/path/my-pavatar.png</a> header to your homepage.</li>
|
||||
<li>For webmasters: add this tag to your HTML:
|
||||
<code><link rel="pavatar" href="http://example.com/path/my-pavatar.png" /></code>
|
||||
</li>
|
||||
<li>For others: Upload your Pavatar with the name pavatar.png to your homepage.</li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<aside id="sidebar">
|
||||
<a href="https://github.com/pavatar/pavatar/zipball/master" class="button">
|
||||
<small>Download</small>
|
||||
.zip file
|
||||
</a>
|
||||
<a href="https://github.com/pavatar/pavatar/tarball/master" class="button">
|
||||
<small>Download</small>
|
||||
.tar.gz file
|
||||
</a>
|
||||
|
||||
<p class="repo-owner"><a href="https://github.com/pavatar/pavatar"></a> is maintained by <a href="https://github.com/pavatar">pavatar</a>.</p>
|
||||
|
||||
<p>This page was generated by <a href="pages.github.com">GitHub Pages</a> using the Architect theme by <a href="https://twitter.com/jasonlong">Jason Long</a>.</p>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
1
javascripts/main.js
Normal file
1
javascripts/main.js
Normal file
|
@ -0,0 +1 @@
|
|||
console.log('This would be the main JS file.');
|
1
params.json
Normal file
1
params.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":"Pavatar","tagline":"The Personal Avatar (aka Pavatar) is a personal picture hosted on your webspace","body":"# Pavatar\r\nThe Personal Avatar (aka Pavatar) is a personal picture hosted on **your** webspace which is then used by websites to display whenever referring to content provided by **YOU**, the user. An example would be if you made a comment or a site posting where an avatar is required. This way, delivering your Personal Avatar is peripheral and can be (nearly) anonymous. This option inhibits companies from collecting personal information about your habits on the web.\r\n\r\n## Why should I use Pavatar?\r\n**Pavatars** are a great and open alternative to Gravatar which makes you independent of a central and not working server because you host all Pavatars yourself.\r\n\r\nPavatars have all advantages of Favatars, but are bigger and you can use different Pavatars on one domain.\r\n\r\nBecause everyone hosts his/her own Pavatar on his/her own page, there is no need to sign in on external pages and wait for a activation.\r\n\r\n## How to add a Pavatar?\r\nA Pavatar must be a 80x80 px in either PNG, JPG or GIF format.\r\n\r\nIf you want to be recognized, you have to set up your homepage so it's Pavatar ready. This is not a big problem and there are multiple ways to do it:\r\n\r\n1. For geeks: add the X-Pavatar: http://example.com/path/my-pavatar.png header to your homepage.\r\n2. For webmasters: add this tag to your HTML:\r\n\t`<link rel=\"pavatar\" href=\"http://example.com/path/my-pavatar.png\" />`\r\n3. For others: Upload your Pavatar with the name pavatar.png to your homepage.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
|
226
stylesheets/print.css
Normal file
226
stylesheets/print.css
Normal 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;}
|
69
stylesheets/pygment_trac.css
Normal file
69
stylesheets/pygment_trac.css
Normal file
|
@ -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 }
|
479
stylesheets/stylesheet.css
Normal file
479
stylesheets/stylesheet.css
Normal file
|
@ -0,0 +1,479 @@
|
|||
/* 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,
|
||||
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;
|
||||
}
|
||||
|
||||
/* LAYOUT STYLES */
|
||||
body {
|
||||
font-size: 15px;
|
||||
line-height: 1.5;
|
||||
background: #fafafa url(../images/body-bg.jpg) 0 0 repeat;
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-weight: 400;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #2879d0;
|
||||
}
|
||||
a:hover {
|
||||
color: #2268b2;
|
||||
}
|
||||
|
||||
header {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
background: #2e7bcf url(../images/header-bg.jpg) 0 0 repeat-x;
|
||||
border-bottom: solid 1px #275da1;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
letter-spacing: -1px;
|
||||
font-size: 72px;
|
||||
color: #fff;
|
||||
line-height: 1;
|
||||
margin-bottom: 0.2em;
|
||||
width: 540px;
|
||||
}
|
||||
|
||||
header h2 {
|
||||
font-size: 26px;
|
||||
color: #9ddcff;
|
||||
font-weight: normal;
|
||||
line-height: 1.3;
|
||||
width: 540px;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.inner {
|
||||
position: relative;
|
||||
width: 940px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#content-wrapper {
|
||||
border-top: solid 1px #fff;
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
#main-content {
|
||||
width: 690px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#main-content img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
aside#sidebar {
|
||||
width: 200px;
|
||||
padding-left: 20px;
|
||||
min-height: 504px;
|
||||
float: right;
|
||||
background: transparent url(../images/sidebar-bg.jpg) 0 0 no-repeat;
|
||||
font-size: 12px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
aside#sidebar p.repo-owner,
|
||||
aside#sidebar p.repo-owner a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#downloads {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
a.button {
|
||||
width: 134px;
|
||||
height: 58px;
|
||||
line-height: 1.2;
|
||||
font-size: 23px;
|
||||
color: #fff;
|
||||
padding-left: 68px;
|
||||
padding-top: 22px;
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
}
|
||||
a.button small {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
}
|
||||
header a.button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background: transparent url(../images/github-button.png) 0 0 no-repeat;
|
||||
}
|
||||
aside a.button {
|
||||
width: 138px;
|
||||
padding-left: 64px;
|
||||
display: block;
|
||||
background: transparent url(../images/download-button.png) 0 0 no-repeat;
|
||||
margin-bottom: 20px;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
|
||||
color: #222;
|
||||
margin-bottom: 30px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #f2f8fc;
|
||||
border: solid 1px #dbe7f3;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 20px;
|
||||
background: #fff;
|
||||
text-shadow: none;
|
||||
overflow: auto;
|
||||
border: solid 1px #f2f2f2;
|
||||
}
|
||||
pre code {
|
||||
color: #2879d0;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul, ol, dl {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
/* COMMON STYLES */
|
||||
|
||||
hr {
|
||||
height: 1px;
|
||||
line-height: 1px;
|
||||
margin-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
border: none;
|
||||
background: transparent url('../images/hr.png') 0 0 no-repeat;
|
||||
}
|
||||
|
||||
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 */
|
||||
|
||||
#main-content h1 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: 2.8em;
|
||||
letter-spacing: -1px;
|
||||
color: #474747;
|
||||
}
|
||||
|
||||
#main-content h1:before {
|
||||
content: "/";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -0.9em;
|
||||
}
|
||||
|
||||
#main-content h2 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 8px;
|
||||
color: #474747;
|
||||
}
|
||||
#main-content h2:before {
|
||||
content: "//";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -1.5em;
|
||||
}
|
||||
|
||||
#main-content h3 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-top: 24px;
|
||||
margin-bottom: 8px;
|
||||
color: #474747;
|
||||
}
|
||||
|
||||
#main-content h3:before {
|
||||
content: "///";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -2em;
|
||||
}
|
||||
|
||||
#main-content h4 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
color: #474747;
|
||||
}
|
||||
|
||||
h4:before {
|
||||
content: "////";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -2.8em;
|
||||
}
|
||||
|
||||
#main-content h5 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: 14px;
|
||||
color: #474747;
|
||||
}
|
||||
h5:before {
|
||||
content: "/////";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -3.2em;
|
||||
}
|
||||
|
||||
#main-content h6 {
|
||||
font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif;
|
||||
font-size: .8em;
|
||||
color: #474747;
|
||||
}
|
||||
h6:before {
|
||||
content: "//////";
|
||||
color: #9ddcff;
|
||||
padding-right: 0.3em;
|
||||
margin-left: -3.7em;
|
||||
}
|
||||
|
||||
p {
|
||||
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 {
|
||||
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) {
|
||||
.inner {
|
||||
width: 740px;
|
||||
}
|
||||
header h1, header h2 {
|
||||
width: 340px;
|
||||
}
|
||||
header h1 {
|
||||
font-size: 60px;
|
||||
}
|
||||
header h2 {
|
||||
font-size: 30px;
|
||||
}
|
||||
#main-content {
|
||||
width: 490px;
|
||||
}
|
||||
#main-content h1:before,
|
||||
#main-content h2:before,
|
||||
#main-content h3:before,
|
||||
#main-content h4:before,
|
||||
#main-content h5:before,
|
||||
#main-content h6:before {
|
||||
content: none;
|
||||
padding-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* All Mobile Sizes (devices and browser) */
|
||||
@media only screen and (max-width: 767px) {
|
||||
.inner {
|
||||
width: 93%;
|
||||
}
|
||||
header {
|
||||
padding: 20px 0;
|
||||
}
|
||||
header .inner {
|
||||
position: relative;
|
||||
}
|
||||
header h1, header h2 {
|
||||
width: 100%;
|
||||
}
|
||||
header h1 {
|
||||
font-size: 48px;
|
||||
}
|
||||
header h2 {
|
||||
font-size: 24px;
|
||||
}
|
||||
header a.button {
|
||||
background-image: none;
|
||||
width: auto;
|
||||
height: auto;
|
||||
display: inline-block;
|
||||
margin-top: 15px;
|
||||
padding: 5px 10px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
line-height: 1;
|
||||
background-color: #9ddcff;
|
||||
color: #2879d0;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
header a.button small {
|
||||
font-size: 13px;
|
||||
display: inline;
|
||||
}
|
||||
#main-content,
|
||||
aside#sidebar {
|
||||
float: none;
|
||||
width: 100% ! important;
|
||||
}
|
||||
aside#sidebar {
|
||||
background-image: none;
|
||||
margin-top: 20px;
|
||||
border-top: solid 1px #ddd;
|
||||
padding: 20px 0;
|
||||
min-height: 0;
|
||||
}
|
||||
aside#sidebar a.button {
|
||||
display: none;
|
||||
}
|
||||
#main-content h1:before,
|
||||
#main-content h2:before,
|
||||
#main-content h3:before,
|
||||
#main-content h4:before,
|
||||
#main-content h5:before,
|
||||
#main-content h6:before {
|
||||
content: none;
|
||||
padding-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 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) {}
|
Loading…
Add table
Add a link
Reference in a new issue