aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dev-random/LICENSE.txt14
-rw-r--r--dev-random/screenshot.pngbin0 -> 61326 bytes
-rw-r--r--dev-random/static/css/main.css218
-rw-r--r--dev-random/static/css/pygments.css69
-rw-r--r--dev-random/static/css/skeleton.css68
-rw-r--r--dev-random/static/img/corner.pngbin0 -> 3629 bytes
-rw-r--r--dev-random/static/js/hex2ascii.js20
-rw-r--r--dev-random/static/js/html5shiv.js3
-rw-r--r--dev-random/templates/archives.html31
-rw-r--r--dev-random/templates/article.html57
-rw-r--r--dev-random/templates/author.html5
-rw-r--r--dev-random/templates/base.html65
-rw-r--r--dev-random/templates/categories.html14
-rw-r--r--dev-random/templates/category.html5
-rw-r--r--dev-random/templates/includes/sidebar.html46
-rw-r--r--dev-random/templates/index.html64
-rw-r--r--dev-random/templates/page.html10
-rw-r--r--dev-random/templates/tag.html6
-rw-r--r--dev-random/templates/tags.html14
19 files changed, 709 insertions, 0 deletions
diff --git a/dev-random/LICENSE.txt b/dev-random/LICENSE.txt
new file mode 100644
index 0000000..5a8e332
--- /dev/null
+++ b/dev-random/LICENSE.txt
@@ -0,0 +1,14 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/dev-random/screenshot.png b/dev-random/screenshot.png
new file mode 100644
index 0000000..a1e468b
--- /dev/null
+++ b/dev-random/screenshot.png
Binary files differ
diff --git a/dev-random/static/css/main.css b/dev-random/static/css/main.css
new file mode 100644
index 0000000..7978af3
--- /dev/null
+++ b/dev-random/static/css/main.css
@@ -0,0 +1,218 @@
+@import url("pygments.css");
+
+/******************************************************************************/
+/* General Style */
+/******************************************************************************/
+
+
+article, section,
+header, footer,
+aside, nav {
+ display: block;
+}
+
+html {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ min-width: 750px;
+
+ background-color: white;
+ color: #101010;
+
+ font-family: helvetica, arial, freesans, clean, sans-serif;
+ font-size: 95%;
+ line-height: 1.35em;
+ letter-spacing: .1em;
+}
+
+h1, h2, h3,
+h4, h5, h6 {
+ color: #333333;
+
+ font-family: "Georgia", "FreeSerif", serif;
+ font-style: italic;
+ font-weight: bolder;
+}
+
+h1 a, h2 a,
+h3 a, h4 a,
+h5 a, h6 a {
+ color: inherit;
+
+ text-decoration: inherit;
+}
+
+h1 a:hover, h2 a:hover,
+h3 a:hover, h4 a:hover,
+h5 a:hover, h6 a:hover {
+ text-decoration: inherit;
+}
+
+a {
+ color: #2a6a88;
+
+ font-weight: bold;
+ text-decoration: none;
+}
+
+
+a:hover {
+ text-decoration: underline;
+}
+
+
+pre {
+ margin: 1em .5em;
+ padding: .75em;
+ border: 1px solid silver;
+ background: #111111;
+ color: #ffffff;
+
+ font-family: monospace;
+ line-height: 1.15em;
+
+ overflow: auto;
+}
+
+
+
+/******************************************************************************/
+/* Specific Styles */
+/******************************************************************************/
+
+
+.page .head h1 {
+ margin: .7em auto;
+
+ font-family: Georgia, "Times New Roman", Times, serif;
+ font-size: 2.8em;
+ text-align: center;
+}
+
+.widget ul li {
+ margin: .1em .4em;
+
+ font-size: 0.8em;
+ letter-spacing: 0.2em;
+ text-decoration: none;
+ font-variant: small-caps;
+}
+
+.content #page-title {
+ font-size: .9em;
+}
+
+
+.content .post {
+ clear: both;
+ margin: 1em 0 3em 0;
+}
+
+
+.post .post-header {
+ margin: 0;
+ padding: .1em;
+ font-family: Georgia, "Times New Roman", Times, serif;
+}
+
+
+.post .post-header time {
+ margin: 0;
+ padding: 0;
+
+ font-size: .7em;
+ line-height: 1em;
+ text-transform: uppercase;
+ letter-spacing: .2em;
+ font-weight: lighter;
+}
+
+
+.post .post-header h1 {
+ margin: 0;
+ padding: 0;
+
+ border-bottom: thin dashed silver;
+
+ font-size: 1.5em;
+ font-weight: bolder;
+ font-style: normal;
+ letter-spacing: 0.0em;
+ line-height: 1em;
+}
+
+.post .post-header h1:hover {
+ border-bottom: thin dashed #333;
+}
+
+.post .post-header .meta {
+ font-size: .9em;
+ letter-spacing: 0.2em;
+ text-decoration: none;
+}
+
+
+.post .post-content {
+ clear: both;
+ margin: 0;
+ padding: .5em .1em;
+}
+
+
+.post .post-footer {
+ clear: both;
+ margin: 0;
+ padding: .1em;
+
+ font-family: Georgia, "Times New Roman", Times, serif;
+}
+
+
+.post .post-footer .readmore {
+ font-size: 0.8em;
+ letter-spacing: 0.2em;
+ text-decoration: none;
+ font-variant: small-caps;
+}
+
+
+.page .foot p {
+ display: block;
+ width: 60%;
+
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+
+
+/******************************************************************************/
+/* Misc */
+/******************************************************************************/
+
+#github-link {
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 50px;
+ height: 100px;
+ background-image: url("../img/corner.png");
+ margin: 0;
+ border: none;
+ text-decoration: none;
+ color: transparent;
+ font-size: 0px;
+ text-decoration: none;
+}
+
diff --git a/dev-random/static/css/pygments.css b/dev-random/static/css/pygments.css
new file mode 100644
index 0000000..046ceca
--- /dev/null
+++ b/dev-random/static/css/pygments.css
@@ -0,0 +1,69 @@
+pre .hll { background-color: #333333 }
+pre .c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */
+pre .err { color: #ffffff } /* Error */
+pre .g { color: #ffffff } /* Generic */
+pre .k { color: #fb660a; font-weight: bold } /* Keyword */
+pre .l { color: #ffffff } /* Literal */
+pre .n { color: #ffffff } /* Name */
+pre .o { color: #ffffff } /* Operator */
+pre .x { color: #ffffff } /* Other */
+pre .p { color: #ffffff } /* Punctuation */
+pre .cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */
+pre .cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */
+pre .c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */
+pre .cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */
+pre .gd { color: #ffffff } /* Generic.Deleted */
+pre .ge { color: #ffffff } /* Generic.Emph */
+pre .gr { color: #ffffff } /* Generic.Error */
+pre .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
+pre .gi { color: #ffffff } /* Generic.Inserted */
+pre .go { color: #aaaaaa; } /* Generic.Output */
+pre .gp { color: #FFA500; } /* Generic.Prompt */
+pre .gs { color: #ffffff } /* Generic.Strong */
+pre .gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */
+pre .gt { color: #ffffff } /* Generic.Traceback */
+pre .kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */
+pre .kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */
+pre .kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */
+pre .kp { color: #fb660a } /* Keyword.Pseudo */
+pre .kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */
+pre .kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */
+pre .ld { color: #ffffff } /* Literal.Date */
+pre .m { color: #0086f7; font-weight: bold } /* Literal.Number */
+pre .s { color: #0086d2 } /* Literal.String */
+pre .na { color: #ff0086; font-weight: bold } /* Name.Attribute */
+pre .nb { color: #ffffff } /* Name.Builtin */
+pre .nc { color: #ffffff } /* Name.Class */
+pre .no { color: #0086d2 } /* Name.Constant */
+pre .nd { color: #ffffff } /* Name.Decorator */
+pre .ni { color: #ffffff } /* Name.Entity */
+pre .ne { color: #ffffff } /* Name.Exception */
+pre .nf { color: #ff0086; font-weight: bold } /* Name.Function */
+pre .nl { color: #ffffff } /* Name.Label */
+pre .nn { color: #ffffff } /* Name.Namespace */
+pre .nx { color: #ffffff } /* Name.Other */
+pre .py { color: #ffffff } /* Name.Property */
+pre .nt { color: #fb660a; font-weight: bold } /* Name.Tag */
+pre .nv { color: #fb660a } /* Name.Variable */
+pre .ow { color: #ffffff } /* Operator.Word */
+pre .w { color: #888888 } /* Text.Whitespace */
+pre .mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */
+pre .mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */
+pre .mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */
+pre .mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */
+pre .sb { color: #0086d2 } /* Literal.String.Backtick */
+pre .sc { color: #0086d2 } /* Literal.String.Char */
+pre .sd { color: #0086d2 } /* Literal.String.Doc */
+pre .s2 { color: #0086d2 } /* Literal.String.Double */
+pre .se { color: #0086d2 } /* Literal.String.Escape */
+pre .sh { color: #0086d2 } /* Literal.String.Heredoc */
+pre .si { color: #0086d2 } /* Literal.String.Interpol */
+pre .sx { color: #0086d2 } /* Literal.String.Other */
+pre .sr { color: #0086d2 } /* Literal.String.Regex */
+pre .s1 { color: #0086d2 } /* Literal.String.Single */
+pre .ss { color: #0086d2 } /* Literal.String.Symbol */
+pre .bp { color: #ffffff } /* Name.Builtin.Pseudo */
+pre .vc { color: #fb660a } /* Name.Variable.Class */
+pre .vg { color: #fb660a } /* Name.Variable.Global */
+pre .vi { color: #fb660a } /* Name.Variable.Instance */
+pre .il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */
diff --git a/dev-random/static/css/skeleton.css b/dev-random/static/css/skeleton.css
new file mode 100644
index 0000000..02010f7
--- /dev/null
+++ b/dev-random/static/css/skeleton.css
@@ -0,0 +1,68 @@
+
+.page {
+ display: block;
+ margin-top: 5%;
+}
+
+.page .head,
+.page .main,
+.page .foot {
+ display: block;
+ width: 100%;
+ clear: both;
+}
+
+.page .main {
+ display: table;
+ border-collapse: separate;
+ border-spacing: .5%;
+ width: 75%;
+ margin: .5em auto;
+ clear: both;
+}
+
+.page .main .sidebar {
+ display: table-cell;
+ width: 25%;
+}
+
+.page .main .content {
+ display: table-cell;
+ width: 74%;
+}
+
+@media screen and (max-width: 800px) {
+ .page .main {
+ width: 100%;
+ clear: both;
+ }
+}
+
+@media screen and (max-width: 700px) {
+ .page .main {
+ display: block;
+ }
+
+ .page .main .sidebar,
+ .page .main .content {
+ display: block;
+ margin: 0 .5em;
+ width: 100%;
+ clear: both;
+ }
+
+ .widget {
+ display: block;
+ }
+
+ .widget ul,
+ .widget li {
+ display: inline;
+ }
+
+ .widget h3 { display: none; }
+}
+
+@media print {
+ .sidebar { display: none; }
+}
diff --git a/dev-random/static/img/corner.png b/dev-random/static/img/corner.png
new file mode 100644
index 0000000..52e8690
--- /dev/null
+++ b/dev-random/static/img/corner.png
Binary files differ
diff --git a/dev-random/static/js/hex2ascii.js b/dev-random/static/js/hex2ascii.js
new file mode 100644
index 0000000..3dde36f
--- /dev/null
+++ b/dev-random/static/js/hex2ascii.js
@@ -0,0 +1,20 @@
+
+window.hex2ascii = {};
+window.hex2ascii.init = function() {
+ var els = document.getElementsByClassName('hex'),
+ hex, text,
+ i, j, e;
+
+ for(i=0; i < els.length; i++) {
+ e = els[i];
+ hex = e.innerHTML.split(' ');
+ text = "";
+
+ for(j=0; j < hex.length; j++) {
+ text += String.fromCharCode(parseInt(hex[j], 16));
+ }
+
+ e.innerHTML = text;
+ e.className = e.className.replace('hex','');
+ }
+};
diff --git a/dev-random/static/js/html5shiv.js b/dev-random/static/js/html5shiv.js
new file mode 100644
index 0000000..74c9564
--- /dev/null
+++ b/dev-random/static/js/html5shiv.js
@@ -0,0 +1,3 @@
+/*! HTML5 Shiv pre3.5 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+ Uncompressed source: https://github.com/aFarkas/html5shiv */
+(function(a,b){function h(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function i(){var a=l.elements;return typeof a=="string"?a.split(" "):a}function j(a){var b={},c=a.createElement,f=a.createDocumentFragment,g=f();a.createElement=function(a){l.shivMethods||c(a);var f;return b[a]?f=b[a].cloneNode():e.test(a)?f=(b[a]=c(a)).cloneNode():f=c(a),f.canHaveChildren&&!d.test(a)?g.appendChild(f):f},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+i().join().replace(/\w+/g,function(a){return b[a]=c(a),g.createElement(a),'c("'+a+'")'})+");return n}")(l,g)}function k(a){var b;return a.documentShived?a:(l.shivCSS&&!f&&(b=!!h(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),g||(b=!j(a)),b&&(a.documentShived=b),a)}function p(a){var b,c=a.getElementsByTagName("*"),d=c.length,e=RegExp("^(?:"+i().join("|")+")$","i"),f=[];while(d--)b=c[d],e.test(b.nodeName)&&f.push(b.applyElement(q(b)));return f}function q(a){var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(n+":"+a.nodeName);while(d--)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function r(a){var b,c=a.split("{"),d=c.length,e=RegExp("(^|[\\s,>+~])("+i().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),f="$1"+n+"\\:$2";while(d--)b=c[d]=c[d].split("}"),b[b.length-1]=b[b.length-1].replace(e,f),c[d]=b.join("}");return c.join("{")}function s(a){var b=a.length;while(b--)a[b].removeNode()}function t(a){var b,c,d=a.namespaces,e=a.parentWindow;return!o||a.printShived?a:(typeof d[n]=="undefined"&&d.add(n),e.attachEvent("onbeforeprint",function(){var d,e,f,g=a.styleSheets,i=[],j=g.length,k=Array(j);while(j--)k[j]=g[j];while(f=k.pop())if(!f.disabled&&m.test(f.media)){for(d=f.imports,j=0,e=d.length;j<e;j++)k.push(d[j]);try{i.push(f.cssText)}catch(l){}}i=r(i.reverse().join("")),c=p(a),b=h(a,i)}),e.attachEvent("onafterprint",function(){s(c),b.removeNode(!0)}),a.printShived=!0,a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea|object|iframe)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g;(function(){var c=b.createElement("a");c.innerHTML="<xyz></xyz>",f="hidden"in c,f&&typeof injectElementWithStyles=="function"&&injectElementWithStyles("#modernizr{}",function(b){b.hidden=!0,f=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).display=="none"}),g=c.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var l={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:k};a.html5=l,k(b);var m=/^$|\b(?:all|print)\b/,n="html5shiv",o=!g&&function(){var c=b.documentElement;return typeof b.namespaces!="undefined"&&typeof b.parentWindow!="undefined"&&typeof c.applyElement!="undefined"&&typeof c.removeNode!="undefined"&&typeof a.attachEvent!="undefined"}();l.type+=" print",l.shivPrint=t,t(b)})(this,document) \ No newline at end of file
diff --git a/dev-random/templates/archives.html b/dev-random/templates/archives.html
new file mode 100644
index 0000000..1ba36dd
--- /dev/null
+++ b/dev-random/templates/archives.html
@@ -0,0 +1,31 @@
+{% extends "base.html" %}
+
+{% block content_title %}{{ SITENAME }} — Archives{% endblock %}
+
+{%- block content %}
+ <section class="content">
+ <h1>Archives</h1>
+ <dl>
+ {% for article in articles %}
+ {% if loop.first or article.date.strftime('%Y %m') != articles[loop.index0-1].date.strftime('%Y %m') %}
+ <dt>
+ <h2>{{ article.date.strftime('%B %Y') }}</h2>
+ <ul>
+ {% endif %}
+
+ <li>
+ <a rel="bookmark"
+ href="{{ SITEURL }}/{{ article.url }}"
+ title="Lien permanent vers «{{ article.title }}»">
+ {{ article.title }}
+ </a>
+ </li>
+
+ {% if loop.last or article.date.strftime('%Y %m') != articles[loop.index0+1].date.strftime('%Y %m') %}
+ </ul>
+ </dt>
+ {% endif %}
+ {% endfor %}
+ </dl>
+ </section>
+{% endblock content -%}
diff --git a/dev-random/templates/article.html b/dev-random/templates/article.html
new file mode 100644
index 0000000..ab5679c
--- /dev/null
+++ b/dev-random/templates/article.html
@@ -0,0 +1,57 @@
+{% extends "base.html" %}
+
+{% block headers %}
+ {{ super() }}
+ <meta name="author" content="{{ article.author }}" />
+ <meta name="keywords" content="{{ articles.tags|join(' ')}}" />
+{% endblock %}
+
+{% block title %}{{ article.title }} — {{ super() }}{% endblock %}
+
+{%- block content %}
+ <article class="post content">
+ <header class="post-header">
+ <time datetime="{{ article.date.isoformat() }}" pubdate="pubdate">
+ {{ article.locale_date }}
+ </time>
+ <h1>
+ <a rel="bookmark"
+ href="{{ SITEURL }}/{{ article.url }}"
+ title="Lien permanent vers «{{ article.title }}»">
+ {{ article.title }}
+ </a>
+ </h1>
+ <div class="meta">
+ Dans «<a href="{{ SITEURL }}/category/{{ article.category }}.html">{{ article.category }}</a>»
+ par <a href="{{ SITEURL }}/author/{{article.author}}.html">{{ article.author}}</a>
+ </div>
+ </header>
+ <div class="post-content">
+ {{ article.content}}
+ </div>
+ <footer class="post-footer">
+ <div class="meta">
+ Posté dans «<a href="{{ SITEURL }}/category/{{ article.category }}.html">{{ article.category }}</a>»
+ par <a href="{{ SITEURL }}/author/{{article.author}}.html">{{ article.author}}</a><br />
+ Mots-clés: {% for tag in article.tags %} #<a href="{{ SITEURL }}/tag/{{ tag }}.html">{{ tag }}</a>{% endfor %}
+ </div>
+ </footer>
+ {% if DISQUS_SITENAME %}
+ <hr />
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+ var disqus_shortname = '{{ DISQUS_SITENAME }}'; // required: replace example with your forum shortname
+
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+ <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
+ {% endif %}
+ </article>
+{% endblock content -%}
diff --git a/dev-random/templates/author.html b/dev-random/templates/author.html
new file mode 100644
index 0000000..e323690
--- /dev/null
+++ b/dev-random/templates/author.html
@@ -0,0 +1,5 @@
+{% extends "index.html" %}
+
+{% block title %}{{ super() }} — Articles de {{ author }}{% endblock %}
+
+{% block index_title %}Articles de <i>{{ author }}</i> :{% endblock %}
diff --git a/dev-random/templates/base.html b/dev-random/templates/base.html
new file mode 100644
index 0000000..1424ca4
--- /dev/null
+++ b/dev-random/templates/base.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="{{ DEFAULT_LANG }}">
+ <head>
+ {% block headers %}
+ <meta charset="utf-8" />
+ <title>{% block title %}{{ SITENAME }}{%endblock%}</title>
+ <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/skeleton.css" />
+ <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/main.css" />
+ <link rel="shortcut icon" type="text/css" href="{{ SITEURL }}/favicon.ico" />
+ <link rel="alternate" type="application/atom+xml"
+ title="{{ SITENAME }} — Flux Atom"
+ href="{{ SITEURL }}/{{ FEED }}" />
+ {% if FEED_RSS %}
+ <link rel ="alternate" type="application/rss+xml"
+ title="{{ SITENAME }} — Flux RSS"
+ href="{{ SITEURL }}/{{ FEED_RSS }}" />
+ {% endif %}
+ <script src="{{ SITEURL }}/theme/js/hex2ascii.js"></script>
+ <!--[if lte IE 8]><script src="{{ SITEURL }}/theme/js/html5shiv.js"></script><![endif]-->
+ {% if GOOGLE_ANALYTICS %}
+ <script type="text/javascript">
+ // Google analytics:
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ function enableGA() {
+ try {
+ var pageTracker = _gat._getTracker("{{ GOOGLE_ANALYTICS }}");
+ pageTracker._trackPageview();
+ _gaq.push(['_setCustomVar',
+ 1, // This custom var is set to slot #1. Required parameter.
+ 'User-Agent',
+ navigator.userAgent
+ ]);
+ console.log('GA loaded');
+ } catch(err) {
+ setTimeout(500,'enableGA()');
+ console.log('Waiting GA ...');
+ }
+ }
+ setTimeout('enableGA()', 200);
+ </script>
+ {% endif %}
+ {% endblock headers %}
+ </head>
+ <body>
+ <div class="page">
+ <header class="head">
+ <h1>
+ <a href="{{ SITEURL }}/index.html">{{ SITENAME }}</a>
+ </h1>
+ </header>
+
+ <div class="main">
+ {% include "includes/sidebar.html" %}
+ {% block content %}
+ {% endblock content %}
+ </div>
+
+ <footer class="foot">
+ <p> {{ FOOTER_TEXT or 'Powered by <a href="http://pelican.readthedocs.org">Pelican</a>' }}</p>
+ {% if GITHUB_URL %}<p><a id="github-link" href="{{ GITHUB_URL}}">Fork me on Github</a></p>{% endif %}
+ </footer>
+ </div>
+ </body>
+</html>
diff --git a/dev-random/templates/categories.html b/dev-random/templates/categories.html
new file mode 100644
index 0000000..0a5b0f4
--- /dev/null
+++ b/dev-random/templates/categories.html
@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+
+{% block title %}{{ super() }} — Catégories{% endblock title %}
+
+{%- block content %}
+ <section class="content">
+ <h1>Catégories</h1>
+ <ul id="category-list">
+ {% for category, n in categories %}
+ <li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ n|count }} articles)</li>
+ {% endfor %}
+ </ul>
+ </section>
+{% endblock content -%}
diff --git a/dev-random/templates/category.html b/dev-random/templates/category.html
new file mode 100644
index 0000000..0a5dade
--- /dev/null
+++ b/dev-random/templates/category.html
@@ -0,0 +1,5 @@
+{% extends "index.html" %}
+
+{% block title %}{{ super() }} — Articles dans la catégorie «{{ category }}»{% endblock %}
+
+{% block index_title %}Articles dans la catégorie <i>«{{ category }}»</i> :{% endblock %}
diff --git a/dev-random/templates/includes/sidebar.html b/dev-random/templates/includes/sidebar.html
new file mode 100644
index 0000000..3c42ef9
--- /dev/null
+++ b/dev-random/templates/includes/sidebar.html
@@ -0,0 +1,46 @@
+ <aside class="sidebar">
+ <nav class="widget">
+ <h3>Site</h3>
+ <ul>
+ <li><a href="{{ SITEURL }}">Accueil</a></li>
+ <li><a href="{{ SITEURL }}/archives.html">Archives</a></li>
+ <li><a href="{{ SITEURL }}/tags.html">Mots-clés</a></li>
+ {% if MENUITEMS %}
+ {% for name, uri in MENUITEMS %}
+ <li><a href="{{ uri|format(SITEURL)|e}}">{{ name }}</a></li>
+ {% endfor %}
+ {% endif %}
+ {% if DISPLAY_PAGES_ON_MENU %}
+ {% for p in PAGES %}
+ <li><a href="{{ SITEURL}}/{{ p.url|e }}"{% if p == page %} class="active"{% endif %}>{{ p.title }}</a></li>
+ {% endfor %}
+ {% endif %}
+ </ul>
+ </nav>
+
+ {% if categories %}
+ <nav class="widget">
+ <h3>Catégories</h3>
+ <ul>
+ {% for cat, null in categories %}
+ <li><a href="{{ SITEURL }}/{{ cat.url|e }}">{{ cat }}</a></li>
+ {% endfor %}
+ </ul>
+ </nav>
+ {% endif %}
+
+ {% if SOCIAL %}
+ <nav class="widget">
+ <h3>Social</h3>
+ <ul>
+ {% for url, name in SOCIAL %}
+ <li><a href="{{ url|e }}">{{ name }}</a></li>
+ {% endfor %}
+ <li><a href="{{ SITEURL }}/{{ FEED }}" rel="alternate">Flux Atom</a></li>
+ {% if FEED_RSS %}
+ <li><a href="{{ SITEURL }}/{{ FEED_RSS }}" rel="alternate">Flux RSS</a></li>
+ {% endif %}
+ </ul>
+ </nav>
+ {% endif %}
+ </aside>
diff --git a/dev-random/templates/index.html b/dev-random/templates/index.html
new file mode 100644
index 0000000..11314d1
--- /dev/null
+++ b/dev-random/templates/index.html
@@ -0,0 +1,64 @@
+{% extends "base.html" %}
+
+{%- block content %}
+ <section class="content">
+ <h1 id="page-title">{% block index_title %}Tous les articles{% endblock index_title %}</h1>
+
+ {% for article in articles_page.object_list %}
+ <article class="post">
+ <header class="post-header">
+ <time datetime="{{ article.date.isoformat() }}" pubdate="pubdate">
+ {{ article.locale_date }}
+ </time>
+ <h1>
+ <a rel="bookmark"
+ href="{{ SITEURL }}/{{ article.url }}"
+ title="Lien permanent vers «{{ article.title }}»">
+ {{ article.title }}
+ </a>
+ </h1>
+ <div class="meta">
+ Dans «<a href="{{ SITEURL }}/category/{{ article.category }}.html">{{ article.category }}</a>»
+ par <a href="{{ SITEURL }}/author/{{article.author}}.html">{{ article.author}}</a>
+ </div>
+ </header>
+ <div class="post-content">
+ {{ article.summary }}
+ </div>
+ <footer class="post-footer">
+ <a class="readmore" href="{{ SITEURL }}/{{ article.url }}">Lire la suite...</a>
+ </footer>
+ </article>
+ {% endfor %}
+
+ {%- if articles_page %}
+ <nav id="pagination">
+ {%- if articles_page.has_previous() %}
+ <a id="first_page" href="{{ SITEURL }}/{{ page_name }}.html">&#60;&#60;</a>
+ <a id="prev_page" href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() if articles_page.previous_page_number() != 1 else "" }}.html">&#60;</a>
+ {% else %}
+ <!-- <span id="first_page" class="a inactive">&#60;&#60;</span>
+ <span id="first_page" class="a inactive">&#60;</span> -->
+ {% endif -%}
+
+ {%- for i in range(1,articles_paginator.num_pages+1) %}
+ {%- if articles_page.number - 5 < i < articles_page.number + 5 %}
+ {%- if i == articles_page.number %}
+ <span class="a active">{{loop.index}}</span>
+ {% else %}
+ <a href="{{SITEURL}}/{{ page_name }}{{ ( i if i != 1 else "" ) }}.html">{{loop.index}}</a>
+ {% endif -%}
+ {% endif -%}
+ {% endfor -%}
+
+ {%- if articles_page.has_next() %}
+ <a id="next_page" href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html">&#62;</a>
+ <a id="last_page" href="{{ SITEURL }}/{{ page_name }}{{ articles_paginator.num_pages }}.html">&#62;&#62;</a>
+ {% else %}
+ <!-- <span id="next_page" class="a inactive">&#62;</span>
+ <span id="next_page" class="a inactive">&#62;&#62;</span> -->
+ {% endif -%}
+ </nav>
+ {%- endif%}
+ </section>
+{% endblock content -%}
diff --git a/dev-random/templates/page.html b/dev-random/templates/page.html
new file mode 100644
index 0000000..f0bc3c9
--- /dev/null
+++ b/dev-random/templates/page.html
@@ -0,0 +1,10 @@
+{% extends "base.html" %}
+
+{% block title %}{{ super() }} — {{ page.url }}{% endblock title %}
+
+{%- block content %}
+ <section class="content">
+ <h1>{{ page.title }}</h1>
+ {{ page.content }}
+ </section>
+{% endblock content -%}
diff --git a/dev-random/templates/tag.html b/dev-random/templates/tag.html
new file mode 100644
index 0000000..ca4fc94
--- /dev/null
+++ b/dev-random/templates/tag.html
@@ -0,0 +1,6 @@
+{% extends "index.html" %}
+
+{% block title %}{{ super() }} — Articles avec le mot clé « {{ tag }} »{% endblock %}
+
+{% block index_title %}Articles avec le mot clé « {{ tag }} » :{% endblock %}
+
diff --git a/dev-random/templates/tags.html b/dev-random/templates/tags.html
new file mode 100644
index 0000000..b95d401
--- /dev/null
+++ b/dev-random/templates/tags.html
@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+
+{% block title %}{{ super() }} — Mots-clés{% endblock title %}
+
+{%- block content %}
+ <section class="content">
+ <h1>Mots-clés</h1>
+ <ul id="tagslist">
+ {% for tag in tag_cloud %}
+ <li class="tag-{{ tag.1 }}"><a href="{{ SITEURL }}/tag/{{ tag.0 }}.html">{{ tag.0 }}</a></li>
+ {% endfor %}
+ </ul>
+ </section>
+{% endblock content -%}