aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SoMA2/README.md24
-rw-r--r--SoMA2/screenshot.pngbin0 -> 666923 bytes
-rw-r--r--SoMA2/static/css/body-bg.jpgbin0 -> 942 bytes
-rw-r--r--SoMA2/static/css/main.css550
-rw-r--r--SoMA2/static/css/pygment.css60
-rw-r--r--SoMA2/static/css/reset.css52
-rw-r--r--SoMA2/static/css/typogrify.css3
-rw-r--r--SoMA2/static/css/wide.css48
-rw-r--r--SoMA2/static/images/blue-pin.pngbin0 -> 1564 bytes
-rw-r--r--SoMA2/static/images/body-bg.jpgbin0 -> 942 bytes
-rw-r--r--SoMA2/static/images/favicon.icobin0 -> 16958 bytes
-rw-r--r--SoMA2/static/images/icons/delicious.pngbin0 -> 958 bytes
-rw-r--r--SoMA2/static/images/icons/facebook.pngbin0 -> 202 bytes
-rw-r--r--SoMA2/static/images/icons/github.pngbin0 -> 346 bytes
-rw-r--r--SoMA2/static/images/icons/gitorious.pngbin0 -> 227 bytes
-rw-r--r--SoMA2/static/images/icons/gittip.pngbin0 -> 487 bytes
-rw-r--r--SoMA2/static/images/icons/google-plus.pngbin0 -> 527 bytes
-rw-r--r--SoMA2/static/images/icons/lastfm.pngbin0 -> 975 bytes
-rw-r--r--SoMA2/static/images/icons/linkedin.pngbin0 -> 896 bytes
-rw-r--r--SoMA2/static/images/icons/rss.pngbin0 -> 879 bytes
-rw-r--r--SoMA2/static/images/icons/twitter.pngbin0 -> 830 bytes
-rw-r--r--SoMA2/templates/analytics.html12
-rw-r--r--SoMA2/templates/archives.html13
-rw-r--r--SoMA2/templates/article.html37
-rw-r--r--SoMA2/templates/article_infos.html16
-rw-r--r--SoMA2/templates/author.html2
-rw-r--r--SoMA2/templates/authors.html0
-rw-r--r--SoMA2/templates/base.html88
-rw-r--r--SoMA2/templates/categories.html7
-rw-r--r--SoMA2/templates/category.html2
-rw-r--r--SoMA2/templates/comments.html1
-rw-r--r--SoMA2/templates/disqus_script.html11
-rw-r--r--SoMA2/templates/facebook_script.html12
-rw-r--r--SoMA2/templates/github.html9
-rw-r--r--SoMA2/templates/index.html33
-rw-r--r--SoMA2/templates/page.html12
-rw-r--r--SoMA2/templates/pagination.html15
-rw-r--r--SoMA2/templates/piwik.html16
-rw-r--r--SoMA2/templates/tag.html2
-rw-r--r--SoMA2/templates/taglist.html2
-rw-r--r--SoMA2/templates/translations.html8
-rw-r--r--SoMA2/templates/twitter.html3
42 files changed, 1038 insertions, 0 deletions
diff --git a/SoMA2/README.md b/SoMA2/README.md
new file mode 100644
index 0000000..3064d54
--- /dev/null
+++ b/SoMA2/README.md
@@ -0,0 +1,24 @@
+Pelican theme - SoMA
+====================
+
+
+Features
+--------
+* Simple and clean interface.
+* Looks and works well on all the mobile devices.
+
+
+Screenshot
+----------
+
+ ![Screenshot](screenshot.png)
+
+
+Live example
+------------
+
+Go to [LaunchYard's blog][lyblog] to see how this theme looks like live!
+
+
+
+ [lyblog]: http://blog.launchyard.com
diff --git a/SoMA2/screenshot.png b/SoMA2/screenshot.png
new file mode 100644
index 0000000..b45c2e5
--- /dev/null
+++ b/SoMA2/screenshot.png
Binary files differ
diff --git a/SoMA2/static/css/body-bg.jpg b/SoMA2/static/css/body-bg.jpg
new file mode 100644
index 0000000..d63c156
--- /dev/null
+++ b/SoMA2/static/css/body-bg.jpg
Binary files differ
diff --git a/SoMA2/static/css/main.css b/SoMA2/static/css/main.css
new file mode 100644
index 0000000..99bef82
--- /dev/null
+++ b/SoMA2/static/css/main.css
@@ -0,0 +1,550 @@
+
+/* Imports */
+@import url("reset.css");
+@import url("pygment.css");
+@import url("typogrify.css");
+
+/***** Global *****/
+/* Body */
+body {
+ background:url("../images/body-bg.jpg");
+ color: #000305;
+ font-size: 87.5%; /* Base font size: 14px */
+ font-family: 'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, sans-serif;
+ line-height: 1.429;
+ margin: 0;
+ padding: 0;
+ text-align: left;
+}
+
+/* Headings */
+/* Actual sizes are 8/5 the stated. */
+h1 {font-size: 3.2em }
+h2 {font-size: 2.7424em; margin-bottom: .333em;} /* 22px */
+h3 {font-size: 2.2864em} /* 20px */
+h4 {font-size: 2.0576em} /* 18px */
+h5 {font-size: 1.8288em} /* 16px */
+h6 {font-size: 1.6em} /* 14px */
+
+h1, h2, h3, h4, h5, h6 {
+ /* font-weight: 400; */
+ line-height: 1.1;
+ margin-bottom: .8em;
+ font-family: 'Avenir Next', sans-serif;
+}
+
+h3, h4, h5, h6 { margin-top: .8em; }
+
+hr { border: 2px solid #EEEEEE; }
+
+/* Anchors */
+a {outline: 0; color:#4896DF; text-decoration: none;}
+a img {border: 0px; text-decoration: none;}
+a:link {
+ color: #4896DF;
+ }
+
+a:hover, a:active {
+
+ color: #4896DF;
+ text-decoration: underline;
+}
+
+h1 a:hover {
+ background-color: inherit;
+ color:#4896DF !important;
+}
+
+/* Paragraphs */
+p {margin-bottom: 1.143em; color:#333 ; font-size:1.6em}
+pre {margin-bottom: 1.143em; padding: 4px; font-size:1.6em}
+
+strong, b {font-weight: bold; color: #333;}
+em, i {font-style: italic;}
+
+/* Lists */
+ul {
+ list-style: outside disc;
+ margin: 1em 0 1.5em 1.5em;
+}
+
+ol {
+ list-style: outside decimal;
+ margin: 1em 0 1.5em 1.5em;
+}
+.url {
+ color:inherit !important;
+ }
+.url:hover {
+ color:#4896DF !important;
+}
+.pull-right {
+ float:right;
+ }
+.LaunchyardDetail {
+ font-size: 1.5em;
+ position: fixed;
+ left: 3.35%;
+ top: 150px;
+ width: 265px;
+}
+
+.LaunchyardDetail p {
+ margin:0;
+ /* margin-bottom: 1em; */
+ text-align: center;
+ font-size:.9em;
+}
+.LaunchyardDetail p#sitetagline {
+ font-style: italic;
+ margin-bottom: 3em;
+}
+.LaunchyardDetail a#aboutlink {
+ font-size: 0.95em;
+ font-family: 'Avenir Next', sans-serif;
+ /* font-weight: bold; */
+}
+
+.LaunchyardDetail ul {
+ list-style: none;
+ margin:0;
+ padding-left:20px;
+}
+.LaunchyardDetail li {
+ font-size: 0.95em;
+ font-family: 'Avenir Next', sans-serif;
+ font-weight: 700;
+ color: #333;
+ margin-bottom: 0.5em;
+}
+
+
+.LaunchyardDetial li a {
+}
+
+.LaunchyardDetail a#sitesubtitle {
+ text-decoration: none;
+ font-size: 3.5em;
+ font-weight: bold;
+ color: #4896DF;
+}
+.post-info {
+ width: 100%;
+ float:left;
+ margin:0 0 10px 0;
+ padding:5px 5px 20px 5px;
+ color:#999;
+ border-bottom: 1px solid #eee;
+}
+.post-info ul {
+ width:100%;
+ float:left;
+ margin:0;
+ list-style:none;
+}
+.post-info ul li {
+ display: inline;
+ float:left;
+ margin: 0 1% 0 0;
+}
+.post-info p{
+ margin-bottom: 1px;
+}
+
+.readmore { float: right }
+
+dl {margin: 0 0 1.5em 0;}
+dt {font-weight: bold;}
+dd {margin-left: 1.5em;}
+
+/* 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;
+}
+
+article img{
+ width: 100%;
+}
+/***** Layout *****/
+.body {
+ clear: both;
+ /*margin: 0 auto; */
+ /*width: 800px;*/
+ /*width: 100%;*/
+ background: #fff;
+ margin: 2% 0 0 0;
+ overflow: hidden;
+ padding: 20px;
+ /*float:right;*/
+ border: 1px solid #ccc;
+ box-shadow: 0px 3px 8px 0px #ccc;
+}
+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; text-align: center; margin: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;
+ text-shadow: none;
+ }
+
+ #banner h1 strong {
+ font-size: 0.6em;
+ font-weight: normal;
+ margin: 6px 0 0 0;
+ position: relative;
+ top: -10px;
+ left: 5px;
+ letter-spacing: 2px;
+ color: #6398C9;
+ }
+
+ /* 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: #C74451;
+ 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 {
+ width: 95%;
+ padding: 10px 0 10px 350px;
+ float: left;
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ /*background: #fff;*/
+ /*margin: 2% 7% 0% 0;*/
+ /*overflow: hidden;*/
+ /*padding: 20px;*/
+ /*float:right;*/
+ /*border: 1px solid #ccc;*/
+ /*box-shadow: 0px 3px 8px 0px #ccc;*/
+}
+
+#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: #333; 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 {
+ width: 95%;
+ padding: 10px 0 10px 350px;
+ float: left;
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ /*background: #fff;*/
+ /*margin: 2% 7% 0 0 ;*/
+ /*float:right;*/
+ /*overflow: hidden;*/
+ /*padding: 20px 20px;*/
+ /*box-shadow: 0px 3px 8px 0px #CCC;*/
+ /*border: 1px solid #CCC;*/
+}
+
+/*
+ Extras
+*****************/
+#extras {margin: 0 auto; overflow: hidden;}
+
+#extras ul {list-style: none; margin: 0;}
+#extras li {border-bottom: 1px solid #fff;}
+#extras h2 {
+ color: #C74350;
+ 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*='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*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');}
+ .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');}
+ .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');}
+ .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.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');}
+ .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');}
+
+/*
+ About
+*****************/
+#about {
+ font-size: .8em;
+ font-style: normal;
+ color: #666;
+ overflow: hidden;
+ padding: 15px;
+ 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 {
+ text-align: right;
+ float:right;
+ margin:0 4% 0 0;
+}
+
+/***** 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: 3.5em; font-weight:bold; margin-bottom: 0px; margin-top: 0; }
+.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;}
+.entry-title a:visited {background-color: #fff;}
+.entry-content blockquote {font-size: 1.5em; margin: 10px 20px; }
+.entry-content li {font-size: 1.6em;}
+#featured .body li {font-size: 1.6em;}
+#featured .body blockquote {font-size: 1.5em; margin: 10px 20px; }
+
+.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;}
+
+/********* Pagination *********/
+.paginator {}
+.navButton { background:#fafafa; padding:.5% 1%; border-radius:3px; font-size:1em; float:left; border:1px solid #ddd}
+
+@media (max-width:768px){
+ .LaunchyardDetail {
+ position: static;
+ margin: 20px auto 10px;
+ }
+ #featured {
+ padding: 0;
+ margin: 0 auto;
+ float: none;
+ }
+ #content {
+ padding: 0;
+ margin: 0 auto;
+ float: none;
+ }
+}
+
+
+
diff --git a/SoMA2/static/css/pygment.css b/SoMA2/static/css/pygment.css
new file mode 100644
index 0000000..3dba387
--- /dev/null
+++ b/SoMA2/static/css/pygment.css
@@ -0,0 +1,60 @@
+.highlight .hll { background-color: #49483e }
+.highlight { background: #272822; color: #f8f8f2 }
+.highlight .c { color: #75715e } /* Comment */
+.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
+.highlight .k { color: #66d9ef } /* Keyword */
+.highlight .l { color: #ae81ff } /* Literal */
+.highlight .n { color: #f8f8f2 } /* Name */
+.highlight .o { color: #f92672 } /* Operator */
+.highlight .p { color: #f8f8f2 } /* Punctuation */
+.highlight .cm { color: #75715e } /* Comment.Multiline */
+.highlight .cp { color: #75715e } /* Comment.Preproc */
+.highlight .c1 { color: #75715e } /* Comment.Single */
+.highlight .cs { color: #75715e } /* Comment.Special */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .kc { color: #66d9ef } /* Keyword.Constant */
+.highlight .kd { color: #66d9ef } /* Keyword.Declaration */
+.highlight .kn { color: #f92672 } /* Keyword.Namespace */
+.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
+.highlight .kr { color: #66d9ef } /* Keyword.Reserved */
+.highlight .kt { color: #66d9ef } /* Keyword.Type */
+.highlight .ld { color: #e6db74 } /* Literal.Date */
+.highlight .m { color: #ae81ff } /* Literal.Number */
+.highlight .s { color: #e6db74 } /* Literal.String */
+.highlight .na { color: #a6e22e } /* Name.Attribute */
+.highlight .nb { color: #f8f8f2 } /* Name.Builtin */
+.highlight .nc { color: #a6e22e } /* Name.Class */
+.highlight .no { color: #66d9ef } /* Name.Constant */
+.highlight .nd { color: #a6e22e } /* Name.Decorator */
+.highlight .ni { color: #f8f8f2 } /* Name.Entity */
+.highlight .ne { color: #a6e22e } /* Name.Exception */
+.highlight .nf { color: #a6e22e } /* Name.Function */
+.highlight .nl { color: #f8f8f2 } /* Name.Label */
+.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
+.highlight .nx { color: #a6e22e } /* Name.Other */
+.highlight .py { color: #f8f8f2 } /* Name.Property */
+.highlight .nt { color: #f92672 } /* Name.Tag */
+.highlight .nv { color: #f8f8f2 } /* Name.Variable */
+.highlight .ow { color: #f92672 } /* Operator.Word */
+.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
+.highlight .mf { color: #ae81ff } /* Literal.Number.Float */
+.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
+.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
+.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
+.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
+.highlight .sc { color: #e6db74 } /* Literal.String.Char */
+.highlight .sd { color: #e6db74 } /* Literal.String.Doc */
+.highlight .s2 { color: #e6db74 } /* Literal.String.Double */
+.highlight .se { color: #ae81ff } /* Literal.String.Escape */
+.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
+.highlight .si { color: #e6db74 } /* Literal.String.Interpol */
+.highlight .sx { color: #e6db74 } /* Literal.String.Other */
+.highlight .sr { color: #e6db74 } /* Literal.String.Regex */
+.highlight .s1 { color: #e6db74 } /* Literal.String.Single */
+.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
+.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
+.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
+.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
+.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */
diff --git a/SoMA2/static/css/reset.css b/SoMA2/static/css/reset.css
new file mode 100644
index 0000000..1e21756
--- /dev/null
+++ b/SoMA2/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/SoMA2/static/css/typogrify.css b/SoMA2/static/css/typogrify.css
new file mode 100644
index 0000000..c9b34dc
--- /dev/null
+++ b/SoMA2/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/SoMA2/static/css/wide.css b/SoMA2/static/css/wide.css
new file mode 100644
index 0000000..88fd59c
--- /dev/null
+++ b/SoMA2/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/SoMA2/static/images/blue-pin.png b/SoMA2/static/images/blue-pin.png
new file mode 100644
index 0000000..60bd2d5
--- /dev/null
+++ b/SoMA2/static/images/blue-pin.png
Binary files differ
diff --git a/SoMA2/static/images/body-bg.jpg b/SoMA2/static/images/body-bg.jpg
new file mode 100644
index 0000000..d63c156
--- /dev/null
+++ b/SoMA2/static/images/body-bg.jpg
Binary files differ
diff --git a/SoMA2/static/images/favicon.ico b/SoMA2/static/images/favicon.ico
new file mode 100644
index 0000000..fb02bc8
--- /dev/null
+++ b/SoMA2/static/images/favicon.ico
Binary files differ
diff --git a/SoMA2/static/images/icons/delicious.png b/SoMA2/static/images/icons/delicious.png
new file mode 100644
index 0000000..3dccdd8
--- /dev/null
+++ b/SoMA2/static/images/icons/delicious.png
Binary files differ
diff --git a/SoMA2/static/images/icons/facebook.png b/SoMA2/static/images/icons/facebook.png
new file mode 100644
index 0000000..74e7ad5
--- /dev/null
+++ b/SoMA2/static/images/icons/facebook.png
Binary files differ
diff --git a/SoMA2/static/images/icons/github.png b/SoMA2/static/images/icons/github.png
new file mode 100644
index 0000000..6c52b48
--- /dev/null
+++ b/SoMA2/static/images/icons/github.png
Binary files differ
diff --git a/SoMA2/static/images/icons/gitorious.png b/SoMA2/static/images/icons/gitorious.png
new file mode 100644
index 0000000..3eeb3ec
--- /dev/null
+++ b/SoMA2/static/images/icons/gitorious.png
Binary files differ
diff --git a/SoMA2/static/images/icons/gittip.png b/SoMA2/static/images/icons/gittip.png
new file mode 100644
index 0000000..af94962
--- /dev/null
+++ b/SoMA2/static/images/icons/gittip.png
Binary files differ
diff --git a/SoMA2/static/images/icons/google-plus.png b/SoMA2/static/images/icons/google-plus.png
new file mode 100644
index 0000000..3c6b743
--- /dev/null
+++ b/SoMA2/static/images/icons/google-plus.png
Binary files differ
diff --git a/SoMA2/static/images/icons/lastfm.png b/SoMA2/static/images/icons/lastfm.png
new file mode 100644
index 0000000..3a6c626
--- /dev/null
+++ b/SoMA2/static/images/icons/lastfm.png
Binary files differ
diff --git a/SoMA2/static/images/icons/linkedin.png b/SoMA2/static/images/icons/linkedin.png
new file mode 100644
index 0000000..d29c120
--- /dev/null
+++ b/SoMA2/static/images/icons/linkedin.png
Binary files differ
diff --git a/SoMA2/static/images/icons/rss.png b/SoMA2/static/images/icons/rss.png
new file mode 100644
index 0000000..7862c65
--- /dev/null
+++ b/SoMA2/static/images/icons/rss.png
Binary files differ
diff --git a/SoMA2/static/images/icons/twitter.png b/SoMA2/static/images/icons/twitter.png
new file mode 100644
index 0000000..d0ef3cc
--- /dev/null
+++ b/SoMA2/static/images/icons/twitter.png
Binary files differ
diff --git a/SoMA2/templates/analytics.html b/SoMA2/templates/analytics.html
new file mode 100644
index 0000000..4de2c86
--- /dev/null
+++ b/SoMA2/templates/analytics.html
@@ -0,0 +1,12 @@
+{% 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 %} \ No newline at end of file
diff --git a/SoMA2/templates/archives.html b/SoMA2/templates/archives.html
new file mode 100644
index 0000000..f678494
--- /dev/null
+++ b/SoMA2/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/SoMA2/templates/article.html b/SoMA2/templates/article.html
new file mode 100644
index 0000000..70cfa9e
--- /dev/null
+++ b/SoMA2/templates/article.html
@@ -0,0 +1,37 @@
+{% extends "base.html" %}
+{% block title %}{{ article.title|striptags }}{% endblock %}
+{% block content %}
+<section id="content" >
+ <div class="body">
+ <article>
+ <header>
+ <h1 class="entry-title">
+ <a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
+ title="Permalink to {{ article.title|striptags }}">{{ article.title}}</a></h1>
+
+ </header>
+
+ <div class="entry-content">
+ {% include 'article_infos.html' %}
+ {{ article.content }}
+ </div><!-- /.entry-content -->
+ {% include 'twitter.html' %}
+ {% if DISQUS_SITENAME %}
+ <div class="comments">
+
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ var disqus_identifier = "{{ article.url }}";
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://{{ DISQUS_SITENAME }}.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ </div>
+ {% endif %}
+
+ </article>
+ </div>
+</section>
+{% endblock %}
diff --git a/SoMA2/templates/article_infos.html b/SoMA2/templates/article_infos.html
new file mode 100644
index 0000000..d5c28c6
--- /dev/null
+++ b/SoMA2/templates/article_infos.html
@@ -0,0 +1,16 @@
+<div class="post-info">
+ <ul>
+ {% if article.author %}
+ <li class="vcard author">
+ by&nbsp;<a class="url fn" href="{{ SITEURL }}/{{ article.author.url }}">{{ article.author }}</a>
+ </li>
+ {% endif %}
+ <li class="published" title="{{ article.date.isoformat() }}">
+ on&nbsp;{{ article.locale_date }}
+ </li>
+
+ </ul>
+{% include 'taglist.html' %}
+{% import 'translations.html' as translations with context %}
+{{ translations.translations_for(article) }}
+</div><!-- /.post-info -->
diff --git a/SoMA2/templates/author.html b/SoMA2/templates/author.html
new file mode 100644
index 0000000..0b37290
--- /dev/null
+++ b/SoMA2/templates/author.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ author }}{% endblock %}
diff --git a/SoMA2/templates/authors.html b/SoMA2/templates/authors.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/SoMA2/templates/authors.html
diff --git a/SoMA2/templates/base.html b/SoMA2/templates/base.html
new file mode 100644
index 0000000..c2a3f7b
--- /dev/null
+++ b/SoMA2/templates/base.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>{% block title %}{{ SITENAME }}{%endblock%}</title>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <link rel="shortcut icon" href="{{ SITEURL }}/theme/images/favicon.ico"/>
+ <link rel="stylesheet" href="{{ SITEURL }}/theme/css/{{ CSS_FILE }}" type="text/css" />
+ {% 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]-->
+
+ <!--[if lte IE 7]>
+ <link rel="stylesheet" type="text/css" media="all" href="{{ SITEURL }}/css/ie.css"/>
+ <script src="{{ SITEURL }}/js/IE8.js" type="text/javascript"></script><![endif]-->
+
+ <!--[if lt IE 7]>
+ <link rel="stylesheet" type="text/css" media="all" href="{{ SITEURL }}/css/ie6.css"/><![endif]-->
+<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" type="text/javascript"></script>
+
+
+</head>
+
+<body id="index" class="home">
+{% include 'github.html' %}
+
+ <!-- <header id="banner" class="body"> -->
+ <!-- <h1><a href="{{ SITEURL }}/"><img src="http://www.launchyard.com/images/logo.png" />{% if SITESUBTITLE %}<strong>{{ SITESUBTITLE }}</strong>{% endif %}</a></h1> -->
+ <!-- </header> -->
+
+ <div class="LaunchyardDetail">
+ <!-- <p> -->
+ <!-- <img src="{{ SITEURL }}/theme/images/blue-pin.png" width="100" height="100" alt="Graph icon"> -->
+ <!-- </p> -->
+ <p><a id="sitesubtitle" href="{{ SITEURL }}/">{% if SITESUBTITLE %}{{ SITESUBTITLE }}{% endif %}</a></p>
+ {% if SITETAGLINE %}<p id="sitetagline">{{ SITETAGLINE }}</p>{% endif %}
+ <p><a id="aboutlink" href="{{ SITEURL }}/pages/about.html">about</a></p>
+
+ <!-- <ul> -->
+ <!-- <li><a href="{{ SITEURL }}/pages/about.html">about</a></li> -->
+ <!-- <li><a href="{{ SITEURL }}/pages/about.html">articles</a></li> -->
+<!-- {% if articles %} -->
+<!-- <br/> -->
+<!-- <br/> -->
+<!-- {% for article in articles %} -->
+<!-- <li><a href="">{{ article.title }}</a></li> -->
+<!-- {% endfor %} -->
+<!-- {% endif %} -->
+ <!-- </ul> -->
+
+ <!-- This belongs in the about page -->
+ <!-- {% for name, link in SOCIAL %} -->
+ <!-- <a href="{{ link }}">{{ name }}</a> -->
+ <!-- <br/> -->
+ <!-- {% endfor %} -->
+
+<!-- {% include 'categories.html' %} -->
+ </div>
+
+ {% block content %}
+ {% endblock %}
+ <section id="extras" >
+
+ </section><!-- /#extras -->
+
+ <footer id="contentinfo" >
+ <address id="about" class="vcard ">
+ Proudly powered by <a href="http://getpelican.com/" target="_blank">Pelican</a>, which takes
+ great advantage of <a href="http://python.org" target="_blank">Python</a>.
+
+ </address><!-- /#about -->
+
+
+
+ </footer><!-- /#contentinfo -->
+
+{% include 'analytics.html' %}
+{% include 'piwik.html' %}
+{% include 'facebook_script.html' %}
+{% include 'disqus_script.html' %}
+</body>
+</html>
diff --git a/SoMA2/templates/categories.html b/SoMA2/templates/categories.html
new file mode 100644
index 0000000..c520511
--- /dev/null
+++ b/SoMA2/templates/categories.html
@@ -0,0 +1,7 @@
+{% block content %}
+<ul>
+{% for category, articles in categories %}
+ <li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a></li>
+{% endfor %}
+</ul>
+{% endblock %}
diff --git a/SoMA2/templates/category.html b/SoMA2/templates/category.html
new file mode 100644
index 0000000..56f8e93
--- /dev/null
+++ b/SoMA2/templates/category.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ category }}{% endblock %}
diff --git a/SoMA2/templates/comments.html b/SoMA2/templates/comments.html
new file mode 100644
index 0000000..bb033c0
--- /dev/null
+++ b/SoMA2/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/SoMA2/templates/disqus_script.html b/SoMA2/templates/disqus_script.html
new file mode 100644
index 0000000..c4f442c
--- /dev/null
+++ b/SoMA2/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 = 'http://' + disqus_shortname + '.disqus.com/count.js';
+ (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
+ }());
+</script>
+{% endif %}
diff --git a/SoMA2/templates/facebook_script.html b/SoMA2/templates/facebook_script.html
new file mode 100644
index 0000000..03e1a2a
--- /dev/null
+++ b/SoMA2/templates/facebook_script.html
@@ -0,0 +1,12 @@
+{% if FACEBOOK_APP_ID %}
+<div id="fb-root"></div>
+<script>
+ facebook_appId = '{{ FACEBOOK_APP_ID }}';
+ (function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=" + facebook_appId;
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+{% endif %}
diff --git a/SoMA2/templates/github.html b/SoMA2/templates/github.html
new file mode 100644
index 0000000..75592ac
--- /dev/null
+++ b/SoMA2/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/SoMA2/templates/index.html b/SoMA2/templates/index.html
new file mode 100644
index 0000000..1a15916
--- /dev/null
+++ b/SoMA2/templates/index.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+{% block content_title %}{% endblock %}
+{% block content %}
+{% if articles %}
+ {% for article in articles_page.object_list %}
+
+ {# First item #}
+
+ <aside id="featured">
+ <div class="body">
+ <article>
+ <h1 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h1>
+ {% include 'article_infos.html' %}{{ article.summary }}
+ </article>
+ {% if loop.last and (articles_page.has_previous() or not articles_page.has_previous() and loop.length > 1) %}
+ {% include 'pagination.html' %}
+ {% endif %}
+ </div>
+ </aside><!-- /#featured -->
+
+
+ {% endfor %}
+{% else %}
+<section id="content" >
+ <div class="body">
+ <h2>Pages</h2>
+ {% for page in PAGES %}
+ <li><a href="{{ SITEURL }}/{{ page.url }}">{{ page.title }}</a></li>
+ {% endfor %}
+ </div>
+</section>
+{% endif %}
+{% endblock content %}
diff --git a/SoMA2/templates/page.html b/SoMA2/templates/page.html
new file mode 100644
index 0000000..60409d5
--- /dev/null
+++ b/SoMA2/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/SoMA2/templates/pagination.html b/SoMA2/templates/pagination.html
new file mode 100644
index 0000000..b8553fd
--- /dev/null
+++ b/SoMA2/templates/pagination.html
@@ -0,0 +1,15 @@
+{% if DEFAULT_PAGINATION %}
+<div class="paginator">
+ {% if articles_page.has_previous() %}
+ {% if articles_page.previous_page_number() == 1 %}
+ <div class="navButton"> <a href="{{ SITEURL }}/{{ page_name }}.html" >Prev</a></div>
+ {% else %}
+ <div class="navButton"><a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html">Prev</a></div>
+ {% endif %}
+ {% endif %}
+ <div class="navButton">Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}</div>
+ {% if articles_page.has_next() %}
+ <div class="navButton"><a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html" >Next</a></div>
+ {% endif %}
+</div>
+{% endif %}
diff --git a/SoMA2/templates/piwik.html b/SoMA2/templates/piwik.html
new file mode 100644
index 0000000..ff459af
--- /dev/null
+++ b/SoMA2/templates/piwik.html
@@ -0,0 +1,16 @@
+{% if PIWIK_URL and PIWIK_SITE_ID %}
+ <script type="text/javascript">
+ {% if PIWIK_SSL_URL %}
+ var pkBaseURL = (("https:" == document.location.protocol) ? "https://{{ PIWIK_SSL_URL }}/" : "http://{{ PIWIK_URL }}/");
+ {% else %}
+ var pkBaseURL = (("https:" == document.location.protocol) ? "https://{{ PIWIK_URL }}/" : "http://{{ PIWIK_URL }}/");
+ {% endif %}
+ document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+ </script><script type="text/javascript">
+ try {
+ var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {{ PIWIK_SITE_ID }});
+ piwikTracker.trackPageView();
+ piwikTracker.enableLinkTracking();
+ } catch( err ) {}
+ </script><noscript><p><img src="http://{{ PIWIK_URL }}/piwik.php?idsite={{ PIWIK_SITE_ID }}" style="border:0" alt="" /></p></noscript>
+{% endif %} \ No newline at end of file
diff --git a/SoMA2/templates/tag.html b/SoMA2/templates/tag.html
new file mode 100644
index 0000000..68cdcba
--- /dev/null
+++ b/SoMA2/templates/tag.html
@@ -0,0 +1,2 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} - {{ tag }}{% endblock %}
diff --git a/SoMA2/templates/taglist.html b/SoMA2/templates/taglist.html
new file mode 100644
index 0000000..1617162
--- /dev/null
+++ b/SoMA2/templates/taglist.html
@@ -0,0 +1,2 @@
+{% if article.tags %}<p>Category: {% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>{% endfor %}</p>{% endif %}
+{% if PDF_PROCESSOR %}<p><a href="{{ SITEURL }}/pdf/{{ article.slug }}.pdf">get the pdf</a></p>{% endif %}
diff --git a/SoMA2/templates/translations.html b/SoMA2/templates/translations.html
new file mode 100644
index 0000000..ca03a2c
--- /dev/null
+++ b/SoMA2/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/SoMA2/templates/twitter.html b/SoMA2/templates/twitter.html
new file mode 100644
index 0000000..b4328e9
--- /dev/null
+++ b/SoMA2/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="http://platform.twitter.com/widgets.js"></script><br/><br/>
+{% endif %}