Create gh-pages branch via GitHub
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 423 B |
Binary file not shown.
|
After Width: | Height: | Size: 570 B |
+314
@@ -0,0 +1,314 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<title>PocketSharp by ceee</title>
|
||||
|
||||
<link rel="stylesheet" href="stylesheets/styles.css">
|
||||
<link rel="stylesheet" href="stylesheets/pygment_trac.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 class="header">PocketSharp</h1>
|
||||
<p class="header">C# assembly for accessing the pocket API</p>
|
||||
|
||||
<ul>
|
||||
<li class="download"><a class="buttons" href="https://github.com/ceee/PocketSharp/zipball/master">Download ZIP</a></li>
|
||||
<li class="download"><a class="buttons" href="https://github.com/ceee/PocketSharp/tarball/master">Download TAR</a></li>
|
||||
<li><a class="buttons github" href="https://github.com/ceee/PocketSharp">View On GitHub</a></li>
|
||||
</ul>
|
||||
|
||||
<p class="header">This project is maintained by <a class="header name" href="https://github.com/ceee">ceee</a></p>
|
||||
|
||||
|
||||
</header>
|
||||
<section>
|
||||
<h1>
|
||||
<a name="pocketsharp" class="anchor" href="#pocketsharp"><span class="octicon octicon-link"></span></a>PocketSharp</h1>
|
||||
|
||||
<blockquote>
|
||||
<p>This project is work in progress.
|
||||
PocketSharp will be released as a NuGet package when ready.</p>
|
||||
</blockquote>
|
||||
|
||||
<p><strong>PocketSharp</strong> is a C#.NET class library, that integrates the <a href="http://getpocket.com/developer">Pocket API v3</a> and consists of 4 parts:</p>
|
||||
|
||||
<ul>
|
||||
<li>Authentication</li>
|
||||
<li>Retrieve</li>
|
||||
<li>Modify</li>
|
||||
<li>Add</li>
|
||||
</ul><hr><p><em>If you don't know <a href="http://getpocket.com">Pocket</a>, be sure to check it out. It's an awesome service that lets you save articles, videos, ... in the cloud and access it from all your devices.</em></p>
|
||||
|
||||
<hr><h2>
|
||||
<a name="usage-example" class="anchor" href="#usage-example"><span class="octicon octicon-link"></span></a>Usage Example</h2>
|
||||
|
||||
<p>Request a <a href="http://getpocket.com/developer/apps/">Consumer Key on Pocket.</a></p>
|
||||
|
||||
<p>Include the PocketSharp namespace and it's associated models (you will need them later):</p>
|
||||
|
||||
<div class="highlight"><pre><span class="k">using</span> <span class="nn">PocketSharp</span><span class="p">;</span>
|
||||
<span class="k">using</span> <span class="nn">PocketSharp.Models</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Initialize PocketClient with:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">PocketClient</span> <span class="n">_client</span> <span class="p">=</span> <span class="k">new</span> <span class="n">PocketClient</span><span class="p">(</span><span class="s">"[YOUR_CONSUMER_KEY]"</span><span class="p">,</span> <span class="s">"[YOUR_ACCESS_CODE]"</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Do a simple request - e.g. a search for <code>CSS</code>:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">_client</span><span class="p">.</span><span class="n">Search</span><span class="p">(</span><span class="s">"css"</span><span class="p">).</span><span class="n">ForEach</span><span class="p">(</span>
|
||||
<span class="n">item</span> <span class="p">=></span> <span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">item</span><span class="p">.</span><span class="n">ID</span> <span class="p">+</span> <span class="s">" | "</span> <span class="p">+</span> <span class="n">item</span><span class="p">.</span><span class="n">Title</span><span class="p">)</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Which will output:</p>
|
||||
|
||||
<pre><code>330361896 | CSS Front-end Frameworks with comparison : By usabli.ca
|
||||
345541438 | Editr - HTML, CSS, JavaScript playground
|
||||
251743431 | CSS Architecture
|
||||
343693149 | CSS3 Transitions - Thank God We Have A Specification!
|
||||
...
|
||||
</code></pre>
|
||||
|
||||
<h2>
|
||||
<a name="create-an-instance" class="anchor" href="#create-an-instance"><span class="octicon octicon-link"></span></a>Create an instance</h2>
|
||||
|
||||
<p>Constructor:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">PocketClient</span><span class="p">(</span><span class="kt">string</span> <span class="n">consumerKey</span><span class="p">,</span> <span class="kt">string</span> <span class="n">accessCode</span> <span class="p">=</span> <span class="k">null</span><span class="p">,</span> <span class="n">Uri</span> <span class="n">callbackUri</span> <span class="p">=</span> <span class="k">null</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<p><code>consumerKey</code>: The API key
|
||||
<br><code>accessCode</code>: Provide an access code if the user is already authenticated
|
||||
<br><code>callbackUri</code>: The callback URL is called by Pocket after authentication</p>
|
||||
|
||||
<p>Example:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">PocketClient</span> <span class="n">_client</span> <span class="p">=</span> <span class="k">new</span> <span class="n">PocketClient</span><span class="p">(</span>
|
||||
<span class="n">consumerKey</span><span class="p">:</span> <span class="s">"123498237423498723498723"</span><span class="p">,</span>
|
||||
<span class="n">callbackUri</span><span class="p">:</span> <span class="k">new</span> <span class="n">Uri</span><span class="p">(</span><span class="s">"http://ceecore.com"</span><span class="p">),</span>
|
||||
<span class="n">accessCode</span><span class="p">:</span> <span class="s">"097809-oi987-izi8-jk98-oiuu89"</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>You can change the <em>Access Code</em> after initialization:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">_client</span><span class="p">.</span><span class="n">AccessCode</span> <span class="p">=</span> <span class="s">"[YOU_ACCESS_CODE]"</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<p><strong>Before authentication</strong> you will need to provide the <code>callbackUri</code> for authentication requests.
|
||||
<br><strong>After authentication</strong> you will need to provide the <code>accessCode</code>.</p>
|
||||
|
||||
<h2>
|
||||
<a name="authentication" class="anchor" href="#authentication"><span class="octicon octicon-link"></span></a>Authentication</h2>
|
||||
|
||||
<p>In order to communicate with a Pocket User, you will need a consumer key (which is generated by <a href="http://getpocket.com/developer/apps/">creating a new application on Pocket</a>) and an <strong>Access Code</strong>.</p>
|
||||
|
||||
<p>The authentication is a 3-step process:</p>
|
||||
|
||||
<h4>
|
||||
<a name="1-generate-authentication-uri" class="anchor" href="#1-generate-authentication-uri"><span class="octicon octicon-link"></span></a>1) Generate authentication URI</h4>
|
||||
|
||||
<p>Receive the <strong>request code</strong> and <strong>authentication URI</strong> from the library by calling <code>string GetRequestCode()</code>:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="kt">string</span> <span class="n">requestCode</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">GetRequestCode</span><span class="p">();</span>
|
||||
<span class="c1">// 0f453f2d-1605-8584-28fd-39af8e</span>
|
||||
<span class="n">Uri</span> <span class="n">authenticationUri</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">GenerateAuthenticationUri</span><span class="p">();</span>
|
||||
<span class="c1">// https://getpocket.com/auth/authorize?request_token=0f453f2d-1605-8584-28fd-39af8e&redirect_uri=http%253a%252f%252fceecore.com</span>
|
||||
</pre></div>
|
||||
|
||||
<p>The <em>request code</em> is stored internally, but you can also provide it as param in <code>GenerateAuthenticationUri(string requestCode = null)</code>.</p>
|
||||
|
||||
<h4>
|
||||
<a name="2-redirect-to-pocket" class="anchor" href="#2-redirect-to-pocket"><span class="octicon octicon-link"></span></a>2) Redirect to Pocket</h4>
|
||||
|
||||
<p>Next you need to redirect the user to the <code>authenticationUri</code>, which displays a prompt to grant permissions for the application (see image). After the user granted or denied, he/she is redirected to the <code>callbackUri</code>.</p>
|
||||
|
||||
<p><img src="https://raw.github.com/ceee/PocketSharp/master/PocketSharp/authentication-screen.png" alt="authentication screen"></p>
|
||||
|
||||
<h4>
|
||||
<a name="3-get-access-code" class="anchor" href="#3-get-access-code"><span class="octicon octicon-link"></span></a>3) Get Access Code</h4>
|
||||
|
||||
<p>Call <code>string GetAccessCode(string requestCode = null)</code></p>
|
||||
|
||||
<div class="highlight"><pre><span class="kt">string</span> <span class="n">accessCode</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">GetAccessCode</span><span class="p">();</span>
|
||||
<span class="c1">// fa8bfc16-69b3-4d22-7db7-84a58d</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Again, the received <em>access code</em> is stored internally.
|
||||
Note that <code>GetAccessCode</code> can only be called with an existing <em>request code</em>. If you need to re-authenticate a user, start again with Step 1).</p>
|
||||
|
||||
<h4>
|
||||
<a name="important" class="anchor" href="#important"><span class="octicon octicon-link"></span></a>Important</h4>
|
||||
|
||||
<p><strong>Be sure to permanently store the <em>Access Code</em> for your user.</strong>
|
||||
<br>
|
||||
Without it you would always have to redo the authentication process.</p>
|
||||
|
||||
<h2>
|
||||
<a name="retrieve" class="anchor" href="#retrieve"><span class="octicon octicon-link"></span></a>Retrieve</h2>
|
||||
|
||||
<p>Get list of all items:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">List</span><span class="p"><</span><span class="n">PocketItem</span><span class="p">></span> <span class="n">items</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">Retrieve</span><span class="p">();</span>
|
||||
<span class="c1">// equivalent to: _client.Retrieve(RetrieveFilter.All)</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Find items by a tag:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">List</span><span class="p"><</span><span class="n">PocketItem</span><span class="p">></span> <span class="n">items</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">SearchByTag</span><span class="p">(</span><span class="s">"tutorial"</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Find items by a search string:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">List</span><span class="p"><</span><span class="n">PocketItem</span><span class="p">></span> <span class="n">items</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">Search</span><span class="p">(</span><span class="s">"css"</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Find items by a filter:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">List</span><span class="p"><</span><span class="n">PocketItem</span><span class="p">></span> <span class="n">items</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">Retrieve</span><span class="p">(</span><span class="n">RetrieveFilter</span><span class="p">.</span><span class="n">Favorite</span><span class="p">);</span> <span class="c1">// only favorites</span>
|
||||
</pre></div>
|
||||
|
||||
<p>The RetrieveFilter Enum is specified as follows:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="k">enum</span> <span class="n">RetrieveFilter</span> <span class="p">{</span> <span class="n">All</span><span class="p">,</span> <span class="n">Unread</span><span class="p">,</span> <span class="n">Archive</span><span class="p">,</span> <span class="n">Favorite</span><span class="p">,</span> <span class="n">Article</span><span class="p">,</span> <span class="n">Video</span><span class="p">,</span> <span class="n">Image</span> <span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<h4>
|
||||
<a name="custom-parameters" class="anchor" href="#custom-parameters"><span class="octicon octicon-link"></span></a>Custom Parameters</h4>
|
||||
|
||||
<p>You can create a completely custom parameter list for retrieval with the POCO <code>RetrieveParameters</code>:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="kt">var</span> <span class="n">parameters</span> <span class="p">=</span> <span class="k">new</span> <span class="n">RetrieveParameters</span><span class="p">()</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">Count</span> <span class="p">=</span> <span class="m">50</span><span class="p">,</span>
|
||||
<span class="n">Offset</span> <span class="p">=</span> <span class="m">100</span><span class="p">,</span>
|
||||
<span class="n">Sort</span> <span class="p">=</span> <span class="n">SortEnum</span><span class="p">.</span><span class="n">oldest</span>
|
||||
<span class="p">...</span>
|
||||
<span class="p">};</span>
|
||||
|
||||
<span class="n">List</span><span class="p"><</span><span class="n">PocketItem</span><span class="p">></span> <span class="n">items</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">Retrieve</span><span class="p">(</span><span class="n">parameters</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<h2>
|
||||
<a name="add" class="anchor" href="#add"><span class="octicon octicon-link"></span></a>Add</h2>
|
||||
|
||||
<p>Adds a new item to your pocket list.
|
||||
Accepts four parameters, with <code>uri</code> being required.</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">PocketItem</span> <span class="nf">Add</span><span class="p">(</span><span class="n">Uri</span> <span class="n">uri</span><span class="p">,</span> <span class="kt">string</span><span class="p">[]</span> <span class="n">tags</span> <span class="p">=</span> <span class="k">null</span><span class="p">,</span> <span class="kt">string</span> <span class="n">title</span> <span class="p">=</span> <span class="k">null</span><span class="p">,</span> <span class="kt">string</span> <span class="n">tweetID</span> <span class="p">=</span> <span class="k">null</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Example:</p>
|
||||
|
||||
<div class="highlight"><pre><span class="n">PocketItem</span> <span class="n">newItem</span> <span class="p">=</span> <span class="n">_client</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span>
|
||||
<span class="k">new</span> <span class="nf">Uri</span><span class="p">(</span><span class="s">"http://www.neowin.net/news/full-build-2013-conference-sessions-listing-revealed"</span><span class="p">),</span>
|
||||
<span class="k">new</span> <span class="kt">string</span><span class="p">[]</span> <span class="p">{</span> <span class="s">"microsoft"</span><span class="p">,</span> <span class="s">"neowin"</span><span class="p">,</span> <span class="s">"build"</span> <span class="p">}</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p>The title can be included for cases where an item does not have a title, which is typical for image or PDF URLs. If Pocket detects a title from the content of the page, this parameter will be ignored.</p>
|
||||
|
||||
<p>If you are adding Pocket support to a Twitter client, please send along a reference to the tweet status id (with the tweetID). This allows Pocket to show the original tweet alongside the article.</p>
|
||||
|
||||
<h2>
|
||||
<a name="modify" class="anchor" href="#modify"><span class="octicon octicon-link"></span></a>Modify</h2>
|
||||
|
||||
<p>All Modify methods accept either the itemID (as int) or a <code>PocketItem</code> as parameter.</p>
|
||||
|
||||
<p>Archive the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.Archive(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<p>Un-archive the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.Unarchive(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<p>Favorites the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.Favorite(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<p>Un-favorites the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.Unfavorite(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<p>Deletes the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.Delete(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<h4>
|
||||
<a name="modify-tags" class="anchor" href="#modify-tags"><span class="octicon octicon-link"></span></a>Modify tags</h4>
|
||||
|
||||
<p>Add tags to the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.AddTags(myPocketItem, new string[] { "css", "2013" });
|
||||
</code></pre>
|
||||
|
||||
<p>Remove tags from the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.RemoveTags(myPocketItem, new string[] { "css", "2013" });
|
||||
</code></pre>
|
||||
|
||||
<p>Remove all tags from the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.RemoveTags(myPocketItem);
|
||||
</code></pre>
|
||||
|
||||
<p>Replaces all existing tags with new ones for the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.ReplaceTags(myPocketItem, new string[] { "css", "2013" });
|
||||
</code></pre>
|
||||
|
||||
<p>Renames a tag for the specified item:</p>
|
||||
|
||||
<pre><code>bool isSuccess = _client.RenameTag(myPocketItem, "oldTagName", "newTagName");
|
||||
</code></pre>
|
||||
|
||||
<hr><h2>
|
||||
<a name="release-history" class="anchor" href="#release-history"><span class="octicon octicon-link"></span></a>Release History</h2>
|
||||
|
||||
<ul>
|
||||
<li>2013-07-07 v0.3.1 authentication fixes</li>
|
||||
<li>2013-07-02 v0.3.0 update authentication process </li>
|
||||
<li>2013-06-27 v0.2.0 add, modify item & modify tags</li>
|
||||
<li>2013-06-26 v0.1.0 authentication & retrieve functionality</li>
|
||||
</ul><h2>
|
||||
<a name="used-packages" class="anchor" href="#used-packages"><span class="octicon octicon-link"></span></a>Used Packages</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://restsharp.org/">RestSharp</a></li>
|
||||
<li><a href="https://github.com/ServiceStack/ServiceStack.Text">ServiceStack.Text</a></li>
|
||||
</ul><h2>
|
||||
<a name="contributors" class="anchor" href="#contributors"><span class="octicon octicon-link"></span></a>Contributors</h2>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th><a href="http://twitter.com/artistandsocial" title="Follow @artistandsocial on Twitter"><img src="http://gravatar.com/avatar/9c61b1f4307425f12f05d3adb930ba66?s=70" alt="twitter/artistandsocial"></a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/ceee">Tobias Klika @ceee</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
<footer>
|
||||
<p><small>Hosted on <a href="https://pages.github.com">GitHub Pages</a> using the Dinky theme</small></p>
|
||||
</footer>
|
||||
</div>
|
||||
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
};
|
||||
File diff suppressed because one or more lines are too long
@@ -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 }
|
||||
@@ -0,0 +1,413 @@
|
||||
@import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic);
|
||||
|
||||
/* MeyerWeb Reset */
|
||||
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
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: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
|
||||
/* Base text styles */
|
||||
|
||||
body {
|
||||
padding:10px 50px 0 0;
|
||||
font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
color: #232323;
|
||||
background-color: #FBFAF7;
|
||||
margin: 0;
|
||||
line-height: 1.8em;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color:#232323;
|
||||
margin:36px 0 10px;
|
||||
}
|
||||
|
||||
p, ul, ol, table, dl {
|
||||
margin:0 0 22px;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-family: Arvo, Monaco, serif;
|
||||
line-height:1.3;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1,h2, h3 {
|
||||
display: block;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
font-family: Arvo, Monaco, serif;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
a {
|
||||
color:#C30000;
|
||||
font-weight:200;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a small {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight:700;
|
||||
}
|
||||
|
||||
ul li {
|
||||
list-style: inside;
|
||||
padding-left: 25px;
|
||||
}
|
||||
|
||||
ol li {
|
||||
list-style: decimal inside;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0;
|
||||
padding: 0 0 0 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dl, dt, dd, dl p {
|
||||
font-color: #444;
|
||||
}
|
||||
|
||||
dl dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dl dd {
|
||||
padding-left: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dl p {
|
||||
padding-left: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
hr {
|
||||
border:0;
|
||||
background:#ccc;
|
||||
height:1px;
|
||||
margin:0 0 24px;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 650px;
|
||||
padding: 5px;
|
||||
margin: 10px 0 32px 0;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
|
||||
/* Code blocks */
|
||||
|
||||
code, pre {
|
||||
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
|
||||
color:#000;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 4px 12px;
|
||||
background: #FDFEFB;
|
||||
border-radius:4px;
|
||||
border:1px solid #D7D8C8;
|
||||
overflow: auto;
|
||||
overflow-y: hidden;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
|
||||
/* Tables */
|
||||
|
||||
table {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 1px solid #ccc;
|
||||
margin-bottom: 32px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
font-family: 'Arvo', Helvetica, Arial, sans-serif;
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
padding: 10px;
|
||||
background: #232323;
|
||||
color: #FDFEFB;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 10px;
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
|
||||
/* Wrapper */
|
||||
.wrapper {
|
||||
width:960px;
|
||||
}
|
||||
|
||||
|
||||
/* Header */
|
||||
|
||||
header {
|
||||
background-color: #171717;
|
||||
color: #FDFDFB;
|
||||
width:170px;
|
||||
float:left;
|
||||
position:fixed;
|
||||
border: 1px solid #000;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-moz-border-radius-bottomright: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
padding: 34px 25px 22px 50px;
|
||||
margin: 30px 25px 0 0;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
p.header {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
h1.header {
|
||||
font-family: Arvo, sans-serif;
|
||||
font-size: 30px;
|
||||
font-weight: 300;
|
||||
line-height: 1.3em;
|
||||
border-bottom: none;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
h1.header, a.header, a.name, header a{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.header {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a.name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
header ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
header li {
|
||||
list-style-type: none;
|
||||
width:132px;
|
||||
height:15px;
|
||||
margin-bottom: 12px;
|
||||
line-height: 1em;
|
||||
padding: 6px 6px 6px 7px;
|
||||
|
||||
background: #AF0011;
|
||||
background: -moz-linear-gradient(top, #AF0011 0%, #820011 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
|
||||
background: -webkit-linear-gradient(top, #AF0011 0%,#820011 100%);
|
||||
background: -o-linear-gradient(top, #AF0011 0%,#820011 100%);
|
||||
background: -ms-linear-gradient(top, #AF0011 0%,#820011 100%);
|
||||
background: linear-gradient(top, #AF0011 0%,#820011 100%);
|
||||
|
||||
border-radius:4px;
|
||||
border:1px solid #0D0D0D;
|
||||
|
||||
-webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1);
|
||||
box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1);
|
||||
|
||||
}
|
||||
|
||||
header li:hover {
|
||||
background: #C3001D;
|
||||
background: -moz-linear-gradient(top, #C3001D 0%, #950119 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
|
||||
background: -webkit-linear-gradient(top, #C3001D 0%,#950119 100%);
|
||||
background: -o-linear-gradient(top, #C3001D 0%,#950119 100%);
|
||||
background: -ms-linear-gradient(top, #C3001D 0%,#950119 100%);
|
||||
background: linear-gradient(top, #C3001D 0%,#950119 100%);
|
||||
}
|
||||
|
||||
a.buttons {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
background: url(../images/arrow-down.png) no-repeat;
|
||||
font-weight: normal;
|
||||
text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0;
|
||||
padding: 2px 2px 2px 22px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
a.github {
|
||||
background: url(../images/octocat-small.png) no-repeat 1px;
|
||||
}
|
||||
|
||||
a.buttons:hover {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/* Section - for main page content */
|
||||
|
||||
section {
|
||||
width:650px;
|
||||
float:right;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
||||
|
||||
/* Footer */
|
||||
|
||||
footer {
|
||||
width:170px;
|
||||
float:left;
|
||||
position:fixed;
|
||||
bottom:10px;
|
||||
padding-left: 50px;
|
||||
}
|
||||
|
||||
@media print, screen and (max-width: 960px) {
|
||||
|
||||
div.wrapper {
|
||||
width:auto;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
header, section, footer {
|
||||
float:none;
|
||||
position:static;
|
||||
width:auto;
|
||||
}
|
||||
|
||||
footer {
|
||||
border-top: 1px solid #ccc;
|
||||
margin:0 84px 0 50px;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
header {
|
||||
padding-right:320px;
|
||||
}
|
||||
|
||||
section {
|
||||
padding:20px 84px 20px 50px;
|
||||
margin:0 0 20px;
|
||||
}
|
||||
|
||||
header a small {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
header ul {
|
||||
position:absolute;
|
||||
right:130px;
|
||||
top:84px;
|
||||
}
|
||||
}
|
||||
|
||||
@media print, screen and (max-width: 720px) {
|
||||
body {
|
||||
word-wrap:break-word;
|
||||
}
|
||||
|
||||
header {
|
||||
padding:10px 20px 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
section {
|
||||
padding:10px 0 10px 20px;
|
||||
margin:0 0 30px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin: 0 0 0 30px;
|
||||
}
|
||||
|
||||
header ul, header p.view {
|
||||
position:static;
|
||||
}
|
||||
}
|
||||
|
||||
@media print, screen and (max-width: 480px) {
|
||||
|
||||
header ul li.download {
|
||||
display:none;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin: 0 0 0 20px;
|
||||
}
|
||||
|
||||
footer a{
|
||||
display:block;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media print {
|
||||
body {
|
||||
padding:0.4in;
|
||||
font-size:12pt;
|
||||
color:#444;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user