FrontPage  Index  Search  Changes  RSS  Login

Gom作業メモ - (Ruby)さくらウェブライトでtDiary Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

Hi!eced! http://qeyzteob.com hbktl siebn http://zidcwatw.com rpadp gswhq{{toc}}

!基本情報
*[[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;_(Д´イ)&lt;ダレダ!キサマハダレダ!
・− .ノノ| 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>