トップページphp
433コメント131KB

tDiaryスレッド その1

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/03/04 04:33ID:B6qo4+Dr
Ruby で書かれたWeb日記プログラム tDiary のスレッドです。

本家 tDiary.org
http://www.tdiary.org/
日記貸し出し tDiary.net
http://www.tdiary.net/
029128705/03/17 00:31:46ID:???
>>290
エラーというか,ブラウザ上では index.rb の中味がそのまま表示されています.
シェル上で $ ruby ./index.rb を実行すると
(offline mode: enter name=value pairs on standard input)
と表示されます.
029228705/03/17 00:34:22ID:???
追加,()内が表示されるとコンソールに戻らないので,ctrl+cで実行停止すると
次の表示が現れます.

(offline mode: enter name=value pairs on standard input) <--ここはすでに表示
Content-Type: text/plain

(Interrupt)

/usr/lib/ruby/1.8/cgi.rb:1081:in `readlines'
/usr/lib/ruby/1.8/cgi.rb:1081:in `read_from_cmdline'
/usr/lib/ruby/1.8/cgi.rb:1118:in `initialize_query'
/usr/lib/ruby/1.8/cgi.rb:2269:in `initialize'
tdiary/index.rb:20:in `new'
tdiary/index.rb:20
0293nobodyさん05/03/17 00:44:19ID:???
どうもapacheの設定間違いみたいね。
dot.htaccessは書き換えた?
$ chmod +x index.rb
とかした?
インストールのドキュメント読んだほうがいいよ
0294nobodyさん05/03/17 00:49:33ID:???
>>293
あれ?そうですか。。。
dot.htaccessはリネームして .htaccess に mv しました。
内容は >>287にあるとおり、自分の環境にしたがって設定したつもりです。
index.rb の権限は同じく>>287のように -rwxr-xr-x 1 apache apache で問題無さそうですし。

とりあえずいまWindowsなので、もう一度動作環境のあるLinuxに戻って確かめてみます。
029528705/03/17 00:59:17ID:???
ひとつ気が付いたことがあります.
.htaccess に
# if you run tDiary with symbolic link, use settings below.
という記述があり,自分のケースでは,/var/www/以下よりホーム以下にリンクさせているので
Options +FollowSymLinks ここのコメントを外しました.が,依然動かず・・・スクリプトがテキストのまま
表示されてしまいます.
0296nobodyさん05/03/17 01:00:57ID:???
>>292
それはコンソール上で入力を試せるモード。
ctrl+c じゃなくて ctrl+d で EOF 送って入力を終了させれ。
0297nobodyさん05/03/17 01:03:57ID:???
AllowOverride None になってない?
029828705/03/17 01:27:20ID:???
>>297
あ, /etc/apache2/httpd.conf にて
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
こういう記述がありました.トップ以下すべてに関わってきますか?
AllowOverride All に変更しても変わりはなかったですが・・・

>>296
Content-Type: text/html; charset=EUC-JP
Vary: User-Agent
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 1537

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
みたいにそのあとずっと正常っぽい出力が出てきました!!!
でも,サーバ上ではどうすればよいのでしょう・・・ToT
029928105/03/17 01:38:56ID:???
再度申し訳ありません

unless ($html = $cache->get($url))
の所でどうしても
Can't call method "get" on an undefined value at tdiary2rss.cgi
というエラーが出ます。
どなたか解決方法をご存じないでしょうか?
0300nobodyさん05/03/17 01:55:38ID:???
>298
# apachectl restart

ところで最新のrubyだと変数名とメソッド名が
衝突してちょこちょこエラーでるようになったね。
030128705/03/17 02:10:23ID:???
>>300
あ,もちろん毎回 /etc/init.d/apache2 stop|start はやっていますよー.T_T
0302nobodyさん05/03/17 02:39:50ID:???
あ、やってたのねスマソ
うーんでもこれ以上はわかんないな。ウチではuser_dirで使ってるし。
スーパーリロードとかはしてみた?
030328705/03/17 10:07:02ID:???
スーパーリロードというのがどういうものなのか知りませんが,
Shift押しながらのリロード(キャッシュを使わない)なら毎回やっています.
とりあえず,インストール場所を説明書通りにしてもう一度やってみます.
030428705/03/17 10:51:43ID:???
いろいろ御指南有り難うございました.
とりあえず,index.rb とファイル名まで決め打ちであれば,動かすことに成功しました!
ツボは,/etc/apache2/httpd.conf 中の
ScriptAlias /tdiary/ /var/www/localhost/htdocs/tdiary/
これが抜けていたことでした.
ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/ という記述がすでにあり,
/var/www/localhost/cgi-bin/ 以下にインストールしたところ,うまく動いたので気が付きました.

・・・が,問題が・・・
index.rb を指定すると実行できるのですが,http://localhost/tdiary/ だと
Forbidden
You don't have permission to access /t/ on this server.
となります. .htaccess には
DirectoryIndex index.rb を指定してあるので,ディレクトリブラウズしたら
index.rb を読みに行って実行してくれそうなものですが・・・.
[Thu Mar 17 10:50:34 2005] [error] [client 127.0.0.1] attempt to invoke directory as script: /var/www/localhost/htdocs/tdiary/
とあるので,その通りなのでしょうが...
030528705/03/17 10:56:24ID:???
あれ,もう一度過去ログ読んだら,>>265さんとまったく同じですね.
問題の所在が分かったと思ったら,そういうことだったのですか・・・.
030628705/03/17 11:02:39ID:???
あっれ?っていうか,
#ScriptAlias /tdiary/ /var/www/localhost/htdocs/tdiary/
とコメントアウトして,
DirectoryIndex index.html index.html.var index.php
と,index.rb を消したら,ディレクトリブラウズでも行けるようになった!
えーと,めちゃくちゃ謎なんですけど,とりあえず動くようになりました.
Ruby-1.8.2 でも動きます.
0307nobodyさん05/03/17 22:34:51ID:fKIkApJ7
>306
っつーかapacheのこともう少し勉強しろ
0308nobodyさん2005/03/21(月) 22:23:36ID:gaUc5osS
自由に改行を入れられるようにしたいのですが
スタイルのどこをいじったらいいのでしょうか?

入力したとおりに表示したいんです。
0309nobodyさん2005/03/21(月) 22:33:55ID:???
>>308
etDiaryスタイルを使う、じゃだめなの?
0310nobodyさん2005/03/29(火) 00:21:23ID:???
リンク元置換リストを増やしたら重くなる?
0311nobodyさん2005/03/31(木) 23:01:57ID:???
2.0.1キタ
>>310
比較回数が多くなれば重くなるのは必然
0312nobodyさん2005/04/03(日) 22:53:35ID:U3Qk5ojU
未来の日付の日記を編集したとします。
たとえば、その日に見たいテレビ番組があるとして、
その番組についてその日に「何か」を書くことが分かっていて、
その日に番組があることを万が一忘れていた場合に思い出したい・・・というようなケースです。

すると、トップを表示させた場合、現在の日付ではなく、いちばん未来の日付がトップに表示されます。
これを、未来の日付はその日が来るまで表示しないようにすることはできますでしょうか?
0313nobodyさん2005/04/04(月) 03:21:52ID:???
todoプラグインでも使えば?
0314nobodyさん2005/04/04(月) 05:33:55ID:???
todo プラグインは別途使っているのですが、
todoの方に入れる用事とかは、期限過ぎたら記録上消してしまっていいようなものに使っています。
日記として予め書いておくものは、期限が来たらあらかじめある程度書いておいた内容に
書き足すような行事とかです。

tdiary.confを見てみましたが、希望にかなう設定はなかったみたいです。
実現できないなら、手動で現在日時に移動するという解決法にします。
ちょっと面倒ですが、未来期日に書くことは避けられないので。
0315nobodyさん2005/04/13(水) 17:29:28ID:???
tDiaryが生成するHTMLの<head>に、metaタグのkeywordやdescriptionを
含ませたいのですができますか?
0316nobodyさん2005/04/16(土) 20:45:13ID:???
できるにきまっている
0317nobodyさん2005/04/18(月) 11:08:49ID:???
>>316
descriptionは、やり方がわかりました。
keywordは、わからないので教えてください。
0318nobodyさん2005/05/27(金) 18:34:28ID:Jc4tII3V
ツッコミした人のホスト名を記録して
メールアドレスのように管理画面のときだけ表示するようにしたいのですが
できますか?

改造しないといけないとすると、
どうやればいいかポインタだけでもどなたかヒントをくださいませんでしょうか。
0319nobodyさん2005/05/28(土) 00:25:44ID:???
ノーヒント
0320nobodyさん2005/05/28(土) 02:54:57ID:???
やった事がないからヒントも何も書けないわけだが、とりあえずその情報は「記録
されてない」ので、改造するなら記録する所からはじめてください。

httpdのアクセスログを見たほうが楽だと思うので個人的にはそうしている。
03213182005/05/28(土) 22:24:25ID:???
>>320
なるほどそもそも記録するように改造ですね。
ありがとうございます。

確かに時刻をみてアクセスログみた方が、改造するより楽ですね。^^;

改造した後は時刻を見なくていいので改造した方が楽になりますね。うーむ悩ましい
0322nobodyさん2005/06/24(金) 06:38:39ID:???
日記に半角カナ文字を使いたいのですが、可能でしょうか?

例えば

キタ━━━━(゚∀゚)━━━━!!

と投稿すると、実際の文では

キタ━━━━(°∀°)━━━━!!

になってしまうのです(´Д⊂グスン
0323nobodyさん2005/06/25(土) 00:03:22ID:???
shoのヒトが嫌いらしいのですが
shoのヒトの日記検索すると対処法出てくる

ruby1.8以上ならってかんじだっけか
0324nobodyさん2005/06/25(土) 00:59:35ID:???
shoの人嫌いならtDiaryつかうのやめたほうがいい。
0325nobodyさん2005/06/25(土) 16:00:03ID:???
shoの人が半角カナの存在を嫌ってるって話じゃねーの?
0326nobodyさん2005/06/25(土) 16:46:06ID:???
読まずに脊髄反射で書いているからよくワカンネ。
0327nobodyさん2005/06/27(月) 10:16:23ID:???
>>322
http://www.tdiary.org/20021113.html
0328nobodyさん2005/07/03(日) 10:05:32ID:cYPkBnlx
tDiaryでページ全体を作って行きたいんですが、
http://www.tdiary.org/
このようなデザインにするにはどうすればいいのでしょうか。
0329nobodyさん2005/07/03(日) 10:51:59ID:???
theme作るだけ。
0330nobodyさん2005/07/04(月) 06:20:17ID:???
はてなDiaryみたいに各記事ごとに登録した時間とか書き込むプラグインない?
0331nobodyさん2005/07/04(月) 14:09:29ID:???
はてなダイアリーつかえば?無料なんだし

ちなみにいうとtDiaryには日付があるのみで記事という概念はない。だから無理。
0332nobodyさん2005/07/04(月) 23:37:34ID:???
たださん 巡回ご苦労様です
0333nobodyさん2005/07/05(火) 02:47:07ID:???
http://www.tdiary.org/20021125.html
ここら辺はどうでしょう。
0334nobodyさん2005/07/22(金) 14:08:30ID:???
>>330
hatena スタイル使え
0335 ◆mput.861Kw 2005/07/24(日) 01:26:13ID:???
ここだけの話、はてなスタイルのこれ以上の発展はさせないつもりなんだ。
自分自身はてなスタイルで書いてるから、メンテナンスは続けるけどね。
今後はてな側で記法にどんな拡張を行ったとしても、それははてなスタイル
には反映されないよ。
それを理解した上でなら、どうぞお使いください。
03363342005/07/24(日) 20:21:07ID:???
えっと、地味に感動。
んでもって僕は wiki スタイルゆざ
0337nobodyさん2005/08/11(木) 16:07:51ID:???
tDiary-Users Wikiいい加減にしてくれ。
管理できないならwalwiki使うの止めてくれよ。
コメントSPAMにうんざり。
0338nobodyさん2005/09/19(月) 14:39:27ID:???
recent_trackback3.rb が使えません。
具体的には
・プラグイン選択画面でrecent_trackback3.rbをチェック
・ヘッダーに <%=recent_trackback3.rb%> を追加
としました。しかしヘッダに何も表示されません。
既存のトラックバックを表示してくれるわけではなく、新しくトラックバックをうけないとだめなのかなと思い、
自分でトラックバックしてみましたが、やっぱり何も表示されませんでした。
エラーは特にでてないようなので、なにか心当たりがあればお願いします。
0339nobodyさん2005/09/29(木) 12:54:23ID:???
質問です。
ツッコミメール使ってるんですが、fromが設定した送信先、
つまりtoと同じになってしまいます。
これって変更できないんですか?
0340nobodyさん2005/10/12(水) 20:44:42ID:???
ポートを指定していると、
update.rb が URL にポート番号を重複してて不正だの文句いってエラーを吐く。
オマイが阿呆だろと。
まぁ、しょうがないからポートを 80 にしてサーバを起動し、
URL にはポート番号を無指定してみると CSRF 対策だと出てくる。
設定にそれらしいものがあるので(グレーアウトしてるが)変更してみようと思ったら、
CSRF 対策による拒絶うんぬん。

もう、阿呆かと。

つか、ただただショボすぎて泣けてきただよ
0341nobodyさん2005/10/13(木) 23:53:49ID:???
2.0.2 なんだけど、
プラグインは plugin ディレクトリになければならないとドキュメントに書かれてるが、
misc/plugin の方に入れないと認識されないんですが?
そこにコピーしたら、ローカルでテストしたみた時には組み込まれたが、
サーバだと、どうやっても使えない。

新入荷!お試しください > チェックして OK > 使用中 > 適当にページ変更してプラグイン選択に戻る > チェックが外れてる

おい、何なんだよコレ?
0342nobodyさん2005/10/14(金) 00:06:19ID:???
>>340 の方は、tdiary.conf.sample の方に追記されていた、
# Refererの検査において、正しい参照元と見なすURLにマッチする正規表現。
を使って対処できた。設定項目やドキュメントなど中途半端だし、設定が分散してたり中途半端だな。
>>341 の方は、勝手に作られる方の tdiary.conf の権限を緩くしたら反映される様になった。
こっちは、今まで問題なく使えてたのは何だったんだ?
misc/plugin の方に放り込まなきゃならなくなったのは、いぜん謎だし。
つか、反映にミスしたなら警告くらい出してくれても良いだろうに。
0343nobodyさん2005/12/03(土) 16:34:48ID:3HBCtRMv
保守
0344nobodyさん2006/01/03(火) 01:58:33ID:???
出力されるhtmlはどこで設定されてんの?
0345nobodyさん2006/01/03(火) 02:21:43ID:qfglo4tY
何の設定?
0346nobodyさん2006/01/03(火) 02:40:37ID:???
設定ってかどのファイルをいじれば
吐き出されるhtmlを変えられるのかってことです
0347nobodyさん2006/01/03(火) 09:04:50ID:qfglo4tY
何をいじるかによるけど...プラグインでダメなものは
skel/*.rhtml をいじってる
0348nobodyさん2006/01/03(火) 10:17:14ID:???
サンクス
てかこんな過疎スレでこんなに速く回答もらえるとは思わんかった
0349nobodyさん2006/02/10(金) 00:05:00ID:???
前??件分の日記を表示してくれるプラグインってありますか?
0350nobodyさん2006/02/10(金) 04:07:11ID:???
いつのバージョンからできるようになったかわからないけど、2.1 系だと
 index.rb?date=20060210-5(html_anchor.rbを使っているなら20060210-5.html)
と指定すると特定の日から前何日分の日記が表示できるよ。
特にプラグインを入れる必要はなかったはず。
上の例だと 2006/2/6 から 2006/2/10 までの日記が表示される。

求めていることを勘違いしてたらゴメン。
0351nobodyさん2006/02/10(金) 11:31:27ID:???
2.0 + html_anchor だと ?date= の方はうまく動くけど、20060210-5.html の方は Not Found になっちまった
0352nobodyさん2006/02/10(金) 22:24:50ID:???
20060210-5.html でアクセスできるようにするには mod_rewrite などの設定も
書き換えないとダメですね。
ttp://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?html%A4%C7%A5%A2%A5%AF%A5%BB%A5%B9%A4%B7%A4%BF%A4%A4
03533492006/02/11(土) 00:14:24ID:???
>>350
詳細にありがとうございます。期待している動作です。
互換性の問題があると面倒だけど、ちょっと開発版を試してみます。
あとは、Ruby ならヘッダにアンカを埋め込むくらいのプラグインなら作れるかな……
0354nobodyさん2006/03/03(金) 14:06:14ID:???
次世代地図サービス実験サイト ALPSLAB がスタート
http://slashdot.jp/article.pl?sid=06/03/02/035230

ALPSLAB clip!
http://www.alpslab.jp/clip.html

> Movable Type、tDiary、Hikiをご利用のお客様は、
> 地図プラグインをダウンロードし、セットアップしていただくと、
> ブログやWikiで、地図画像を直接指定できるタグが利用可能となり、
> さらに簡単、便利に、地図を貼り付けることができます。
> もちろん、地図画像のサイズや縮尺の指定も可能です。
0355nobodyさん2006/03/19(日) 22:22:02ID:???
makerssを使おうとしてるんですけど、日記を更新しようとすると
undefined method `categories' for #<Paragraph:0x4022ed2c> (NoMethodError)
0356nobodyさん2006/03/19(日) 22:28:46ID:???
間違って送信…。
もう一度。
makerssを使おうとしてるんですけど、日記を更新しようとすると
undefined method `categories' for #<Paragraph:0x4022ed2c> (NoMethodError)
と出ます。
また、設定画面から「RSSの生成」をしようとすると
undefined method `call' for "update":String (NoMethodError)
と出ます。
misc/plugin/ja/makerss.rbの入れ忘れが原因でそうなることが多いそうなので
/misc/plugin/makerss.rbと/misc/plugin/ja/makerss.rbは最新のものをCVS Repositoryからダウンロードし、それぞれコピーしましたが駄目でした。
tdiaryのバージョンは2.0.2で、サーバはXREAです。
原因がわかる人、教えてください。
0357nobodyさん2006/03/23(木) 14:06:26ID:???
CVSからダウンロードした最新版は 2.0 系向けのものですか。
単純に最新版をダウンロードすると 2.1 系向けがダウンロードできてしまいます。

2.0 系向けはこちらからどうぞ。
ttp://cvs.sourceforge.net/viewcvs.py/tdiary/plugin/makerss.rb?only_with_tag=Stable-2_0
ttp://cvs.sourceforge.net/viewcvs.py/tdiary/plugin/ja/makerss.rb?only_with_tag=Stable-2_0
03583562006/03/23(木) 20:39:39ID:???
なるほど確かに私の使っていたものは2.1向けだったようです。
そこで、1.15.2.2と1.1(ja/)に入れ替えてみましたが、やはりエラーが出ます。

そもそも、tdiaryはフルセット版をダウンロードして使ってるので、makerssは最初から入っていたんですが
それでエラーが出たので最新版を入れてみたわけです。
普通、フルセットの場合はプラグインを更新したりしなくても使えるものなんですよね?
だとすると、プラグイン自体ではなく何か他の原因があるのでしょうか…

あと確認しておきたいんですが、
プラグインの追加・更新は、misc/plugin以下にこの2つのファイルを置く(そして追加の場合は設定画面で選択)だけでいいんですよね?
0359nobodyさん2006/03/27(月) 15:43:30ID:???
>>358
他にどんなプラグインを入れてますか?
プラグイン同士の相性が悪い物もあるので参考までに聞いてみたいかも。
03603562006/03/27(月) 23:21:21ID:???
doctype-html401tr.rb
jdate.rb
recent_comment3.rb
を使ってます。
一度消してみましたが、やっぱり駄目みたいです。
cacheディレクトリ消しても変わりません。

日記を更新するときのエラーの内容ですが、全て書くと以下のようになります。

undefined method `categories' for #<Paragraph:0x4022ce3c> (NoMethodError)

(plugin/makerss.rb):172:in `makerss_body'
(plugin/makerss.rb):102:in `makerss_update'
(plugin/makerss.rb):52:in `each_with_index'
(plugin/makerss.rb):96:in `makerss_update'
/usr/local/lib/ruby/1.8/pstore.rb:318:in `transaction'
/usr/local/lib/ruby/1.8/pstore.rb:317:in `transaction'
(plugin/makerss.rb):57:in `makerss_update'
(plugin/makerss.rb):203:in `load_plugin'
/virtual/USER/public_html/tdiary/tdiary.rb:693:in `update_proc'
/virtual/USER/public_html/tdiary/tdiary.rb:692:in `update_proc'
/virtual/USER/public_html/tdiary/tdiary.rb:1253:in `do_eval_rhtml'
/virtual/USER/public_html/tdiary/tdiary.rb:1253:in `do_eval_rhtml'
/virtual/USER/public_html/tdiary/tdiary.rb:854:in `eval_rhtml'
/virtual/USER/public_html/tdiary/update.rb:62
0361nobodyさん2006/04/18(火) 22:08:51ID:???
 
0362nobodyさん2006/04/29(土) 02:36:01ID:???
最近 コメントキーフィルタ&プラグイン をすり抜けてくる
コメントスパムがくるorz
たぶんフォームを解析してるんだろうな.凝ったことしやがって...
0363nobodyさん2006/06/11(日) 17:24:09ID:???

blogkit に附属の title-navi.rb なんですが、
next hopへのリンクが自動で更新されません。

次の記事Aがあるときに、今の記事Bを再度編集しないと、
次のこれってやっぱり、staticにデータ作ってるんすかね。
0364nobodyさん2006/06/11(日) 17:26:02ID:???
途中でしくった。スマソ。

blogkit に附属の title-navi.rb なんですが、
next hopへのリンクが自動で更新されません。

具体的には 次の記事Aがあるときに、今の記事Bを再度編集しないと、
Bのナビゲーションバーに Aへのリンクが作られません。

次のこれってやっぱり、staticにデータ作ってるんすかね…

ガイシュツだったらすまんが、docに書いといて欲しいよ
0365nobodyさん2006/06/12(月) 00:51:59ID:???
tDiary 2.0.2 + BlogKit + upload.rb に、記事IDが年月日時分秒になるように
クイックハックしたものを下記にアップしました。

過去の記事データは使用できませんので注意してください。

http://www.fiercewinds.net/tdiary/upload/tDiaryBlog.zip

興味のあるかたはドゾー
0366nobodyさん2006/08/06(日) 21:43:22ID:NL8Z2tdu
「 > 」で始まる文章だけ色を変えたいのだけどどうすればいい?
0367nobodyさん2006/10/01(日) 03:33:14ID:cItUrK3N
保守
0368nobodyさん2006/10/19(木) 06:53:40ID:wRA6e4u8
tdiary2.0.2で、last-modifiedっていうヘッダを出力しないようにしたいんだけど、
index.rbの59行目くらいにある

 head['Last-Modified'] = CGI::rfc1123_date( tdiary.last_modified )

をコメントアウトしたんだが相変わらず出力されてしまう。
解決法きぼんぬ。
0369nobodyさん2006/10/19(木) 09:23:53ID:???
それは HTTPレスポンスヘッダだね
html なら plugin/00default.rb の add_header_proc
0370nobodyさん2006/10/19(木) 09:31:35ID:???
>>369
でけた!
マジありがと!(i_i)
0371nobodyさん2006/12/28(木) 12:16:31ID:n/55RQ+F
サーチエンジンからやってくるときに、
その日のページの日記の内容ではなくて、そのページに書かれている他の記事のタイトルがヒットして
来ている場合が結構あるようです。

事前に自分で登録しておいたサーチエンジンのロボットの巡回のときは
基本的に日記の本文だけを表示させて、そういうメニューをかくしてしまうということをすれば
サーチエンジンからやってくるページの精度が上がるのではないかと思っています。

こういうことをするにはどこから改造していけばいいのでしょうか。
tDiary 全体の書き換えが必要になるでしょうか。
tDiary の内部を良くご存知の方、何かご教授いただければ幸いです。
0372nobodyさん2006/12/29(金) 01:10:06ID:???
>>371
index.rb の出力直前を弄るのが一番楽かな?
おおまかな方針を説明すると、出力内容は body に格納され
print body で標準出力に吐き出される。したがってその直前で

if 検索ボットだったら
  body.gsub!(/引用部分の正規表現/,'')
end

ってのを挿入する。bq プラグイン使って引用してる場合の例だと、

if /(Google|Yahoo! Slurp|msnbot)/i =~ ENV['HTTP_USER_AGENT']
  body.gsub!(/<blockquote>.*?<\/blockquote>/,'')
  body.gsub!(/<p class="source">.*?<\/p>/,'')
end
head['Content-Length'] = body.size.to_s
print @cgi.header( head )
print body

ってな感じだと思う。ただし、頭の中でコレで動くだろうって思って書いてるので
まんまコピペして「動かない」とかは勘弁してちょ
それなりに ruby の文法を理解して、自分でアレンジとかヨロシクですよ
検索エンジンの判定部分もテケトーなんで、好きなように修正してね
03733712007/01/05(金) 03:27:31ID:???
なるほどいったん body に格納されているものを消すという方法ですね。
これでちょっと格闘しております。

「日記の本文」だけ残して残りを消すのはなかなか難しそうですね。
「本文の中の引用部分」を消したいというわけではなく、
sidebarにあるような「他の日の日記の記事のタイトル」や「コメントされた方の名前」などを消したいので
ひとまずsidebarを消せるようにいろいろ考えてみます。

内側にたくさん div があるので sidebar を
<div class="sidebar">から</div>までを消すという方法は正規表現では難しいですよね。

あ、今思ったのですが、設定画面の「ヘッダ・フッタ」を出さないというようにできれば一番目的にあいそうです。
ひとまずヘッダ・フッタを body に入れている部分を探してみます。
0374nobodyさん2007/01/05(金) 05:59:46ID:???
それって、設定→ヘッダ・フッタで指定するやつですよね
だったら、eruby で記述すればいいと思います

<% if /(Google|Yahoo! Slurp|msnbot)/i !~ ENV['HTTP_USER_AGENT'] then %>
<div class="sidebar">
〜中略〜
</div>
<% end %>

ってな感じで出したくない部分を、<% if 条件文 then %> 〜 <% end %>で囲えばいいです
ブラウザの設定画面で eruby の文法がそのまま使えますので、tdiaryのソース弄るよりは楽かも知れません
それ以外の部分は tdiary の skel フォルダに雛型が入ってるんで、そっちを弄ってみてください
03753712007/01/05(金) 13:52:09ID:???
おお! ここで eruby という php の ruby 版みたいな記法がそのまま使えるのですね!
これは大変楽にできそうです。ありがとうございます!

なんとなくソースを読んでいたのですが、skel の部分を読み込んで eval_rhtml している感じなのですね。
なんか ruby で CGI って書くのがおもしろいそうです。
03763712007/01/05(金) 15:22:42ID:???
とりあえず
<% if /(Google|Yahoo! Slurp|msnbot|Steeler|NaverBot)/i !~ ENV['HTTP_USER_AGENT'] then %>

<% end %>
でヘッダとフッタそれぞれかこってみました。
user agentをGoogleなどにしてチェックしてみたところきちんと作動しています。

これで検索から来る精度がもっとあがると思います。ありがとうございました!
0377nobodyさん2007/01/06(土) 02:38:21ID:???
tDiary 2.1.4, Ruby 1.8.5 を使っています。

最近、
ttp://ws.mobile.yahoo.co.jp/bin/search?c=on&p=fuga
ttp://sbs.mobile.yahoo.co.jp/union/search?p=hoge
というようなモバイル用(?)検索エンジンから飛んでくるのが増えてきたので、
各日の下の「検索」というところに「.co.jpのGoogle検索」などと同じように並ぶようにしたいと思いました。

@data_path ではない、index.rb のあるディレクトリの tdiary.conf の中で
@referer_table に
['^http://([^\.]*).mobile.yahoo(\.com|\.co\.jp)/.*?p=([^&]*).*', '\3(\2のMoblie Yahoo検索)'],
を加えてみたところ、

「検索」の欄には入らず、少し上の「以前の日記へのリンク元」というところに入ってしまいました。
しかも、
hoge(.co.jpのMoblie Yahoo検索) ×1
となって「hoge(.co.jpのMoblie Yahoo検索)」の部分がリンクになっています。

「検索」のところに入るなら
hoge ×1 : .co.jpのMobile Yahoo検索
となって「.co.jpのMobile Yahoo検索」の部分がリンクになってほしいです。

できれば他の「検索」と同じように並ぶようにしたいのですが、
どこを書き換えれば良かったのでしょうか。
ご存知の方是非教えていただければと思います。
0378nobodyさん2007/01/06(土) 04:52:40ID:???
その機能は使ったことないからテキトー言ってるかもしれないけど
たぶん、misc/plugin/ja/disp_referrer.rb の DispReferrer2_Engines じゃないかな?

'yahoomobile' => [[%r{\Ahttp://.*?\.mobile\.yahoo(\.com|\.co\.jp)/}i, '".#{$1}のMoblie Yahoo検索"', ['p'], nil]],

って感じで追加するのかな?間違ってるかも知れないので、自分で上手く調整してね
03793772007/01/07(日) 15:23:23ID:???
ひとまずそのままではだめでした。
それからいじってはいるのですがどうもうまくいきません。
「その他のリンク元」に入ったままです。

そもそも極端に
'yahoomobile' => [[%r{\Ahttp://.*}i, '"Moblie Yahoo検索"', ['p'], nil]],
としても検索に入ってこず、そのままの URL のままその他のリンク元になっています。
試しに他の部分の「のGoogle検索」を「のGooooooooooogle検索」などとしてみるとちゃんと変わるのでここ変数は有効なのは確かなのですが...

なぜヒットしないのかがわからずにおります。
0380nobodyさん2007/01/07(日) 20:35:19ID:???
あらま、上手くいかなかったですか。どうもコードの読みが甘かったようでスンマセン
語気からすると、それなりにコード追える方みたいなので遠まわしに説明します
misc/plugin/disp_referrer.rb のDispRef2String クラスのところで

def self::company_name( str, hash_table )
  hostname( str ).split( /\./ ).values_at( -2, -3, 0 ).each do |s|
    return s if s and hash_table.has_key?( s.downcase )
  end
  nil
end

って関数があります。リファラのurlをピリオドで分割して、最後から2番目「co」、三番目「yahoo」
そして先頭部分「.*?」が、ハッシュのキーに含まれるか判定してるので「yahoomobile」にはヒットしない訳です
なので「yahoo」のキーのほうに入れて試してみてください

それと、もう一つ気になるのは、このプラグインは自前でキャッシュ使ってるようなので
そいつが悪さしてソースの変更が上手く反映されないかもしれません

キャッシュされてるファイルは 'volatile.tdr2.cache' と '%Y%m.tdr2.cache' なんですけど
私にはこれを削除していいのかどうか判断できません。おそらく大丈夫だと思うんだけど責任は持てないッス
なので、キャッシュを一旦どこかに退避して、どういう動作をするかはご自身で判断してください

これでも上手くいかなかったらごめんなさい
03813772007/01/07(日) 22:27:16ID:???
大変丁寧で詳しい解説をありがとうございました。
なるほどホスト名からハッシュにまわしているのですね。

無事 'yahoo' => の中に
[%r{\Ahttp://.*?\.mobile\.yahoo\.([^/]+)/}i, '".#{$1}のMobile Yahoo検索"', ['p'], nil],
を追加することでうまくいきました!

ちなみに、キャッシュは削除することなく即座に変更されました。

それと、見ていたら Google で /search ではなく /hws/search というものがあり、キーワード不明となっていたので
google の欄の、/(search|custom|ie)}i の部分を/(hws/search|search|custom|ie)}i
と改造してみたところこれもうまく検索語が解析されましたのであわせてご報告いたします。

詳しい解説、重ね重ねありがとうございました。
0382nobodyさん2007/01/11(木) 19:32:02ID:???
何気にCVSが、嵐の様に激しくうpしていく拳について
0383nobodyさん2007/02/08(木) 21:36:25ID:???
公式にあるスパムフィルタを入れても、全然スパムがおさまらない。
該当のメアドでも、ばんばん書き込まれる orz
俺だけ?
0384nobodyさん2007/02/27(火) 00:47:52ID:???
tDiary は EUC-JP ですが utf-8 化するということは簡単にできますでしょうか。
改造するにはかなり大掛かりになるのでしょうか。
0385nobodyさん2007/02/27(火) 07:22:56ID:???
>>384
結構大変だと思うけど、ML 見てると
2..2でUTF-8化される (UTF-8版も用意される?) 雰囲気がある
0386nobodyさん2007/02/27(火) 13:09:02ID:???
>>385
それはありがたいですね。
ML に入っていないので耳寄りな情報をいただきました。ありがとうございます。
0387nobodyさん2007/07/21(土) 19:23:26ID:???
保守_| ̄|○
0388nobodyさん2007/10/22(月) 10:24:38ID:???
保守_| ̄|○
0389nobodyさん2007/12/16(日) 13:49:42ID:???
新バージョンktkr

http://www.tdiary.org/
0390nobodyさん2008/01/04(金) 20:20:10ID:???
tDiary 2.2.0, Ruby 1.8.5 を使用しております。

Google のモバイルコンテンツ向け AdSense を tDiary で使うにはどうすればよいでしょうか?

モバイルコンテンツ向け AdSense で提供されるコードには ruby がないので
試しに perl のコードを googleadsensemobile.cgi で保存して
skel/i.day.rhtml に次を放り込んでみたのですが、何も変化がありませんでした。
<%
IO.popen('./googleadsensemobile.cgi', 'r'){|io|
foo = io.gets()
puts foo
}
%>
こうすればうまくいくなどというアドバイスを頂ければ幸いです。
■ このスレッドは過去ログ倉庫に格納されています