added subtle
38
subtle/.gitignore
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Compiled source #
|
||||||
|
###################
|
||||||
|
*.com
|
||||||
|
*.class
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Packages #
|
||||||
|
############
|
||||||
|
# it's better to unpack these files and commit the raw source
|
||||||
|
# git has its own built in compression methods
|
||||||
|
*.7z
|
||||||
|
*.dmg
|
||||||
|
*.gz
|
||||||
|
*.iso
|
||||||
|
*.jar
|
||||||
|
*.rar
|
||||||
|
*.tar
|
||||||
|
*.zip
|
||||||
|
|
||||||
|
# Logs and databases #
|
||||||
|
######################
|
||||||
|
*.log
|
||||||
|
*.sql
|
||||||
|
*.sqlite
|
||||||
|
|
||||||
|
# OS generated files #
|
||||||
|
######################
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
Icon?
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
147
subtle/README.md
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
#Subtle
|
||||||
|
###A pelican theme
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is subtle, a theme for the [Pelican static site generator](http://pelican.notmyidea.org/en/2.8/index.html).
|
||||||
|
It is adapted from the [notmyidea](https://github.com/ametaireau/notmyidea) default theme.
|
||||||
|
|
||||||
|
The social icons are from: [http://www.alexpeattie.com/projects/justvector_icons/](http://www.alexpeattie.com/projects/justvector_icons/)
|
||||||
|
|
||||||
|
The current background is from: [http://subtlepatterns.com/](http://subtlepatterns.com/)
|
||||||
|
|
||||||
|
Apart from aesthetic changes, this also adds a different set of more 'classy' social icons and icons for many more services.
|
||||||
|
|
||||||
|
If you wish to add a favicon to your website (and I believe that you should), then you should add a 16x16 icon 'favicon.ico'
|
||||||
|
file in your output directory.
|
||||||
|
|
||||||
|
*PS: I've made this documentation quite easy to follow (I hope!), computer geeks might find it too 'simplified' but hey, it's well documented*
|
||||||
|
|
||||||
|
Because this is 'based' on notmyidea (the theme), this supports all of these settings (which you would add to the pelican.conf.py file).
|
||||||
|
```
|
||||||
|
DISQUS_SITENAME Pelican can handle disqus comments, specify the sitename you’ve filled in on disqus
|
||||||
|
```
|
||||||
|
```
|
||||||
|
GITHUB_URL Your github URL (if you have one), it will then use it to create a github ribbon.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
GOOGLE_ANALYTICS ‘UA-XXXX-YYYY’ to activate google analytics.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
MENUITEMS A list of tuples (Title, Url) for additional menu items to appear at the beginning of the main menu.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
PIWIK_URL URL to your Piwik server - without ‘http://‘ at the beginning.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
PIWIK_SSL_URL If the SSL-URL differs from the normal Piwik-URL you have to include this setting too. (optional)
|
||||||
|
```
|
||||||
|
```
|
||||||
|
PIWIK_SITE_ID ID for the monitored website. You can find the ID in the Piwik admin interface > settings > websites.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
LINKS A list of tuples (Title, Url) for links to appear on the header.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
SOCIAL A list of tuples (Title, Url) to appear in the “social” section.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
TWITTER_USERNAME Allows to add a button on the articles to tweet about them. Add you twitter username if you want this button to appear.
|
||||||
|
```
|
||||||
|
|
||||||
|
Plus, I've added GoSquared support so their is a new command:
|
||||||
|
```
|
||||||
|
GOSQUARED_SITENAME
|
||||||
|
```
|
||||||
|
|
||||||
|
I am hoping to fork and push that to the official Pelican repository.
|
||||||
|
##Preview
|
||||||
|
[http://asselinpaul.com/](http://asselinpaul.com/)
|
||||||
|
This post might be relevant if you want to know more about my particular blog (hosting, comments): [http://asselinpaul.com/static-site.html](http://asselinpaul.com/static-site.html)
|
||||||
|
|
||||||
|
##Installation
|
||||||
|
It is easy to install this theme, just use the [pelican-themes](http://pelican.notmyidea.org/en/2.8/pelican-themes.html) command once you have downloaded the theme:
|
||||||
|
```
|
||||||
|
pelican-themes -i /path_to_theme
|
||||||
|
```
|
||||||
|
For more information about pelican-themes, [click here](http://pelican.notmyidea.org/en/2.8/pelican-themes.html).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
So that every blog ain't the same (we are all unique right?), I'd appreciate two things:
|
||||||
|
|
||||||
|
* Change the background for the blog
|
||||||
|
|
||||||
|
They are some great alternatives to this pattern on [subtlepatterns.com](http://subtlepatterns.com/). To do this you would open the static folder and add your chosen pattern/background. After that you need to modify the main.css file, specificly line 21 which defines the background:
|
||||||
|
```
|
||||||
|
background: url("wavecut.png"):
|
||||||
|
```
|
||||||
|
Replace *wavecut.png* with the name of your pattern/background.
|
||||||
|
|
||||||
|
* Change the color theme
|
||||||
|
They is one main color in this theme that you can/should change to suit your liking and personality.
|
||||||
|
I'm using the #7A4700 brown, check out my site (linked in Preview) to see what elements are brown (you might have to hover over them).
|
||||||
|
To change that, I'd simply replace every value '#7A4700' in main.css by the color you want(ideally with the find and replace command).
|
||||||
|
|
||||||
|
And if you could send me a message of your blog's url, I'd love to read your great content.
|
||||||
|
|
||||||
|
##Changing Fonts
|
||||||
|
|
||||||
|
If you want to change the font for the Titles (not the one which is used for the articles), you have to change line 14 and line 42 of the file.
|
||||||
|
|
||||||
|
At the moment, line 14 says:
|
||||||
|
```
|
||||||
|
@import url(http://fonts.googleapis.com/css?family=Lobster);
|
||||||
|
```
|
||||||
|
|
||||||
|
I'm using Google Web Fonts to get the font, here is the link to it: [Lobster](http://www.google.com/webfonts#QuickUsePlace:quickUse/Family:)
|
||||||
|
|
||||||
|
You should note that step 3 ('Add this code to your website') has multiple options. I used the @import tab to get the previous line. Choose a font and add the @import code on line 14.
|
||||||
|
|
||||||
|
On line 42, change the font-family with whatever you downloaded. In my case, it's:
|
||||||
|
```
|
||||||
|
font-family: 'Lobster', cursive;
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it, you're done. For the font that is used for the articles, do the same thing with line 15 and 22.
|
||||||
|
|
||||||
|
##Social Icons
|
||||||
|
I've only implemented icons that I used but it's super easy to add more and best of all, the icons you are looking for are most likely already included!
|
||||||
|
|
||||||
|
First, take a look in the main.css file. Towards line 315, you can see the social icon declaration. It looks like this:
|
||||||
|
```
|
||||||
|
.social a[href*='twitter.com'] {background-image: url('../images/icons/twitter_alt.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
```
|
||||||
|
Check to see if the one you want isn't implemented, if not, let's continue.
|
||||||
|
|
||||||
|
* open images/icon
|
||||||
|
* look for the icon you want in here or add it
|
||||||
|
* note down it's name (e.g: wikipedia.png)
|
||||||
|
* go into the main.css file and go towards line 315, you should see the icons declaration.
|
||||||
|
* copy and paste this template there:
|
||||||
|
```
|
||||||
|
.social a[href*='url_of_site'] {background-image: url('../images/icons/name_of_icon');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
```
|
||||||
|
Change *url_of_site* with the url of the service for which you are adding an icon (e.g: wikipedia.com).
|
||||||
|
*Do not include 'www.'*
|
||||||
|
|
||||||
|
Change *name_of_icon* with the name of the icon you got in step 2 (with it's extension). In our case that is wikipedia.png .
|
||||||
|
If you icon is located somewhere else, you can also change the path but you have to make sure that I'll be included with your css.
|
||||||
|
|
||||||
|
* go into your pelican.conf.py file and add your social 'link' there(making sure that you use the correct service name and url)
|
||||||
|
For example:
|
||||||
|
```
|
||||||
|
('github', 'http://github.com/thisisalongdocumentation'),
|
||||||
|
```
|
||||||
|
|
||||||
|
You're done!
|
||||||
|
|
||||||
|

|
||||||
|
*Yeah, that is a lot of icons.*
|
||||||
|
|
||||||
|
##Notes
|
||||||
|
I have not tested RSS and Atom feeds as I do not use these services, I think I might have removed the support for them so keep that in mind and you might be able to get the needed code on the notmyidea theme.
|
||||||
|
|
||||||
|
|
||||||
BIN
subtle/static/css/downdown.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
subtle/static/css/groovepaper.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
subtle/static/css/lightpaper.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
445
subtle/static/css/main.css
Executable file
@@ -0,0 +1,445 @@
|
|||||||
|
/*
|
||||||
|
Name: Smashing HTML5
|
||||||
|
Date: July 2009
|
||||||
|
Description: Sample layout for HTML5 and CSS3 goodness.
|
||||||
|
Version: 1.0
|
||||||
|
Author: Enrique Ramírez
|
||||||
|
Autor URI: http://enrique-ramirez.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Imports */
|
||||||
|
@import url("reset.css");
|
||||||
|
@import url("pygment.css");
|
||||||
|
@import url("typogrify.css");
|
||||||
|
@import url(http://fonts.googleapis.com/css?family=Lobster);
|
||||||
|
@import url(http://fonts.googleapis.com/css?family=Droid+Sans);
|
||||||
|
|
||||||
|
|
||||||
|
/***** Global *****/
|
||||||
|
/* Body */
|
||||||
|
body {
|
||||||
|
background: url("wavecut.png");
|
||||||
|
font-family: 'Droid Sans', sans-serif;
|
||||||
|
font-size: 14px ;
|
||||||
|
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: 'Lobster', cursive;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
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: #7A4700;
|
||||||
|
padding: 0 1px;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
a:hover, a:active {
|
||||||
|
background-color: #7A4700;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: 1px 1px 1px #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 a:hover {
|
||||||
|
background-color: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Paragraphs */
|
||||||
|
p {margin-bottom: 1.143em;}
|
||||||
|
|
||||||
|
strong, b {font-weight: bold;}
|
||||||
|
em, i {font-style: italic;}
|
||||||
|
|
||||||
|
::-moz-selection {background: #F6CF74; color: #fff;}
|
||||||
|
::selection {background: #F6CF74; color: #fff;}
|
||||||
|
|
||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-info {
|
||||||
|
float:right;
|
||||||
|
margin:5px;
|
||||||
|
padding:9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;}
|
||||||
|
|
||||||
|
pre{background-color: #000; padding: 10px; color: #fff; 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: right; margin: 0 0 2em 2em;}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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;
|
||||||
|
width: 427px;
|
||||||
|
}
|
||||||
|
#banner h1 a:hover, #banner h1 a:active {
|
||||||
|
background: none;
|
||||||
|
color: #7A4700;
|
||||||
|
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: #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 {
|
||||||
|
|
||||||
|
background: url("toptop.png") no-repeat, url('downdown.png') no-repeat, url("white.png") repeat;
|
||||||
|
background-position: top,bottom,top;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 20px;
|
||||||
|
width: 760px;
|
||||||
|
|
||||||
|
border-radius: 0px;
|
||||||
|
-moz-border-radius: 0px;
|
||||||
|
-webkit-border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#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: #C74451; 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: url("toptop.png") no-repeat, url('downdown.png') no-repeat, url("white.png") repeat;
|
||||||
|
background-position: top,bottom,top;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 20px 20px;
|
||||||
|
width: 760px;
|
||||||
|
|
||||||
|
border-radius: 0px;
|
||||||
|
-moz-border-radius: 0px;
|
||||||
|
-webkit-border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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*='facebook.com'] {background-image: url('../images/icons/facebook.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='twitter.com'] {background-image: url('../images/icons/twitter_alt.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='quora.com'] {background-image: url('../images/icons/quora.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='github.com'] {background-image: url('../images/icons/github.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='news.ycombinator.com'] {background-image: url('../images/icons/hacker_news.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='instapaper.com'] {background-image: url('../images/icons/instapaper.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
.social a[href*='hypem.com'] {background-image: url('../images/icons/hype_machine.png');
|
||||||
|
background-size: 16px 16px; }
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
About
|
||||||
|
*****************/
|
||||||
|
#about {
|
||||||
|
background: #fff;
|
||||||
|
font-style: normal;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: left;
|
||||||
|
width: 760px;
|
||||||
|
|
||||||
|
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;}
|
||||||
BIN
subtle/static/css/paper.png
Normal file
|
After Width: | Height: | Size: 224 B |
205
subtle/static/css/pygment.css
Executable file
@@ -0,0 +1,205 @@
|
|||||||
|
.hll {
|
||||||
|
background-color:#FFFFCC;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
52
subtle/static/css/reset.css
Executable file
@@ -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;
|
||||||
|
}
|
||||||
BIN
subtle/static/css/toptop.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
3
subtle/static/css/typogrify.css
Executable file
@@ -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;}
|
||||||
BIN
subtle/static/css/wavecut.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
subtle/static/css/white.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
48
subtle/static/css/wide.css
Executable file
@@ -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;
|
||||||
|
}
|
||||||
11
subtle/templates/analytics.html
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
{% if GOOGLE_ANALYTICS %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
try {
|
||||||
|
var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}");
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
} catch(err) {}</script>
|
||||||
|
{% endif %}
|
||||||
13
subtle/templates/archives.html
Executable file
@@ -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 %}
|
||||||
34
subtle/templates/article.html
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %}{{ article.title|striptags }}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h1 class="entry-title">
|
||||||
|
<a href="{{ article.url }}" rel="bookmark"
|
||||||
|
title="Permalink to {{ article.title|striptags }}">{{ article.title}}</a></h1>
|
||||||
|
{% include 'twitter.html' %}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="entry-content">
|
||||||
|
{% include 'article_infos.html' %}
|
||||||
|
{{ article.content }}
|
||||||
|
</div><!-- /.entry-content -->
|
||||||
|
{% if DISQUS_SITENAME %}
|
||||||
|
<div class="comments">
|
||||||
|
<h2>Comments !</h2>
|
||||||
|
<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>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
14
subtle/templates/article_infos.html
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
<footer class="post-info">
|
||||||
|
<abbr class="published" title="{{ article.date.isoformat() }}">
|
||||||
|
{{ article.locale_date }}
|
||||||
|
</abbr>
|
||||||
|
|
||||||
|
{% if article.author %}
|
||||||
|
<address class="vcard author">
|
||||||
|
By <a class="url fn" href="{{ SITEURL }}/{{ article.author.url }}">{{ article.author }}</a>
|
||||||
|
</address>
|
||||||
|
{% endif %}
|
||||||
|
<p>In <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>. {% if PDF_PROCESSOR %}<a href="{{ SITEURL }}/pdf/{{ article.slug }}.pdf">get the pdf</a>{% endif %}</p>
|
||||||
|
{% include 'taglist.html' %}
|
||||||
|
{% include 'translations.html' %}
|
||||||
|
</footer><!-- /.post-info -->
|
||||||
2
subtle/templates/author.html
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
{% extends "index.html" %}
|
||||||
|
{% block title %}{{ SITENAME }} - {{ author }}{% endblock %}
|
||||||
0
subtle/templates/authors.html
Executable file
74
subtle/templates/base.html
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>{% block title %}{{ SITENAME }}{%endblock%}</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/{{ CSS_FILE }}" type="text/css" />
|
||||||
|
|
||||||
|
|
||||||
|
<!--[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]-->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="index" class="home">
|
||||||
|
{% 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 page in PAGES %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ page.url }}">{{ page.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% for cat, null in categories %}
|
||||||
|
<li {% if cat == category %}class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul></nav>
|
||||||
|
</header><!-- /#banner -->
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
<section id="extras" class="body">
|
||||||
|
{% if LINKS %}
|
||||||
|
<div class="blogroll">
|
||||||
|
<h2>blogroll</h2>
|
||||||
|
<ul>
|
||||||
|
{% for name, link in LINKS %}
|
||||||
|
<li><a href="{{ link }}">{{ name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div><!-- /.blogroll -->
|
||||||
|
{% endif %}
|
||||||
|
{% if SOCIAL %}
|
||||||
|
<div class="social">
|
||||||
|
<h2>social</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
{% for name, link in SOCIAL %}
|
||||||
|
<li><a href="{{ link }}">{{ name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div><!-- /.social -->
|
||||||
|
{% endif %}
|
||||||
|
</section><!-- /#extras -->
|
||||||
|
|
||||||
|
<footer id="contentinfo" class="body">
|
||||||
|
|
||||||
|
</footer><!-- /#contentinfo -->
|
||||||
|
|
||||||
|
{% include 'analytics.html' %}
|
||||||
|
{% include 'piwik.html' %}
|
||||||
|
{% include 'gosquared.html' %}
|
||||||
|
{% include 'disqus_script.html' %}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
8
subtle/templates/categories.html
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<ul>
|
||||||
|
{% for category, articles in categories %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
2
subtle/templates/category.html
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
{% extends "index.html" %}
|
||||||
|
{% block title %}{{ SITENAME }} - {{ category }}{% endblock %}
|
||||||
1
subtle/templates/comments.html
Executable file
@@ -0,0 +1 @@
|
|||||||
|
{% if DISQUS_SITENAME %}<p>There are <a href="{{ SITEURL }}/{{ article.url }}#disqus_thread">comments</a>.</p>{% endif %}
|
||||||
11
subtle/templates/disqus_script.html
Executable file
@@ -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 %}
|
||||||
9
subtle/templates/github.html
Executable file
@@ -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 %}
|
||||||
14
subtle/templates/gosquared.html
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{% if GOSQUARED_SITENAME %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var GoSquared={};
|
||||||
|
GoSquared.acct = "{{ GOSQUARED_SITENAME }}";
|
||||||
|
(function(w){
|
||||||
|
function gs(){
|
||||||
|
w._gstc_lt=+(new Date); var d=document;
|
||||||
|
var g = d.createElement("script"); g.type = "text/javascript"; g.async = true; g.src = "//d1l6p2sc9645hc.cloudfront.net/tracker.js";
|
||||||
|
var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(g, s);
|
||||||
|
}
|
||||||
|
w.addEventListener?w.addEventListener("load",gs,false):w.attachEvent("onload",gs);
|
||||||
|
})(window);
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
60
subtle/templates/index.html
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content_title %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
{% if articles %}
|
||||||
|
{% for article in articles_page.object_list %}
|
||||||
|
|
||||||
|
{# First item #}
|
||||||
|
{% if loop.first and not articles_page.has_previous() %}
|
||||||
|
<aside id="featured" class="body">
|
||||||
|
<article>
|
||||||
|
<h1 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h1>
|
||||||
|
{% include 'article_infos.html' %}{{ article.content }}{% include 'comments.html' %}
|
||||||
|
</article>
|
||||||
|
{% if loop.length == 1 %}
|
||||||
|
{% include 'pagination.html' %}
|
||||||
|
{% endif %}
|
||||||
|
</aside><!-- /#featured -->
|
||||||
|
{% if loop.length > 1 %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<h1>Other articles</h1>
|
||||||
|
<hr />
|
||||||
|
<ol id="posts-list" class="hfeed">
|
||||||
|
{% endif %}
|
||||||
|
{# other items #}
|
||||||
|
{% else %}
|
||||||
|
{% if loop.first and articles_page.has_previous %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<ol id="posts-list" class="hfeed" start="{{ articles_paginator.per_page -1 }}">
|
||||||
|
{% endif %}
|
||||||
|
<li><article class="hentry">
|
||||||
|
<header>
|
||||||
|
<h1><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title}}">{{ article.title }}</a></h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="entry-content">
|
||||||
|
{% include 'article_infos.html' %}
|
||||||
|
{{ article.summary }}
|
||||||
|
<a class="readmore" href="{{ SITEURL }}/{{ article.url }}">read more</a>
|
||||||
|
{% include 'comments.html' %}
|
||||||
|
</div><!-- /.entry-content -->
|
||||||
|
</article></li>
|
||||||
|
{% endif %}
|
||||||
|
{% if loop.last and (articles_page.has_previous()
|
||||||
|
or not articles_page.has_previous() and loop.length > 1) %}
|
||||||
|
{% include 'pagination.html' %}
|
||||||
|
{% endif %}
|
||||||
|
{% if loop.last %}
|
||||||
|
</ol><!-- /#posts-list -->
|
||||||
|
</section><!-- /#content -->
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% 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 %}
|
||||||
10
subtle/templates/page.html
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %}{{ page.title }}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<h1 class="entry-title">{{ page.title }}</h1>
|
||||||
|
{% if PDF_PROCESSOR %}<a href="{{ SITEURL }}/pdf/{{ page.slug }}.pdf">get
|
||||||
|
the pdf</a>{% endif %}
|
||||||
|
{{ page.content }}
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
15
subtle/templates/pagination.html
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
{% if DEFAULT_PAGINATION %}
|
||||||
|
<p class="paginator">
|
||||||
|
{% if articles_page.has_previous() %}
|
||||||
|
{% if articles_page.previous_page_number() == 1 %}
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}.html">«</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html">«</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
|
||||||
|
{% if articles_page.has_next() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html">»</a>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
16
subtle/templates/piwik.html
Executable file
@@ -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 %}
|
||||||
2
subtle/templates/tag.html
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
{% extends "index.html" %}
|
||||||
|
{% block title %}{{ SITENAME }} - {{ tag }}{% endblock %}
|
||||||
2
subtle/templates/taglist.html
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
{% if article.tags %}<p>tags: {% 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 %}
|
||||||
0
subtle/templates/tags.html
Executable file
6
subtle/templates/translations.html
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
{% if article.translations %}
|
||||||
|
Translations:
|
||||||
|
{% for translation in article.translations %}
|
||||||
|
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
3
subtle/templates/twitter.html
Executable file
@@ -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>
|
||||||
|
{% endif %}
|
||||||