1
0
Fork 0
forked from github/pelican

Add a new theme "martyalchin", based on http://martyalchin.com

This commit is contained in:
Alexis Metaireau 2010-11-08 01:26:45 +00:00
commit 35dc0bf34c
12 changed files with 468 additions and 5 deletions

View file

@ -30,7 +30,7 @@ if __name__ == '__main__':
generator = Generator(args.settings, args.path, args.theme,
args.output, markup)
clean_output_dir(args.output)
clean_output_dir(generator.output_path)
processors = [ArticlesProcessor, PagesProcessor, StaticProcessor]
if generator.settings['PDF_PROCESSOR']:

View file

@ -26,6 +26,14 @@ class Generator(object):
self.output_path = os.path.realpath(output_path)
self.markup = markup or self.settings['MARKUP']
if not os.path.exists(self.theme):
theme_path = os.sep.join([os.path.dirname(
os.path.abspath(__file__)), "themes/%s" % self.theme])
if os.path.exists(theme_path):
self.theme = theme_path
else:
raise Exception("Impossible to find the theme %s" % self.theme)
if 'SITEURL' not in self.settings:
self.settings['SITEURL'] = self.output_path
@ -102,10 +110,7 @@ class Generator(object):
print u' [ok] writing %s' % filename
def get_templates(self):
"""Return the templates to use.
:param path: the path to load the templates from
"""
"""Return the templates to use."""
path = os.path.expanduser(os.path.join(self.theme, 'templates'))
env = Environment(loader=FileSystemLoader(path))
templates = {}

View file

@ -0,0 +1,404 @@
/* Resets to avoid browser differences */
body, button, div, fieldset, form, h1, h2, h3, input, label, li, p, pre, td, textarea, .typygmentdown {
margin: 0;
padding: 0;
text-align: justify;
font-family: Georgia, serif;
font-size: 100%;
line-height: 1.25;
letter-spacing: 0;
border: none;
background: none;
}
/* Overall page layout */
body {
background: white;
color: black;
color: #303030;
}
@media screen {
body {
width: 700px;
margin: 20px auto;
}
}
@media print {
body {
margin: 0 2em;
}
}
/* Headings */
h1, h2, h3, h4, h5, h6, .info, .info p {
font-family: Times, serif;
font-weight: normal;
page-break-inside: avoid;
}
h1 .caps, h2 .caps, h3 .caps {
letter-spacing: -.05em;
}
h1 {
font-family: Times, serif;
text-align: center;
font-size: 2.25em;
line-height: 1.111;
padding-right: 0.08em;
letter-spacing: -.07em;
}
h2 {
margin-top: 0.714em;
font-size: 1.75em;
line-height: 0.714;
letter-spacing: -.05em;
}
h3 {
margin-top: 0.926em;
font-size: 1.35em;
line-height: 0.926;
letter-spacing: -.03em;
}
h1 .dquo, h2 .dquo, h3 .dquo, h4 .dquo, h5 .dquo, h6 .dquo {
margin-left: -.4em;
}
.info, .info p {
text-align: center;
letter-spacing: -.03em;
}
.info p {
margin: 0;
}
.info img.g {
width: 24px;
height: 24px;
margin: -7px 0;
}
#home h2 a[href*="http://"] {
padding-right: 28px;
background: url("/static/link.png") right center no-repeat;
}
#home h2 a[href*="http://"]:visited {
padding-right: 28px;
background: url("/static/visited.png") right center no-repeat;
}
h2 + p.published {
float: right;
margin-top: -1.25em;
}
.copyright {
margin: 1.25em 0;
}
/* Page text */
p, p[class] + p {
margin-top: 1.25em;
widows: 2;
orphans: 2;
text-indent: 0;
clear: left;
}
p + p {
text-indent: 1.5em;
margin-top: 0;
}
p ~ img {
display: block;
margin: 1.25em auto;
}
.caps {
letter-spacing: 0.1em;
font-size: 75%;
}
abbr {
border-bottom: 1px dotted black;
}
blockquote {
margin: 0 1em;
font-style: italic;
letter-spacing: -0.0625em;
}
blockquote em {
font-style: normal;
letter-spacing: 0;
}
div.image {
text-align: center;
margin: 1.25em 0;
}
img {
border: none;
}
.side {
position: absolute;
width: 150px;
height: auto;
margin-left: 710px;
}
.left.side {
margin-left: -160px;
}
.right.side {
margin-left: 710px;
}
@media screen {
h1 a, h2 a, h3 a, .info a {
text-decoration: none;
}
a:link {
color: #85ac40;
}
a:visited {
color: #61883b;
}
::selection {
background: #dcff9d;
}
::-moz-selection {
background: #e2ffaf;
}
}
@media print {
a {
color: inherit;
text-decoration: none;
}
abbr {
border-bottom: none;
}
}
/* Lists */
ul, ol {
margin: 1.25em 0 1.25em -1.5em;
padding-left: 1.5em;
}
ul ul, ul ol, ol ol, ol ul {
margin: 0;
}
ul li {
list-style: disc;
}
li p {
margin: 0;
}
/* Code */
pre {
margin-top: 1.47em;
font-family: Courier;
font-size: .85em;
line-height: 1.47;
overflow: visible;
}
code {
font-family: Courier;
font-size: .85em;
line-height: 1;
}
.typygmentdown .c {
font-style: italic;
}
.typygmentdown .k, .typygmentdown .ow {
color: #404040;
}
.typygmentdown .c, .typygmentdown .sd {
color: #808080;
}
/* Comments */
#comment-list {
margin: 0;
padding: 0;
}
#comment-list li {
padding-bottom: 1.25em;
}
#comment-list cite {
font-style: normal;
}
#comment-list cite + blockquote {
margin-top: 0;
}
#comment-list blockquote {
margin: 0;
}
#comment-list p {
margin-top: 1.25em;
text-indent: 0;
}
#comment-form th {
width: 25%;
}
#comment-form input, #comment-form select, #comment-form textarea {
width: 100%;
}
@media print {
#comment-list, #comment-form {
display: none;
}
}
/* Friends */
#friends li {
list-style: none;
margin-left: 0;
padding-left: 0;
}
#friends a[rel] {
margin-left: 20px;
}
#friends a[rel~="colleague"] {
background: url("/static/dj.png") left center no-repeat;
margin-left: 0;
padding-left: 20px;
}
/* Forms */
form, form p {
text-indent: 0;
text-align: left;
}
from th, form td {
margin: 0;
padding: 0;
}
input, select, textarea {
background: white;
line-height: 1.5;
}
input[type="submit"], button {
border: 1px outset;
text-align: center;
background: #85ac40;
padding: .2em;
}
input[type="text"], textarea {
vertical-align: top;
border: 1px solid #e0e0e0;
}
input[type="text"], select {
width: 15em;
}
textarea {
width: 45em;
height: 7.5em;
overflow: auto;
}
#honeypot {
display: none;
}
/* Tables */
table {
border-collapse: collapse;
border: none;
margin: 1.25em auto;
}
caption {
border-bottom: 1px solid #303030;
}
thead th {
border-bottom: 1px solid #303030;
}
tfoot th,
tfoot td {
border-top: 1px solid #303030;
}
th[scope="row"],
th[scope="col"] {
text-align: left;
}
tbody + tbody th, tbody + tbody td {
border-top: 1px solid #d0d0d0;
}
tbody + tbody tr + tr th,
tbody + tbody tr + tr td,
tfoot tr + tr th,
tfoot tr + tr td {
border-top: none;
}
th, td {
padding: 0 0.5em;
font-weight: normal;
vertical-align: top;
}
table.numeric td, table.numeric th[scope="col"] {
text-align: right;
}

View file

@ -0,0 +1,13 @@
{% extends "base.html" %}
{% block title %}{{ article.title }}{%endblock%}
{% block content %}
<h1>{{ article.title }}</h1>
<div class="info">
{% if article.author %}
By <a class="url fn" href="#">{{ article.author }}</a>
{% endif %}
on <a>{{ article.date.strftime('%a %d %B %Y') }}</a>
about <a href="{{ SITEURL }}/category/{{ article.category }}.html">{{ article.category }}</a>
</div>
{{ article.content }}
{% endblock %}

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>{% block title %}{{ SITENAME }}{%endblock%}</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="{{ SITEURL }}/css/style.css" type="text/css" />
<link href="{{ SITEURL }}/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} ATOM Feed" />
</head>
<body>
{% block content %} {% endblock %}
<div class="copyright info vcard">Design by <a class="fn url"
href="http://martyalchin.com">Marty Alchin</a>, <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">some rights reserved</a>. Powered by <a href="http://alexis.notomyidea.org/pelican/">pelican</a></div>
</body>
</html>

View file

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block title %}{{ category }}{%endblock%}
<h1>{{ category }}</h1>
<div class="info"></div>
{% for article in articles %}
<h2><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h2>
<p class="published">{{ article.date.strftime('%a %d %B %Y') }}</p>
{{ article.summary }}
{% endfor %}

View file

@ -0,0 +1,10 @@
{% extends "base.html" %}
{% block content %}
<h1><a href="{{ SITEURL }}">{{ SITENAME }}</a></h1>
{% if SITESUBTITLE %} <div class="info">{{ SITESUBTITLE }}</div> {% endif %}
{% for article in articles %}
<h2><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h2>
<p class="published">{{ article.date.strftime('%a %d %B %Y') }}</p>
{{ article.summary }}
{% endfor %}
{% endblock %}

View file

@ -0,0 +1,7 @@
{% extends "base.html" %}
{% block title %}{{ page.title }}{%endblock%}
{% block content %}
<h1>{{ page.title }}</h1>
{{ page.content }}
{% endblock %}