aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.themes/classic/sass/partials/_syntax.scss2
-rw-r--r--.themes/classic/source/_includes/asides/github.html30
-rw-r--r--.themes/classic/source/javascripts/github.js43
-rw-r--r--.themes/classic/source/javascripts/twitter.js4
-rw-r--r--Rakefile22
-rw-r--r--_config.yml8
-rw-r--r--plugins/category_generator.rb4
7 files changed, 100 insertions, 13 deletions
diff --git a/.themes/classic/sass/partials/_syntax.scss b/.themes/classic/sass/partials/_syntax.scss
index 7e8ed8d5..25e8d329 100644
--- a/.themes/classic/sass/partials/_syntax.scss
+++ b/.themes/classic/sass/partials/_syntax.scss
@@ -177,7 +177,7 @@ li code {
.s1 { color: $solar-cyan !important; } /* Literal.String.Single */
//.ss { color: #990073 } /* Literal.String.Symbol */
//.il { color: #009999 } /* Literal.Number.Integer.Long */
- div { .gd, .gd .x, .gi, .gi .x { display: block; }}
+ div { .gd, .gd .x, .gi, .gi .x { display: inline-block; width: 100%; }}
}
.highlight, .gist-highlight {
diff --git a/.themes/classic/source/_includes/asides/github.html b/.themes/classic/source/_includes/asides/github.html
new file mode 100644
index 00000000..935ccff0
--- /dev/null
+++ b/.themes/classic/source/_includes/asides/github.html
@@ -0,0 +1,30 @@
+{% if site.github_user %}
+<section>
+ <h1>Github Repos</h1>
+ <ul id="gh_repos">
+ <li class="loading">Status updating...</li>
+ </ul>
+ {% if site.github_show_profile_link %}
+ <a href="https://github.com/{{site.github_user}}">@{{site.github_user}}</a> on Github
+ {% endif %}
+ <script type="text/javascript">
+ $.domReady(function(){
+ if (!window.jXHR){
+ var jxhr = document.createElement('script');
+ jxhr.type = 'text/javascript';
+ jxhr.src = '{{ root_url}}/javascripts/libs/jXHR.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(jxhr, s);
+ }
+
+ github.showRepos({
+ user: '{{site.github_user}}',
+ count: {{site.github_repo_count}},
+ skip_forks: {{site.github_skip_forks}},
+ target: '#gh_repos'
+ });
+ });
+ </script>
+ <script src="{{ root_url }}/javascripts/github.js" type="text/javascript"> </script>
+</section>
+{% endif %}
diff --git a/.themes/classic/source/javascripts/github.js b/.themes/classic/source/javascripts/github.js
new file mode 100644
index 00000000..623d493f
--- /dev/null
+++ b/.themes/classic/source/javascripts/github.js
@@ -0,0 +1,43 @@
+github = (function(){
+ function render(target, repos){
+ var i = 0, fragment = '', t = $(target)[0];
+
+ for(i = 0; i < repos.length; i++)
+ fragment += '<li><a href="'+repos[i].url+'">'+repos[i].name+'</a><p>'+repos[i].description+'</p></li>';
+
+ t.innerHTML = fragment;
+ }
+ return {
+ showRepos: function(options){
+ var feed = new jXHR();
+ feed.onerror = function (msg,url) {
+ $(options.target + ' li.loading').addClass('error').text("Error loading feed");
+ }
+ feed.onreadystatechange = function(data){
+ if (feed.readyState === 4) {
+ var repos = [];
+ var i;
+ for (i = 0; i < data.repositories.length; i++){
+ if (options.skip_forks && data.repositories[i].fork)
+ continue;
+ repos.push(data.repositories[i]);
+ }
+ repos.sort(function(a, b){
+ var a = new Date(a.pushed_at),
+ b = new Date(b.pushed_at);
+
+ if (a.valueOf() == b.valueOf()) return 0;
+ return a.valueOf() > b.valueOf() ? -1 : 1;
+ });
+
+ if (options.count)
+ repos.splice(options.count);
+
+ render(options.target, repos)
+ }
+ };
+ feed.open("GET","http://github.com/api/v2/json/repos/show/"+options.user+"?callback=?");
+ feed.send();
+ }
+ };
+})(); \ No newline at end of file
diff --git a/.themes/classic/source/javascripts/twitter.js b/.themes/classic/source/javascripts/twitter.js
index 1f1b2f91..a4e85557 100644
--- a/.themes/classic/source/javascripts/twitter.js
+++ b/.themes/classic/source/javascripts/twitter.js
@@ -68,7 +68,7 @@ function prettyDate(time) {
var diff = ((current_date_full - date.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);
- if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31) return;
+ if (isNaN(day_diff) || day_diff < 0) return "<span>&infin;</span>";
return day_diff == 0 && (
diff < 60 && say.just_now ||
@@ -78,5 +78,5 @@ function prettyDate(time) {
diff < 86400 && Math.floor(diff / 3600) + say.hours_ago) ||
day_diff == 1 && say.yesterday ||
day_diff < 7 && day_diff + say.days_ago ||
- day_diff < 31 && Math.ceil(day_diff / 7) + say.weeks_ago;
+ day_diff > 7 && Math.ceil(day_diff / 7) + say.weeks_ago;
}
diff --git a/Rakefile b/Rakefile
index 59a6b196..5a3f8f04 100644
--- a/Rakefile
+++ b/Rakefile
@@ -95,6 +95,11 @@ task :new_post, :title do |t, args|
args.with_defaults(:title => 'new-post')
title = args.title
filename = "#{source_dir}/#{posts_dir}/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.#{new_post_ext}"
+ if File.exist?(filename)
+ puts "### #{filename} Already exists. Overwrite? y/n:"
+ response = $stdin.gets.chomp.downcase
+ next unless response == 'y'
+ end
puts "Creating new post: #{filename}"
open(filename, 'w') do |post|
system "mkdir -p #{source_dir}/#{posts_dir}/";
@@ -122,6 +127,11 @@ task :new_page, :filename do |t, args|
filename = "#{name}.#{extension}"
mkdir_p page_dir
file = page_dir + filename
+ if File.exist?(file)
+ puts "### #{file} Already exists. Overwrite? y/n:"
+ response = $stdin.gets.chomp.downcase
+ next unless response == 'y'
+ end
puts "Creating new page: #{file}"
open(file, 'w') do |page|
page.puts "---"
@@ -176,15 +186,13 @@ desc "Move source to source.old, install source theme updates, replace source/_i
task :update_source, :theme do |t, args|
theme = args.theme || 'classic'
if File.directory?("#{source_dir}.old")
- puts "removed existing #{source_dir}.old directory"
+ puts "## Removed existing #{source_dir}.old directory"
rm_r "#{source_dir}.old", :secure=>true
end
- mv source_dir, "#{source_dir}.old"
- puts "moved #{source_dir} into #{source_dir}.old/"
- mkdir_p source_dir
- cp_r "#{themes_dir}/"+theme+"/source/.", source_dir
- cp_r "#{source_dir}.old/.", source_dir, :preserve=>true
- cp_r "#{source_dir}.old/_includes/custom/.", "#{source_dir}/_includes/custom/"
+ cp_r "#{source_dir}/.", "#{source_dir}.old"
+ puts "## Copied #{source_dir} into #{source_dir}.old/"
+ cp_r "#{themes_dir}/"+theme+"/source/.", source_dir, :remove_destination=>true
+ cp_r "#{source_dir}.old/_includes/custom/.", "#{source_dir}/_includes/custom/", :remove_destination=>true
mv "#{source_dir}/index.html", "#{blog_index_dir}", :force=>true if blog_index_dir != source_dir
cp "#{source_dir}.old/index.html", source_dir if blog_index_dir != source_dir
puts "## Updated #{source_dir} ##"
diff --git a/_config.yml b/_config.yml
index 00dc8aa4..6d472bf6 100644
--- a/_config.yml
+++ b/_config.yml
@@ -36,7 +36,7 @@ excerpt_link: "Read on &rarr;" # "Continue reading" link text at the bottom of
# list each of the sidebar modules you want to include, in the order you want them to appear.
# To add custom asides, create files in /source/_includes/custom/asides/ and add them to the list like 'custom/asides/custom_aside_name.html'
-default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html]
+default_asides: [asides/recent_posts.html, asides/github.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html]
# Each layout uses the default asides, but they can have their own asides instead. Simply uncomment the lines below
# and add an array with the asides you want to use.
@@ -48,6 +48,12 @@ default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious
# 3rd Party Settings #
# ----------------------- #
+# Github repositories
+github_user:
+github_repo_count: 0
+github_show_profile_link: true
+github_skip_forks: true
+
# Twitter
twitter_user:
twitter_tweet_count: 4
diff --git a/plugins/category_generator.rb b/plugins/category_generator.rb
index 97fb9f30..a7658458 100644
--- a/plugins/category_generator.rb
+++ b/plugins/category_generator.rb
@@ -69,7 +69,7 @@ module Jekyll
if self.layouts.key? 'category_index'
dir = self.config['category_dir'] || 'categories'
self.categories.keys.each do |category|
- self.write_category_index(File.join(dir, UnicodeUtils.nfkd(category).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').to_s), category)
+ self.write_category_index(File.join(dir, UnicodeUtils.nfkd(category).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').gsub(/-{2,}/, '-').to_s), category)
end
# Throw an exception if the layout couldn't be found.
@@ -106,7 +106,7 @@ module Jekyll
def category_links(categories)
dir = @context.registers[:site].config['category_dir']
categories = categories.sort!.map do |item|
- "<a class='category' href='/#{dir}/#{UnicodeUtils.nfkd(item).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').to_s}/'>#{item}</a>"
+ "<a class='category' href='/#{dir}/#{UnicodeUtils.nfkd(item).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').gsub(/-{2,}/, '-').to_s}/'>#{item}</a>"
end
case categories.length