(Ruby)さくらウェブライトでtDiary
基本情報
これで大体事足りるのですが、補足情報など。*1
設定など
設置前に
/usr/local/bin にpathを通します。
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
これでwgetを使用できるようになります。また、/usr/bin/にあるviは日本語が通らないので、alias等で/usr/loca/binのものを使用するようにします。
% alias vi '/usr/local/bin/vi'
*.cgiの作成
tDiary-FAQの「CGIとして実行してくださいねと言われました」を参考に、index.cgi、update.cgiを作成します。
index.cgi
#!/usr/local/bin/ruby require 'index'
update.cgi
#!/usr/local/bin/ruby require 'update'
実行属性付加
% chmod +x *.cgi
これで、ファイルのリネーム作業と1行目を変更する作業は不要になります。
トラックバック関連
tdiary.confに、トラックバックでtb.cgiを使用するよう設定します。
@options['tb.cgi'] = './tb.cgi'
tb.cgi作成
#!/usr/local/bin/ruby require 'tb'
実行属性付加
% chmod +x tb.cgi
tdiarysearchで検索
tdiarysearchとsearch_form.rbで検索機能を実現してみるメモです。
tdiarysearch取得
tdiarysearchを取得し、適当な名前(ここでは"search.rb")で保存します。
% wget -O search.rb http://i.loveruby.net/archive/d/tdiarysearch.txt
search.cgi作成
いつものように.cgiを作成します。
#!/usr/local/bin/ruby require 'search'
実行属性付加
% chmod +x search.*
tdiarysearchを改造
素のtdiarysearchだと*.rbを使用してしまうので、以下のように書き換えます。ついでにログも取るようにします。また、サーチエンジンに検索ログを蹂躙されないようにnofollow指定を行います。
*** search.old Sun May 23 03:45:02 2004 --- search.rb Tue Dec 7 18:48:38 2004 *************** *** 17,23 **** # Static Configurations # ! LOGGING = false LOGFILE_NAME = 'search.log' DEBUG = $DEBUG --- 17,23 ---- # Static Configurations # ! LOGGING = true LOGFILE_NAME = 'search.log' DEBUG = $DEBUG *************** *** 35,41 **** <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Language" content="ja-JP"> ! <meta name="robots" content="noindex"> <link rel="stylesheet" href="theme/base.css" type="text/css" media="all"> <link rel="stylesheet" href="theme/<%= theme %>/<%= theme %>.css" title="<%= theme %>" type="text/css" media="all"> <title>tDiary Search</title> --- 35,41 ---- <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Language" content="ja-JP"> ! <meta name="robots" content="noindex,nofollow,noarchive"> <link rel="stylesheet" href="theme/base.css" type="text/css" media="all"> <link rel="stylesheet" href="theme/<%= theme %>/<%= theme %>.css" title="<%= theme %>" type="text/css" media="all"> <title>tDiary Search</title> *************** *** 49,55 **** EOS SEARCH_FORM = unindent(<<"EOS", 2) ! <form method="post" action="#{File.basename(__FILE__)}"> <input type="text" name="q" size="20" value="<%= patterns.map {|re| escape(re.source) }.join(' ') %>"> <input type="submit" value="Search"> <% --- 49,55 ---- EOS SEARCH_FORM = unindent(<<"EOS", 2) ! <form method="post" action="#{File.basename(__FILE__, ".rb") + ".cgi"}"> <input type="text" name="q" size="20" value="<%= patterns.map {|re| escape(re.source) }.join(' ') %>"> <input type="submit" value="Search"> <% *************** *** 105,111 **** <ul> <% recent_queries.sort_by {|t,q| -t.to_i }.each do |time, query| ! %><li><%= time.strftime('%Y-%m-%d %H:%M:%S') %> | <a href="#{File.basename(__FILE__)}?q=<%= escape_url(query) %>"><%= escape(query) %></a></li> <% end %></ul> --- 105,111 ---- <ul> <% recent_queries.sort_by {|t,q| -t.to_i }.each do |time, query| ! %><li><%= time.strftime('%Y-%m-%d %H:%M:%S') %> | <a href="#{File.basename(__FILE__, ".rb") + ".cgi"}?q=<%= escape_url(query) %>"><%= escape(query) %></a></li> <% end %></ul>
search_form.rbでform作成
直接formを書いてもいいのですが、せっかくだからsearch_form.rbを使用してみます。
<%= search_form("./search.cgi", "q", "Search") %> <p> <a href="search.cgi?history=on">[検索ログ] </p>
weather.rbのタイムゾーンを設定してみる
さくらで使用しているFreeBSDには、Japanというタイムゾーンはありません。正しく修正された時刻を表示するには、/usr/share/zoneinfo/以下から適切なものを指定します。日本標準時であれば、環境変数TZまたはその日の天気プラグインの設定画面で、Japanの替わりにAsia/Tokyoと指定すればOKです。
pre内部でAAを表示してみる
append-css.rbの「CSSの追加」で、以下のようなCSS断片を記述します。(参考:いーたのメモ帳 2004年2月分)
pre.aa { font-family: "MS Pゴシック", sans-serif; /* 等幅フォントを変更 */ 18px; } @media screen { /* MacIE対策 */ pre.aa { overflow: auto; /* 枠からはみ出た時にスクロールバーを出す */ } * html pre.aa { /* WinIE対策 */ width: 100%; } }
tDiary-FAQの「半角カナは使えないのですか?」を参考にtdiary/lang/ja.rbを書き換えます。 あとは本文を書くときに<pre class="aa">と指定してやればOKです。
<pre class="aa"> ・− ,(ゝ、 ・− ー=y; ((ノりヾヽ \(゚∀゚从 ー=y;_(Д´イ)<ダレダ!キサマハダレダ! ・− .ノノ| y |\;y=‐ | | ・− / \ ・− |_| /~~~~~~~~~/ く く ・− ヤンマーニヤンマーニヤンマーニ </pre>
html_anchor.rbでアンカーを置き換える
まずはドキュメントを読みましょう。さくらではmod_rewriteを使用できないため、「ErrorDocument?を利用する方法」をとります。
.htaccess
.htaccessに以下のような内容を追記します。ディレクトリ名などは適当に変えてください。
<Files ~ "^([0-9]{4}|[0-9]{6}|[0-9]{8}).html$"> ErrorDocument? 404 /~gom/tdiary/index.cgi </Files>
*1 現在、さくらウェブライトでCGI、SSIを使用できるコースは募集していません。
Keyword(s):[Ruby] [tDiary]
References:[SideMenu]