The Bilbo Diary

このサイトはBilboという日記システムで運営されています。 BilboについてはAboutをご覧ください。

BilboがMOONGIFTで紹介されました

http://www.moongift.jp/2009/12/bilbo/

BilboはRuby/Sinatraで作られたオープンソース・ソフトウェア。サーバのリソースは数年前に比べると大幅に増え、リソースは潤沢になった。そのため富豪的なフレームワークが使えたり、O/Rマッピングを使って多少非効率的なSQLが発行されても殆ど気にする必要はなくなっている。

だが潤沢なリソースをただ持て余しているのは勿体ない。むしろストイックに軽量なシステムを目指すのが逆に面白くなる。それに挑戦しているのがBilbo だ。Bilboは軽量フレームワークのSinatraを使って構築されているブログエンジンだ。

ありがとうございます!

permalink

旧URLを互換させる方法について悩み中

過去に運用していたtDirayや旧BilboのURLは「?」を使ったパラメータ受け取りを利用していた。 新しいBilboは「?」を使わないのだが、「?」を使ったURLでもアクセスできるように互換性を保っておきたい。

今のstart.rbではこんな感じだが、

get '*' do
  @entries = Entry.find('20')
  haml :list
end

次のように直してみた。

# /?permalink&date=20070317 #=> permalink/20070317
# /?date=20070317#p03       #=> /20070317#p03
def redirect_to_new_path
  if action = params.index(nil)
    case action
    when 'permalink'
      redirect "#{action}/#{params[:date]}"
    else
      redirect action
    end
  else
    if params[:date]
      redirect "#{params[:date]}"
    else
      return false
    end
  end
  return true
end

get '*' do
  unless redirect_to_new_path
    @entries = Entry.find('20')
    haml :list
  end
end

これで一応うまくいくんだけど、これをプラグインに追い出す実装が思いつかない。 getのマッチ条件に「?」が入れられるといいのだけど、これがどうやってもうまくいかない。

せめてSinatraのgetで定義したアクションをキャンセルして、以降のアクションからマッチするものを再び探すというようなことが出来るといいんだけど……。

permalink

Bilboをgithubにアップしました

http://github.com/dan5/bilbo

アップしたのはSinatra版です。 Ruby1.9では標準でgemが使えるようになりましたし、 cgi.rbからSinatraに移行しました。

今はまだpluginも少なく非常に小さな構成となっています。 本体(bilbo.rb, start.rb)のコードは合わせても89行です。

$ wc bilbo.rb start.rb
      67     200    1833 bilbo.rb
      22      38     295 start.rb
      89     238    2128 total

尚、DBを使っておらず、 記事データはエントリ別にテキストファイルとして保存する形となっています。

Bilboについてのより詳しい情報はaboutにあります。

permalink

hikidoc.rbをちょっと書き換えた

[[about]]
WikiName

上記のリンクを?aboutに飛ばすように。→ about WikiName

Index: misc/hikidoc.rb
===================================================================
--- misc/hikidoc.rb     (リビジョン 1576)
+++ misc/hikidoc.rb     (作業コピー)
@@ -450,7 +450,7 @@
       if can_image_link?(link)
         @output.image_hyperlink(fixed_link)
       else
-        @output.hyperlink(fixed_link, @output.text(link))
+        @output.hyperlink_namedpage(fixed_link, @output.text(link))
       end
     end
   end
@@ -699,8 +699,12 @@
       %Q(<a href="#{escape_html_param(uri)}">#{title}</a>)
     end

+    def hyperlink_namedpage(uri, title)
+      %Q(<a href="?#{escape_html_param(uri)}">#{title}</a>)
+    end
+
     def wiki_name(name)
-      hyperlink(name, text(name))
+      hyperlink_namedpage(name, text(name))
     end

     def image_hyperlink(uri, alt = nil)
permalink

最近のお気に入り♪

超小型日記システム『ビルボダイアリー』
ふぁ〜〜〜、癒される〜〜〜〜〜!!!(=´∇`=)にゃん

これまたコードが100行にも満たないなんて!!!
さすがはRUBY!!!
早速、自分のブログもこれにしちゃったもんネ♪ヾ(*ΦωΦ)ノ ヒャッホゥ

でも、なにかとプラグインに逃げてるのは反則だよネ・・・ψ(`∇´)ψケケッ

ビルボダイアリー(音が出るので注意。)
http://dgames.jp/bilbo/

permalink