blog.textfile.org結城浩のブログ

blog.textfile.org

OctopressでAmazonプラグイン

以下のサイトで公開されていたAmazonプラグインを入れてみました。

http://longkey1.net/blog/2013/03/19/octopress-amazon-plugin/

基本

入力

{% amazon medium_image B00EYXMA9I %}

出力

(amazon medium_image B00EYXMA9I)

カスタマイズ

plugins/amazon_tag.rbにパッチをあてて他の情報も表示するようにしました。

入力

{% amazon custom B00EYXMA9I %}

出力

(amazon custom B00EYXMA9I)

パッチ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
diff --git a/plugins/amazon_tag.rb b/plugins/amazon_tag.rb
index f778aca..bb1b727 100644
--- a/plugins/amazon_tag.rb
+++ b/plugins/amazon_tag.rb
@@ -67,6 +67,8 @@ module Jekyll
           :small_image_url => item.get('SmallImage/URL').to_s,
           :medium_image_url => item.get('MediumImage/URL').to_s,
           :large_image_url => item.get('LargeImage/URL').to_s,
+          :author => item.get_array("ItemAttributes/Author").join(", "), 
+          :binding => item.get("ItemAttributes/Binding").to_s,
         }
         @result_cache[asin] = data
         open(@cache_dir + asin, "w"){|f| f.write(Marshal.dump(data))} if @cache
@@ -86,7 +88,7 @@ module Jekyll
     end

     def render(context)
-      if @params =~ /(?<type>(text|small_image|medium_image|large_image)\s+)(?<asin>\S+)/i
+      if @params =~ /(?<type>(custom|text|small_image|medium_image|large_image)\s+)(?<asin>\S+)/i
         type = $~['type'].strip
         asin = $~['asin'].strip.gsub(/"|&ldquo;|&rdquo;/, '')
       else
@@ -127,6 +129,15 @@ module Jekyll
       '<a href="%s"><img src="%s" /></a>' % [url, image_url]
     end

+    def custom(item)
+      url = item[:item_page_url]
+      image_url = item[:medium_image_url]
+      title = item[:title]
+      author = item[:author]
+      binding = item[:binding]
+      '<a href="%s"><img alt="%s" title="%s" src="%s" /></a><br /><a href="%s">『%s』%s %s</a>' % [url, title, title, image_url, url, title, author, binding]
+    end
+
   end

 end