artilecls list by tag and author

This commit is contained in:
Arul 2016-09-13 20:07:13 +05:30
parent 2db8e49cdb
commit 2fee5e9d3e
22 changed files with 962 additions and 4 deletions

View file

@ -0,0 +1,38 @@
/*
Darkly Pygments Theme
(c) 2014 Sourcey
http://sourcey.com
*/
pre {
white-space: pre;
overflow: auto;
word-wrap: normal; /* horizontal scrolling */
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 20px;
background: #343642;
color: #C1C2C3;
}
.hll { background-color: #ffc; }
.gd { color: #2e3436; background-color: #0e1416; }
.gr { color: #eeeeec; background-color: #c00; }
.gi { color: #babdb6; background-color: #1f2b2d; }
.go { color: #2c3032; background-color: #2c3032; }
.kt { color: #e3e7df; }
.ni { color: #888a85; }
.c,.cm,.c1,.cs { color: #8D9684; }
.err,.g,.l,.n,.x,.p,.ge,
.gp,.gs,.gt,.ld,.s,.nc,.nd,
.ne,.nl,.nn,.nx,.py,.ow,.w,.sb,
.sc,.sd,.s2,.se,.sh,.si,.sx,.sr,
.s1,.ss,.bp { color: #C1C2C3; }
.k,.kc,.kd,.kn,.kp,.kr,
.nt { color: #729fcf; }
.cp,.gh,.gu,.na,.nf { color: #E9A94B ; }
.m,.nb,.no,.mf,.mh,.mi,.mo,
.il { color: #8ae234; }
.o { color: #989DAA; }
.nv,.vc,.vg,.vi { color: #fff; }

View file

@ -0,0 +1,84 @@
/* to make lines scroll instead of wrap */
/* from http://stackoverflow.com/a/23393920 */
.highlight pre code * {
white-space: nowrap; // this sets all children inside to nowrap
}
.highlight pre {
overflow-x: auto; // this sets the scrolling in x
}
.highlight pre code {
white-space: pre; // forces <code> to respect <pre> formatting
}
/*
* GitHub style for Pygments syntax highlighter, for use with Jekyll
* Courtesy of GitHub.com
*/
.highlight pre, pre, .highlight .hll { background-color: #f8f8f8; border: 1px solid #ccc; padding: 6px 10px; border-radius: 3px; }
.highlight .c { color: #999988; font-style: italic; }
.highlight .err { color: #a61717; background-color: #e3d2d2; }
.highlight .k { font-weight: bold; }
.highlight .o { font-weight: bold; }
.highlight .cm { color: #999988; font-style: italic; }
.highlight .cp { color: #999999; font-weight: bold; }
.highlight .c1 { color: #999988; font-style: italic; }
.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }
.highlight .gd { color: #000000; background-color: #ffdddd; }
.highlight .gd .x { color: #000000; background-color: #ffaaaa; }
.highlight .ge { font-style: italic; }
.highlight .gr { color: #aa0000; }
.highlight .gh { color: #999999; }
.highlight .gi { color: #000000; background-color: #ddffdd; }
.highlight .gi .x { color: #000000; background-color: #aaffaa; }
.highlight .go { color: #888888; }
.highlight .gp { color: #555555; }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: #800080; font-weight: bold; }
.highlight .gt { color: #aa0000; }
.highlight .kc { font-weight: bold; }
.highlight .kd { font-weight: bold; }
.highlight .kn { font-weight: bold; }
.highlight .kp { font-weight: bold; }
.highlight .kr { font-weight: bold; }
.highlight .kt { color: #445588; font-weight: bold; }
.highlight .m { color: #009999; }
.highlight .s { color: #dd1144; }
.highlight .n { color: #333333; }
.highlight .na { color: teal; }
.highlight .nb { color: #0086b3; }
.highlight .nc { color: #445588; font-weight: bold; }
.highlight .no { color: teal; }
.highlight .ni { color: purple; }
.highlight .ne { color: #990000; font-weight: bold; }
.highlight .nf { color: #990000; font-weight: bold; }
.highlight .nn { color: #555555; }
.highlight .nt { color: navy; }
.highlight .nv { color: teal; }
.highlight .ow { font-weight: bold; }
.highlight .w { color: #bbbbbb; }
.highlight .mf { color: #009999; }
.highlight .mh { color: #009999; }
.highlight .mi { color: #009999; }
.highlight .mo { color: #009999; }
.highlight .sb { color: #dd1144; }
.highlight .sc { color: #dd1144; }
.highlight .sd { color: #dd1144; }
.highlight .s2 { color: #dd1144; }
.highlight .se { color: #dd1144; }
.highlight .sh { color: #dd1144; }
.highlight .si { color: #dd1144; }
.highlight .sx { color: #dd1144; }
.highlight .sr { color: #009926; }
.highlight .s1 { color: #dd1144; }
.highlight .ss { color: #990073; }
.highlight .bp { color: #999999; }
.highlight .vc { color: teal; }
.highlight .vg { color: teal; }
.highlight .vi { color: teal; }
.highlight .il { color: #009999; }
.highlight .gc { color: #999; background-color: #EAF2F5; }

View file

@ -0,0 +1,80 @@
/*
Monokai Pygments Theme
*/
pre {
white-space: pre;
overflow: auto;
word-wrap: normal; /* horizontal scrolling */
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 20px;
background: #343642;
color: #C1C2C3;
}
.hll { background-color: #49483e }
.c { color: #75715e } /* Comment */
.err { color: #960050; background-color: #1e0010 } /* Error */
.k { color: #66d9ef } /* Keyword */
.l { color: #ae81ff } /* Literal */
.n { color: #f8f8f2 } /* Name */
.o { color: #f92672 } /* Operator */
.p { color: #f8f8f2 } /* Punctuation */
.cm { color: #75715e } /* Comment.Multiline */
.cp { color: #75715e } /* Comment.Preproc */
.c1 { color: #75715e } /* Comment.Single */
.cs { color: #75715e } /* Comment.Special */
.ge { font-style: italic } /* Generic.Emph */
.gs { font-weight: bold } /* Generic.Strong */
.kc { color: #66d9ef } /* Keyword.Constant */
.kd { color: #66d9ef } /* Keyword.Declaration */
.kn { color: #f92672 } /* Keyword.Namespace */
.kp { color: #66d9ef } /* Keyword.Pseudo */
.kr { color: #66d9ef } /* Keyword.Reserved */
.kt { color: #66d9ef } /* Keyword.Type */
.ld { color: #e6db74 } /* Literal.Date */
.m { color: #ae81ff } /* Literal.Number */
.s { color: #e6db74 } /* Literal.String */
.na { color: #a6e22e } /* Name.Attribute */
.nb { color: #f8f8f2 } /* Name.Builtin */
.nc { color: #a6e22e } /* Name.Class */
.no { color: #66d9ef } /* Name.Constant */
.nd { color: #a6e22e } /* Name.Decorator */
.ni { color: #f8f8f2 } /* Name.Entity */
.ne { color: #a6e22e } /* Name.Exception */
.nf { color: #a6e22e } /* Name.Function */
.nl { color: #f8f8f2 } /* Name.Label */
.nn { color: #f8f8f2 } /* Name.Namespace */
.nx { color: #a6e22e } /* Name.Other */
.py { color: #f8f8f2 } /* Name.Property */
.nt { color: #f92672 } /* Name.Tag */
.nv { color: #f8f8f2 } /* Name.Variable */
.ow { color: #f92672 } /* Operator.Word */
.w { color: #f8f8f2 } /* Text.Whitespace */
.mf { color: #ae81ff } /* Literal.Number.Float */
.mh { color: #ae81ff } /* Literal.Number.Hex */
.mi { color: #ae81ff } /* Literal.Number.Integer */
.mo { color: #ae81ff } /* Literal.Number.Oct */
.sb { color: #e6db74 } /* Literal.String.Backtick */
.sc { color: #e6db74 } /* Literal.String.Char */
.sd { color: #e6db74 } /* Literal.String.Doc */
.s2 { color: #e6db74 } /* Literal.String.Double */
.se { color: #ae81ff } /* Literal.String.Escape */
.sh { color: #e6db74 } /* Literal.String.Heredoc */
.si { color: #e6db74 } /* Literal.String.Interpol */
.sx { color: #e6db74 } /* Literal.String.Other */
.sr { color: #e6db74 } /* Literal.String.Regex */
.s1 { color: #e6db74 } /* Literal.String.Single */
.ss { color: #e6db74 } /* Literal.String.Symbol */
.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.vc { color: #f8f8f2 } /* Name.Variable.Class */
.vg { color: #f8f8f2 } /* Name.Variable.Global */
.vi { color: #f8f8f2 } /* Name.Variable.Instance */
.il { color: #ae81ff } /* Literal.Number.Integer.Long */
.gh { } /* Generic Heading & Diff Header */
.gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
.gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */
.gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */

View file

@ -0,0 +1,70 @@
/*
Tomorrow Pygments Theme
*/
pre { background: #ffffff; color: #4d4d4c }
.hll { background-color: #d6d6d6 }
.c { color: #8e908c } /* Comment */
.err { color: #c82829 } /* Error */
.k { color: #8959a8 } /* Keyword */
.l { color: #f5871f } /* Literal */
.n { color: #4d4d4c } /* Name */
.o { color: #3e999f } /* Operator */
.p { color: #4d4d4c } /* Punctuation */
.cm { color: #8e908c } /* Comment.Multiline */
.cp { color: #8e908c } /* Comment.Preproc */
.c1 { color: #8e908c } /* Comment.Single */
.cs { color: #8e908c } /* Comment.Special */
.gd { color: #c82829 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.gh { color: #4d4d4c; font-weight: bold } /* Generic.Heading */
.gi { color: #718c00 } /* Generic.Inserted */
.gp { color: #8e908c; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #3e999f; font-weight: bold } /* Generic.Subheading */
.kc { color: #8959a8 } /* Keyword.Constant */
.kd { color: #8959a8 } /* Keyword.Declaration */
.kn { color: #3e999f } /* Keyword.Namespace */
.kp { color: #8959a8 } /* Keyword.Pseudo */
.kr { color: #8959a8 } /* Keyword.Reserved */
.kt { color: #eab700 } /* Keyword.Type */
.ld { color: #718c00 } /* Literal.Date */
.m { color: #f5871f } /* Literal.Number */
.s { color: #718c00 } /* Literal.String */
.na { color: #4271ae } /* Name.Attribute */
.nb { color: #4d4d4c } /* Name.Builtin */
.nc { color: #eab700 } /* Name.Class */
.no { color: #c82829 } /* Name.Constant */
.nd { color: #3e999f } /* Name.Decorator */
.ni { color: #4d4d4c } /* Name.Entity */
.ne { color: #c82829 } /* Name.Exception */
.nf { color: #4271ae } /* Name.Function */
.nl { color: #4d4d4c } /* Name.Label */
.nn { color: #eab700 } /* Name.Namespace */
.nx { color: #4271ae } /* Name.Other */
.py { color: #4d4d4c } /* Name.Property */
.nt { color: #3e999f } /* Name.Tag */
.nv { color: #c82829 } /* Name.Variable */
.ow { color: #3e999f } /* Operator.Word */
.w { color: #4d4d4c } /* Text.Whitespace */
.mf { color: #f5871f } /* Literal.Number.Float */
.mh { color: #f5871f } /* Literal.Number.Hex */
.mi { color: #f5871f } /* Literal.Number.Integer */
.mo { color: #f5871f } /* Literal.Number.Oct */
.sb { color: #718c00 } /* Literal.String.Backtick */
.sc { color: #4d4d4c } /* Literal.String.Char */
.sd { color: #8e908c } /* Literal.String.Doc */
.s2 { color: #718c00 } /* Literal.String.Double */
.se { color: #f5871f } /* Literal.String.Escape */
.sh { color: #718c00 } /* Literal.String.Heredoc */
.si { color: #f5871f } /* Literal.String.Interpol */
.sx { color: #718c00 } /* Literal.String.Other */
.sr { color: #718c00 } /* Literal.String.Regex */
.s1 { color: #718c00 } /* Literal.String.Single */
.ss { color: #718c00 } /* Literal.String.Symbol */
.bp { color: #4d4d4c } /* Name.Builtin.Pseudo */
.vc { color: #c82829 } /* Name.Variable.Class */
.vg { color: #c82829 } /* Name.Variable.Global */
.vi { color: #c82829 } /* Name.Variable.Instance */
.il { color: #f5871f } /* Literal.Number.Integer.Long */

View file

@ -0,0 +1,70 @@
/*
Tomorrow Night Pygments Theme
*/
pre { background: #1d1f21; color: #c5c8c6 }
.hll { background-color: #373b41 }
.c { color: #969896 } /* Comment */
.err { color: #cc6666 } /* Error */
.k { color: #b294bb } /* Keyword */
.l { color: #de935f } /* Literal */
.n { color: #c5c8c6 } /* Name */
.o { color: #8abeb7 } /* Operator */
.p { color: #c5c8c6 } /* Punctuation */
.cm { color: #969896 } /* Comment.Multiline */
.cp { color: #969896 } /* Comment.Preproc */
.c1 { color: #969896 } /* Comment.Single */
.cs { color: #969896 } /* Comment.Special */
.gd { color: #cc6666 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.gh { color: #c5c8c6; font-weight: bold } /* Generic.Heading */
.gi { color: #b5bd68 } /* Generic.Inserted */
.gp { color: #969896; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #8abeb7; font-weight: bold } /* Generic.Subheading */
.kc { color: #b294bb } /* Keyword.Constant */
.kd { color: #b294bb } /* Keyword.Declaration */
.kn { color: #8abeb7 } /* Keyword.Namespace */
.kp { color: #b294bb } /* Keyword.Pseudo */
.kr { color: #b294bb } /* Keyword.Reserved */
.kt { color: #f0c674 } /* Keyword.Type */
.ld { color: #b5bd68 } /* Literal.Date */
.m { color: #de935f } /* Literal.Number */
.s { color: #b5bd68 } /* Literal.String */
.na { color: #81a2be } /* Name.Attribute */
.nb { color: #c5c8c6 } /* Name.Builtin */
.nc { color: #f0c674 } /* Name.Class */
.no { color: #cc6666 } /* Name.Constant */
.nd { color: #8abeb7 } /* Name.Decorator */
.ni { color: #c5c8c6 } /* Name.Entity */
.ne { color: #cc6666 } /* Name.Exception */
.nf { color: #81a2be } /* Name.Function */
.nl { color: #c5c8c6 } /* Name.Label */
.nn { color: #f0c674 } /* Name.Namespace */
.nx { color: #81a2be } /* Name.Other */
.py { color: #c5c8c6 } /* Name.Property */
.nt { color: #8abeb7 } /* Name.Tag */
.nv { color: #cc6666 } /* Name.Variable */
.ow { color: #8abeb7 } /* Operator.Word */
.w { color: #c5c8c6 } /* Text.Whitespace */
.mf { color: #de935f } /* Literal.Number.Float */
.mh { color: #de935f } /* Literal.Number.Hex */
.mi { color: #de935f } /* Literal.Number.Integer */
.mo { color: #de935f } /* Literal.Number.Oct */
.sb { color: #b5bd68 } /* Literal.String.Backtick */
.sc { color: #c5c8c6 } /* Literal.String.Char */
.sd { color: #969896 } /* Literal.String.Doc */
.s2 { color: #b5bd68 } /* Literal.String.Double */
.se { color: #de935f } /* Literal.String.Escape */
.sh { color: #b5bd68 } /* Literal.String.Heredoc */
.si { color: #de935f } /* Literal.String.Interpol */
.sx { color: #b5bd68 } /* Literal.String.Other */
.sr { color: #b5bd68 } /* Literal.String.Regex */
.s1 { color: #b5bd68 } /* Literal.String.Single */
.ss { color: #b5bd68 } /* Literal.String.Symbol */
.bp { color: #c5c8c6 } /* Name.Builtin.Pseudo */
.vc { color: #cc6666 } /* Name.Variable.Class */
.vg { color: #cc6666 } /* Name.Variable.Global */
.vi { color: #cc6666 } /* Name.Variable.Instance */
.il { color: #de935f } /* Literal.Number.Integer.Long */

BIN
static/images/about-bg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
static/images/contact-bg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

BIN
static/images/home-bg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

BIN
static/images/post-bg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View file

@ -0,0 +1,183 @@
{% extends "base.html" %}
{% block title %}{{ article.title }}{% endblock %}
{% block head %}
{{ super() }}
{% for keyword in article.keywords %}
<meta name="keywords" content="{{keyword}}" >
{% endfor %}
{% if description %}
<meta name="description" content="{{ description }}">
{% elif article.headline %}
<meta name="description" content="{{ article.headline }}">
{% elif article.summary %}
<meta name="description" content="{{ article.summary|striptags|truncate(140) }}">
{% endif %}
{% for author in article.authors %}
<meta name="author" content="{{ author }}">
{% endfor %}
{% for tag in article.tags %}
<meta name="tags" content="{{tag}}">
{% endfor %}
{% endblock %}
{% block twitter_card %}
{% for name,link in SOCIAL if name in ['twitter'] %}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@{{ link|replace('http://', 'https://')|replace('https://twitter.com/', '') }}">
<meta name="twitter:title" content="{{ article.title }}">
{% if article.twitter_image %}
{% if article.twitter_image|lower|truncate(4, True, '') == "http" %}
<meta property="twitter:image" content="{{ article.twitter_image }}">
{% else %}
<meta property="twitter:image" content="{{ SITEURL }}/{{ article.twitter_image }}">
{% endif %}
{% elif article.header_cover %}
<meta name="twitter:image" content="{{ SITEURL }}/{{ article.header_cover }}">
{% elif HEADER_COVER %}
<meta name="twitter:image" content="{{ SITEURL }}/{{ HEADER_COVER }}">
{% else %}
<meta name="twitter:image" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg">
{% endif %}
{% if description %}
<meta name="twitter:description" content="{{ description }}">
{% elif article.headline %}
<meta name="twitter:description" content="{{ article.headline }}">
{% else %}
<meta name="twitter:description" content="{{ article.summary|striptags|truncate(140) }}">
{% endif %}
{% endfor %}
{% endblock %}
{% block opengraph %}
{{ super() }}
<meta property="og:type" content="article">
{% for author in article.authors %}
<meta property="article:author" content="{{ SITEURL }}/{{ author.url }}">
{% endfor %}
<meta property="og:url" content="{{ SITEURL }}/{{ article.url }}">
<meta property="og:title" content="{{ article.title }}">
<meta property="article:published_time" content="{{ article.date }}">
{% if description %}
<meta property="og:description" content="{{ description }}">
{% elif article.headline %}
<meta property="og:description" content="{{ article.headline }}">
{% elif article.summary %}
<meta property="og:description" content="{{ article.summary|striptags|truncate(140) }}">
{% endif %}
{% if article.og_image %}
{% if article.og_image|lower|truncate(4, True, '') == "http" %}
<meta property="og:image" content="{{ article.og_image }}">
{% else %}
<meta property="og:image" content="{{ SITEURL }}/{{ article.og_image }}">
{% endif %}
{% elif article.header_cover %}
<meta property="og:image" content="{{ SITEURL }}/{{ article.header_cover }}">
{% elif HEADER_COVER %}
<meta property="og:image" content="{{ SITEURL }}/{{ HEADER_COVER }}">
{% else %}
<meta property="og:image" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg">
{% endif %}
{% endblock %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="post-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% else %}
<span id="home-button" class="nav-button">
<a class="home-button" href="{{ SITEURL }}" title="Home"><i class="ic ic-arrow-left"></i> Home</a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="post-title">{{ article.title }}</h1>
<!-- TODO : Proper class for headline -->
{% if article.headline %}
<span class="blog-description">{{ article.headline }}</h3>
{% endif %}
<span class="post-meta">
{% for author in article.authors %}
<a href="{{ SITEURL }}/{{ author.url }}">{{ author|capitalize }}</a>
{% endfor %}
| <time datetime="{{ article.locale_date }}">{{ article.locale_date }}</time>
</span>
<!-- TODO : Modified check -->
{% if article.modified %}
<span class="post-meta"> | Updated on {{ article.locale_modified }}</span>
{% endif %}
{% if article.header_cover %}
<div class="post-cover cover" style="background-image: url('{{ article.header_cover }}')">
{% elif HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="post-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="post-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}
{% block content %}
<!-- Post content -->
<main class="content" role="main">
<article class="post">
<div class="inner">
<section class="post-content">
{{article.content}}
</section>
<section class="post-info">
<div class="post-share">
<a class="twitter" href="https://twitter.com/share?text={{ article.title }}&amp;url={{ SITEURL }}/{{ article.url }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;">
<i class="ic ic-twitter"></i><span class="hidden">Twitter</span>
</a>
<a class="facebook" href="https://www.facebook.com/sharer/sharer.php?u={{ SITEURL }}/{{ article.url }}" onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;">
<i class="ic ic-facebook"></i><span class="hidden">Facebook</span>
</a>
<a class="googleplus" href="https://plus.google.com/share?url={{ SITEURL }}/{{ article.url }}" onclick="window.open(this.href, 'google-plus-share', 'width=490,height=530');return false;">
<i class="ic ic-googleplus"></i><span class="hidden">Google+</span>
</a>
<div class="clear"></div>
</div>
{% if article.tags %}
<aside class="post-tags">
{% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag | escape }}</a>{% if not loop.last %}{% endif %}{% endfor %}
</aside>
{% endif %}
<div class="clear"></div>
<!-- TODO : Author Info -->
</section>
<!-- TODO : comments not showing -->
<section class="post-comments">
<a id="show-disqus" class="post-comments-activate">Show Comments</a>
<div id="disqus_thread"></div>
</section>
<!-- TODO : Previous and Next post -->
</div>
</article>
</main>
{% endblock content %}

View file

@ -0,0 +1,43 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
{% block opengraph %}
{{ super() }}
<meta property="og:title" content="{{ SITENAME }} - Articles by {{ author }}">
<meta property="og:type" content="profile">
<meta property="profile:first_name" content="{{ author.name.split(' ')[0] }}">
<meta property="profile:last_name" content="{{ author.name.split(' ')[1:]|join(' ') }}">
<meta property="profile:username" content="{{ author.slug }}">
{% endblock opengraph %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="blog-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% else %}
<span id="home-button" class="nav-button">
<a class="home-button" href="{{ SITEURL }}" title="Home"><i class="ic ic-arrow-left"></i> Home</a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="post-title">Articles by {{ author|capitalize }}</h1>
{% if HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="post-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="post-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}

51
templates/authors.html Normal file
View file

@ -0,0 +1,51 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - Authors{% endblock title %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="blog-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% else %}
<span id="home-button" class="nav-button">
<a class="home-button" href="{{ SITEURL }}" title="Home"><i class="ic ic-arrow-left"></i> Home</a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="post-title">Articles by {{ author|capitalize }}</h1>
{% if HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="post-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="post-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}
{% block content %}
{% for author, articles in authors|sort %}
<article class="post">
<div class="inner">
<a href="{{ SITEURL }}/{{ author.url }}" rel="bookmark">
<h2 class="post-title">
{{ author }} ({{ articles|count }})
</h2>
</a>
</div>
</article>
{% if not loop.last %}
<hr>
{% endif %}
{% endfor %}
{% endblock content %}

View file

@ -55,6 +55,13 @@
<link href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/style.css" type="text/css" rel="stylesheet" />
<!-- Code highlight color scheme -->
{% if COLOR_SCHEME_CSS %}
<link href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/code_blocks/{{ COLOR_SCHEME_CSS }}" rel="stylesheet">
{% else %}
<link href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/code_blocks/github.css" rel="stylesheet">
{% endif %}
{% if CSS_OVERRIDE %}
<!-- CSS specified by the user -->
{% for css in CSS_OVERRIDE %}
@ -63,10 +70,77 @@
{% endif %}
<!-- Custom fonts -->
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,300' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
</head>
<body>
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,300' rel='stylesheet' type='text/css' />
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
{% endblock head %}
{% block opengraph %}
{% for admin in FACEBOOK_ADMINS %}
<meta property="fb:admins" content="{{ admin }}" />
{% endfor %}
{% for LOC in LOCALE %}
<meta property="og:locale" content="{{ LOC }}" />
{% endfor %}
<meta property="og:site_name" content="{{ SITENAME }}" />
<meta property="og:type" content="website" />
<meta property="og:title" content="{{ SITENAME }}" />
<meta property="og:description" content="{{ SITESUBTITLE|default('View the blog.') }}" />
<meta property="og:url" content="{{ SITEURL }}" />
{% if HEADER_COVER %}
<meta property="og:image" content="{{ SITEURL }}/{{ HEADER_COVER }}" />
{% else %}
<meta name="og:image" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg">
{% endif %}
{% for name,link in SOCIAL if name in ['facebook'] %}
<meta property="article:publisher" content="{{ link }}" />
{% endfor %}
{% endblock opengraph %}
{% block twitter_card %}
{% for name,link in SOCIAL if name in ['twitter'] %}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@{{ link|replace('http://', 'https://')|replace('https://twitter.com/', '') }}">
<meta name="twitter:title" content="{{ SITENAME }}">
<meta name="twitter:description" content="{{ SITESUBTITLE|default('View the blog.') }}">
{% if HEADER_COVER %}
<meta name="twitter:image" content="{{ SITEURL }}/{{ HEADER_COVER }}">
{% else %}
<meta name="twitter:image" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg">
{% endif %}
{% endfor %}
{% endblock twitter_card %}
</head>
<!-- TODO : Body class -->
<body class="home-template">
{% include 'partials/navigation.html' %}
{% block header %}{% endblock header %}
<section id="wrapper">
<a class="hidden-close"></a>
{% block content %}{% endblock content %}
<!-- TODO : Body class -->
<div id="body-class" style="display: none;" class="{{body_class}}"></div>
<footer id="footer">
<div class="inner">
<section class="credits">
<span class="credits-theme">Theme <a href="https://github.com/zutrinken/attila">Attila</a> by <a href="http://zutrinken.com" rel="nofollow">zutrinken</a></span>
<span class="credits-software">Published with <a href="http://ghost.org">Ghost</a></span>
</section>
</div>
</footer>
</section>
<script type="text/javascript" src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/js/script.js"></script>
{% include 'partials/analytics.js' %}
{% include 'partials/disqus.js' %}
</body>
</html>

View file

@ -0,0 +1,41 @@
{% extends "base.html" %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="blog-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="blog-name"><a href="{{ SITEURL }}">{{ SITENAME }}</a></h1>
{% if SITESUBTITLE %}
<span class="blog-description">{{ SITESUBTITLE }}</span>
{% endif %}
{% if HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="blog-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="blog-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/home-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}
{% block content %}
<div id="index" class="container">
<main class="content" role="main">
{% include "partials/loop.html" %}
</main>
</div>
{% endblock content %}

View file

@ -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 %}

View file

@ -0,0 +1,9 @@
{% if DISQUS_SITENAME %}
<p>
{% if article.disqus_identifier %}
<a data-disqus-identifier="{{ article.disqus_identifier }}" href="{{ SITEURL }}/{{ article.url }}#disqus_thread">comments</a>
{% else %}
<a data-disqus-identifier="/{{ article.url }}" href="{{ SITEURL }}/{{ article.url }}#disqus_thread">comments</a>
{% endif %}
</p>
{% endif %}

View 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 = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
{% endif %}

View file

@ -0,0 +1,39 @@
<div class="extra-pagination">
{% include "partials/pagination.html" %}
</div>
{% for article in articles_page.object_list %}
<article class="post">
<div class="inner">
<header class="post-header">
<h2 class="post-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
</h2>
<span class="post-meta">
{% for author in article.authors %}
<a href="{{ SITEURL }}/{{ author.url }}">{{ author|capitalize }}</a>
{% endfor %}
| <time datetime="{{ article.locale_date }}">{{ article.locale_date }}</time>
</span>
<div class="clear"></div>
</header>
{% if SHOW_FULL_ARTICLE %}
<section class="post-content">
{{ article.content }}
</section>
{% else %}
<section class="post-excerpt">
<p>
{% if article.has_summary %}
{{ article.summary }}
{% elif article.summary %}
{{ article.summary|striptags|truncate(250) }}
{% endif %}
</p>
</section>
{% endif %}
{% include 'partials/comments_count.html' %}
</div>
</article>
{% endfor %}
{% include "partials/pagination.html" %}

View file

@ -0,0 +1,27 @@
<nav id="menu">
<a class="close-button">Close</a>
<div class="nav-wrapper">
<p class="nav-label">Menu</p>
<ul>
{% for title, link in MENUITEMS %}
<li><a href="{{ link }}" role="presentation">{{ title }}</a></li>
{% endfor %}
{% if DISPLAY_PAGES_ON_MENU %}
{% for p in PAGES %}
<li{% if p == page %} class="nav-{{p.slug}} active"{% endif %} role="presentation"><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
{% else %}
{% if DISPLAY_CATEGORIES_ON_MENU %}
{% for cat, null in categories %}
<li{% if cat == category %} class="nav-{{cat.slug}} active"{% endif %} role="presentation"><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
{% endfor %}
{% endif %}
{% endif %}
{% for name,link in SOCIAL if name in ['rss', 'rss-square', 'feed'] %}
<li class="nav-rss"><a href="{{ link }}"><i class="ic ic-rss"></i> Subscribe</a></li>
{% endfor %}
</ul>
</div>
</nav>

View file

@ -0,0 +1,14 @@
{% if DEFAULT_PAGINATION %}
<nav class="pagination" role="pagination">
<div class="inner">
{% if articles_page.has_previous() %}
<a class="pagination-next" href="{{ SITEURL }}/{{ articles_previous_page.url }}"><i class="ic ic-arrow-left"></i> <span class="pagination-label">Newer Posts</span></a>
{% endif %}
<span class="pagination-info">Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}</span>
{% if articles_page.has_next() %}
<a class="pagination-prev" href="{{ SITEURL }}/{{ articles_next_page.url }}"><span class="pagination-label">Older Posts</span> <i class="ic ic-arrow-right"></i></a>
{% endif %}
<div class="clear"></div>
</div>
</nav>
{% endif %}

View file

@ -0,0 +1,34 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - Tag {{ tag }}{% endblock %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="blog-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% else %}
<span id="home-button" class="nav-button">
<a class="home-button" href="{{ SITEURL }}" title="Home"><i class="ic ic-arrow-left"></i> Home</a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="post-title">Tag {{ tag }}</h1>
<span class="blog-description">Posts: {{ articles|count }}</span>
{% if HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="post-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="post-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}

View file

@ -0,0 +1,44 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Tags{% endblock %}
{% block header %}
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header id="blog-header" class="has-cover">
<div class="inner">
<nav id="navigation">
{% if SITE_LOGO %}
<span class="blog-logo">
<a href="{{ SITEURL }}"><img src="{{SITE_LOGO}}" alt="Blog Logo" /></a>
</span>
{% else %}
<span id="home-button" class="nav-button">
<a class="home-button" href="{{ SITEURL }}" title="Home"><i class="ic ic-arrow-left"></i> Home</a>
</span>
{% endif %}
<span id="menu-button" class="nav-button">
<a class="menu-button"><i class="ic ic-menu"></i> Menu</a>
</span>
</nav>
<h1 class="post-title">{{ SITENAME }} - Tags</h1>
{% if HEADER_COVER %}
<div class="blog-cover cover" style="background-image: url('{{ HEADER_COVER }}')">
{% elif HEADER_COLOR %}
<div class="post-cover cover" style="background-color: {{ HEADER_COLOR }}">
{% else %}
<div class="post-cover cover" style="background-image: url('{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/post-bg.jpg')">
{% endif %}
</div>
</header>
{% endblock header %}
{% block content %}
{%- for tag, articles in tags|sort %}
<article class="post">
<div class="inner">
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})
</div>
</article>
{% endfor %}
{% endblock content %}