aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorParker Moore <parkrmoore@gmail.com>2013-10-05 20:48:23 -0400
committerParker Moore <parkrmoore@gmail.com>2013-10-05 20:48:23 -0400
commit6a7cced3aac70847dd4f47e785a50c134571d6cd (patch)
treea5a86ef74a786420a937222a81880f578745f7c0 /plugins
parent8aa851e9e342fac787215988ede20dcb0b046a22 (diff)
parentcbf4b6570f4e999b69ffdaad7057d5a51213bd1e (diff)
downloadmy_new_personal_website-6a7cced3aac70847dd4f47e785a50c134571d6cd.tar.xz
my_new_personal_website-6a7cced3aac70847dd4f47e785a50c134571d6cd.zip
Merge branch 'fix-gist-plugin' of git://github.com/aleiphoenix/octopress into aleiphoenix-fix-gist-plugin
* 'fix-gist-plugin' of git://github.com/aleiphoenix/octopress: fix old style gist url not found issue
Diffstat (limited to '')
-rw-r--r--plugins/gist_tag.rb32
1 files changed, 24 insertions, 8 deletions
diff --git a/plugins/gist_tag.rb b/plugins/gist_tag.rb
index 16203450..62c490d0 100644
--- a/plugins/gist_tag.rb
+++ b/plugins/gist_tag.rb
@@ -46,7 +46,7 @@ module Jekyll
end
def get_gist_url_for(gist, file)
- "https://raw.github.com/gist/#{gist}/#{file}"
+ "https://gist.github.com/raw/#{gist}/#{file}"
end
def cache(gist, file, data)
@@ -72,7 +72,29 @@ module Jekyll
def get_gist_from_web(gist, file)
gist_url = get_gist_url_for gist, file
- raw_uri = URI.parse gist_url
+ data = get_web_content gist_url
+ data = handle_gist_redirecting data
+ if data.code.to_i != 200
+ raise RuntimeError, "Gist replied with #{data.code} for #{gist_url}"
+ end
+ data = data.body
+ cache gist, file, data unless @cache_disabled
+ data
+ end
+
+ def handle_gist_redirecting(data)
+ if data.code.to_i == 302
+ redirected_url = data.header['Location']
+ data = get_web_content redirected_url
+ if data.code.to_i != 200
+ raise RuntimeError, "Gist replied with #{data.code} for #{gist_url}"
+ end
+ end
+ data
+ end
+
+ def get_web_content(url)
+ raw_uri = URI.parse url
proxy = ENV['http_proxy']
if proxy
proxy_uri = URI.parse(proxy)
@@ -84,12 +106,6 @@ module Jekyll
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new raw_uri.request_uri
data = https.request request
- if data.code.to_i != 200
- raise RuntimeError, "Gist replied with #{data.code} for #{gist_url}"
- end
- data = data.body
- cache gist, file, data unless @cache_disabled
- data
end
end