diff options
-rw-r--r-- | Rakefile | 36 | ||||
-rw-r--r-- | source/_helpers.rb | 5 | ||||
-rw-r--r-- | source/_includes/config.haml | 17 | ||||
-rw-r--r-- | source/_includes/delicious.haml | 3 | ||||
-rw-r--r-- | source/_includes/disqus_hook.haml | 11 | ||||
-rw-r--r-- | source/_includes/disqus_thread.haml | 5 | ||||
-rw-r--r-- | source/_includes/footer.haml | 7 | ||||
-rw-r--r-- | source/_includes/google_analytics.haml | 10 | ||||
-rw-r--r-- | source/_includes/head.haml | 21 | ||||
-rw-r--r-- | source/_includes/header.haml | 8 | ||||
-rw-r--r-- | source/_includes/navigation.haml | 8 | ||||
-rw-r--r-- | source/_includes/post.haml | 8 | ||||
-rw-r--r-- | source/_includes/sidebar.haml | 2 | ||||
-rw-r--r-- | source/_includes/twitter.haml | 4 | ||||
-rw-r--r-- | source/_layouts/blog_post.haml | 32 | ||||
-rw-r--r-- | source/_layouts/default.haml | 97 | ||||
-rw-r--r-- | source/index.haml | 16 |
17 files changed, 176 insertions, 114 deletions
@@ -1,11 +1,12 @@ require 'active_support' -site_url = "http://yoursite.com" # deployed site url for sitemap.xml generator -port = "4000" # preview project port eg. http://localhost:4000 -site = "site" # compiled site directory -source = "source" # source file directory -stash = "_stash" -posts = "_posts" +site_url = "http://yoursite.com" # deployed site url for sitemap.xml generator +port = "4000" # preview project port eg. http://localhost:4000 +site = "site" # compiled site directory +source = "source" # source file directory +stash = "_stash" # directory to stash posts for speedy generation +posts = "_posts" # directory for blog files +post_format = "markdown" # file format for new posts when using the post rake task ## -- Rsync Deploy config -- ## ssh_user = "user@host.com" # for rsync deployment @@ -29,11 +30,15 @@ end ## if you're deploying with github, change the default deploy to deploy_github desc "default deploy task" -task :deploy => :deploy_rsync do +task :deploy => [:deploy_rsync] do +end + +desc "Generate and deploy task" +task :generate_deploy => [:integrate, :generate, :clean_debug, :deploy] do end desc "generate website in output directory" -task :default => [:generate_site, :generate_style] do +task :generate => [:generate_site, :generate_style] do puts ">>> Site Generating Complete! <<<\n\n" end @@ -41,8 +46,7 @@ end desc "Begin a new post in #{source}/_posts" task :post, :filename do |t, args| args.with_defaults(:filename => 'new-post') - #system "touch #{source}/_posts/#{Time.now.strftime('%Y-%m-%d_%H-%M')}-#{args.filename}.markdown" - open("#{source}/_posts/#{Time.now.strftime('%Y-%m-%d_%H-%M')}-#{args.filename.gsub(/[ _]/, '-')}.markdown", 'w') do |post| + open("#{source}/_posts/#{Time.now.strftime('%Y-%m-%d_%H-%M')}-#{args.filename.downcase.gsub(/[ _]/, '-')}.#{post_format}", 'w') do |post| post.puts "---" post.puts "title: \"#{args.filename.gsub(/[-_]/, ' ').titlecase}\"" post.puts "---" @@ -126,13 +130,13 @@ task :watch do end desc "generate and deploy website via rsync" -multitask :deploy_rsync => [:integrate, :default, :clean_debug] do +multitask :deploy_rsync do puts ">>> Deploying website to #{site_url} <<<" ok_failed system("rsync -avz --delete #{site}/ #{ssh_user}:#{document_root}") end desc "generate and deploy website to github user pages" -multitask :deploy_github => [:integrate, :default, :clean_debug] do +multitask :deploy_github do puts ">>> Deploying #{deploy_branch} branch to Github Pages <<<" require 'git' repo = Git.open('.') @@ -173,13 +177,13 @@ task :stop_serve do end desc "preview the site in a web browser" -multitask :preview => [:default, :start_serve] do +multitask :preview => [:start_serve] do system "open http://localhost:#{port}" end desc "Build an XML sitemap of all html files." -task :sitemap => :default do +task :sitemap do html_files = FileList.new("#{site}/**/*.html").map{|f| f[("#{site}".size)..-1]}.map do |f| if f.ends_with?("index.html") f[0..(-("index.html".size + 1))] @@ -194,14 +198,14 @@ task :sitemap => :default do priority = case f when %r{^/$} 1.0 - when %r{^/blog} + when %r{^/articles} 0.9 else 0.8 end sitemap.puts %Q{ <url>} sitemap.puts %Q{ <loc>#{site_url}#{f}</loc>} - sitemap.puts %Q{ <lastmod>#{Time.now.to_s('%Y-%m-%d')}</lastmod>} + sitemap.puts %Q{ <lastmod>#{Time.now.strftime('%Y-%m-%d')}</lastmod>} sitemap.puts %Q{ <changefreq>weekly</changefreq>} sitemap.puts %Q{ <priority>#{priority}</priority>} sitemap.puts %Q{ </url>} diff --git a/source/_helpers.rb b/source/_helpers.rb index b1714569..11d78523 100644 --- a/source/_helpers.rb +++ b/source/_helpers.rb @@ -111,8 +111,6 @@ module Helpers end include TagHelper - # My added helpers - def to_html_email(address) email = string_to_html(address) "<a href=\"#{string_to_html('mailto:')}#{email}\">#{email}</a>" @@ -165,7 +163,7 @@ module Helpers # A very hackish way to handle partials. We'll go with it till it breaks... def include(partial_name) file_ext = partial_name[(partial_name.index('.') + 1)..partial_name.length] - contents = IO.read("_includes/#{partial_name}") + contents = IO.read("source/_includes/#{partial_name}") case file_ext when 'haml' Haml::Engine.new(contents).render(binding) @@ -180,6 +178,7 @@ module Helpers end include PartialsHelper + end class String diff --git a/source/_includes/config.haml b/source/_includes/config.haml new file mode 100644 index 00000000..7ac49a85 --- /dev/null +++ b/source/_includes/config.haml @@ -0,0 +1,17 @@ +--- +blog_title: My Octopress Blog + +twitter_user: +tweet_count: 3 +show_replies: false + +delicious_user: +delicious_count: 3 + +full_url: +disqus_short_name: + +google_custom_search_id: +google_analytics_tracking_id: + +---
\ No newline at end of file diff --git a/source/_includes/delicious.haml b/source/_includes/delicious.haml new file mode 100644 index 00000000..6f1d63d0 --- /dev/null +++ b/source/_includes/delicious.haml @@ -0,0 +1,3 @@ +%h4 My Delicious <a class="small" href="http://delicious.com/#{page.delicious_user}">more →</a> +#delicious + %script(type="text/javascript" src="http://feeds.delicious.com/v2/js/#{page.delicious_user}?title=&count=#{page.delicious_count}&sort=date&extended")
\ No newline at end of file diff --git a/source/_includes/disqus_hook.haml b/source/_includes/disqus_hook.haml new file mode 100644 index 00000000..60e2d3d9 --- /dev/null +++ b/source/_includes/disqus_hook.haml @@ -0,0 +1,11 @@ +:javascript + (function() { + var links = document.getElementsByTagName('a'); + var query = '?'; + for(var i = 0; i < links.length; i++) { + if(links[i].href.indexOf('#disqus_thread') >= 0) { + query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&'; + } + } + document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/#{page.disqus_short_name}/get_num_replies.js' + query + '"></' + 'script>'); + })();
\ No newline at end of file diff --git a/source/_includes/disqus_thread.haml b/source/_includes/disqus_thread.haml new file mode 100644 index 00000000..ea7b9a34 --- /dev/null +++ b/source/_includes/disqus_thread.haml @@ -0,0 +1,5 @@ +:javascript + var disqus_url = "#{page.full_url}#{page.url}"; +%noscript + %a(href="http://#{page.disqus_short_name}.disqus.com/?url=ref") View the discussion thread +%script(type="text/javascript" src="http://disqus.com/forums/#{page.disqus_short_name}/embed.js")
\ No newline at end of file diff --git a/source/_includes/footer.haml b/source/_includes/footer.haml new file mode 100644 index 00000000..3385617d --- /dev/null +++ b/source/_includes/footer.haml @@ -0,0 +1,7 @@ +#footer + .page_width + Copyright © #{Time.now.strftime('%Y')} - #{page.blog_title} - + %span.credit Powered by <a href="http://octopress.org">Octopress</a> + += include "disqus_hook.haml" if page.respond_to?(:disqus_short_name) && page.disqus_short_name += include "google_analytics.haml" if page.respond_to?(:google_analytics_tracking_id) && page.google_analytics_tracking_id
\ No newline at end of file diff --git a/source/_includes/google_analytics.haml b/source/_includes/google_analytics.haml new file mode 100644 index 00000000..a61ec89b --- /dev/null +++ b/source/_includes/google_analytics.haml @@ -0,0 +1,10 @@ +:javascript + var _gaq = _gaq || []; + _gaq.push(['_setAccount', '#{page.google_analytics_tracking_id}']); + _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'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga); + })();
\ No newline at end of file diff --git a/source/_includes/head.haml b/source/_includes/head.haml new file mode 100644 index 00000000..120f6695 --- /dev/null +++ b/source/_includes/head.haml @@ -0,0 +1,21 @@ +%head + %title #{page.blog_title} :: #{page.title} + - if page.respond_to? :description + %meta(name="description" content="#{page.description}")/ + - if page.respond_to? :keywords + %meta(name="keywords" content="#{page.keywords}")/ + %link(href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css") + %script(src="http://ajax.googleapis.com/ajax/libs/mootools/1.2.4/mootools-yui-compressed.js" type="text/javascript") + %script(src="/javascripts/mootools-1.2.4.2-more.js" type="text/javascript") + - if page.respond_to? :twitter_user + :javascript + var twitter_user = "#{page.twitter_user}" + var show_replies = #{page.show_replies}; + var tweet_count = #{page.tweet_count}; + %script(src="/javascripts/octopress.js" type="text/javascript") + %script(src="/javascripts/twitter.js" type="text/javascript") + - if page.respond_to? :google_analytics + %script(src="http://www.google-analytics.com/ga.js" type="text/javascript") + + - # RSS Feed + %link(href="/atom.xml" rel="alternate" title="#{page.blog_title}" type="application/atom+xml")
\ No newline at end of file diff --git a/source/_includes/header.haml b/source/_includes/header.haml new file mode 100644 index 00000000..ce1d054a --- /dev/null +++ b/source/_includes/header.haml @@ -0,0 +1,8 @@ +.page_width + %a.title(href="/")=page.blog_title + - if page.respond_to? :google_custom_search_id + #search + %form(action="http://www.google.com/cse" id="cse-search-box") + %input(type="hidden" name="cx" value="#{page.google_custom_search_id}") + %input(type="hidden" name="ie" value="UTF-8") + %input#q(type="text" name="q")
\ No newline at end of file diff --git a/source/_includes/navigation.haml b/source/_includes/navigation.haml new file mode 100644 index 00000000..4b273fcf --- /dev/null +++ b/source/_includes/navigation.haml @@ -0,0 +1,8 @@ +.page_width + %ul + %li.alpha + %a(href="/") Blog + %li.omega + %a(href="/about.html") About + %li.subscribe + %a(href="/atom.xml") Subscribe
\ No newline at end of file diff --git a/source/_includes/post.haml b/source/_includes/post.haml new file mode 100644 index 00000000..362c5322 --- /dev/null +++ b/source/_includes/post.haml @@ -0,0 +1,8 @@ +.article + %h2= page.title + .meta + - author = (page.respond_to?(:author) && page.author) ? 'by: ' + page.author + ' |' : '' + #{author} posted: #{page.date.strftime("%B #{page.date.day.ordinalize}, %Y")} + = (page.respond_to?(:updated) && page.updated) ? " | upated: #{page.updated}" : '' + = preserve rp(content) + #disqus_thread= include "disqus_thread.haml" if page.respond_to?(:disqus_short_name) && page.disqus_short_name
\ No newline at end of file diff --git a/source/_includes/sidebar.haml b/source/_includes/sidebar.haml new file mode 100644 index 00000000..463e353f --- /dev/null +++ b/source/_includes/sidebar.haml @@ -0,0 +1,2 @@ += include "twitter.haml" if page.respond_to?(:twitter_user) && page.twitter_user += include "delicious.haml" if page.respond_to?(:delicious_user) && page.delicious_user
\ No newline at end of file diff --git a/source/_includes/twitter.haml b/source/_includes/twitter.haml new file mode 100644 index 00000000..852bb068 --- /dev/null +++ b/source/_includes/twitter.haml @@ -0,0 +1,4 @@ +%h4 Twitter <a class="small" href="http://twitter.com/#{page.twitter_user}">@#{page.twitter_user}</a> +#twitter + %ul#twitter_status + Status updating...
\ No newline at end of file diff --git a/source/_layouts/blog_post.haml b/source/_layouts/blog_post.haml new file mode 100644 index 00000000..112df953 --- /dev/null +++ b/source/_layouts/blog_post.haml @@ -0,0 +1,32 @@ +--- +blog_title: My Octopress Blog +author: + +twitter_user: +tweet_count: 3 +show_replies: false + +delicious_user: +delicious_count: 3 + +full_url: +disqus_short_name: + +google_custom_search_id: +google_analytics_tracking_id: + +--- + +!!! 1.1 Transitional +%html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en") + + = include "head.haml" + %body(id="#{(page.respond_to?(:body_id) ? page.body_id : nil)}") + #header= include "header.haml" + #nav= include "navigation.haml" + #page + .page_width + #main + .blog= include "post.haml" + #sidebar= include "sidebar.haml" + = include "footer.haml"
\ No newline at end of file diff --git a/source/_layouts/default.haml b/source/_layouts/default.haml index 50ffbeb9..ef41e254 100644 --- a/source/_layouts/default.haml +++ b/source/_layouts/default.haml @@ -1,5 +1,6 @@ --- blog_title: My Octopress Blog +author: twitter_user: tweet_count: 3 @@ -18,95 +19,13 @@ google_analytics_tracking_id: !!! 1.1 Transitional %html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en") - %head - %title #{page.blog_title} :: #{page.title} - - if page.respond_to? :description - %meta(name="description" content="#{page.description}")/ - - if page.respond_to? :keywords - %meta(name="keywords" content="#{page.keywords}")/ - %link(href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css") - %link(href="/atom.xml" rel="alternate" title="#{page.blog_title}" type="application/atom+xml") - - if page.respond_to? :twitter_user - :javascript - var twitter_user = "#{page.twitter_user}" - var show_replies = #{page.show_replies}; - var tweet_count = #{page.tweet_count}; - %script(src="http://ajax.googleapis.com/ajax/libs/mootools/1.2.4/mootools-yui-compressed.js" type="text/javascript") - %script(src="/javascripts/mootools-1.2.4.2-more.js" type="text/javascript") - %script(src="/javascripts/octopress.js" type="text/javascript") - %script(src="/javascripts/twitter.js" type="text/javascript") - - if page.respond_to? :google_analytics - %script(src="http://www.google-analytics.com/ga.js" type="text/javascript") + + = include "head.haml" %body(id="#{(page.respond_to?(:body_id) ? page.body_id : nil)}") - #header - .page_width - %a.title(href="/")=page.blog_title - - if page.respond_to? :google_custom_search_id - #search - %form(action="http://www.google.com/cse" id="cse-search-box") - %input(type="hidden" name="cx" value="#{page.google_custom_search_id}") - %input(type="hidden" name="ie" value="UTF-8") - %input#q(type="text" name="q") - #nav - .page_width - %ul - %li.alpha - %a(href="/") Blog - %li.omega - %a(href="/about.html") About - %li.subscribe - %a(href="/atom.xml") Subscribe + #header= include "header.haml" + #nav= include "navigation.haml" #page .page_width - #main - - if page.respond_to? :date - .blog - .article - %h2= page.title - = preserve rp(content) - %p.pubdate - Published: - =page.date.strftime("%d %b, %Y") - - if page.respond_to? :disqus_short_name - #disqus_thread - :javascript - var disqus_url = "#{page.full_url}#{page.url}"; - %noscript - %a(href="http://#{page.disqus_short_name}.disqus.com/?url=ref") View the discussion thread - %script(type="text/javascript" src="http://disqus.com/forums/#{page.disqus_short_name}/embed.js") - - else - = preserve rp(content) - #sidebar - - if page.respond_to? :twitter_user - %h4 Twitter <a class="small" href="http://twitter.com/#{page.twitter_user}">@#{page.twitter_user}</a> - #twitter - %ul#twitter_status - Status updating... - - if page.respond_to? :delicious_user - %h4 My Delicious <a class="small" href="http://delicious.com/#{page.delicious_user}">more →</a> - #delicious - %script(type="text/javascript" src="http://feeds.delicious.com/v2/js/#{page.delicious_user}?title=&count=#{page.delicious_count}&sort=date&extended") - #footer - .page_width - Copyright © #{Time.now.strftime('%Y')} - #{page.blog_title} - - %span.credit Powered by <a href="http://octopress.org">Octopress</a> - - if page.respond_to? :disqus_short_name - //Disqus Comments code - :javascript - (function() { - var links = document.getElementsByTagName('a'); - var query = '?'; - for(var i = 0; i < links.length; i++) { - if(links[i].href.indexOf('#disqus_thread') >= 0) { - query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&'; - } - } - document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/#{page.disqus_short_name}/get_num_replies.js' + query + '"></' + 'script>'); - })(); - - if page.respond_to? :google_analytics_tracking_id - //Google Analytics code - :javascript - try { - var pageTracker = _gat._getTracker("#{page.google_analytics_tracking_id}"); - pageTracker._trackPageview(); - } catch(err) {}
\ No newline at end of file + #main= preserve rp(content) + #sidebar= include "sidebar.haml" + = include "footer.haml"
\ No newline at end of file diff --git a/source/index.haml b/source/index.haml index 796b81b6..7ccaabcf 100644 --- a/source/index.haml +++ b/source/index.haml @@ -1,17 +1,21 @@ --- layout: default title: Blog +author: +disqus: --- .blog - site.posts.sort_by(&:date).reverse[0..9].each_with_index do |post,index| .article %h2= link_to(post.title, post.url, {:class=>"title"}) + .meta + - author = (page.respond_to?(:author) && page.author) ? 'by: ' + page.author + ' |' : '' + #{author} posted: #{post.date.strftime("%B #{post.date.day.ordinalize}, %Y")} = preserve rp(post.content) - - if page.respond_to? :disqus_short_name - .footer - - if post.data["comments_off"] - %em.comments_off Comments disabled - - else - %a(href="#{post.url}/#disqus_thread")Comments + - if page.respond_to?(:disqus) && page.disqus + - if post.data["comments_off"] + %em.comments_off Comments disabled + - else + %a(href="#{post.url}/#disqus_thread")Comments .footer %a(href="/archives.html" title="archives") « Blog Archives
\ No newline at end of file |