Merge pull request #160 from housne/master

New theme: simple-bootstrap
This commit is contained in:
Justin Mayer
2013-10-20 12:18:42 -07:00
17 changed files with 491 additions and 0 deletions

View File

@@ -0,0 +1 @@
this is a simple bootstrap pelican theme based on bootstrap [Narrow jumbotron](http://getbootstrap.com/examples/jumbotron-narrow/) template

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -0,0 +1,177 @@
/* Space out content a bit */
body {
padding-top: 20px;
}
/* Everything but the jumbotron gets side spacing for mobile first views */
.header,
.footer,
.content,
.comment {
padding-left: 5px;
padding-right: 5px;
}
.nav-pills{
display:none;
}
/* Custom page header */
.header {
border-bottom: 1px solid #e5e5e5;
}
/* Make the masthead heading the same height as the navigation */
.header h3 {
margin-top: 0;
margin-bottom: 0;
line-height: 40px;
padding-bottom: 19px;
}
/* Custom page footer */
.footer {
padding-top: 19px;
color: #777;
border-top: 1px solid #e5e5e5;
margin-top:40px;
}
/* Customize container */
@media (min-width: 768px) {
.container {
max-width: 730px;
}
}
.container-narrow > hr {
margin: 30px 0;
}
/* Main marketing message and sign up button */
.jumbotron {
text-align: center;
border-bottom: 1px solid #e5e5e5;
}
.jumbotron .btn {
font-size: 21px;
padding: 14px 24px;
}
/* Supporting marketing content */
.marketing {
margin: 40px 0;
}
.marketing p + h4 {
margin-top: 28px;
}
.header .text-muted a{
color:#999;
text-decoration:none;
}
.entry-content{
padding:5px 0 15px;;
line-height:1.8;
}
.hentry{
margin-bottom:18px;
}
.pager{
margin-bottom:30px;
}
.pager ul{
margin:0;
padding:0;
}
.post-info{
padding-bottom:30px;
}
.post-info address{
display:inline;
}
.comment{
padding-top:15px;
padding-bottom:15px;
}
.archive-list li{
font-size:16px;
margin-bottom:10px;
}
.bottom-nav{display:none;}
.bottom-nav a{margin-left:15px;}
/* code style */
.hightlight { background-color: #ffffcc }
.c { color: #999988; font-style: italic } /* Comment */
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
.k { color: #000000; font-weight: bold } /* Keyword */
.o { color: #000000; font-weight: bold } /* Operator */
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
.c1 { color: #999988; font-style: italic } /* Comment.Single */
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.ge { color: #000000; font-style: italic } /* Generic.Emph */
.gr { color: #aa0000 } /* Generic.Error */
.gh { color: #999999 } /* Generic.Heading */
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.go { color: #888888 } /* Generic.Output */
.gp { color: #555555 } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #aaaaaa } /* Generic.Subheading */
.gt { color: #aa0000 } /* Generic.Traceback */
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #445588; font-weight: bold } /* Keyword.Type */
.m { color: #009999 } /* Literal.Number */
.s { color: #d01040 } /* Literal.String */
.na { color: #008080 } /* Name.Attribute */
.nb { color: #0086B3 } /* Name.Builtin */
.nc { color: #445588; font-weight: bold } /* Name.Class */
.no { color: #008080 } /* Name.Constant */
.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
.ni { color: #800080 } /* Name.Entity */
.ne { color: #990000; font-weight: bold } /* Name.Exception */
.nf { color: #990000; font-weight: bold } /* Name.Function */
.nl { color: #990000; font-weight: bold } /* Name.Label */
.nn { color: #555555 } /* Name.Namespace */
.nt { color: #000080 } /* Name.Tag */
.nv { color: #008080 } /* Name.Variable */
.ow { color: #000000; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mf { color: #009999 } /* Literal.Number.Float */
.mh { color: #009999 } /* Literal.Number.Hex */
.mi { color: #009999 } /* Literal.Number.Integer */
.mo { color: #009999 } /* Literal.Number.Oct */
.sb { color: #d01040 } /* Literal.String.Backtick */
.sc { color: #d01040 } /* Literal.String.Char */
.sd { color: #d01040 } /* Literal.String.Doc */
.s2 { color: #d01040 } /* Literal.String.Double */
.se { color: #d01040 } /* Literal.String.Escape */
.sh { color: #d01040 } /* Literal.String.Heredoc */
.si { color: #d01040 } /* Literal.String.Interpol */
.sx { color: #d01040 } /* Literal.String.Other */
.sr { color: #009926 } /* Literal.String.Regex */
.s1 { color: #d01040 } /* Literal.String.Single */
.ss { color: #990073 } /* Literal.String.Symbol */
.bp { color: #999999 } /* Name.Builtin.Pseudo */
.vc { color: #008080 } /* Name.Variable.Class */
.vg { color: #008080 } /* Name.Variable.Global */
.vi { color: #008080 } /* Name.Variable.Instance */
.il { color: #009999 } /* Literal.Number.Integer.Long */
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
/* Remove the padding we set earlier */
.header,
.content,
.footer,
.comment {
padding-left: 0;
padding-right: 0;
}
/* Space out the masthead */
.header {
margin-bottom: 30px;
}
.nav-pills,.bottom-nav{
display:block;
}
}

View File

@@ -0,0 +1,79 @@
/* Space out content a bit */
body {
padding-top: 20px;
padding-bottom: 20px;
}
/* Everything but the jumbotron gets side spacing for mobile first views */
.header,
.marketing,
.footer {
padding-left: 15px;
padding-right: 15px;
}
/* Custom page header */
.header {
border-bottom: 1px solid #e5e5e5;
}
/* Make the masthead heading the same height as the navigation */
.header h3 {
margin-top: 0;
margin-bottom: 0;
line-height: 40px;
padding-bottom: 19px;
}
/* Custom page footer */
.footer {
padding-top: 19px;
color: #777;
border-top: 1px solid #e5e5e5;
}
/* Customize container */
@media (min-width: 768px) {
.container {
max-width: 730px;
}
}
.container-narrow > hr {
margin: 30px 0;
}
/* Main marketing message and sign up button */
.jumbotron {
text-align: center;
border-bottom: 1px solid #e5e5e5;
}
.jumbotron .btn {
font-size: 21px;
padding: 14px 24px;
}
/* Supporting marketing content */
.marketing {
margin: 40px 0;
}
.marketing p + h4 {
margin-top: 28px;
}
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
/* Remove the padding we set earlier */
.header,
.marketing,
.footer {
padding-left: 0;
padding-right: 0;
}
/* Space out the masthead */
.header {
margin-bottom: 30px;
}
/* Remove the bottom border on the jumbotron for visual effect */
.jumbotron {
border-bottom: 0;
}
}

View File

@@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block archclass %} class="active"{%endblock%}
{% block title %}Archives{%endblock%}
{% block content %}
<dl>
{% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %}
<h3><a href="{{SITEURL}}/{{year}}" class="text">Archive for {{ year }}</a></h3>
<ul class="archive-list">
{% for article in date_year %}
<li><span class="text-muted">{{article.locale_date}} &raquo; </span><a href="{{ SITEURL }}/{{ article.url }}">{{article.title}}</a></li>
{% endfor %}
</ul>
{% endfor %}
</dl>
{% endblock %}

View File

@@ -0,0 +1,46 @@
{% extends "base.html" %}
{% block title %}{{ article.title }} - {{SITENAME}}{% endblock title %}
{% block content %}
<section id="content" class="article content">
<header>
<h2 class="entry-title">
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(article) }}
</header>
<div class="entry-content">
{{ article.content }}
</div><!-- /.entry-content -->
<footer class="post-info text-muted">
Posted on <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> in <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a> Tagged {% if article.tags %}{% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }} </a>{% endfor %}{% endif %}
{% endif %}
</footer><!-- /.post-info -->
</section>
{% if DISQUS_SITENAME %}
<div class="comment">
<div id="disqus_thread"></div> <!-- comment app container -->
</div>
<!-- Comment BEGIN -->
<script type="text/javascript">
var disqus_shortname = '{{ DISQUS_SITENAME }}'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<!-- Comment END -->
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,7 @@
{% extends "index.html" %}
{% block title %} Articles by {{ author }} - {{ SITENAME }}{% endblock %}
{% block navclass %}{%endblock%}
{% block content_title %}
<h2>Articles by {{ author }}</h2>
{% endblock %}

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
{% block head %}
<title>{% block title %}{{ SITENAME }}{% endblock %}</title>
<meta charset="utf-8" />
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<link href="{{ SITEURL }}/theme/static/css/style.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
{% if FEED_ALL_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
{% endif %}
{% if FEED_ALL_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
{% endif %}
{% if FEED_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
{% endif %}
{% if FEED_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
{% endif %}
{% if CATEGORY_FEED_ATOM and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM|format(category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
{% endif %}
{% if CATEGORY_FEED_RSS and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS|format(category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
{% endif %}
{% if TAG_FEED_ATOM and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM|format(tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
{% endif %}
{% if TAG_FEED_RSS and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS|format(tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
{% endif %}
{% endblock head %}
</head>
<body id="index" class="archive">
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li class="{% block navclass %}{{ NAVCLASS }}{% endblock navclass %}"><a href="{{ SITEURL }}">Home</a></li>
{% for p in PAGES %}
<li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
<li{% if author or tag %} class="active"{% endif %}{% block archclass %}{{ ARCHCLASS }}{% endblock archclass %}><a href="{{ SITEURL }}/archives.html">Archives</a></li>
</ul>
<h3 class="text-muted"><a href="{{ SITEURL }}">{{ SITENAME }}</a></h3>
</div>
{% block content %}
{% endblock %}
<footer id="contentinfo" class="footer">
<nav class="pull-right bottom-nav">
<a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}">RSS</a>
</nav>
<address id="about" class="vcard body">
&copy; <a href="{{SITEURL}}">{{SITENAME}}</a> Proudly powered by <a href="http://getpelican.com/">Pelican</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</div><!-- container -->
</body>
</html>

View File

@@ -0,0 +1,10 @@
{% extends "base.html" %}
{% block title %} Articles in {{ category }} - {{ SITENAME }}{% endblock %}
{% block archclass %} class="active"{%endblock%}
{% block content %}
<ul>
{% for category, articles in categories %}
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a></li>
{% endfor %}
</ul>
{% endblock %}

View File

@@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %} Articles in {{ category }} category - {{ SITENAME }}{% endblock %}
{% block navclass %}{%endblock%}
{% block archclass %} class="active"{%endblock%}
{% block content_title %}
<h2>Articles in the {{ category }} category</h2>
{% endblock %}

View File

@@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block navclass %}active{%endblock%}
{% block content %}
<section id="content" class="content">
{% block content_title %}
{% endblock %}
{% for article in articles_page.object_list %}
<article class="hentry">
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
<div class="entry-content"> {{ article.summary }} </div><!-- entry-content -->
</article>
{% endfor %}
{% include 'pagination.html' %}
</section><!-- content -->
{% endblock content %}

View File

@@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block title %}{{ page.title }}{%endblock%}
{% block content %}
<h1>{{ page.title }}</h1>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(page) }}
{{ page.content }}
{% endblock %}

View File

@@ -0,0 +1,17 @@
{% if DEFAULT_PAGINATION %}
<div class="pager">
<ul>
{% if articles_page.has_previous() %}
{% set num = articles_page.previous_page_number() %}
<li class="previous"><a href="{{ SITEURL }}/{{ page_name }}{{ num if num > 1 else '' }}.html">← Previous</a></li>
{% else %}
<li class="previous disabled"><a>← Previous</a></li>
{% endif %}
{% if articles_page.has_next() %}
<li class="next"><a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html">Next →</a></li>
{% else %}
<li class="next disabled"><a>Next →</a></li>
{% endif %}
</ul>
</div>
{% endif %}

View File

@@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block archclass %} class="active"{%endblock%}
{% block content %}
<dl>
{% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %}
<h3><a href="{{SITEURL}}/{{year}}" class="text">Archive for {{ year }}</a></h3>
<ul class="archive-list">
{% for article in date_year %}
<li><span class="text-muted">{{article.locale_date}} &raquo; </span><a href="{{ SITEURL }}/{{ article.url }}">{{article.title}}</a></li>
{% endfor %}
</ul>
{% endfor %}
</dl>
{% endblock %}

View File

@@ -0,0 +1,7 @@
{% extends "index.html" %}
{% block title %} Articles in {{ tag }} tag - {{ SITENAME }}{% endblock %}
{% block navclass %}{%endblock%}
{% block archclass %}active{%endblock%}
{% block content_title %}
<h2>Articles with the {{ tag }} tag</h2>
{% endblock %}

View File

@@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block archclass %} class="active"{%endblock%}
{% block title %}Tags{%endblock%}
{% block content %}
<ul class="tag">
{% for tag in tag_cloud %}
<li class="tag-{{ tag.1 }}"><a href="{{ SITEURL }}/{{ tag.0.url }}">{{ tag.0 }}</a></li>
{% endfor %}
</ul>
{% endblock %}

View File

@@ -0,0 +1,9 @@
{% macro translations_for(article) %}
{% if article.translations %}
Translations:
{% for translation in article.translations %}
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
{% endfor %}
{% endif %}
{% endmacro %}