Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
thomaswilley committed Jan 3, 2015
0 parents commit 5ef16aa
Show file tree
Hide file tree
Showing 23 changed files with 440 additions and 0 deletions.
22 changes: 22 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015 @thomaswilley

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Pelicanyan

Pelicanyan brings Jekyll's [Lanyon
Theme](https://github.com/poole/lanyon/) to
[Pelican](http://github.com/getpelican).

More information about the lanyon theme including screenshots and such
is best found over at the [Lanyon
Repo](https://github.com/poole/lanyon/). Here's a sample:

![Lanyon](https://f.cloud.github.com/assets/98681/1825266/be03f014-71b0-11e3-9539-876e61530e24.png)

## Usage

0. Assumes you've already got your [blog
created](http://docs.getpelican.com/en/3.5.0/quickstart.html)
1. Clone this repo
2. Download poole.css, lanyon.css, and syntax.css from the [Lanyon
repo](https://github.com/poole/lanyon/tree/master/public/css) and save into the static/css directory
3. Set basic theme-specific settings in your blog's pelicanconf.py:
- THEME='path-to-cloned-repo'
- GA_ACCOUNT (your GA account id, e.g., 'UA-12344321-1') assuming
you'd like GA enabled (see base.html)
- TWITTER_ACCOUNT (e.g., your twitter account name without the @)
- DIRECT_TEMPLATES = ('index', 'categories', 'authors', 'archives',
'sitemap', 'robots', 'humans')
- ROBOTS_SAVE_AS = 'robots.txt'
- HUMANS_SAVE_AS = 'humans.txt'
- SITEMAP_SAVE_AS = 'sitemap.xml'
- DEFAULT_LANG = 'en'
- DATE_FORMATS = { 'en': '%B %d, %Y', }
- STATIC_PATHS = ['images', 'favicon.ico'] note: this assumes your
blog's article images are located in content/images/ and your favicon.ico is located in content/
- (Additional Required Fields) AUTHOR, SITENAME, SITEURL
- (Optional) TYPOGRIFY=True (and pip3 install it of course)
- (Optional) Set SITEDESCRIPTION
- (Optional) Set your LINKS

## Compatability & Caveats

Pelicanyan's probably best considered alpha at this time and hasn't
undergone much testing. If you find bugs by all means help fix them and
build out a browser compatability matrix. While most likely things like
reversing the layout, updating color scheme, and other options
associated with Lanyon remain possible here, these haven't been tested
either.

## Author

**Thomas Willey**
- <https://github.com/thomaswilley>
- <https://twitter.com/thomaswilley>

## License

Open sourced under the [MIT license](LICENSE).
Binary file added static/.DS_Store
Binary file not shown.
34 changes: 34 additions & 0 deletions static/css/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.profile {
height: 80px;
width: 80px;
border-radius: 40px;
-webkit-border-radius: 40px;
-moz-border-radius: 40px;
background: url('../img/profile.png') no-repeat center center;
background-size: 99% auto;
}
.profile img {
opacity: 0;
filter: alpha(opactiy=0);
}
.content-title h2 {
color: #9a9a9a;
}
table {
max-width: 100% !important;
}
tr {
max-width: 100% !important;
}
td {
max-width: 100px !important;
}
td img {
width: 100% auto;
}
.tiny-note {
font-size: 8pt;
}
.muted {
color: #9a9a9a !important;
}
Binary file added static/img/profile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions templates/archives.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "base.html" %}
{% block content %}
<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>
{% endblock %}
29 changes: 29 additions & 0 deletions templates/article.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{% extends "base.html" %}
{% block head %}
{{ super() }}
{% for keyword in article.keywords %}
<meta name="keywords" contents="{{keyword}}" />
{% endfor %}

{% for description in article.description %}
<meta name="description" contents="{{description}}" />
{% endfor %}

{% for tag in article.tags %}
<meta name="tags" contents="{{tag}}" />
{% endfor %}

{% endblock %}

{% block content %}
<div class="posts">
<div class="post">
<h1 class="post-title">
{{ article.title }}
</h1>
<span class="post-date">{{ article.locale_date }}</span>

{{ article.content }}
</div>
</div>
{% endblock %}
7 changes: 7 additions & 0 deletions templates/author.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{% extends "index.html" %}

{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
{% block content_title %}
<h2>Articles by {{ author }}</h2>
{% endblock %}

13 changes: 13 additions & 0 deletions templates/authors.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{% extends "base.html" %}

{% block title %}{{ SITENAME }} - Authors{% endblock %}

{% block content %}
<h1>Authors on {{ SITENAME }}</h1>

<ul>
{%- for author, articles in authors|sort %}
<li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}
109 changes: 109 additions & 0 deletions templates/base.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
<!DOCTYPE html>
<html lang="{{ DEFAULT_LANG }}">
<head>
{% block head %}
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />

<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>

<meta charset="utf-8" />
{% 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 %}
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/poole.css"/>
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/syntax.css"/>
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/lanyon.css"/>
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/styles.css"/>
{% endblock head %}
</head>

<body>
{% include 'sidebar.html' %}
<div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="{{ SITEURL }}/" title="Home">{{ SITENAME }}</a>
{% if SITEDESCRIPTION %}
<small>{{ SITEDESCRIPTION }}</small>
{% endif %}
</h3>
</div>
</div>

<div class="container content">
{% block content %}{% endblock %}
</div>

<label for="sidebar-checkbox" class="sidebar-toggle"></label>

<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>

<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
{% if GA_ACCOUNT %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ GA_ACCOUNT }}']);
_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 %}
</div>
</body>
</html>
8 changes: 8 additions & 0 deletions templates/categories.html
Original file line number Diff line number Diff line change
@@ -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 %}
5 changes: 5 additions & 0 deletions templates/category.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{% extends "index.html" %}
{% block content_title %}
<h2>{{ category }} category</h2>
{% endblock %}

Empty file added templates/humans.html
Empty file.
20 changes: 20 additions & 0 deletions templates/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{% extends "base.html" %}
{% block content %}
<div class="content-title">
{% block content_title %}
{% endblock %}
</div>
<div class="posts">
{% for article in articles_page.object_list %}
<div class="post">
<h1 class="post-title">
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
</h1>
<span class="post-date">{{ article.locale_date }}</span>

{{ article.content }}
</div>
{% endfor %}
</div>
{% include 'pagination.html' %}
{% endblock content %}
15 changes: 15 additions & 0 deletions templates/page.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{% 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 }}

{% if page.modified %}
<p>
Last updated: {{ page.locale_modified }}
</p>
{% endif %}
{% endblock %}
15 changes: 15 additions & 0 deletions templates/pagination.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{% if DEFAULT_PAGINATION %}
<!--// updated -->
<div class="pagination">
{% if articles_page.has_previous() %}
<a class="pagination-item newer" href="{{ SITEURL }}/{{ articles_previous_page.url }}">newer</a>
{% else %}
<span class="pagination-item newer">newer</span>
{% endif %}
{% if articles_page.has_next() %}
<a class="pagination-item older" href="{{ SITEURL }}/{{ articles_next_page.url }}">older</a>
{% else %}
<span class="pagination-item older">older</span>
{% endif %}
</div>
{% endif %}
11 changes: 11 additions & 0 deletions templates/period_archives.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "base.html" %}
{% block content %}
<h1>Archives for {{ period | reverse | join(' ') }}</h1>

<dl>
{% for article in dates %}
<dt>{{ article.locale_date }}</dt>
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
{% endfor %}
</dl>
{% endblock %}
2 changes: 2 additions & 0 deletions templates/robots.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
User-Agent: *
Sitemap: https://{{ SITEURL }}/sitemap.xml
Loading

0 comments on commit 5ef16aa

Please sign in to comment.