Skip to content

Commit ea00d79

Browse files
committed
Merge pull request #16 from rondy/master
Add blog engine (jekyll)
2 parents 25f3532 + 02929b9 commit ea00d79

25 files changed

+409
-145
lines changed

_bin/newpost

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env ruby
2+
3+
unless ARGV[0]
4+
puts 'Usage: _bin/newpost "Post Title"'
5+
exit(-1)
6+
end
7+
8+
date_prefix = Time.now.strftime("%Y-%m-%d")
9+
post_name = ARGV.join ' '
10+
permalink = post_name.strip.downcase.gsub(/[^a-zA-Z0-9]/, '-')
11+
filename = "#{date_prefix}-#{permalink}.markdown"
12+
post = File.expand_path("../_posts/#{filename}", File.dirname(__FILE__))
13+
14+
header = <<-END
15+
---
16+
layout: post
17+
title: #{post_name}
18+
author:
19+
category:
20+
---
21+
22+
Body text goes here...
23+
END
24+
25+
File.open(post, 'w') do |f|
26+
f << header
27+
end
28+
29+
editor = ENV['EDITOR'] || "mate"
30+
system(editor, post)
31+
exit(0)

_config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
markdown: rdiscount
22
pygments: true
33
total_guides: 7
4+
permalink: /blog/:year/:month/:day/:title

_includes/bottom.html

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
</div><!-- #main -->
2-
<div class="clear">
3-
</div>
4-
</div><!-- .wrap -->
5-
</div><!-- #container -->
1+
</div><!-- #main -->
2+
<div class="clear">
3+
</div>
4+
</div><!-- .wrap -->
5+
</div><!-- #container -->
66

77
<div id="footer">
88
<div class="wrap">
@@ -27,7 +27,7 @@ <h4 class="title">
2727
© 2012 Plataformatec. All rights reserved.
2828
</p>
2929
</div>
30-
</div>
30+
</div>
3131

3232
<script type="text/javascript">
3333

_includes/categories-list.html

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<div class="widget categories-list">
2+
<h3 class="widget-title">Blog categories:</h3>
3+
<ul>
4+
{% for category in site.categories %}
5+
<li><a href="/blog/categories.html#{{ category | first }}">{{ category | first | capitalize }}</a></li>
6+
{% endfor %}
7+
</ul>
8+
</div>

_includes/other-links.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<div class="widget">
2+
<h3 class="widget-title">Other Links</h3>
3+
<ul>
4+
<li>#elixir-lang on freenode IRC</li>
5+
<li><a href="http://twitter.com/elixirlang" target="_blank">Twitter</a></li>
6+
<li><a href="http://groups.google.com/group/elixir-lang-core" target="_blank">Mailing list</a></li>
7+
<li><a href="https://github.com/elixir-lang/elixir/issues" target="_blank">Issues Tracker</a></li>
8+
<li><a href="https://github.com/elixir-lang/elixir-tmbundle" target="_blank">Textmate Bundle</a></li>
9+
<li><a href="https://github.com/elixir-lang/vim-elixir" target="_blank">Vim Elixir</a></li>
10+
</ul>
11+
</div>

_includes/pagination.html

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!--<div class="pagination loop-pagination"><span class="page-numbers current">1</span>
2+
<a class="page-numbers" href="http://demo.alienwp.com/origin/page/2/">2</a>
3+
<a class="next page-numbers" href="http://demo.alienwp.com/origin/page/2/">Next →</a></div>-->
4+
5+
<div id="post-pagination" class="pagination loop-pagination">
6+
{% if paginator.previous_page %}
7+
{% if paginator.previous_page == 1 %}
8+
<a class="prev page-numbers" href="/blog">Previous</a>
9+
{% else %}
10+
<a class="prev page-numbers" href="/blog/page{{paginator.previous_page}}">Previous</a>
11+
{% endif %}
12+
{% endif %}
13+
14+
15+
{% if paginator.page == 1 %}
16+
<span class="page-numbers current">1</span>
17+
{% else %}
18+
<a class="page-numbers" href="/blog">1</a>
19+
{% endif %}
20+
21+
{% for count in (2..paginator.total_pages) %}
22+
{% if count == paginator.page %}
23+
<span class="page-numbers current">{{count}}</span>
24+
{% else %}
25+
<a class="page-numbers" href="/blog/page{{count}}">{{count}}</a>
26+
{% endif %}
27+
{% endfor %}
28+
29+
{% if paginator.next_page %}
30+
<a class="next page-numbers" href="/blog/page{{paginator.next_page}}">Next</a>
31+
{% endif %}
32+
</div>

_includes/sidebar.html

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<div id="sidebar-primary" class="sidebar">
2+
{% include search.html %}
3+
{% include categories-list.html %}
4+
{% include other-links.html %}
5+
</div>

_includes/top.html

+19-19
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<head>
44
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
55
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6-
<title>{{ page.title }}</title>
6+
<title>{% if page.title %}{{ page.title }} - {% endif %}Elixir</title>
77
<link rel="stylesheet" type="text/css" href="/css/style.css">
8-
<link rel="shortcut icon" href="/images/logo/drop.png">
8+
<link rel="shortcut icon" href="/images/logo/drop.png">
99
<meta name="viewport" content="width=device-width,initial-scale=1">
1010
<link rel="stylesheet" id="font-bitter-css" href="http://fonts.googleapis.com/css?family=Bitter&amp;ver=1" type="text/css" media="screen">
1111
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
@@ -17,36 +17,36 @@
1717
username: "elixirlang",
1818
template: function(i){ return i["text"] }
1919
});
20-
$('#menu-primary li:nth-child(' + ({{page.active}} || 0) + ')').attr('class', 'current-menu-item');
2120
});
2221
</script>
2322
</head>
2423

25-
<body class="home">
26-
<div id="container">
27-
<div class="wrap">
28-
<div id="header">
24+
<body id="{{ page.section }}" class="home">
25+
<div id="container">
26+
<div class="wrap">
27+
<div id="header">
2928
<div id="branding">
30-
<h1 id="site-title">
31-
<a href="/" title="Elixir" rel="Home">
32-
<img class="logo" src="/images/logo/logo.png" alt="Elixir Logo" />
33-
</a>
34-
</h1>
29+
<h1 id="site-title">
30+
<a href="/" title="Elixir" rel="Home">
31+
<img class="logo" src="/images/logo/logo.png" alt="Elixir Logo" />
32+
</a>
33+
</h1>
3534
</div>
3635

3736
<div id="menu-primary" class="menu-container">
38-
<div class="menu">
39-
<ul id="menu-primary-items">
40-
<li class="menu-item"><a href="/">Home</a></li>
41-
<li class="menu-item"><a href="/getting_started/1.html">Getting Started</a></li>
42-
<li class="menu-item"><a href="https://github.com/elixir-lang/elixir" target="_blank">Source</a></li>
37+
<div class="menu">
38+
<ul id="menu-primary-items">
39+
<li class="menu-item home"><a href="/">Home</a></li>
40+
<li class="menu-item getting_started"><a href="/getting_started/1.html">Getting Started</a></li>
41+
<li class="menu-item blog"><a href="/blog">Blog</a></li>
42+
<li class="menu-item source"><a href="https://github.com/elixir-lang/elixir" target="_blank">Source</a></li>
4343
</ul>
4444
</div>
4545
</div>
4646

4747
<h2 id="site-description">
4848
<span>A modern approach to programming for the Erlang VM.</span>
4949
</h2>
50-
</div>
50+
</div>
5151

52-
<div id="main">
52+
<div id="main">

_layouts/default.html

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{% include top.html %}
2+
3+
<div id="content">
4+
{{ content }}
5+
</div><!-- #content -->
6+
7+
{% include sidebar.html %}
8+
{% include bottom.html %}

_layouts/getting_started.html

+22-18
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
1+
---
2+
section: getting_started
3+
---
4+
15
{% include top.html %}
26

37
<div id="sidebar-primary" class="sidebar">
48
{% include search.html %}
59

610
<div class="widget">
711
<h3 class="widget-title">Index</h3>
8-
<ol>
9-
<li><a href="/getting_started/1.html">Introduction</a></li>
10-
<li><a href="/getting_started/2.html">Diving in</a></li>
11-
<li><a href="/getting_started/3.html">Modules</a></li>
12-
<li><a href="/getting_started/4.html">Protocols &amp; Records</a></li>
13-
<li><a href="/getting_started/5.html">Macros</a></li>
14-
<li><a href="/getting_started/6.html">Other topics</a></li>
15-
<li><a href="/getting_started/7.html">Where to go next</a></li>
16-
</ol>
12+
<ol>
13+
<li><a href="/getting_started/1.html">Introduction</a></li>
14+
<li><a href="/getting_started/2.html">Diving in</a></li>
15+
<li><a href="/getting_started/3.html">Modules</a></li>
16+
<li><a href="/getting_started/4.html">Protocols &amp; Records</a></li>
17+
<li><a href="/getting_started/5.html">Macros</a></li>
18+
<li><a href="/getting_started/6.html">Other topics</a></li>
19+
<li><a href="/getting_started/7.html">Where to go next</a></li>
20+
</ol>
1721
</div>
1822
</div>
1923

2024
<div id="content">
21-
<article>
25+
<article>
2226
{{ content }}
23-
</article><!-- .hfeed -->
27+
</article><!-- .hfeed -->
2428

2529
<div class="pagination loop-pagination">
26-
{% if page.guide > 1 %}
27-
<a href="/getting_started/{{page.guide | minus:1}}.html" class="previous page-numbers">&larr; Previous</a>
28-
{% endif %}
29-
<a class="page-numbers" href="#container">Top</a>
30-
{% if page.guide < site.total_guides %}
31-
<a href="/getting_started/{{page.guide | plus:1}}.html" class="next page-numbers">Next &rarr;</a>
32-
{% endif %}
30+
{% if page.guide > 1 %}
31+
<a href="/getting_started/{{page.guide | minus:1}}.html" class="previous page-numbers">&larr; Previous</a>
32+
{% endif %}
33+
<a class="page-numbers" href="#container">Top</a>
34+
{% if page.guide < site.total_guides %}
35+
<a href="/getting_started/{{page.guide | plus:1}}.html" class="next page-numbers">Next &rarr;</a>
36+
{% endif %}
3337
</div>
3438
</div><!-- #content -->
3539

_layouts/post.html

+48-52
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,52 @@
11
---
2-
title: Elixir
3-
active: 1
2+
section: blog
3+
layout: default
44
---
55

6-
{% include top.html %}
7-
8-
<div id="content">
9-
<div class="hfeed">
10-
<div id="post-60" class="hentry post publish post-1 odd author-admin sticky category-articles post_tag-css post_tag-development post_tag-wordpress">
11-
<a href="http://demo.alienwp.com/origin/sticky-post/" title="Sticky Post"><img src="http://demo.alienwp.com/origin/files/2012/01/Depositphotos_8562658_XXL-636x310.jpg" alt="Sticky Post" class="single-thumbnail featured"></a>
12-
13-
<div class="sticky-header">
14-
<h2 class="entry-title"><a href="http://demo.alienwp.com/origin/sticky-post/" title="Sticky Post" rel="bookmark">Sticky Post</a></h2>
15-
<div class="byline"><abbr class="published" title="Friday, January 6th, 2012, 2:48 pm">January 6, 2012</abbr> · by <span class="author vcard"><a class="url fn n" href="http://demo.alienwp.com/origin/author/admin/" title="Griden">Griden</a></span> · in <span class="category"><a href="http://demo.alienwp.com/origin/category/articles/" rel="tag">Articles</a></span> </div>
16-
</div><!-- .sticky-header -->
17-
18-
<div class="entry-summary">
19-
<p>Turpis et ridiculus nec, tempor elementum amet aliquet rhoncus, pulvinar mid. Tincidunt montes, arcu, adipiscing a vel, adipiscing adipiscing! Amet! Sociis, cursus lectus, amet turpis aliquam sagittis! Rhoncus nisi! Augue, elementum. Ac, lorem vel? Adipiscing non duis elementum, nunc. Integer?…</p>
20-
</div><!-- .entry-summary -->
21-
</div>
22-
23-
<div id="post-108" class="hentry post publish post-2 even alt author-admin category-blog post_tag-development post_tag-jquery post_tag-video post_tag-wordpress">
24-
<a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video"><img src="http://demo.alienwp.com/origin/files/2012/01/video_responsive-150x150.jpg" alt="Responsive Video" class="archive-thumbnail featured"></a>
25-
<div class="sticky-header">
26-
<h2 class="entry-title"><a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video" rel="bookmark">Responsive Video</a></h2>
27-
<div class="byline"><abbr class="published" title="Tuesday, January 17th, 2012, 1:54 pm">January 17, 2012</abbr> · by <span class="author vcard"><a class="url fn n" href="http://demo.alienwp.com/origin/author/admin/" title="Griden">Griden</a></span> · in <span class="category"><a href="http://demo.alienwp.com/origin/category/blog/" rel="tag">Blog</a></span> </div>
28-
</div><!-- .sticky-header -->
29-
30-
<div class="entry-summary">
31-
<p>Duis platea risus elementum in tortor parturient sed, pulvinar dignissim parturient a proin risus elementum sed velit natoque pid vel nunc in non, enim scelerisque turpis. Aenean mauris lundium, turpis massa diam eros nisi facilisis. Ultrices integer augue. Lacus turpis…</p>
32-
</div><!-- .entry-summary -->
33-
</div>
34-
</div><!-- .hfeed -->
35-
36-
<div class="pagination loop-pagination"><span class="page-numbers current">1</span>
37-
<a class="page-numbers" href="http://demo.alienwp.com/origin/page/2/">2</a>
38-
<a class="next page-numbers" href="http://demo.alienwp.com/origin/page/2/">Next →</a></div>
39-
</div><!-- #content -->
40-
41-
42-
<div id="sidebar-primary" class="sidebar">
43-
{% include search.html %}
44-
45-
<div class="widget">
46-
<h3 class="widget-title">Meta</h3>
47-
<ul>
48-
<li><a href="http://demo.alienwp.com/origin/wp-login.php">Log in</a></li>
49-
<li><a href="http://demo.alienwp.com/origin/feed/" title="Syndicate this site using RSS 2.0">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
50-
<li><a href="http://demo.alienwp.com/origin/comments/feed/" title="The latest comments to all posts in RSS">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
51-
<li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li>
52-
</ul>
6+
<div class="hfeed">
7+
<div class="hentry post">
8+
<div class="post-content">
9+
<div class="sticky-header">
10+
<h1>{{ page.title }}</h1>
11+
<div class="byline">{{ page.date | date: "%B %d, %Y" }}{% if page.author %} · by {{ page.author}}{% endif %} . in {% for category in page.categories %}<span class="category"><a href="/blog/categories.html#{{category}}">{{ category | capitalize }}</a>{% endfor %}</div>
12+
</div><!-- .sticky-header -->
13+
14+
<div class="entry-content">
15+
{{ content }}
16+
</div>
17+
18+
<div class="entry-meta">
19+
<div class="share-buttons">
20+
<span class="twitter">
21+
<a href="https://twitter.com/share" class="twitter-share-button" data-via="elixirlang">Tweet</a>
22+
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
23+
</span>
24+
25+
<span class="facebook">
26+
<div id="fb-root"></div>
27+
<script>(function(d, s, id) {
28+
var js, fjs = d.getElementsByTagName(s)[0];
29+
if (d.getElementById(id)) return;
30+
js = d.createElement(s); js.id = id;
31+
js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1";
32+
fjs.parentNode.insertBefore(js, fjs);
33+
}(document, 'script', 'facebook-jssdk'));</script>
34+
<div class="fb-like" data-send="false" data-layout="button_count" data-width="100" data-show-faces="true"></div>
35+
</span>
36+
37+
<span class="google-plus">
38+
<!-- Place this render call where appropriate -->
39+
<script type="text/javascript">
40+
(function() {
41+
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
42+
po.src = 'https://apis.google.com/js/plusone.js';
43+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
44+
})();
45+
</script>
46+
<g:plusone size="medium"></g:plusone>
47+
</span>
48+
</div>
49+
</div>
50+
</div>
5351
</div>
54-
</div>
55-
56-
{% include bottom.html %}
52+
</div><!-- .hfeed -->

0 commit comments

Comments
 (0)