Conflicts:
plugins/category_generator.rb
... | ... |
@@ -1,6 +1,6 @@ |
1 | 1 |
{% capture category %}{{ post.categories | size }}{% endcapture %} |
2 | 2 |
<h1><a href="{{ root_url }}{{ post.url }}">{{post.title}}</a></h1> |
3 |
-<time datetime="{{ post.date | datetime }}" pubdate>{{ post.date | date: "<span class='month'>%b</span> <span class='day'>%d</span> <span class='year'>%Y</span>"}}</time> |
|
3 |
+<time datetime="{{ post.date | datetime | date_to_xmlschema }}" pubdate>{{ post.date | date: "<span class='month'>%b</span> <span class='day'>%d</span> <span class='year'>%Y</span>"}}</time> |
|
4 | 4 |
{% if category != '0' %} |
5 | 5 |
<footer> |
6 | 6 |
<span class="categories">posted in {{ post.categories | category_links }}</span> |
... | ... |
@@ -4,7 +4,7 @@ |
4 | 4 |
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]--> |
5 | 5 |
<head> |
6 | 6 |
<meta charset="utf-8"> |
7 |
- <title>{{site.title}}{% if page.title %}: {{page.title}}{% endif %}</title> |
|
7 |
+ <title>{% if page.title %}{{page.title}} « {% endif %}{{site.title}}</title> |
|
8 | 8 |
<meta name="author" content="{{site.author}}"> |
9 | 9 |
{% if page.description %} |
10 | 10 |
<meta name="description" content="{{page.description}}"/> |
... | ... |
@@ -26,8 +26,5 @@ |
26 | 26 |
<script src="http://s3.amazonaws.com/ender-js/jeesh.min.js"></script> |
27 | 27 |
<script src="{{ root_url }}/javascripts/octopress.js" type="text/javascript"></script> |
28 | 28 |
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{site.title}}" type="application/atom+xml"/> |
29 |
- {% include google_analytics.html %} |
|
30 |
- {% include google_plus_one.html %} |
|
31 |
- {% include twitter_sharing.html %} |
|
32 | 29 |
{% include custom/head.html %} |
33 | 30 |
</head> |
... | ... |
@@ -3,8 +3,8 @@ |
3 | 3 |
{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %} |
4 | 4 |
{% capture was_updated %}{{ updated | size }}{% endcapture %} |
5 | 5 |
{% if has_date != '0' %} |
6 |
-<time datetime="{{ date | datetime }}" pubdate {% if updated %} updated {% endif %}>{{ date | ordinalize }}</time> |
|
6 |
+<time datetime="{{ date | datetime | date_to_xmlschema }}" pubdate {% if updated %} data-updated="true" {% endif %}>{{ date | ordinalize }}</time> |
|
7 | 7 |
{% endif %} |
8 | 8 |
{% if was_updated != '0' %} |
9 |
-<time class="updated" datetime="{{ updated | datetime }}">{{ updated | ordinalize }}</time> |
|
9 |
+<time class="updated" datetime="{{ updated | datetime | date_to_xmlschema }}">{{ updated | ordinalize }}</time> |
|
10 | 10 |
{% endif %} |
... | ... |
@@ -3,6 +3,6 @@ |
3 | 3 |
<a href="http://twitter.com/share" class="twitter-share-button" data-url="{{ site.url }}{{ page.url }}" data-via="{{ site.twitter_user }}" data-counturl="{{ site.url }}{{ page.url }}" >Tweet</a> |
4 | 4 |
{% endif %} |
5 | 5 |
{% if site.google_plus_one %} |
6 |
- <g:plusone size="{{ site.google_plus_one_size }}"></g:plusone> |
|
6 |
+ <div class="g-plusone" data-size="{{ site.google_plus_one_size }}"></div> |
|
7 | 7 |
{% endif %} |
8 | 8 |
</div> |
... | ... |
@@ -27,6 +27,9 @@ server_port = "4000" # port for preview server eg. localhost:4000 |
27 | 27 |
|
28 | 28 |
desc "Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]" |
29 | 29 |
task :install, :theme do |t, args| |
30 |
+ if File.directory?(source_dir) || File.directory?("sass") |
|
31 |
+ abort("rake aborted!") if ask("A theme is already installed, proceeding will overwrite existing files. Are you sure?", ['y', 'n']) == 'n' |
|
32 |
+ end |
|
30 | 33 |
# copy theme into working Jekyll directories |
31 | 34 |
theme = args.theme || 'classic' |
32 | 35 |
puts "## Copying "+theme+" theme into ./#{source_dir} and ./sass" |
... | ... |
@@ -301,6 +304,20 @@ def ok_failed(condition) |
301 | 301 |
end |
302 | 302 |
end |
303 | 303 |
|
304 |
+def get_stdin(message) |
|
305 |
+ print message |
|
306 |
+ STDIN.gets.chomp |
|
307 |
+end |
|
308 |
+ |
|
309 |
+def ask(message, valid_options) |
|
310 |
+ if valid_options |
|
311 |
+ answer = get_stdin("#{message} #{valid_options.to_s.gsub(/"/, '').gsub(/, /,'/')} ") while !valid_options.include?(answer) |
|
312 |
+ else |
|
313 |
+ answer = get_stdin(message) |
|
314 |
+ end |
|
315 |
+ answer |
|
316 |
+end |
|
317 |
+ |
|
304 | 318 |
desc "list tasks" |
305 | 319 |
task :list do |
306 | 320 |
puts "Tasks: #{(Rake::Task.tasks - [Rake::Task[:list]]).join(', ')}" |
... | ... |
@@ -16,8 +16,9 @@ |
16 | 16 |
# - category_dir: The subfolder to build category pages in (default is 'categories'). |
17 | 17 |
# - category_title_prefix: The string used before the category name in the page title (default is |
18 | 18 |
# 'Category: '). |
19 |
-module Jekyll |
|
19 |
+require "unicode_utils" |
|
20 | 20 |
|
21 |
+module Jekyll |
|
21 | 22 |
|
22 | 23 |
# The CategoryIndex class creates a single category page for the specified category. |
23 | 24 |
class CategoryIndex < Page |
... | ... |
@@ -68,7 +69,7 @@ module Jekyll |
68 | 68 |
if self.layouts.key? 'category_index' |
69 | 69 |
dir = self.config['category_dir'] || 'categories' |
70 | 70 |
self.categories.keys.each do |category| |
71 |
- self.write_category_index(File.join(dir, category.gsub(/[_\W]/, '-').gsub(/-{2,}/, '-')), category) |
|
71 |
+ self.write_category_index(File.join(dir, UnicodeUtils.nfkd(category).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').gsub(/-{2,}/, '-').to_s), category) |
|
72 | 72 |
end |
73 | 73 |
|
74 | 74 |
# Throw an exception if the layout couldn't be found. |
... | ... |
@@ -105,7 +106,7 @@ module Jekyll |
105 | 105 |
def category_links(categories) |
106 | 106 |
dir = @context.registers[:site].config['category_dir'] |
107 | 107 |
categories = categories.sort!.map do |item| |
108 |
- "<a class='category' href='/#{dir}/#{item.gsub(/[_\W]/, '-').gsub(/-{2,}/, '-')}/'>#{item}</a>" |
|
108 |
+ "<a class='category' href='/#{dir}/#{UnicodeUtils.nfkd(item).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').gsub(/-{2,}/, '-').to_s}/'>#{item}</a>" |
|
109 | 109 |
end |
110 | 110 |
|
111 | 111 |
case categories.length |