Commits

Alexis Metaireau committed 87a5c34

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

  • Participants
  • Parent commits 510ce0d

Comments (0)

Files changed (12)

 
     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']:

pelican/generators.py

         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
 
         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 = {}

pelican/themes/martyalchin/css/style.css

+/* 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;
+}
+

pelican/themes/martyalchin/templates/archives.html

Empty file added.

pelican/themes/martyalchin/templates/article.html

+{% 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 %}

pelican/themes/martyalchin/templates/base.html

+<!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>

pelican/themes/martyalchin/templates/categories.html

Empty file added.

pelican/themes/martyalchin/templates/category.html

+{% 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 %}

pelican/themes/martyalchin/templates/index.html

+{% 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 %}

pelican/themes/martyalchin/templates/page.html

+{% extends "base.html" %}
+{% block title %}{{ page.title }}{%endblock%}
+{% block content %}
+    <h1>{{ page.title }}</h1>
+    {{ page.content }}
+{% endblock %}
+

pelican/themes/martyalchin/templates/tag.html

Empty file added.

pelican/themes/martyalchin/templates/tags.html

Empty file added.