pipin 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +11 -10
 - data/lib/pipin.rb +19 -26
 - data/lib/pipin/build_tasks.rb +8 -2
 - data/lib/pipin/templates/Rakefile +1 -1
 - data/lib/pipin/templates/pipinrc +7 -2
 - data/lib/pipin/templates/plugins/amazon.rb +22 -0
 - data/lib/pipin/templates/plugins/genarate_rss.rb +57 -0
 - data/lib/pipin/templates/plugins/use_hiki_plugin.rb +3 -0
 - data/lib/pipin/templates/public/stylesheets/pipin.css +4 -3
 - data/lib/pipin/version.rb +1 -1
 - data/lib/pipin/views/layout.haml +4 -3
 - data/lib/pipin/views/list.haml +1 -1
 - data/lib/pipin/views/post.haml +4 -3
 - data/script/pipin +32 -0
 - metadata +7 -3
 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -12,18 +12,20 @@ 
     | 
|
| 
       12 
12 
     | 
    
         
             
             cd myblog
         
     | 
| 
       13 
13 
     | 
    
         
             
             rake
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
            ==  
     | 
| 
      
 15 
     | 
    
         
            +
            == development
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            開発環境についてのメモ。
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            以下で新規blogを生成。
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              * html, txt(hd)
         
     | 
| 
       19 
     | 
    
         
            -
              * to_html
         
     | 
| 
      
 21 
     | 
    
         
            +
             script/pipin new myblog
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              * カテゴリ
         
     | 
| 
      
 23 
     | 
    
         
            +
            myblog/Rakefile 先頭のコメントアウトを解除して$LOAD_PATHに'../lib'を追加すれば rake できる。
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
      
 25 
     | 
    
         
            +
            == todo
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            * viewをローカルにコピーしてくるpipinコマンドオプション
         
     | 
| 
      
 28 
     | 
    
         
            +
            * カテゴリ
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
       28 
30 
     | 
    
         
             
            == trap
         
     | 
| 
       29 
31 
     | 
    
         | 
| 
         @@ -39,4 +41,3 @@ 
     | 
|
| 
       39 
41 
     | 
    
         
             
            * exportはレンダリングされたhtmlから
         
     | 
| 
       40 
42 
     | 
    
         
             
            * todo: コメント...
         
     | 
| 
       41 
43 
     | 
    
         
             
            * todo: カテゴリなどの付属情報はxml的に...
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
    
        data/lib/pipin.rb
    CHANGED
    
    | 
         @@ -5,10 +5,12 @@ require 'fileutils' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            # todo: move in Pipin
         
     | 
| 
       6 
6 
     | 
    
         
             
            def rootdir() File.join(File.dirname(File.expand_path(__FILE__)), 'pipin') end
         
     | 
| 
       7 
7 
     | 
    
         
             
            def html_extname() config[:html_extname] or '.html' end
         
     | 
| 
      
 8 
     | 
    
         
            +
            def load_plugins(dir) Dir.glob("#{dir}/*.rb").sort.each {|e| load e } end
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
10 
     | 
    
         
             
            module Pipin
         
     | 
| 
       10 
11 
     | 
    
         
             
              Diary_pattern = '[0-9]' * 8 + '*'
         
     | 
| 
       11 
     | 
    
         
            -
              Post_pattern = '[ 
     | 
| 
      
 12 
     | 
    
         
            +
              Post_pattern = '[_0-9a-zA-Z]*'
         
     | 
| 
      
 13 
     | 
    
         
            +
              Sitemap_pattern = '[0-9a-zA-Z]*'
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
              class Exec
         
     | 
| 
       14 
16 
     | 
    
         
             
                def initialize(*args)
         
     | 
| 
         @@ -31,12 +33,10 @@ module Pipin 
     | 
|
| 
       31 
33 
     | 
    
         
             
              class Builder
         
     | 
| 
       32 
34 
     | 
    
         
             
                def initialize(dist_dir)
         
     | 
| 
       33 
35 
     | 
    
         
             
                  @dist_dir = dist_dir
         
     | 
| 
       34 
     | 
    
         
            -
                  load './pipinrc'
         
     | 
| 
       35 
     | 
    
         
            -
                  setup_environment
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
                def render_sitemap
         
     | 
| 
       39 
     | 
    
         
            -
                  posts = Post.find( 
     | 
| 
      
 39 
     | 
    
         
            +
                  posts = Post.find(Sitemap_pattern)
         
     | 
| 
       40 
40 
     | 
    
         
             
                  write_html 'sitemap', render_with_layout(:sitemap, binding)
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
         @@ -45,26 +45,11 @@ module Pipin 
     | 
|
| 
       45 
45 
     | 
    
         
             
                  write_html 'archives', render_with_layout(:archives, binding)
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
     | 
    
         
            -
                #def render_months
         
     | 
| 
       49 
     | 
    
         
            -
                #  years = Post.year_months
         
     | 
| 
       50 
     | 
    
         
            -
                #  years.each do |year, months|
         
     | 
| 
       51 
     | 
    
         
            -
                #    months.each do |month|
         
     | 
| 
       52 
     | 
    
         
            -
                #      render_month(year, month)
         
     | 
| 
       53 
     | 
    
         
            -
                #    end
         
     | 
| 
       54 
     | 
    
         
            -
                #  end
         
     | 
| 
       55 
     | 
    
         
            -
                #end
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
48 
     | 
    
         
             
                def render_month(year, month)
         
     | 
| 
       58 
49 
     | 
    
         
             
                  name = year + month
         
     | 
| 
       59 
50 
     | 
    
         
             
                  render_list(name, name + '*')
         
     | 
| 
       60 
51 
     | 
    
         
             
                end
         
     | 
| 
       61 
52 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
                #def render_posts
         
     | 
| 
       63 
     | 
    
         
            -
                #  Post.find(Post_pattern).each do |post|
         
     | 
| 
       64 
     | 
    
         
            -
                #    write_html post.label, render_with_layout(:post, binding)
         
     | 
| 
       65 
     | 
    
         
            -
                #  end
         
     | 
| 
       66 
     | 
    
         
            -
                #end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
53 
     | 
    
         
             
                def render_post(label)
         
     | 
| 
       69 
54 
     | 
    
         
             
                  post = Post.find(label).first
         
     | 
| 
       70 
55 
     | 
    
         
             
                  write_html label, render_with_layout(:post, binding)
         
     | 
| 
         @@ -80,9 +65,14 @@ module Pipin 
     | 
|
| 
       80 
65 
     | 
    
         
             
                end
         
     | 
| 
       81 
66 
     | 
    
         | 
| 
       82 
67 
     | 
    
         
             
                def write_html(label, html)
         
     | 
| 
      
 68 
     | 
    
         
            +
                  filename = label + '.html'
         
     | 
| 
      
 69 
     | 
    
         
            +
                  create_dist_file(filename, html)
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                def create_dist_file(filename, text)
         
     | 
| 
       83 
73 
     | 
    
         
             
                  Dir.mkdir @dist_dir unless File.exist?(@dist_dir)
         
     | 
| 
       84 
     | 
    
         
            -
                  filename = File.join(@dist_dir,  
     | 
| 
       85 
     | 
    
         
            -
                  File.open(filename, 'w') {|f| f.write  
     | 
| 
      
 74 
     | 
    
         
            +
                  filename = File.join(@dist_dir, filename)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  File.open(filename, 'w') {|f| f.write text }
         
     | 
| 
       86 
76 
     | 
    
         
             
                  puts '  create ' + filename
         
     | 
| 
       87 
77 
     | 
    
         
             
                end
         
     | 
| 
       88 
78 
     | 
    
         | 
| 
         @@ -97,6 +87,9 @@ module Pipin 
     | 
|
| 
       97 
87 
     | 
    
         
             
              end
         
     | 
| 
       98 
88 
     | 
    
         | 
| 
       99 
89 
     | 
    
         
             
              class Post
         
     | 
| 
      
 90 
     | 
    
         
            +
                def self.posts_dir=(dir) @@posts_dir = dir end
         
     | 
| 
      
 91 
     | 
    
         
            +
                def self.posts_dir() @@posts_dir end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
       100 
93 
     | 
    
         
             
                def self.find(pattern, options = {})
         
     | 
| 
       101 
94 
     | 
    
         
             
                  self.find_srcs(pattern, options).map {|e| Post.new(e) }
         
     | 
| 
       102 
95 
     | 
    
         
             
                end
         
     | 
| 
         @@ -122,11 +115,6 @@ module Pipin 
     | 
|
| 
       122 
115 
     | 
    
         
             
                  @@compilers.unshift [extname, block]
         
     | 
| 
       123 
116 
     | 
    
         
             
                end
         
     | 
| 
       124 
117 
     | 
    
         | 
| 
       125 
     | 
    
         
            -
                @@posts_dir = 'data'
         
     | 
| 
       126 
     | 
    
         
            -
                def self.posts_dir=(dir)
         
     | 
| 
       127 
     | 
    
         
            -
                  @@posts_dir = dir
         
     | 
| 
       128 
     | 
    
         
            -
                end
         
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
118 
     | 
    
         
             
                attr_reader :filename, :header, :body
         
     | 
| 
       131 
119 
     | 
    
         
             
                def initialize(filename)
         
     | 
| 
       132 
120 
     | 
    
         
             
                  @filename = filename
         
     | 
| 
         @@ -139,6 +127,11 @@ module Pipin 
     | 
|
| 
       139 
127 
     | 
    
         
             
                  File.basename(filename, '.*')
         
     | 
| 
       140 
128 
     | 
    
         
             
                end
         
     | 
| 
       141 
129 
     | 
    
         | 
| 
      
 130 
     | 
    
         
            +
                def date
         
     | 
| 
      
 131 
     | 
    
         
            +
                  m = label.match(/^(\d{4})(\d{2})(\d{2})/)
         
     | 
| 
      
 132 
     | 
    
         
            +
                  m ? "#{m[1]}-#{m[2]}-#{m[3]}" : nil
         
     | 
| 
      
 133 
     | 
    
         
            +
                end
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
       142 
135 
     | 
    
         
             
                def to_html
         
     | 
| 
       143 
136 
     | 
    
         
             
                  (@@compilers.assoc(File.extname filename) || @@compilers.last)[1].call(self)
         
     | 
| 
       144 
137 
     | 
    
         
             
                rescue
         
     | 
    
        data/lib/pipin/build_tasks.rb
    CHANGED
    
    | 
         @@ -5,7 +5,9 @@ def dst_html(label) 
     | 
|
| 
       5 
5 
     | 
    
         
             
              File.join DSTDIR, "#{label}.html"
         
     | 
| 
       6 
6 
     | 
    
         
             
            end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            setup_environment
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            SRCDIR = Pipin::Post.posts_dir
         
     | 
| 
       9 
11 
     | 
    
         
             
            DSTDIR = 'public'
         
     | 
| 
       10 
12 
     | 
    
         
             
            SRC_EXTNAMES = %w(html txt)
         
     | 
| 
       11 
13 
     | 
    
         
             
            EXTS = SRC_EXTNAMES.join(',')
         
     | 
| 
         @@ -17,7 +19,11 @@ MONTH_DSTS = Pipin::Post.year_months.map {|year, months| 
     | 
|
| 
       17 
19 
     | 
    
         
             
              months.map {|month| dst_html(year + month) }
         
     | 
| 
       18 
20 
     | 
    
         
             
            }.flatten
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            task :default => [:index, :archives, :months, :sitemap] + DSTS.sort.reverse
         
     | 
| 
      
 22 
     | 
    
         
            +
            task :default => [:index, :archives, :months, :sitemap] + DSTS.sort.reverse + [:after_build]
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            task :after_build do
         
     | 
| 
      
 25 
     | 
    
         
            +
              after_build
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
       21 
27 
     | 
    
         | 
| 
       22 
28 
     | 
    
         
             
            # posts
         
     | 
| 
       23 
29 
     | 
    
         
             
            SRC_EXTNAMES.each do |extname|
         
     | 
    
        data/lib/pipin/templates/pipinrc
    CHANGED
    
    | 
         @@ -7,7 +7,7 @@ end 
     | 
|
| 
       7 
7 
     | 
    
         
             
            def config
         
     | 
| 
       8 
8 
     | 
    
         
             
              {
         
     | 
| 
       9 
9 
     | 
    
         
             
                # ブログのURLに書き換えてください
         
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
      
 10 
     | 
    
         
            +
                :base_url => 'http://exsample.com', # for rss
         
     | 
| 
       11 
11 
     | 
    
         
             
                :title => 'Thie Pipin Diary',
         
     | 
| 
       12 
12 
     | 
    
         
             
                #:description => 'Please set config[:description] in pipinrc',
         
     | 
| 
       13 
13 
     | 
    
         
             
                :dir => {
         
     | 
| 
         @@ -53,5 +53,10 @@ def setup_environment 
     | 
|
| 
       53 
53 
     | 
    
         
             
                $KCODE = 'UTF-8' # 1.8
         
     | 
| 
       54 
54 
     | 
    
         
             
              end
         
     | 
| 
       55 
55 
     | 
    
         
             
              add_compilers
         
     | 
| 
       56 
     | 
    
         
            -
               
     | 
| 
      
 56 
     | 
    
         
            +
              Pipin::Post.posts_dir = config[:dir][:posts] || './data'
         
     | 
| 
      
 57 
     | 
    
         
            +
              load_plugins config[:dir][:plugins] || './plugins'
         
     | 
| 
      
 58 
     | 
    
         
            +
            end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            def after_build
         
     | 
| 
      
 61 
     | 
    
         
            +
              Pipin::Exec.new('rss').build
         
     | 
| 
       57 
62 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: UTF-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            def amazon(asin, opts = {})
         
     | 
| 
      
 3 
     | 
    
         
            +
              if opts[:text]
         
     | 
| 
      
 4 
     | 
    
         
            +
                amazon_text(asin, opts[:text])
         
     | 
| 
      
 5 
     | 
    
         
            +
              else
         
     | 
| 
      
 6 
     | 
    
         
            +
                amazon_img(asin)
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            def amazon_img(asin)
         
     | 
| 
      
 11 
     | 
    
         
            +
              <<-HTML
         
     | 
| 
      
 12 
     | 
    
         
            +
                <div class="amazon">
         
     | 
| 
      
 13 
     | 
    
         
            +
                <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=#{config[:amazonid] or 'bilbo-22'}&o=9&p=8&l=as1&asins=#{asin}&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
         
     | 
| 
      
 14 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 15 
     | 
    
         
            +
              HTML
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            def amazon_text(asin, text)
         
     | 
| 
      
 19 
     | 
    
         
            +
              <<-HTML
         
     | 
| 
      
 20 
     | 
    
         
            +
                <a href="http://www.amazon.co.jp/o/ASIN/#{asin}/#{config[:amazonid] or 'bilbo-22'}">#{text}</a>
         
     | 
| 
      
 21 
     | 
    
         
            +
              HTML
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,57 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: UTF-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rss/maker'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Pipin
         
     | 
| 
      
 5 
     | 
    
         
            +
              class Builder
         
     | 
| 
      
 6 
     | 
    
         
            +
                def render_rss(options = {})
         
     | 
| 
      
 7 
     | 
    
         
            +
                  options[:limit] ||= 20
         
     | 
| 
      
 8 
     | 
    
         
            +
                  posts = Post.find(Diary_pattern, :limit => options[:limit])
         
     | 
| 
      
 9 
     | 
    
         
            +
                  rss = generate_rss(posts, options)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  create_dist_file('rss', rss)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def generate_rss(entries, options = {})
         
     | 
| 
      
 14 
     | 
    
         
            +
                  top = config[:base_url].sub(/\/\z/, '')
         
     | 
| 
      
 15 
     | 
    
         
            +
                  RSS::Maker.make("1.0") do |maker|
         
     | 
| 
      
 16 
     | 
    
         
            +
                    entries.each do |entry|
         
     | 
| 
      
 17 
     | 
    
         
            +
                      item = maker.items.new_item
         
     | 
| 
      
 18 
     | 
    
         
            +
                      item.link            = "#{top}/permalink/#{entry.label + html_extname}"
         
     | 
| 
      
 19 
     | 
    
         
            +
                      item.description     = entry.rss_description
         
     | 
| 
      
 20 
     | 
    
         
            +
                      item.title           = entry.rss_tile
         
     | 
| 
      
 21 
     | 
    
         
            +
                      item.content_encoded = entry.rss_body
         
     | 
| 
      
 22 
     | 
    
         
            +
                      item.date            = entry.time
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                    maker.channel.link  = top
         
     | 
| 
      
 25 
     | 
    
         
            +
                    maker.channel.about = options[:about] || "abaout"
         
     | 
| 
      
 26 
     | 
    
         
            +
                    maker.channel.title = options[:title] || config[:title]
         
     | 
| 
      
 27 
     | 
    
         
            +
                    maker.channel.description = options[:description] || config[:description] || 'Please set config[:description] in pipinrc'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end.to_s
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              class Post
         
     | 
| 
      
 33 
     | 
    
         
            +
                def rss_description(n = 128)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  /^.{0,#{n}}/m.match(to_html.gsub(/(.*<\/h3>)|(<[^>]*>)|(\s+)/mi, '')).to_s + '...'
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              
         
     | 
| 
      
 37 
     | 
    
         
            +
                def rss_tile
         
     | 
| 
      
 38 
     | 
    
         
            +
                   to_html[/<h2>.*<\/h2>/i].to_s.gsub(/<[^>]*>/, '')
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              
         
     | 
| 
      
 41 
     | 
    
         
            +
                def rss_body
         
     | 
| 
      
 42 
     | 
    
         
            +
                  to_html
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
              
         
     | 
| 
      
 45 
     | 
    
         
            +
                def time
         
     | 
| 
      
 46 
     | 
    
         
            +
                  Time.parse(date.to_s)
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
            end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 52 
     | 
    
         
            +
              $LOAD_PATH.unshift '../lib'
         
     | 
| 
      
 53 
     | 
    
         
            +
              require 'pipin'
         
     | 
| 
      
 54 
     | 
    
         
            +
              load './pipinrc'
         
     | 
| 
      
 55 
     | 
    
         
            +
              setup_environment
         
     | 
| 
      
 56 
     | 
    
         
            +
              Pipin::Exec.new("rss").build
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -46,12 +46,12 @@ div.footer { 
     | 
|
| 
       46 
46 
     | 
    
         
             
              text-align: center;
         
     | 
| 
       47 
47 
     | 
    
         
             
            }
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
            div. 
     | 
| 
      
 49 
     | 
    
         
            +
            div.post {
         
     | 
| 
       50 
50 
     | 
    
         
             
              margin: 2em 0;
         
     | 
| 
       51 
51 
     | 
    
         
             
            }
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
            div. 
     | 
| 
       54 
     | 
    
         
            -
            div. 
     | 
| 
      
 53 
     | 
    
         
            +
            div.before_post,
         
     | 
| 
      
 54 
     | 
    
         
            +
            div.after_post {
         
     | 
| 
       55 
55 
     | 
    
         
             
              margin: 0;
         
     | 
| 
       56 
56 
     | 
    
         
             
              padding: 0;
         
     | 
| 
       57 
57 
     | 
    
         
             
              text-align: right;
         
     | 
| 
         @@ -101,6 +101,7 @@ blockquote { 
     | 
|
| 
       101 
101 
     | 
    
         
             
            div.date {
         
     | 
| 
       102 
102 
     | 
    
         
             
              font-weight: bold;
         
     | 
| 
       103 
103 
     | 
    
         
             
              color: #666;
         
     | 
| 
      
 104 
     | 
    
         
            +
              text-align: right;
         
     | 
| 
       104 
105 
     | 
    
         
             
            }
         
     | 
| 
       105 
106 
     | 
    
         | 
| 
       106 
107 
     | 
    
         
             
            a { color: #04f; }
         
     | 
    
        data/lib/pipin/version.rb
    CHANGED
    
    
    
        data/lib/pipin/views/layout.haml
    CHANGED
    
    | 
         @@ -11,10 +11,11 @@ 
     | 
|
| 
       11 
11 
     | 
    
         
             
              %body
         
     | 
| 
       12 
12 
     | 
    
         
             
                .header
         
     | 
| 
       13 
13 
     | 
    
         
             
                  %h1&= config[:title]
         
     | 
| 
      
 14 
     | 
    
         
            +
                  .description= config[:description]
         
     | 
| 
       14 
15 
     | 
    
         
             
                  .menus
         
     | 
| 
       15 
     | 
    
         
            -
                    %a{:href => '' 
     | 
| 
       16 
     | 
    
         
            -
                    %a{:href => 'archives' + html_extname} Archives
         
     | 
| 
       17 
     | 
    
         
            -
                    %a{:href => 'about' + html_extname} About
         
     | 
| 
      
 16 
     | 
    
         
            +
                    %a{:href => './'} Latest
         
     | 
| 
      
 17 
     | 
    
         
            +
                    %a{:href => './archives' + html_extname} Archives
         
     | 
| 
      
 18 
     | 
    
         
            +
                    %a{:href => './about' + html_extname} About
         
     | 
| 
       18 
19 
     | 
    
         
             
                .main
         
     | 
| 
       19 
20 
     | 
    
         
             
                  =# render_plugin_hook(:flavour_header, self)
         
     | 
| 
       20 
21 
     | 
    
         
             
                  .content
         
     | 
    
        data/lib/pipin/views/list.haml
    CHANGED
    
    
    
        data/lib/pipin/views/post.haml
    CHANGED
    
    
    
        data/script/pipin
    ADDED
    
    | 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            begin
         
     | 
| 
      
 4 
     | 
    
         
            +
              require 'pipin'
         
     | 
| 
      
 5 
     | 
    
         
            +
            rescue LoadError # for development
         
     | 
| 
      
 6 
     | 
    
         
            +
              $LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__)) + '/../lib'
         
     | 
| 
      
 7 
     | 
    
         
            +
              require 'pipin'
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            case ARGV.shift
         
     | 
| 
      
 11 
     | 
    
         
            +
            when '--version', '-v'
         
     | 
| 
      
 12 
     | 
    
         
            +
              puts "Pipin #{Pipin::VERSION}"
         
     | 
| 
      
 13 
     | 
    
         
            +
            when 'new', 'n'
         
     | 
| 
      
 14 
     | 
    
         
            +
              dir = ARGV.shift || raise("Options should be given after the application name")
         
     | 
| 
      
 15 
     | 
    
         
            +
              Pipin::Exec.new(dir).create_from_template
         
     | 
| 
      
 16 
     | 
    
         
            +
            else
         
     | 
| 
      
 17 
     | 
    
         
            +
              puts <<__USAGE__
         
     | 
| 
      
 18 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 19 
     | 
    
         
            +
              pipin new BLOG_PATH [options]
         
     | 
| 
      
 20 
     | 
    
         
            +
             
         
     | 
| 
      
 21 
     | 
    
         
            +
            Options:
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            Pipin options:
         
     | 
| 
      
 24 
     | 
    
         
            +
              -v, [--version]  # Show Pipin version number and quit
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            Example:
         
     | 
| 
      
 27 
     | 
    
         
            +
                pipin new ~/myblog
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                Create a new pipin blog. "pipin new ~/myblog" creates a
         
     | 
| 
      
 30 
     | 
    
         
            +
                new blog files in "~/myblog".
         
     | 
| 
      
 31 
     | 
    
         
            +
            __USAGE__
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: pipin
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date:  
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-03-28 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       14 
14 
     | 
    
         
             
            description: simple blog system
         
     | 
| 
       15 
15 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -33,6 +33,9 @@ files: 
     | 
|
| 
       33 
33 
     | 
    
         
             
            - lib/pipin/templates/data/about.txt
         
     | 
| 
       34 
34 
     | 
    
         
             
            - lib/pipin/templates/data/hello.src
         
     | 
| 
       35 
35 
     | 
    
         
             
            - lib/pipin/templates/pipinrc
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/pipin/templates/plugins/amazon.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/pipin/templates/plugins/genarate_rss.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/pipin/templates/plugins/use_hiki_plugin.rb
         
     | 
| 
       36 
39 
     | 
    
         
             
            - lib/pipin/templates/public/stylesheets/pipin.css
         
     | 
| 
       37 
40 
     | 
    
         
             
            - lib/pipin/version.rb
         
     | 
| 
       38 
41 
     | 
    
         
             
            - lib/pipin/views/archives.haml
         
     | 
| 
         @@ -41,6 +44,7 @@ files: 
     | 
|
| 
       41 
44 
     | 
    
         
             
            - lib/pipin/views/post.haml
         
     | 
| 
       42 
45 
     | 
    
         
             
            - lib/pipin/views/sitemap.haml
         
     | 
| 
       43 
46 
     | 
    
         
             
            - pipin.gemspec
         
     | 
| 
      
 47 
     | 
    
         
            +
            - script/pipin
         
     | 
| 
       44 
48 
     | 
    
         
             
            homepage: https://github.com/dan5/pipin
         
     | 
| 
       45 
49 
     | 
    
         
             
            licenses: []
         
     | 
| 
       46 
50 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
         @@ -61,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       61 
65 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       62 
66 
     | 
    
         
             
            requirements: []
         
     | 
| 
       63 
67 
     | 
    
         
             
            rubyforge_project: pipin
         
     | 
| 
       64 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 68 
     | 
    
         
            +
            rubygems_version: 1.8.11
         
     | 
| 
       65 
69 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       66 
70 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       67 
71 
     | 
    
         
             
            summary: blog
         
     |