diff options
Diffstat (limited to 'dev-random2')
-rw-r--r-- | dev-random2/LICENSE.txt | 14 | ||||
-rw-r--r-- | dev-random2/screenshot.png | bin | 0 -> 65391 bytes | |||
-rw-r--r-- | dev-random2/static/css/normalize.css | 500 | ||||
-rw-r--r-- | dev-random2/static/css/pygments.css | 62 | ||||
-rw-r--r-- | dev-random2/static/css/skeleton.css | 64 | ||||
-rw-r--r-- | dev-random2/static/css/theme.css | 189 | ||||
-rw-r--r-- | dev-random2/static/js/html5shiv.js | 3 | ||||
-rw-r--r-- | dev-random2/static/js/microTags.js | 159 | ||||
-rw-r--r-- | dev-random2/static/js/microTags.min.js | 18 | ||||
-rw-r--r-- | dev-random2/templates/archives.html | 29 | ||||
-rw-r--r-- | dev-random2/templates/article.html | 53 | ||||
-rw-r--r-- | dev-random2/templates/author.html | 5 | ||||
-rw-r--r-- | dev-random2/templates/base.html | 62 | ||||
-rw-r--r-- | dev-random2/templates/categories.html | 14 | ||||
-rw-r--r-- | dev-random2/templates/category.html | 5 | ||||
-rw-r--r-- | dev-random2/templates/includes/article_meta.html | 17 | ||||
-rw-r--r-- | dev-random2/templates/includes/sidebar.html | 53 | ||||
-rw-r--r-- | dev-random2/templates/index.html | 59 | ||||
-rw-r--r-- | dev-random2/templates/page.html | 8 | ||||
-rw-r--r-- | dev-random2/templates/tag.html | 6 | ||||
-rw-r--r-- | dev-random2/templates/tags.html | 26 |
21 files changed, 1346 insertions, 0 deletions
diff --git a/dev-random2/LICENSE.txt b/dev-random2/LICENSE.txt new file mode 100644 index 0000000..5a8e332 --- /dev/null +++ b/dev-random2/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-random2/screenshot.png b/dev-random2/screenshot.png Binary files differnew file mode 100644 index 0000000..234b5f8 --- /dev/null +++ b/dev-random2/screenshot.png diff --git a/dev-random2/static/css/normalize.css b/dev-random2/static/css/normalize.css new file mode 100644 index 0000000..8fa27e0 --- /dev/null +++ b/dev-random2/static/css/normalize.css @@ -0,0 +1,500 @@ +/*! normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects `block` display not defined in IE6/7/8/9 & FF3. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section, +summary { + display: block; +} + +/* + * Corrects `inline-block` display not defined in IE6/7/8/9 & FF3. + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* + * Prevents modern browsers from displaying `audio` without controls. + * Remove excess height in iOS5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/* + * Addresses styling for `hidden` attribute not present in IE7/8/9, FF3, S4. + * Known issue: no IE6 support. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body `font-size` is set using + * `em` units. + * 2. Prevents iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/* + * Addresses `font-family` inconsistency between `textarea` and other form + * elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/* + * Addresses margins handled incorrectly in IE6/7. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/* + * Addresses `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers. + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/* + * Addresses font sizes and margins set differently in IE6/7. + * Addresses font sizes within `section` and `article` in FF4+, Chrome, S5. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.75em; + margin: 2.33em 0; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/* + * Addresses style set to `bolder` in FF3+, S4/5, Chrome. + */ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/* + * Addresses styling not present in S5, Chrome. + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Addresses margins set differently in IE6/7. + */ + +p, +pre { + margin: 1em 0; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome. + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/* + * Improves readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * Addresses CSS quotes not supported in IE6/7. + */ + +q { + quotes: none; +} + +/* + * Addresses `quotes` property not supported in S4. + */ + +q:before, +q:after { + content: ''; + content: none; +} + +small { + font-size: 75%; +} + +/* + * Prevents `sub` and `sup` affecting `line-height` in all browsers. + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Lists + ========================================================================== */ + +/* + * Addresses margins set differently in IE6/7. + */ + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +/* + * Addresses paddings set differently in IE6/7. + */ + +menu, +ol, +ul { + padding: 0 0 0 40px; +} + +/* + * Corrects list images handled incorrectly in IE7. + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside `a` element in IE6/7/8/9, FF3. + * 2. Improves image quality when scaled in IE7. + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/* + * Corrects overflow displayed oddly in IE9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7. + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9. + * 2. Corrects text not wrapping in FF3. + * 3. Corrects alignment displayed oddly in IE6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/* + * 1. Corrects font size not being inherited in all browsers. + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome. + * 3. Improves appearance and consistency in all browsers. + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/* + * Addresses FF3/4 setting `line-height` on `input` using `!important` in the + * UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/* + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Corrects inability to style clickable `input` types in iOS. + * 3. Improves usability and consistency of cursor style between image-type + * `input` and others. + * 4. Removes inner spacing in IE7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + *overflow: visible; /* 4 */ +} + +/* + * Re-set default cursor for disabled elements. + */ + +button[disabled], +input[disabled] { + cursor: default; +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9. + * 2. Removes excess padding in IE8/9. + * 3. Removes excess padding in IE7. + * Known issue: excess padding remains in IE6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/* + * 1. Addresses `appearance` set to `searchfield` in S5, Chrome. + * 2. Addresses `box-sizing` set to `border-box` in S5, Chrome (include `-moz` + * to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/* + * Removes inner padding and search cancel button in S5, Chrome on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9. + * 2. Improves readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/dev-random2/static/css/pygments.css b/dev-random2/static/css/pygments.css new file mode 100644 index 0000000..2e0adf3 --- /dev/null +++ b/dev-random2/static/css/pygments.css @@ -0,0 +1,62 @@ +pre .hll { background-color: #ffffcc } +pre { background: #ffffff; } +pre .c { color: #808080 } /* Comment */ +pre .err { color: #F00000; background-color: #F0A0A0 } /* Error */ +pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre .o { color: #303030 } /* Operator */ +pre .cm { color: #808080 } /* Comment.Multiline */ +pre .cp { color: #507090 } /* Comment.Preproc */ +pre .c1 { color: #808080 } /* Comment.Single */ +pre .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ +pre .gd { color: #A00000 } /* Generic.Deleted */ +pre .ge { font-style: italic } /* Generic.Emph */ +pre .gr { color: #FF0000 } /* Generic.Error */ +pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre .gi { color: #00A000 } /* Generic.Inserted */ +pre .go { color: #808080 } /* Generic.Output */ +pre .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +pre .gs { font-weight: bold } /* Generic.Strong */ +pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre .gt { color: #0040D0 } /* Generic.Traceback */ +pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre .kp { color: #003080; font-weight: bold } /* Keyword.Pseudo */ +pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre .kt { color: #303090; font-weight: bold } /* Keyword.Type */ +pre .m { color: #6000E0; font-weight: bold } /* Literal.Number */ +pre .s { background-color: #fff0f0 } /* Literal.String */ +pre .na { color: #0000C0 } /* Name.Attribute */ +pre .nb { color: #007020 } /* Name.Builtin */ +pre .nc { color: #B00060; font-weight: bold } /* Name.Class */ +pre .no { color: #003060; font-weight: bold } /* Name.Constant */ +pre .nd { color: #505050; font-weight: bold } /* Name.Decorator */ +pre .ni { color: #800000; font-weight: bold } /* Name.Entity */ +pre .ne { color: #F00000; font-weight: bold } /* Name.Exception */ +pre .nf { color: #0060B0; font-weight: bold } /* Name.Function */ +pre .nl { color: #907000; font-weight: bold } /* Name.Label */ +pre .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +pre .nt { color: #007000 } /* Name.Tag */ +pre .nv { color: #906030 } /* Name.Variable */ +pre .ow { color: #000000; font-weight: bold } /* Operator.Word */ +pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre .mf { color: #6000E0; font-weight: bold } /* Literal.Number.Float */ +pre .mh { color: #005080; font-weight: bold } /* Literal.Number.Hex */ +pre .mi { color: #0000D0; font-weight: bold } /* Literal.Number.Integer */ +pre .mo { color: #4000E0; font-weight: bold } /* Literal.Number.Oct */ +pre .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ +pre .sc { color: #0040D0 } /* Literal.String.Char */ +pre .sd { color: #D04020 } /* Literal.String.Doc */ +pre .s2 { background-color: #fff0f0 } /* Literal.String.Double */ +pre .se { color: #606060; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ +pre .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ +pre .si { background-color: #e0e0e0 } /* Literal.String.Interpol */ +pre .sx { color: #D02000; background-color: #fff0f0 } /* Literal.String.Other */ +pre .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ +pre .s1 { background-color: #fff0f0 } /* Literal.String.Single */ +pre .ss { color: #A06000 } /* Literal.String.Symbol */ +pre .bp { color: #007020 } /* Name.Builtin.Pseudo */ +pre .vc { color: #306090 } /* Name.Variable.Class */ +pre .vg { color: #d07000; font-weight: bold } /* Name.Variable.Global */ +pre .vi { color: #3030B0 } /* Name.Variable.Instance */ +pre .il { color: #0000D0; font-weight: bold } /* Literal.Number.Integer.Long */ diff --git a/dev-random2/static/css/skeleton.css b/dev-random2/static/css/skeleton.css new file mode 100644 index 0000000..a823bc7 --- /dev/null +++ b/dev-random2/static/css/skeleton.css @@ -0,0 +1,64 @@ +/* vim: ts=4 sw=4 et: */ + +html, body { + height: 100%; + width: 100%; + margin: 0; + padding: 0; +} + +#page { + max-width: 950px; + min-width: 240px; + margin: 0 auto; + padding: 0 1em; +} + +#page-head, +#page-body, +#page-foot { + clear: both; + margin: 0; + padding: 0; +} + +#page-side { + float: left; + width: 30%; + height: 100%; + margin-top: 0; +} + +#page-main { + float: right; + height: 100%; + width: 67%; +} + + + +@media screen and (max-width: 550px) { + #page-main, + #page-side { + width: auto; + clear: both; + } + + #page-side ul { + column-count: 2; + -moz-column-count: 2; + -webkit-column-count: 2; + -o-column-count: 2; + -ms-column-count: 2; + } +} + +@media screen and (max-width: 490px) { + #page-side ul { + column-count: auto; + -moz-column-count: auto; + -webkit-column-count: auto; + -o-column-count: auto; + -ms-column-count: auto; + } +} diff --git a/dev-random2/static/css/theme.css b/dev-random2/static/css/theme.css new file mode 100644 index 0000000..e4cd594 --- /dev/null +++ b/dev-random2/static/css/theme.css @@ -0,0 +1,189 @@ +/* vim: ts=4 sw=4 et: */ + +@import url(normalize.css); + +@-webkit-keyframes fade {from {opacity: 0;} to { opacity: 1;}} +@-moz-keyframes fade {from {opacity: 0;} to { opacity: 1;}} +@-ms-keyframes fade {from {opacity: 0;} to { opacity: 1;}} +@-o-keyframes fade {from {opacity: 0;} to { opacity: 1;}} +@keyframes fade {from {opacity: 0;} to { opacity: 1;}} + + +body { + font-family: "Lucida Grande", "Gargi_1.7", "Garuda", "Jamrul", "Loma", "Malayalam", "Mukti Narrow", sans-serif; + font-size: 16px; + line-height: 1.5em; + color: #444; + background-color: #FAFAFA; + -webkit-animation: fade 600ms 1 ease-in-out; + -moz-animation: fade 600ms 1 ease-in-out; + -ms-animation: fade 600ms 1 ease-in-out; + -o-animation: fade 600ms 1 ease-in-out; + animation: fade 600ms 1 ease-in-out; +} + +h1, h2, h3, +h4, h5, h6, +header .meta { + color: #222; + font-family: "Century Schoolbook L", "Georgia", "Nimbus Roman No9 L", "Norasi", "Rekha", serif; + line-height: 1.1em; +} + +hr { + visibility: hidden; + padding-bottom: 1em; +} + +hr:after, +#page-foot:before { + visibility: visible; + content: '\2042'; + display: block; + text-align: center; +} + +article { + margin-bottom: 4em; +} + +article header h1 { + padding: .1em 0; + margin: 0; +} + +article header .meta { + font-size: .9em; +} + +article header .meta a { text-decoration: none; } + +article:after { + content: '\00A7'; + display: block; + text-align: center; + font-weight: lighter; + font-size: 1.5em; +} + +article:last-of-type:after { + content: ''; +} + +#page-head { + text-align: center; + padding-top: .5em; +} + +#page-head h1 { + font-size: 4em; +} + +#page-head h1 a:hover { + text-decoration: none; +} + +#page-side { + line-height: 1.2em; +} + +#page-side ul { + padding: 0 0 0 1.3em; + margin: .4em 0 .6em .4em; + list-style-type: square; +} + +#page-side li a { + color: #555; +} + +#page-side li.active { + color: firebrick; +} + +#page-side li.active a { + color: #222; +} + +#page-foot { + font-size: .8em; + text-align: center; +} + +#pagination { + display: block; + margin-bottom: 4em; + text-align: center; +} + +#tag-cloud li:hover { + -webkit-transform: rotate(0deg), scale(1.3, 1.3) !important; + -moz-transform: rotate(0deg), scale(1.3, 1.3) !important; + -ms-transform: rotate(0deg), scale(1.3, 1.3) !important; + -o-transform: rotate(0deg), scale(1.3, 1.3) !important; + transform: rotate(0deg), scale(1.3, 1.3) !important; +} + +#tag-cloud a { + text-decoration: none; +} + +h1.small-title { + font-size: 1em; + font-style: italic; + font-weight: normal; +} + +a, a:link, a:visited { + text-decoration: underline; + color: #29476B; +} + +a:active, a:focus { + outline-width: 1px; + outline-style: dotted; +} + +h1 a, h2 a, h3 a, +h4 a, h5 a, h6 a { + color: inherit !important; + text-decoration: none!important; +} + +a.goto { + font-size: .8em; + color: #444; + padding: 0; + margin: 0em .2em; +} + +pre, img { + overflow: auto; + max-width: 95%; +} + +pre { + font-family: monospace; + font-size: 0.95em; + line-height: 1.15em; + background-color: #F5F5F5; + border: 3px solid silver; + overflow: auto; + padding: 0.5em; +} + +@media screen and (max-width: 650px) { + body { + font-size: 15px; + } +} + +@media screen and (max-width: 500px) { + body { + font-size: 14px; + } + + #page-head h1 { + font-size: 2.5em; + } +} diff --git a/dev-random2/static/js/html5shiv.js b/dev-random2/static/js/html5shiv.js new file mode 100644 index 0000000..74c9564 --- /dev/null +++ b/dev-random2/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-random2/static/js/microTags.js b/dev-random2/static/js/microTags.js new file mode 100644 index 0000000..5de44e3 --- /dev/null +++ b/dev-random2/static/js/microTags.js @@ -0,0 +1,159 @@ + +(function(doc, win, v) { + + /** + * The microTags exception + * + * @class microTags.error + * @constructor + * @param message {String} an error message + * @example + * try { + * var t = new microTags(undefined); + * } + * catch(e) { + * if (e instaceOf micrTags.error) { + * console.debug("Epic fail: " + e.message); + * } + * } + */ + function error(message) { + this.message = "microTags: " + message; + } + error.prototype = Error.prototype; + + /** + * Create a new microTags instance + * + * @class microTags + * @constructor + * @param element {HTMLElement} an element containing tags + * @param options {Object} A JSON hash containing options + */ + function microTags(element, options) { + if (!(element && element.nodeName)) + throw new error("argument #1 must be an HTMLElement !"); + this._el = element; + this._children = element.children; + + this._max_size = 3; + this._min_size = 0.7; + this._max_angle = 10; + this._min_angle = -10; + + if (options != undefined) + this._set_options(options); + + this._max_count = this._get_max_count(); + + self = this; + this.eachTag(function(element, count) { + self._make_inline(element, count); + self._set_size(element, count); + self._set_tilt(element, count); + }); + } + + /** + * the microTags current version + * + * @attribute version {String} + */ + microTags.prototype.version = v; + microTags.version = v; + + + microTags.prototype._set_options = function(options) { + var max_size = options['max-size'], + min_size = options['min-size'], + max_angle = options['max-angle'], + min_angle = options['min-angle']; + + if ((max_size >= 1) && (max_size > min_size)) + this._max_size = max_size; + else + throw error("option `max-size` must be >= 1 and > min-size"); + + if ((min_size > 0) && (min_size < max_size)) + this._min_size = min_size; + else + throw error("option `min-size` must be > 0 and < max-size"); + + if (max_angle > min_angle) { + this._max_angle = max_angle; + this._min_angle = min_angle; + } + else + throw error("option `max-angle` must be > `min-angle`"); + + } + + /** + * Apply a function on each tag + * + * @param [Function] callback: the function to apply + */ + microTags.prototype.eachTag = function(callback) { + var i, child, tag, count; + for (i=0; i < this._children.length; i++) { + child = this._children[i]; + if (child.attributes != undefined) { + window._c = child; + count = parseInt(child.attributes["data-count"].value || "1"); + callback(child, count); + } + } + } + + + microTags.prototype._get_max_count = function() { + var max = 0; + this.eachTag(function(element, count) { + max = (max < count) ? count : max; + }); + return max; + } + + + microTags.prototype._make_inline = function(element, coun) { + element.style['display'] = 'inline-block'; + } + + + microTags.prototype._set_size = function(element, count) { + var size, + max = this._max_size, + min = this._min_size, + max_count = this._max_count; + + size = (count * max / max_count); + size = (size >= min) ? size : min; + element.style['fontSize'] = size + 'em'; + } + + + microTags.prototype._set_tilt = function(element, count) { + var angle, + max = this._max_angle, + min = this._min_angle; + angle = min + (Math.random() * (max - min)); + element.style['transform'] = 'rotate(' + angle + 'deg)'; + element.style['MozTransform'] = 'rotate(' + angle + 'deg)'; + element.style['OTransform'] = 'rotate(' + angle + 'deg)'; + element.style['WebkitTransform'] = 'rotate(' + angle + 'deg)'; + element.style['msTransform'] = 'rotate(' + angle + 'deg)'; + } + + + if (win != undefined) { + win.microTags = microTags; + win.microTags.error = error; + + if (win.define && win.define.call) { + win.define(function() { + return microTags; + }); + } + } + +})(window.document, window, "0.3.2"); diff --git a/dev-random2/static/js/microTags.min.js b/dev-random2/static/js/microTags.min.js new file mode 100644 index 0000000..30015de --- /dev/null +++ b/dev-random2/static/js/microTags.min.js @@ -0,0 +1,18 @@ + +(function(doc,win,v){function error(message){this.message="microTags: "+message;} +error.prototype=Error.prototype;function microTags(element,options){if(!(element&&element.nodeName)) +throw new error("argument #1 must be an HTMLElement !");this._el=element;this._children=element.children;this._max_size=3;this._min_size=0.7;this._max_angle=10;this._min_angle=-10;if(options!=undefined) +this._set_options(options);this._max_count=this._get_max_count();self=this;this.eachTag(function(element,count){self._make_inline(element,count);self._set_size(element,count);self._set_tilt(element,count);});} +microTags.prototype.version=v;microTags.version=v;microTags.prototype._set_options=function(options){var max_size=options['max-size'],min_size=options['min-size'],max_angle=options['max-angle'],min_angle=options['min-angle'];if((max_size>=1)&&(max_size>min_size)) +this._max_size=max_size;else +throw error("option `max-size` must be >= 1 and > min-size");if((min_size>0)&&(min_size<max_size)) +this._min_size=min_size;else +throw error("option `min-size` must be > 0 and < max-size");if(max_angle>min_angle){this._max_angle=max_angle;this._min_angle=min_angle;} +else +throw error("option `max-angle` must be > `min-angle`");} +microTags.prototype.eachTag=function(callback){var i,child,tag,count;for(i=0;i<this._children.length;i++){child=this._children[i];if(child.attributes!=undefined){window._c=child;count=parseInt(child.attributes["data-count"].value||"1");callback(child,count);}}} +microTags.prototype._get_max_count=function(){var max=0;this.eachTag(function(element,count){max=(max<count)?count:max;});return max;} +microTags.prototype._make_inline=function(element,coun){element.style['display']='inline-block';} +microTags.prototype._set_size=function(element,count){var size,max=this._max_size,min=this._min_size,max_count=this._max_count;size=(count*max/max_count);size=(size>=min)?size:min;element.style['fontSize']=size+'em';} +microTags.prototype._set_tilt=function(element,count){var angle,max=this._max_angle,min=this._min_angle;angle=min+(Math.random()*(max-min));element.style['transform']='rotate('+angle+'deg)';element.style['MozTransform']='rotate('+angle+'deg)';element.style['OTransform']='rotate('+angle+'deg)';element.style['WebkitTransform']='rotate('+angle+'deg)';element.style['msTransform']='rotate('+angle+'deg)';} +if(win!=undefined){win.microTags=microTags;win.microTags.error=error;if(win.define&&win.define.call){win.define(function(){return microTags;});}}})(window.document,window,"0.3.2");
\ No newline at end of file diff --git a/dev-random2/templates/archives.html b/dev-random2/templates/archives.html new file mode 100644 index 0000000..3573bf2 --- /dev/null +++ b/dev-random2/templates/archives.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} + +{% block content_title %}{{ SITENAME }} — Archives{% endblock %} + +{%- block 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> +{% endblock content -%} diff --git a/dev-random2/templates/article.html b/dev-random2/templates/article.html new file mode 100644 index 0000000..78a736e --- /dev/null +++ b/dev-random2/templates/article.html @@ -0,0 +1,53 @@ +{%- if article.lang %}{% set DEFAULT_LANG = article.lang %}{% endif -%} +{% extends "base.html" %} + +{% block headers %} + {{ super() }} + <meta name="author" content="{{ article.author or DEFAULT_AUTHOR }}" /> + <meta name="keywords" content="{{ article.tags|join(', ') }}" /> + <link rel="stylesheet" media="not print" type="text/css" href="{{ SITEURL }}/theme/css/pygments.css" /> +{% endblock %} + +{% block title %}{{ article.title }} — {{ super() }}{% endblock %} + +{%- block content %} + <header class="post-header"> + <h1> + <a rel="bookmark" + href="{{ SITEURL }}/{{ article.url }}" + title="Lien permanent vers «{{ article.title }}»"> + {{ article.title }} + </a> + </h1> + <div class="meta"> + {% include "includes/article_meta.html" %} + </div> + </header> + <div class="post-content"> + {{ article.content}} + </div> + <footer class="post-footer"> + <div class="meta"> + Posté dans «<a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>» + par <a href="{{ SITEURL }}/{{ article.author.url }}">{{ article.author}}</a><br /> + Mots-clés: {% for tag in article.tags %} #<a href="{{ SITEURL }}/{{ tag.url }}">{{ 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 %} +{% endblock content -%} diff --git a/dev-random2/templates/author.html b/dev-random2/templates/author.html new file mode 100644 index 0000000..e323690 --- /dev/null +++ b/dev-random2/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-random2/templates/base.html b/dev-random2/templates/base.html new file mode 100644 index 0000000..548d6a4 --- /dev/null +++ b/dev-random2/templates/base.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html lang="{{ article.lang if article and article.lang else DEFAULT_LANG }}"> + <head> + {% block headers %} + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=endge, chrome=IE8" /> + <meta name="viewport" content="initial-scale=1.0, width=device-width, user-scalable=no" /> + <title>{% block title %}{{ SITENAME }}{%endblock%}</title> + <!--[if lte IE 8]><script type="text/javascript" src="{{ SITEURL }}/theme/js/html5shiv.js"></script><![endif]--> + <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/skeleton.css" /> + <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/theme.css" /> + <link rel="shortcut icon" type="image/png" href="{{ SITEURL }}/favicon.png" /> + <!--[if lte IE 8]><link rel="shortcut icon" type="image/x-icon" href="{{ SITEURL }}/favicon.ico" /><![endif]--> + <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 %} + {% endblock headers %} + </head> + <body> + <div id="page"> + <header id="page-head"> + <h1> + <a href="{{ SITEURL }}/index.html">{{ SITENAME }}</a> + </h1> + </header> + + <div id="page-body"> + <{%- if article %}article class="post" {% else %}section {% endif -%}id="page-main" role="main"> +{% block content %} +{% endblock content %} + </{%- if article %}article{% else %}section{% endif -%}> <!-- /#page-main --> + + <aside id="page-side"> + {%- include "includes/sidebar.html" -%} + </aside> <!-- /#page-side --> + </div> <!-- /#page-body --> + + <footer id="page-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> <!-- /#page --> + {% if GOOGLE_ANALYTICS %} + <script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', '{{ GOOGLE_ANALYTICS }}']); + _gaq.push(['_trackPageview']); + (function() { + var ga = document.createElement('script'); + ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + {% endif %} + </body> +</html> diff --git a/dev-random2/templates/categories.html b/dev-random2/templates/categories.html new file mode 100644 index 0000000..0a5b0f4 --- /dev/null +++ b/dev-random2/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-random2/templates/category.html b/dev-random2/templates/category.html new file mode 100644 index 0000000..0a5dade --- /dev/null +++ b/dev-random2/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-random2/templates/includes/article_meta.html b/dev-random2/templates/includes/article_meta.html new file mode 100644 index 0000000..21f4c7a --- /dev/null +++ b/dev-random2/templates/includes/article_meta.html @@ -0,0 +1,17 @@ +<!-- includes/article_meta.html --> + Le <time datetime="{{ article.date.isoformat() }}" pubdate="pubdate">{{ article.locale_date }}</time> + dans «<a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>» + par <a href="{{ SITEURL }}/{{ article.author.url }}">{{ article.author }}</a> + {%- if article.tags %} + <br />Mots-clés: + {%- for tag in article.tags %} + <a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>{% if not loop.last %}, {% endif %} + {% endfor -%} + {% endif -%} + {%- if article.translations %} + <br />Langues: + [<a href="{{ SITEURL }}/{{ article.url }}">{{ article.lang or DEFAULT_LANG }}</a>] + {%- for translation in article.translations %} + <a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a> + {% endfor -%} + {% endif -%} diff --git a/dev-random2/templates/includes/sidebar.html b/dev-random2/templates/includes/sidebar.html new file mode 100644 index 0000000..84d17e7 --- /dev/null +++ b/dev-random2/templates/includes/sidebar.html @@ -0,0 +1,53 @@ + + <!-- begin includes/sidebar.html --> + <nav> + <h3>Pages</h3> + <ul> + <li><a href="{{ SITEURL }}">Accueil</a></li> + <li><a href="{{ SITEURL }}/categories.html">Catégories</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)}}">{{ name }}</a></li> + {% endfor %} + {% endif %} + {% if DISPLAY_PAGES_ON_MENU %} + {% for p in PAGES %} + <li><a href="{{ SITEURL}}/{{ p.url }}"{% if p == page %} class="active"{% endif %}>{{ p.title }}</a></li> + {% endfor %} + {% endif %} + </ul> + </nav> + + {% if categories %} + <nav> + <h3>Catégories</h3> + <ul> + {% for cat, null in categories %} + <li{%- if cat == category %} class="active"{% endif -%}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li> + {% endfor %} + </ul> + </nav> + {% endif %} + + <nav> + <h3>Liens</h3> + <ul> + <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 %} + {% if SOCIAL %} + {% for name, url in SOCIAL %} + <li><a href="{{ url }}">{{ name }}</a></li> + {% endfor %} + {% endif %} + {% if LINKS %} + {% for name, url in LINKS %} + <li><a href="{{ url }}">{{ name }}</a></li> + {% endfor %} + {% endif %} + </ul> + </nav> + <!-- end includes/sidebar.html --> diff --git a/dev-random2/templates/index.html b/dev-random2/templates/index.html new file mode 100644 index 0000000..84ad5df --- /dev/null +++ b/dev-random2/templates/index.html @@ -0,0 +1,59 @@ +{% extends "base.html" %} + +{%- block content %} + <h1 class="small-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"> + <h1> + <a rel="bookmark" + href="{{ SITEURL }}/{{ article.url }}" + title="Lien permanent vers «{{ article.title }}»"> + {{ article.title }} + </a> + </h1> + <div class="meta"> + {% include "includes/article_meta.html" %} + </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> + {% set article = False %} + {% endfor %} + + {%- if articles_page %} + <nav id="pagination"> + {%- if articles_page.has_previous() %} + <a id="first_page" href="{{ SITEURL }}/{{ page_name }}.html"><<</a> + <a id="prev_page" href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() if articles_page.previous_page_number() != 1 else "" }}.html"><</a> + {% else %} + <!-- <span id="first_page" class="a inactive"><<</span> + <span id="first_page" class="a inactive"><</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">></a> + <a id="last_page" href="{{ SITEURL }}/{{ page_name }}{{ articles_paginator.num_pages }}.html">>></a> + {% else %} + <!-- <span id="next_page" class="a inactive">></span> + <span id="next_page" class="a inactive">>></span> --> + {% endif -%} + </nav> + {%- endif%} +{% endblock content -%} diff --git a/dev-random2/templates/page.html b/dev-random2/templates/page.html new file mode 100644 index 0000000..b52c807 --- /dev/null +++ b/dev-random2/templates/page.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{% block title %}{{ super() }} — {{ page.url }}{% endblock title %} + +{%- block content %} + <h1>{{ page.title }}</h1> + {{ page.content }} +{% endblock content -%} diff --git a/dev-random2/templates/tag.html b/dev-random2/templates/tag.html new file mode 100644 index 0000000..ca4fc94 --- /dev/null +++ b/dev-random2/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-random2/templates/tags.html b/dev-random2/templates/tags.html new file mode 100644 index 0000000..ad5d2ea --- /dev/null +++ b/dev-random2/templates/tags.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} + +{% block headers %} +{{ super() }} + <script type="text/javascript" src="{{ SITEURL }}/theme/js/microTags.js"></script> + <script> + function tag_cloud_init() { + var el = document.getElementById("tag-cloud"); + window._tagcloud = new microTags(el); + } + if (window.addEventListener) window.addEventListener("load", tag_cloud_init, false); + else if (window.attachEvent) window.attachEvent("onload", tag_cloud_init); + else window.onload = tag_cloud_init; + </script> +{% endblock headers %} + +{% block title %}{{ super() }} — Mots-clés{% endblock title %} + +{%- block content %} + <h1>Mots-clés</h1> + <ul id="tag-cloud"> + {% for tag, articles in tags %} + <li data-count="{{ articles|count }}"><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a></li> + {% endfor %} + </ul> +{% endblock content -%} |