aboutsummaryrefslogtreecommitdiffstats
path: root/photowall
diff options
context:
space:
mode:
Diffstat (limited to 'photowall')
-rw-r--r--photowall/photowall.jpgbin0 -> 205728 bytes
-rw-r--r--photowall/readme.md8
-rw-r--r--photowall/static/css/main.css505
-rw-r--r--photowall/static/css/pygment.css205
-rw-r--r--photowall/static/css/reset.css52
-rw-r--r--photowall/static/css/typogrify.css3
-rw-r--r--photowall/static/css/wide.css48
-rw-r--r--photowall/static/images/icons/aboutme.pngbin0 -> 751 bytes
-rw-r--r--photowall/static/images/icons/bitbucket.pngbin0 -> 3714 bytes
-rw-r--r--photowall/static/images/icons/delicious.pngbin0 -> 958 bytes
-rw-r--r--photowall/static/images/icons/facebook.pngbin0 -> 202 bytes
-rw-r--r--photowall/static/images/icons/github.pngbin0 -> 1714 bytes
-rw-r--r--photowall/static/images/icons/gitorious.pngbin0 -> 227 bytes
-rw-r--r--photowall/static/images/icons/gittip.pngbin0 -> 487 bytes
-rw-r--r--photowall/static/images/icons/google-groups.pngbin0 -> 803 bytes
-rw-r--r--photowall/static/images/icons/google-plus.pngbin0 -> 527 bytes
-rw-r--r--photowall/static/images/icons/hackernews.pngbin0 -> 3273 bytes
-rw-r--r--photowall/static/images/icons/lastfm.pngbin0 -> 975 bytes
-rw-r--r--photowall/static/images/icons/linkedin.pngbin0 -> 896 bytes
-rw-r--r--photowall/static/images/icons/reddit.pngbin0 -> 693 bytes
-rw-r--r--photowall/static/images/icons/rss.pngbin0 -> 879 bytes
-rw-r--r--photowall/static/images/icons/slideshare.pngbin0 -> 535 bytes
-rw-r--r--photowall/static/images/icons/speakerdeck.pngbin0 -> 1049 bytes
-rw-r--r--photowall/static/images/icons/stackoverflow.pngbin0 -> 916 bytes
-rw-r--r--photowall/static/images/icons/twitter.pngbin0 -> 830 bytes
-rw-r--r--photowall/static/images/icons/vimeo.pngbin0 -> 544 bytes
-rw-r--r--photowall/static/images/icons/youtube.pngbin0 -> 458 bytes
-rw-r--r--photowall/static/js/mousetrap.js1
-rw-r--r--photowall/templates/analytics.html46
-rw-r--r--photowall/templates/archives.html13
-rw-r--r--photowall/templates/article.html71
-rw-r--r--photowall/templates/article_infos.html9
-rw-r--r--photowall/templates/author.html2
-rw-r--r--photowall/templates/authors.html16
-rw-r--r--photowall/templates/base.html83
-rw-r--r--photowall/templates/category.html2
-rw-r--r--photowall/templates/comments.html1
-rw-r--r--photowall/templates/disqus_script.html11
-rw-r--r--photowall/templates/github.html9
-rw-r--r--photowall/templates/index.html35
-rw-r--r--photowall/templates/page.html12
-rw-r--r--photowall/templates/period_archives.html13
-rw-r--r--photowall/templates/tag.html2
-rw-r--r--photowall/templates/taglist.html2
-rw-r--r--photowall/templates/tags.html16
-rw-r--r--photowall/templates/translations.html8
-rw-r--r--photowall/templates/twitter.html3
47 files changed, 1176 insertions, 0 deletions
diff --git a/photowall/photowall.jpg b/photowall/photowall.jpg
new file mode 100644
index 0000000..69119d7
--- /dev/null
+++ b/photowall/photowall.jpg
Binary files differ
diff --git a/photowall/readme.md b/photowall/readme.md
new file mode 100644
index 0000000..3a94ecd
--- /dev/null
+++ b/photowall/readme.md
@@ -0,0 +1,8 @@
+== Photowall ==
+
+A very basic theme for Pelican for a simple image wall front page.
+
+
+=== Contact ===
+
+Twitter: @trawg
diff --git a/photowall/static/css/main.css b/photowall/static/css/main.css
new file mode 100644
index 0000000..5b310d6
--- /dev/null
+++ b/photowall/static/css/main.css
@@ -0,0 +1,505 @@
+/*
+ Name: Smashing HTML5
+ Date: July 2009
+ Description: Sample layout for HTML5 and CSS3 goodness.
+ Version: 1.0
+ License: MIT <http://opensource.org/licenses/MIT>
+ Licensed by: Smashing Media GmbH <http://www.smashingmagazine.com/>
+ Original author: Enrique Ramírez <http://enrique-ramirez.com/>
+*/
+
+/* Imports */
+@import url("reset.css");
+@import url("pygment.css");
+@import url("typogrify.css");
+@import url(//fonts.googleapis.com/css?family=Yanone+Kaffeesatz&subset=latin);
+
+/***** Global *****/
+/* Body */
+body {
+/* background: #F5F4EF; */ /* trog */
+ background: #fafafa;
+ color: #000305;
+ font-size: 87.5%; /* Base font size: 14px */
+ font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
+ line-height: 1.429;
+ margin: 0;
+ padding: 0;
+ text-align: left;
+}
+
+/* Headings */
+h1 {font-size: 2em }
+h2 {font-size: 1.571em} /* 22px */
+h3 {font-size: 1.429em} /* 20px */
+h4 {font-size: 1.286em} /* 18px */
+h5 {font-size: 1.143em} /* 16px */
+h6 {font-size: 1em} /* 14px */
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 400;
+ line-height: 1.1;
+ margin-bottom: .8em;
+ font-family: 'Yanone Kaffeesatz', arial, serif;
+}
+
+h3, h4, h5, h6 { margin-top: .8em; }
+
+hr { border: 2px solid #EEEEEE; }
+
+/* Anchors */
+a {outline: 0;}
+a img {border: 0px; text-decoration: none;}
+a:link, a:visited {
+ /*color: #C74350;*/ /*trog*/
+ color: #000000;
+ padding: 0 1px;
+ text-decoration: underline;
+}
+a:hover, a:active {
+ /*background-color: #C74350;*/
+ background-color: #000000;
+
+ color: #fff;
+ text-decoration: none;
+ text-shadow: 1px 1px 1px #333;
+}
+
+h1 a:hover {
+ background-color: inherit
+}
+
+/* Paragraphs */
+div.line-block,
+p { margin-top: 1em;
+ margin-bottom: 1em;}
+
+strong, b {font-weight: bold;}
+em, i {font-style: italic;}
+
+/* Lists */
+ul {
+ list-style: outside disc;
+ margin: 0em 0 0 1.5em;
+}
+
+ol {
+ list-style: outside decimal;
+ margin: 0em 0 0 1.5em;
+}
+
+li { margin-top: 0.5em;}
+
+.post-info {
+ float:right;
+ margin:10px;
+ padding:5px;
+}
+
+.post-info p{
+ margin-top: 1px;
+ margin-bottom: 1px;
+}
+
+.readmore { float: right }
+
+dl {margin: 0 0 1.5em 0;}
+dt {font-weight: bold;}
+dd {margin-left: 1.5em;}
+
+pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;}
+
+/* Quotes */
+blockquote {
+ margin: 20px;
+ font-style: italic;
+}
+cite {}
+
+q {}
+
+div.note {
+ float: right;
+ margin: 5px;
+ font-size: 85%;
+ max-width: 300px;
+}
+
+/* Tables */
+table {margin: .5em auto 1.5em auto; width: 98%;}
+
+ /* Thead */
+ thead th {padding: .5em .4em; text-align: left;}
+ thead td {}
+
+ /* Tbody */
+ tbody td {padding: .5em .4em;}
+ tbody th {}
+
+ tbody .alt td {}
+ tbody .alt th {}
+
+ /* Tfoot */
+ tfoot th {}
+ tfoot td {}
+
+/* HTML5 tags */
+header, section, footer,
+aside, nav, article, figure {
+ display: block;
+}
+
+/***** Layout *****/
+.body {clear: both; margin: 0 auto; width: 800px;}
+img.right, figure.right {float: right; margin: 0 0 2em 2em;}
+img.left, figure.left {float: left; margin: 0 2em 2em 0;}
+
+/*
+ Header
+*****************/
+#banner {
+ margin: 0 auto;
+ padding: 2.5em 0 0 0;
+}
+
+ /* Banner */
+ #banner h1 {font-size: 3.571em; line-height: 0;}
+ #banner h1 a:link, #banner h1 a:visited {
+ color: #000305;
+ display: block;
+ font-weight: bold;
+ margin: 0 0 .6em .2em;
+ text-decoration: none;
+ }
+ #banner h1 a:hover, #banner h1 a:active {
+ background: none;
+ /*color: #C74350;*/ /*trog*/
+ color: #000000;
+ text-shadow: none;
+ }
+
+ #banner h1 strong {font-size: 0.36em; font-weight: normal;}
+
+ /* Main Nav */
+ #banner nav {
+ background: #000305;
+ font-size: 1.143em;
+ height: 40px;
+ line-height: 30px;
+ margin: 0 auto 2em auto;
+ padding: 0;
+ text-align: center;
+ width: 800px;
+
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ }
+
+ #banner nav ul {list-style: none; margin: 0 auto; width: 800px;}
+ #banner nav li {float: left; display: inline; margin: 0;}
+
+ #banner nav a:link, #banner nav a:visited {
+ color: #fff;
+ display: inline-block;
+ height: 30px;
+ padding: 5px 1.5em;
+ text-decoration: none;
+ }
+ #banner nav a:hover, #banner nav a:active,
+ #banner nav .active a:link, #banner nav .active a:visited {
+ /*background: #C74350;*/ /*trog*/
+ background: #000000;
+
+ color: #fff;
+ text-shadow: none !important;
+ }
+
+ #banner nav li:first-child a {
+ border-top-left-radius: 5px;
+ -moz-border-radius-topleft: 5px;
+ -webkit-border-top-left-radius: 5px;
+
+ border-bottom-left-radius: 5px;
+ -moz-border-radius-bottomleft: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ }
+
+/*
+ Featured
+*****************/
+#featured {
+ background: #fff;
+ margin-bottom: 2em;
+ overflow: hidden;
+ padding: 20px;
+ /* trog width: 760px;*/
+ width: 906px;
+
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+}
+
+#featured figure {
+ border: 2px solid #eee;
+ float: right;
+ margin: 0.786em 2em 0 5em;
+ width: 248px;
+}
+#featured figure img {display: block; float: right;}
+
+#featured h2 {color: #000000; font-size: 1.714em; margin-bottom: 0.333em;}
+#featured h3 {font-size: 1.429em; margin-bottom: .5em;}
+
+#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;}
+#featured h3 a:hover, #featured h3 a:active {color: #fff;}
+
+/*
+ Body
+*****************/
+#content {
+ background: #fff;
+ margin-bottom: 2em;
+ overflow: hidden;
+ padding: 20px 20px;
+ /* trog width: 760px;*/
+ width: 906px;
+
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+}
+
+#pagecontent {
+ background: #fff;
+ margin-bottom: 2em;
+ overflow: hidden;
+ padding: 20px 20px;
+ /* trog width: 760px;*/
+ width: 1024px;
+
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+}
+
+
+/*
+ Extras
+*****************/
+#extras {margin: 0 auto 3em auto; overflow: hidden;}
+
+#extras ul {list-style: none; margin: 0;}
+#extras li {border-bottom: 1px solid #fff;}
+#extras h2 {
+ color: #000000;
+ font-size: 1.429em;
+ margin-bottom: .25em;
+ padding: 0 3px;
+}
+
+#extras a:link, #extras a:visited {
+ color: #444;
+ display: block;
+ border-bottom: 1px solid #F4E3E3;
+ text-decoration: none;
+ padding: .3em .25em;
+}
+
+#extras a:hover, #extras a:active {color: #fff;}
+
+ /* Blogroll */
+ #extras .blogroll {
+ float: left;
+ width: 615px;
+ }
+
+ #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;}
+
+ /* Social */
+ #extras .social {
+ float: right;
+ width: 175px;
+ }
+
+ #extras div[class='social'] a {
+ background-repeat: no-repeat;
+ background-position: 3px 6px;
+ padding-left: 25px;
+ }
+
+ /* Icons */
+ .social a[href*='about.me'] {background-image: url('../images/icons/aboutme.png');}
+ .social a[href*='bitbucket.org'] {background-image: url('../images/icons/bitbucket.png');}
+ .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');}
+ .social a[href*='digg.com'] {background-image: url('../images/icons/digg.png');}
+ .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');}
+ .social a[href*='gitorious.org'] {background-image: url('../images/icons/gitorious.png');}
+ .social a[href*='github.com'],
+ .social a[href*='git.io'] {
+ background-image: url('../images/icons/github.png');
+ background-size: 16px 16px;
+ }
+ .social a[href*='gittip.com'] {background-image: url('../images/icons/gittip.png');}
+ .social a[href*='plus.google.com'] {background-image: url('../images/icons/google-plus.png');}
+ .social a[href*='groups.google.com'] {background-image: url('../images/icons/google-groups.png');}
+ .social a[href*='news.ycombinator.com'],
+ .social a[href*='hackernewsers.com'] {background-image: url('../images/icons/hackernews.png');}
+ .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');}
+ .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');}
+ .social a[href*='reddit.com'] {background-image: url('../images/icons/reddit.png');}
+ .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');}
+ .social a[href*='slideshare.net'] {background-image: url('../images/icons/slideshare.png');}
+ .social a[href*='speakerdeck.com'] {background-image: url('../images/icons/speakerdeck.png');}
+ .social a[href*='stackoverflow.com'] {background-image: url('../images/icons/stackoverflow.png');}
+ .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');}
+ .social a[href*='vimeo.com'] {background-image: url('../images/icons/vimeo.png');}
+ .social a[href*='youtube.com'] {background-image: url('../images/icons/youtube.png');}
+
+/*
+ About
+*****************/
+#about {
+ background: #fff;
+ font-style: normal;
+ margin-bottom: 2em;
+ overflow: hidden;
+ padding: 20px;
+ text-align: left;
+ /* trog width: 760px;*/
+ width: 906px;
+
+
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+}
+
+#about .primary {float: left; width: 165px;}
+#about .primary strong {color: #C64350; display: block; font-size: 1.286em;}
+#about .photo {float: left; margin: 5px 20px;}
+
+#about .url:link, #about .url:visited {text-decoration: none;}
+
+#about .bio {float: right; width: 500px;}
+
+/*
+ Footer
+*****************/
+#contentinfo {padding-bottom: 2em; text-align: right;}
+
+/***** Sections *****/
+/* Blog */
+.hentry {
+ display: block;
+ clear: both;
+ border-bottom: 1px solid #eee;
+ padding: 1.5em 0;
+}
+li:last-child .hentry, #content > .hentry {border: 0; margin: 0;}
+#content > .hentry {padding: 1em 0;}
+.hentry img{display : none ;}
+.entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;}
+.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;}
+.entry-title a:visited {background-color: #fff;}
+
+.hentry .post-info * {font-style: normal;}
+
+ /* Content */
+ .hentry footer {margin-bottom: 2em;}
+ .hentry footer address {display: inline;}
+ #posts-list footer address {display: block;}
+
+ /* Blog Index */
+ #posts-list {list-style: none; margin: 0;}
+ #posts-list .hentry {padding-left: 10px; position: relative;}
+
+ #posts-list footer {
+ left: 10px;
+ position: relative;
+ float: left;
+ top: 0.5em;
+ width: 190px;
+ }
+
+ /* About the Author */
+ #about-author {
+ background: #f9f9f9;
+ clear: both;
+ font-style: normal;
+ margin: 2em 0;
+ padding: 10px 20px 15px 20px;
+
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ }
+
+ #about-author strong {
+ color: #C64350;
+ clear: both;
+ display: block;
+ font-size: 1.429em;
+ }
+
+ #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;}
+
+ /* Comments */
+ #comments-list {list-style: none; margin: 0 1em;}
+ #comments-list blockquote {
+ background: #f8f8f8;
+ clear: both;
+ font-style: normal;
+ margin: 0;
+ padding: 15px 20px;
+
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ }
+ #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;}
+
+ #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;}
+
+ /* Add a Comment */
+ #add-comment label {clear: left; float: left; text-align: left; width: 150px;}
+ #add-comment input[type='text'],
+ #add-comment input[type='email'],
+ #add-comment input[type='url'] {float: left; width: 200px;}
+
+ #add-comment textarea {float: left; height: 150px; width: 495px;}
+
+ #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;}
+
+ #add-comment input[type='submit'] {float: right; margin: 0 .5em;}
+ #add-comment * {margin-bottom: .5em;}
+
+/** Greyscale filter stuff **/
+.bw {
+ filter: grayscale(1);
+ -webkit-filter: grayscale(1);
+ width: 200px;
+ padding: 11px;
+}
+
+.greyoff {
+ filter: grayscale(0);
+ -webkit-filter: grayscale(0);
+ transition-property: filter;
+ transition-duration: 1s;
+ -webkit-transition: 1s -webkit-filter linear;
+ width: 200px;
+ padding: 11px;
+}
+
+.greyon {
+ filter: grayscale(1);
+ -webkit-filter: grayscale(1);
+ transition-property: filter;
+ transition-duration: 5s;
+ -webkit-transition: 1s -webkit-filter linear;
+ width: 200px;
+ padding: 11px;
+}
+
diff --git a/photowall/static/css/pygment.css b/photowall/static/css/pygment.css
new file mode 100644
index 0000000..fdd056f
--- /dev/null
+++ b/photowall/static/css/pygment.css
@@ -0,0 +1,205 @@
+.hll {
+background-color:#eee;
+}
+.c {
+color:#408090;
+font-style:italic;
+}
+.err {
+border:1px solid #FF0000;
+}
+.k {
+color:#007020;
+font-weight:bold;
+}
+.o {
+color:#666666;
+}
+.cm {
+color:#408090;
+font-style:italic;
+}
+.cp {
+color:#007020;
+}
+.c1 {
+color:#408090;
+font-style:italic;
+}
+.cs {
+background-color:#FFF0F0;
+color:#408090;
+}
+.gd {
+color:#A00000;
+}
+.ge {
+font-style:italic;
+}
+.gr {
+color:#FF0000;
+}
+.gh {
+color:#000080;
+font-weight:bold;
+}
+.gi {
+color:#00A000;
+}
+.go {
+color:#303030;
+}
+.gp {
+color:#C65D09;
+font-weight:bold;
+}
+.gs {
+font-weight:bold;
+}
+.gu {
+color:#800080;
+font-weight:bold;
+}
+.gt {
+color:#0040D0;
+}
+.kc {
+color:#007020;
+font-weight:bold;
+}
+.kd {
+color:#007020;
+font-weight:bold;
+}
+.kn {
+color:#007020;
+font-weight:bold;
+}
+.kp {
+color:#007020;
+}
+.kr {
+color:#007020;
+font-weight:bold;
+}
+.kt {
+color:#902000;
+}
+.m {
+color:#208050;
+}
+.s {
+color:#4070A0;
+}
+.na {
+color:#4070A0;
+}
+.nb {
+color:#007020;
+}
+.nc {
+color:#0E84B5;
+font-weight:bold;
+}
+.no {
+color:#60ADD5;
+}
+.nd {
+color:#555555;
+font-weight:bold;
+}
+.ni {
+color:#D55537;
+font-weight:bold;
+}
+.ne {
+color:#007020;
+}
+.nf {
+color:#06287E;
+}
+.nl {
+color:#002070;
+font-weight:bold;
+}
+.nn {
+color:#0E84B5;
+font-weight:bold;
+}
+.nt {
+color:#062873;
+font-weight:bold;
+}
+.nv {
+color:#BB60D5;
+}
+.ow {
+color:#007020;
+font-weight:bold;
+}
+.w {
+color:#BBBBBB;
+}
+.mf {
+color:#208050;
+}
+.mh {
+color:#208050;
+}
+.mi {
+color:#208050;
+}
+.mo {
+color:#208050;
+}
+.sb {
+color:#4070A0;
+}
+.sc {
+color:#4070A0;
+}
+.sd {
+color:#4070A0;
+font-style:italic;
+}
+.s2 {
+color:#4070A0;
+}
+.se {
+color:#4070A0;
+font-weight:bold;
+}
+.sh {
+color:#4070A0;
+}
+.si {
+color:#70A0D0;
+font-style:italic;
+}
+.sx {
+color:#C65D09;
+}
+.sr {
+color:#235388;
+}
+.s1 {
+color:#4070A0;
+}
+.ss {
+color:#517918;
+}
+.bp {
+color:#007020;
+}
+.vc {
+color:#BB60D5;
+}
+.vg {
+color:#BB60D5;
+}
+.vi {
+color:#BB60D5;
+}
+.il {
+color:#208050;
+}
diff --git a/photowall/static/css/reset.css b/photowall/static/css/reset.css
new file mode 100644
index 0000000..1e21756
--- /dev/null
+++ b/photowall/static/css/reset.css
@@ -0,0 +1,52 @@
+/*
+ Name: Reset Stylesheet
+ Description: Resets browser's default CSS
+ Author: Eric Meyer
+ Author URI: http://meyerweb.com/eric/tools/css/reset/
+*/
+
+/* v1.0 | 20080212 */
+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, font, 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 {
+ background: transparent;
+ border: 0;
+ font-size: 100%;
+ margin: 0;
+ outline: 0;
+ padding: 0;
+ vertical-align: baseline;
+}
+
+body {line-height: 1;}
+
+ol, ul {list-style: none;}
+
+blockquote, q {quotes: none;}
+
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {text-decoration: none;}
+del {text-decoration: line-through;}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+} \ No newline at end of file
diff --git a/photowall/static/css/typogrify.css b/photowall/static/css/typogrify.css
new file mode 100644
index 0000000..c9b34dc
--- /dev/null
+++ b/photowall/static/css/typogrify.css
@@ -0,0 +1,3 @@
+.caps {font-size:.92em;}
+.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;}
+.dquo {margin-left:-.38em;}
diff --git a/photowall/static/css/wide.css b/photowall/static/css/wide.css
new file mode 100644
index 0000000..88fd59c
--- /dev/null
+++ b/photowall/static/css/wide.css
@@ -0,0 +1,48 @@
+@import url("main.css");
+
+body {
+ font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif;
+}
+
+.post-info{
+ display: none;
+}
+
+#banner nav {
+ display: none;
+ -moz-border-radius: 0px;
+ margin-bottom: 20px;
+ overflow: hidden;
+ font-size: 1em;
+ background: #F5F4EF;
+}
+
+#banner nav ul{
+ padding-right: 50px;
+}
+
+#banner nav li{
+ float: right;
+ color: #000;
+}
+
+#banner nav li a {
+ color: #000;
+}
+
+#banner h1 {
+ margin-bottom: -18px;
+}
+
+#featured, #extras {
+ padding: 50px;
+}
+
+#featured {
+ padding-top: 20px;
+}
+
+#extras {
+ padding-top: 0px;
+ padding-bottom: 0px;
+}
diff --git a/photowall/static/images/icons/aboutme.png b/photowall/static/images/icons/aboutme.png
new file mode 100644
index 0000000..9609df3
--- /dev/null
+++ b/photowall/static/images/icons/aboutme.png
Binary files differ
diff --git a/photowall/static/images/icons/bitbucket.png b/photowall/static/images/icons/bitbucket.png
new file mode 100644
index 0000000..d05ba16
--- /dev/null
+++ b/photowall/static/images/icons/bitbucket.png
Binary files differ
diff --git a/photowall/static/images/icons/delicious.png b/photowall/static/images/icons/delicious.png
new file mode 100644
index 0000000..3dccdd8
--- /dev/null
+++ b/photowall/static/images/icons/delicious.png
Binary files differ
diff --git a/photowall/static/images/icons/facebook.png b/photowall/static/images/icons/facebook.png
new file mode 100644
index 0000000..74e7ad5
--- /dev/null
+++ b/photowall/static/images/icons/facebook.png
Binary files differ
diff --git a/photowall/static/images/icons/github.png b/photowall/static/images/icons/github.png
new file mode 100644
index 0000000..8b25551
--- /dev/null
+++ b/photowall/static/images/icons/github.png
Binary files differ
diff --git a/photowall/static/images/icons/gitorious.png b/photowall/static/images/icons/gitorious.png
new file mode 100644
index 0000000..3eeb3ec
--- /dev/null
+++ b/photowall/static/images/icons/gitorious.png
Binary files differ
diff --git a/photowall/static/images/icons/gittip.png b/photowall/static/images/icons/gittip.png
new file mode 100644
index 0000000..af94962
--- /dev/null
+++ b/photowall/static/images/icons/gittip.png
Binary files differ
diff --git a/photowall/static/images/icons/google-groups.png b/photowall/static/images/icons/google-groups.png
new file mode 100644
index 0000000..5de15e6
--- /dev/null
+++ b/photowall/static/images/icons/google-groups.png
Binary files differ
diff --git a/photowall/static/images/icons/google-plus.png b/photowall/static/images/icons/google-plus.png
new file mode 100644
index 0000000..3c6b743
--- /dev/null
+++ b/photowall/static/images/icons/google-plus.png
Binary files differ
diff --git a/photowall/static/images/icons/hackernews.png b/photowall/static/images/icons/hackernews.png
new file mode 100644
index 0000000..fc7a82d
--- /dev/null
+++ b/photowall/static/images/icons/hackernews.png
Binary files differ
diff --git a/photowall/static/images/icons/lastfm.png b/photowall/static/images/icons/lastfm.png
new file mode 100644
index 0000000..3a6c626
--- /dev/null
+++ b/photowall/static/images/icons/lastfm.png
Binary files differ
diff --git a/photowall/static/images/icons/linkedin.png b/photowall/static/images/icons/linkedin.png
new file mode 100644
index 0000000..d29c120
--- /dev/null
+++ b/photowall/static/images/icons/linkedin.png
Binary files differ
diff --git a/photowall/static/images/icons/reddit.png b/photowall/static/images/icons/reddit.png
new file mode 100644
index 0000000..71ae121
--- /dev/null
+++ b/photowall/static/images/icons/reddit.png
Binary files differ
diff --git a/photowall/static/images/icons/rss.png b/photowall/static/images/icons/rss.png
new file mode 100644
index 0000000..7862c65
--- /dev/null
+++ b/photowall/static/images/icons/rss.png
Binary files differ
diff --git a/photowall/static/images/icons/slideshare.png b/photowall/static/images/icons/slideshare.png
new file mode 100644
index 0000000..ecc9741
--- /dev/null
+++ b/photowall/static/images/icons/slideshare.png
Binary files differ
diff --git a/photowall/static/images/icons/speakerdeck.png b/photowall/static/images/icons/speakerdeck.png
new file mode 100644
index 0000000..087d093
--- /dev/null
+++ b/photowall/static/images/icons/speakerdeck.png
Binary files differ
diff --git a/photowall/static/images/icons/stackoverflow.png b/photowall/static/images/icons/stackoverflow.png
new file mode 100644
index 0000000..f5b65e9
--- /dev/null
+++ b/photowall/static/images/icons/stackoverflow.png
Binary files differ
diff --git a/photowall/static/images/icons/twitter.png b/photowall/static/images/icons/twitter.png
new file mode 100644
index 0000000..d0ef3cc
--- /dev/null
+++ b/photowall/static/images/icons/twitter.png
Binary files differ
diff --git a/photowall/static/images/icons/vimeo.png b/photowall/static/images/icons/vimeo.png
new file mode 100644
index 0000000..dba4720
--- /dev/null
+++ b/photowall/static/images/icons/vimeo.png
Binary files differ
diff --git a/photowall/static/images/icons/youtube.png b/photowall/static/images/icons/youtube.png
new file mode 100644
index 0000000..ce6cbe4
--- /dev/null
+++ b/photowall/static/images/icons/youtube.png
Binary files differ
diff --git a/photowall/static/js/mousetrap.js b/photowall/static/js/mousetrap.js
new file mode 100644
index 0000000..9f0292b
--- /dev/null
+++ b/photowall/static/js/mousetrap.js
@@ -0,0 +1 @@
+/* mousetrap v1.5.2 craig.is/killing/mice */(function(C,r,g){function t(a,b,h){a.addEventListener?a.addEventListener(b,h,!1):a.attachEvent("on"+b,h)}function x(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return l[a.which]?l[a.which]:p[a.which]?p[a.which]:String.fromCharCode(a.which).toLowerCase()}function D(a){var b=[];a.shiftKey&&b.push("shift");a.altKey&&b.push("alt");a.ctrlKey&&b.push("ctrl");a.metaKey&&b.push("meta");return b}function u(a){return"shift"==a||"ctrl"==a||"alt"==a||"meta"==a}function y(a,b){var h,c,e,g=[];h=a;"+"===h?h=["+"]:(h=h.replace(/\+{2}/g,"+plus"),h=h.split("+"));for(e=0;e<h.length;++e)c=h[e],z[c]&&(c=z[c]),b&&"keypress"!=b&&A[c]&&(c=A[c],g.push("shift")),u(c)&&g.push(c);h=c;e=b;if(!e){if(!k){k={};for(var m in l)95<m&&112>m||l.hasOwnProperty(m)&&(k[l[m]]=m)}e=k[h]?"keydown":"keypress"}"keypress"==e&&g.length&&(e="keydown");return{key:c,modifiers:g,action:e}}function B(a,b){return a===r?!1:a===b?!0:B(a.parentNode,b)}function c(a){function b(a){a=a||{};var b=!1,n;for(n in q)a[n]?b=!0:q[n]=0;b||(v=!1)}function h(a,b,n,f,c,h){var g,e,l=[],m=n.type;if(!d._callbacks[a])return[];"keyup"==m&&u(a)&&(b=[a]);for(g=0;g<d._callbacks[a].length;++g)if(e=d._callbacks[a][g],(f||!e.seq||q[e.seq]==e.level)&&m==e.action){var k;(k="keypress"==m&&!n.metaKey&&!n.ctrlKey)||(k=e.modifiers,k=b.sort().join(",")===k.sort().join(","));k&&(k=f&&e.seq==f&&e.level==h,(!f&&e.combo==c||k)&&d._callbacks[a].splice(g,1),l.push(e))}return l}function g(a,b,n,f){d.stopCallback(b,b.target||b.srcElement,n,f)||!1!==a(b,n)||(b.preventDefault?b.preventDefault():b.returnValue=!1,b.stopPropagation?b.stopPropagation():b.cancelBubble=!0)}function e(a){"number"!==typeof a.which&&(a.which=a.keyCode);var b=x(a);b&&("keyup"==a.type&&w===b?w=!1:d.handleKey(b,D(a),a))}function l(a,c,n,f){function e(c){return function(){v=c;++q[a];clearTimeout(k);k=setTimeout(b,1E3)}}function h(c){g(n,c,a);"keyup"!==f&&(w=x(c));setTimeout(b,10)}for(var d=q[a]=0;d<c.length;++d){var p=d+1===c.length?h:e(f||y(c[d+1]).action);m(c[d],p,f,a,d)}}function m(a,b,c,f,e){d._directMap[a+":"+c]=b;a=a.replace(/\s+/g," ");var g=a.split(" ");1<g.length?l(a,g,b,c):(c=y(a,c),d._callbacks[c.key]=d._callbacks[c.key]||[],h(c.key,c.modifiers,{type:c.action},f,a,e),d._callbacks[c.key][f?"unshift":"push"]({callback:b,modifiers:c.modifiers,action:c.action,seq:f,level:e,combo:a}))}var d=this;a=a||r;if(!(d instanceof c))return new c(a);d.target=a;d._callbacks={};d._directMap={};var q={},k,w=!1,p=!1,v=!1;d._handleKey=function(a,c,e){var f=h(a,c,e),d;c={};var k=0,l=!1;for(d=0;d<f.length;++d)f[d].seq&&(k=Math.max(k,f[d].level));for(d=0;d<f.length;++d)f[d].seq?f[d].level==k&&(l=!0,c[f[d].seq]=1,g(f[d].callback,e,f[d].combo,f[d].seq)):l||g(f[d].callback,e,f[d].combo);f="keypress"==e.type&&p;e.type!=v||u(a)||f||b(c);p=l&&"keydown"==e.type};d._bindMultiple=function(a,b,c){for(var d=0;d<a.length;++d)m(a[d],b,c)};t(a,"keypress",e);t(a,"keydown",e);t(a,"keyup",e)}var l={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},p={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},A={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},z={option:"alt",command:"meta","return":"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},k;for(g=1;20>g;++g)l[111+g]="f"+g;for(g=0;9>=g;++g)l[g+96]=g;c.prototype.bind=function(a,b,c){a=a instanceof Array?a:[a];this._bindMultiple.call(this,a,b,c);return this};c.prototype.unbind=function(a,b){return this.bind.call(this,a,function(){},b)};c.prototype.trigger=function(a,b){if(this._directMap[a+":"+b])this._directMap[a+":"+b]({},a);return this};c.prototype.reset=function(){this._callbacks={};this._directMap={};return this};c.prototype.stopCallback=function(a,b){return-1<(" "+b.className+" ").indexOf(" mousetrap ")||B(b,this.target)?!1:"INPUT"==b.tagName||"SELECT"==b.tagName||"TEXTAREA"==b.tagName||b.isContentEditable};c.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)};c.init=function(){var a=c(r),b;for(b in a)"_"!==b.charAt(0)&&(c[b]=function(b){return function(){return a[b].apply(a,arguments)}}(b))};c.init();C.Mousetrap=c;"undefined"!==typeof module&&module.exports&&(module.exports=c);"function"===typeof define&&define.amd&&define(function(){return c})})(window,document);
diff --git a/photowall/templates/analytics.html b/photowall/templates/analytics.html
new file mode 100644
index 0000000..e27adf8
--- /dev/null
+++ b/photowall/templates/analytics.html
@@ -0,0 +1,46 @@
+{% 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 %}
+{% if GAUGES %}
+ <script type="text/javascript">
+ var _gauges = _gauges || [];
+ (function() {
+ var t = document.createElement('script');
+ t.type = 'text/javascript';
+ t.async = true;
+ t.id = 'gauges-tracker';
+ t.setAttribute('data-site-id', '{{GAUGES}}');
+ t.src = '//secure.gaug.es/track.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(t, s);
+ })();
+ </script>
+{% endif %}
+{% if PIWIK_URL and PIWIK_SITE_ID %}
+ <script type="text/javascript">
+ {% if PIWIK_SSL_URL %}
+ var pkBaseURL = "{{ PIWIK_SSL_URL }}";
+ {% else %}
+ var pkBaseURL = "{{ PIWIK_URL }}";
+ {% endif %}
+ var _paq = _paq || [];
+ _paq.push(["trackPageView"]);
+ _paq.push(["enableLinkTracking"]);
+ (function() {
+ var u=(("https:" == document.location.protocol) ? "https" : "http")+"://"+pkBaseURL+"/";
+ _paq.push(["setTrackerUrl", u+"piwik.php"]);
+ _paq.push(["setSiteId", "{{ PIWIK_SITE_ID }}"]);
+ var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
+ g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
+ })();
+ </script>
+{% endif %}
diff --git a/photowall/templates/archives.html b/photowall/templates/archives.html
new file mode 100644
index 0000000..f678494
--- /dev/null
+++ b/photowall/templates/archives.html
@@ -0,0 +1,13 @@
+{% extends "base.html" %}
+{% block content %}
+<section id="content" class="body">
+<h1>Archives for {{ SITENAME }}</h1>
+
+<dl>
+{% for article in dates %}
+ <dt>{{ article.locale_date }}</dt>
+ <dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
+{% endfor %}
+</dl>
+</section>
+{% endblock %}
diff --git a/photowall/templates/article.html b/photowall/templates/article.html
new file mode 100644
index 0000000..5666ae7
--- /dev/null
+++ b/photowall/templates/article.html
@@ -0,0 +1,71 @@
+{% extends "base.html" %}
+{% block title %}{{ article.title|striptags }}{% endblock %}
+{% block content %}
+<section id="pagecontent" class="body">
+ <script>
+ Mousetrap.bind('left', prev);
+ Mousetrap.bind('right', next);
+
+
+ function prev(element)
+ {
+ document.getElementById('prev').click();
+ }
+ function next(element)
+ {
+ document.getElementById('next').click();
+ }
+ </script>
+ <article>
+ <header>
+ <div>
+ <div style="float:left">
+ <h1 class="entry-title">
+ <a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
+ title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
+ </h1>
+ </div>
+ <div style="float:right"><h2>{% include 'article_infos.html' %}</h2></div>
+ </div>
+
+ <div style="clear:both"></div>
+
+ {% if article.prev_article %}
+ <div style="float:left">
+ <a href="{{ SITEURL }}/{{ article.prev_article.url}}" id="prev">
+ Previous: {{ article.prev_article.title }}
+ </a>
+ </div>
+ {% endif %}
+ {% if article.next_article %}
+ <div style="float:right">
+ <a href="{{ SITEURL }}/{{ article.next_article.url}}" id="next">
+ Next: {{ article.next_article.title }}
+ </a>
+ </div>
+ {% endif %}
+ {% include 'twitter.html' %}
+ </header>
+ {{ article.content }}
+
+ {% if DISQUS_SITENAME and SITEURL and article.status != "draft" %}
+ <div class="comments">
+ <h2>Comments !</h2>
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ var disqus_shortname = '{{ DISQUS_SITENAME }}';
+ var disqus_identifier = '{{ article.url }}';
+ var disqus_url = '{{ SITEURL }}/{{ article.url }}';
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//{{ DISQUS_SITENAME }}.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the comments.</noscript>
+ </div>
+ {% endif %}
+
+ </article>
+</section>
+{% endblock %}
diff --git a/photowall/templates/article_infos.html b/photowall/templates/article_infos.html
new file mode 100644
index 0000000..0bca8ca
--- /dev/null
+++ b/photowall/templates/article_infos.html
@@ -0,0 +1,9 @@
+ <abbr class="published" title="{{ article.date.isoformat() }}">
+ {{ article.locale_date }}
+ </abbr>
+ {% if article.modified %}
+ <br />
+ <abbr class="modified" title="{{ article.modified.isoformat() }}">
+ Updated: {{ article.locale_modified }}
+ </abbr>
+ {% endif %}
diff --git a/photowall/templates/author.html b/photowall/templates/author.html
new file mode 100644
index 0000000..0b37290
--- /dev/null
+++ b/photowall/templates/author.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ author }}{% endblock %}
diff --git a/photowall/templates/authors.html b/photowall/templates/authors.html
new file mode 100644
index 0000000..e61a332
--- /dev/null
+++ b/photowall/templates/authors.html
@@ -0,0 +1,16 @@
+{% extends "base.html" %}
+
+{% block title %}{{ SITENAME }} - Authors{% endblock %}
+
+{% block content %}
+
+<section id="content" class="body">
+ <h1>Authors on {{ SITENAME }}</h1>
+ <ul>
+ {% for author, articles in authors|sort %}
+ <li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
+ {% endfor %}
+ </ul>
+</section>
+
+{% endblock %}
diff --git a/photowall/templates/base.html b/photowall/templates/base.html
new file mode 100644
index 0000000..f5c01eb
--- /dev/null
+++ b/photowall/templates/base.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="{{ DEFAULT_LANG }}">
+<head>
+ <meta charset="utf-8" />
+ <title>{% block title %}{{ SITENAME }}{%endblock%}</title>
+ <link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" />
+ {% if FEED_ALL_ATOM %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
+ {% endif %}
+ {% if FEED_ALL_RSS %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
+ {% endif %}
+
+ <!--[if IE]>
+ <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/js/mousetrap.js"> </script>
+</head>
+
+<body id="index" class="home">
+<script>
+function greyoff(img)
+{
+ document.getElementById(img).className = "greyoff";
+}
+
+function greyon(img)
+{
+ document.getElementById(img).className = "greyon";
+}
+</script>
+
+{% include 'github.html' %}
+ <header id="banner" class="body">
+ <h1><a href="{{ SITEURL }}/">{{ SITENAME }} {% if SITESUBTITLE %} <strong>{{ SITESUBTITLE }}</strong>{% endif %}</a></h1>
+ <!--nav><ul>
+ {% for title, link in MENUITEMS %}
+ <li><a href="{{ link }}">{{ title }}</a></li>
+ {% endfor %}
+ {% if DISPLAY_PAGES_ON_MENU -%}
+ {% for pg in PAGES %}
+ <li{% if pg == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ pg.url }}">{{ pg.title }}</a></li>
+ {% endfor %}
+ {% endif %}
+ {% if DISPLAY_CATEGORIES_ON_MENU -%}
+ {% for cat, null in categories %}
+ <li{% if cat == category %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
+ {% endfor %}
+ {% endif %}
+ </ul></nav-->
+ </header><!-- /#banner -->
+ {% block content %}
+ {% endblock %}
+ <section id="extras" class="body">
+ {% if LINKS %}
+ {% endif %}
+ {% if SOCIAL or FEED_ALL_ATOM or FEED_ALL_RSS %}
+ <div class="social">
+ <ul>
+ {% if FEED_ALL_ATOM %}
+ <li><a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate">atom feed</a></li>
+ {% endif %}
+ {% if FEED_ALL_RSS %}
+ <li><a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate">rss feed</a></li>
+ {% endif %}
+
+ {% for name, link in SOCIAL %}
+ <li><a href="{{ link }}">{{ name }}</a></li>
+ {% endfor %}
+ </ul>
+ </div><!-- /.social -->
+ {% endif %}
+ </section><!-- /#extras -->
+
+ <footer id="contentinfo" class="body">
+ <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
+ </footer><!-- /#contentinfo -->
+
+{% include 'analytics.html' %}
+{% include 'disqus_script.html' %}
+</body>
+</html>
diff --git a/photowall/templates/category.html b/photowall/templates/category.html
new file mode 100644
index 0000000..56f8e93
--- /dev/null
+++ b/photowall/templates/category.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ category }}{% endblock %}
diff --git a/photowall/templates/comments.html b/photowall/templates/comments.html
new file mode 100644
index 0000000..bb033c0
--- /dev/null
+++ b/photowall/templates/comments.html
@@ -0,0 +1 @@
+{% if DISQUS_SITENAME %}<p>There are <a href="{{ SITEURL }}/{{ article.url }}#disqus_thread">comments</a>.</p>{% endif %}
diff --git a/photowall/templates/disqus_script.html b/photowall/templates/disqus_script.html
new file mode 100644
index 0000000..4ee419b
--- /dev/null
+++ b/photowall/templates/disqus_script.html
@@ -0,0 +1,11 @@
+{% if DISQUS_SITENAME %}
+<script type="text/javascript">
+ var disqus_shortname = '{{ DISQUS_SITENAME }}';
+ (function () {
+ var s = document.createElement('script'); s.async = true;
+ s.type = 'text/javascript';
+ s.src = '//' + disqus_shortname + '.disqus.com/count.js';
+ (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
+ }());
+</script>
+{% endif %}
diff --git a/photowall/templates/github.html b/photowall/templates/github.html
new file mode 100644
index 0000000..75592ac
--- /dev/null
+++ b/photowall/templates/github.html
@@ -0,0 +1,9 @@
+{% if GITHUB_URL %}
+<a href="{{ GITHUB_URL }}">
+{% if GITHUB_POSITION != "left" %}
+<img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub" />
+{% else %}
+<img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_white_ffffff.png" alt="Fork me on GitHub" />
+{% endif %}
+</a>
+{% endif %}
diff --git a/photowall/templates/index.html b/photowall/templates/index.html
new file mode 100644
index 0000000..9abd15b
--- /dev/null
+++ b/photowall/templates/index.html
@@ -0,0 +1,35 @@
+{% extends "base.html" %}
+{% block content_title %}{% endblock %}
+{% block content %}
+{% if articles %}
+
+ <aside id="featured" class="body">
+
+ {% for article in articles_page.object_list %}
+
+ <div style="float:left">
+ <a href="{{ SITEURL }}/{{ article.url }}">
+ <img src="images/{{ article.thumbnail }}" class="bw" id="ima{{ loop.index }}" onmouseover="greyoff(this.id)" onmouseleave="greyon(this.id)" border="0" title="{{article.title}}" alt="{{ article.title }}" /></a>
+ </div>
+ {% if loop.last %}
+ {% if loop.length > 1 %}
+ </ol><!-- /#posts-list -->
+ {% endif %}
+ {% if articles_page.has_previous() or loop.length > 1 %}
+ <div style="clear:both"></div>{% include 'pagination.html' %}
+ {% endif %}
+ {% if loop.length > 1 %}
+ </section><!-- /#content -->
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ </aside><!-- /#featured -->
+{% else %}
+<section id="content" class="body">
+<h2>Pages</h2>
+ {% for page in PAGES %}
+ <li><a href="{{ SITEURL }}/{{ page.url }}">{{ page.title }}</a></li>
+ {% endfor %}
+</section>
+{% endif %}
+{% endblock content %}
diff --git a/photowall/templates/page.html b/photowall/templates/page.html
new file mode 100644
index 0000000..5ac50b6
--- /dev/null
+++ b/photowall/templates/page.html
@@ -0,0 +1,12 @@
+{% extends "base.html" %}
+{% block title %}{{ page.title }}{% endblock %}
+{% block content %}
+<section id="content" class="body">
+ <h1 class="entry-title">{{ page.title }}</h1>
+ {% import 'translations.html' as translations with context %}
+ {{ translations.translations_for(page) }}
+ {% if PDF_PROCESSOR %}<a href="{{ SITEURL }}/pdf/{{ page.slug }}.pdf">get
+ the pdf</a>{% endif %}
+ {{ page.content }}
+</section>
+{% endblock %}
diff --git a/photowall/templates/period_archives.html b/photowall/templates/period_archives.html
new file mode 100644
index 0000000..252e002
--- /dev/null
+++ b/photowall/templates/period_archives.html
@@ -0,0 +1,13 @@
+{% extends "base.html" %}
+{% block content %}
+<section id="content" class="body">
+<h1>Archives for {{ period | reverse | join(' ') }}</h1>
+
+<dl>
+{% for article in dates %}
+ <dt>{{ article.locale_date }}</dt>
+ <dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
+{% endfor %}
+</dl>
+</section>
+{% endblock %}
diff --git a/photowall/templates/tag.html b/photowall/templates/tag.html
new file mode 100644
index 0000000..68cdcba
--- /dev/null
+++ b/photowall/templates/tag.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ tag }}{% endblock %}
diff --git a/photowall/templates/taglist.html b/photowall/templates/taglist.html
new file mode 100644
index 0000000..1e0b95a
--- /dev/null
+++ b/photowall/templates/taglist.html
@@ -0,0 +1,2 @@
+{% if article.tags %}<p>tags: {% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag | escape }}</a> {% endfor %}</p>{% endif %}
+{% if PDF_PROCESSOR %}<p><a href="{{ SITEURL }}/pdf/{{ article.slug }}.pdf">get the pdf</a></p>{% endif %}
diff --git a/photowall/templates/tags.html b/photowall/templates/tags.html
new file mode 100644
index 0000000..fb09955
--- /dev/null
+++ b/photowall/templates/tags.html
@@ -0,0 +1,16 @@
+{% extends "base.html" %}
+
+{% block title %}{{ SITENAME }} - Tags{% endblock %}
+
+{% block content %}
+
+<section id="content" class="body">
+ <h1>Tags for {{ SITENAME }}</h1>
+ <ul>
+ {% for tag, articles in tags|sort %}
+ <li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
+ {% endfor %}
+ </ul>
+</section>
+
+{% endblock %}
diff --git a/photowall/templates/translations.html b/photowall/templates/translations.html
new file mode 100644
index 0000000..7894bb0
--- /dev/null
+++ b/photowall/templates/translations.html
@@ -0,0 +1,8 @@
+{% macro translations_for(article) %}
+{% if article.translations %}
+Translations:
+ {% for translation in article.translations %}
+ <a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
+ {% endfor %}
+{% endif %}
+{% endmacro %}
diff --git a/photowall/templates/twitter.html b/photowall/templates/twitter.html
new file mode 100644
index 0000000..7247a0c
--- /dev/null
+++ b/photowall/templates/twitter.html
@@ -0,0 +1,3 @@
+{% if TWITTER_USERNAME %}
+<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="{{TWITTER_USERNAME}}">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
+{% endif %}