Gom作業メモ - (Ruby)さくらウェブライトでtDiary Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
!基本情報
*[[tDiary-users Project - インストールHowTo|http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EBHowTo]]
*[[腹部hiki - (Ruby)さくらインターネットでtDiary!インストール|http://www115.sakura.ne.jp/~harabu/hiki/hiki.cgi?(Ruby)(tDiary)%A4%B5%A4%AF%A4%E9%A5%A4%A5%F3%A5%BF%A1%BC%A5%CD%A5%C3%A5%C8%A4%C7tDiary]]
これで大体事足りるのですが、補足情報など。{{fn('現在、さくらウェブライトでCGI、SSIを使用できるコースは募集していません。')}}
!設定など
!!設置前に
/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として実行してくださいねと言われました」|http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?CGI%A4%C8%A4%B7%A4%C6%BC%C2%B9%D4%A4%B7%A4%C6%A4%AF%A4%C0%A4%B5%A4%A4%A4%CD%A4%C8%B8%C0%A4%EF%A4%EC%A4%DE%A4%B7%A4%BF]]を参考に、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|http://i.loveruby.net/w/tdiarysearch.html]]と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月分|http://www10.plala.or.jp/upara/memo/200402.html]])
pre.aa {
font-family: "MS Pゴシック", sans-serif; /* 等幅フォントを変更 */
18px;
}
@media screen { /* MacIE対策 */
pre.aa {
overflow: auto; /* 枠からはみ出た時にスクロールバーを出す */
}
* html pre.aa { /* WinIE対策 */
width: 100%;
}
}
tDiary-FAQの[[「半角カナは使えないのですか?」|http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?%C8%BE%B3%D1%A5%AB%A5%CA%A4%CF%BB%C8%A4%A8%A4%CA%A4%A4%A4%CE%A4%C7%A4%B9%A4%AB%3F]]を参考にtdiary/lang/ja.rbを書き換えます。
あとは本文を書くときに<pre class="aa">と指定してやればOKです。
<pre class="aa">
・− ,(ゝ、 ・−
ー=y; ((ノりヾヽ
\(゚∀゚从 ー=y;_(Д´イ)<ダレダ!キサマハダレダ!
・− .ノノ| y |\;y=‐ | |
・− / \ ・− |_|
/~~~~~~~~~/ く く
・−
ヤンマーニヤンマーニヤンマーニ
</pre>
!!html_anchor.rbでアンカーを置き換える
まずは[[ドキュメント|http://docs.tdiary.org/ja/?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>