Styx
Styxはいわゆるあめぞう型(フローティングスレッド型, 2ch型)の掲示板です。cssでデザインをしやすい比較的正しいhtmlを出力するのが特色です。
概要
始めに
機能的には、他の同じタイプのBBSに比べて特に優れている訳ではありません。著名度やユーザーサポートなら KENTさんのBBS、安定性や速度や高機能さを望むなら c-board 等、優れたスクリプトが沢山あります。
それでもこれを作ったのは、勉強のためでもありますが、望む形のものが見つからなかったからであるわけで、利点もあります。それは、
- そこそこに正しく、人間が見やすいhtmlを吐き出す
- 余計なタグを余り吐かない(軽い)
- cssによるデザインがやりやすい
このくらいです。ですが、コアなcssユーザーにとっては美味しい仕様かと思います。需要がないような気もしますが、あまり深く考えず、もともと自分用なので気楽に作ってます。(あまり人に使ってもらうようには作っていません!)
なお作者はperlを始めたばかりの初心者なので高度なことはあまりしていません。ただ、常識的、基本的なことは押さえて作ったつもりです。(フォーム入力の厳しいチェックや、的確なファイルロック等。)速度は使える程度には早いです。
設置条件
- perl のバージョンが5以上
- flock, chmod が問題なく使えること
- euc-jpでのファイルの編集環境があること
- 基本的なcgi設置の知識があること
- できればcssを良く理解している、またはこれから精力的に取り組もうという方
設置条件追記
- nobody権限でcgiが動くサーバへの設置について
- ヒマなときにでも設置方法を書きます(確認はしました)
お読みください
Styxはまだバグが出る可能性がまだあります。というか皆さんの報告で日々修正中です。但し、ログ周りは、ほぼ固まっているのでログが飛んだりとかは余程のことが無い限り無いと思います。
デザインの自由度は非常に高いです。その自由度は、cgiによる生成機能が優れているわけではなく、逆に、できる限りデザイン的情報をhtmlに含まない純粋な構造のみのhtmlを吐き出すことで、cssが幅を利かせられるようにするという方針の上に成り立っています。(フォーム周り以外ではテーブルタグを一切吐きません!)
ですから、htmlやcssに関する知識が全くない方にはカスタマイズは難しいものであるはずです。これからcssを学んでみようという方には美味しい素材であるかもしれません。
設置には、FTPでの転送モードやパーミッションなどの基礎的な知識が必要です。設定は、設定ファイルを直接編集して行いますが(内容自体は簡単なものです)、編集はEUC-JPで行う必要があります。
又、Styxに付属する全てのファイル、ソース、cssは、EUC-JPで書かれています。ですからそれを編集できるテキストエディタが必要です。この件に関してなにかなんだか全く理解できない、という方にはあまりお奨めできません。
主な機能
主な機能を挙げておきます。もっと細かい解説は、設定方法をご覧下さい。
- スレッド管理
-
- 管理人による削除、保守、ロック、html化(ある程度自働化も可能、あまりお奨めしないが)
- インデックスファイルのチェック機能
- html化したログを閲覧する為のリンクを簡易的だが自動生成
- 記事管理
-
- 投稿者による、投稿時のパスによる削除
- 記事表示
-
- 自働リンク、長すぎるURLの省略表記。
- 引用部分をブロック単位でblockquouteで囲む
- キーワードに反応して強調表示したり、imgタグを生成する
- 大体2chと同じアルゴリズムのトリップ
- >>1 式のリンク
- 設定サイズ以内の画像は本文に埋め込む
- 等幅モードあり
- タグは使えません
- 投稿
-
- 画像の投稿
- クッキー
- 半角カナの使用が可能
- 規制
-
- それなりにしっかりした多重投稿判定
- 表示設定
-
- 表示に関する考えられる殆どのパラメータを変えられる
- 文字列の入れ替えも容易
- Helpで表示されるところに好き勝手なhtmlを入れられます
重大な欠点、バグ
Styxは、記事の追加時に、サーバーの残り容量を確認しません。又、残り容量による記事の削除は行いません。(スレッドの数による削除は行います)
ですから、あまり容量のないスペースで動かす方にはお奨めできません。あまりBBSを管理する時間がない方(ほったらかしにする方)にもお奨めできません。
又、StyxはNTサーバーで動かすことを考えていません。ファイルロックはflockで行います。
スレッドのインデックスファイルを生成するため、ファイルロックがスレッド毎に独立していません。あまりにも書き込みのアクセスが激しい場合、ビジーが出る可能性がありますが、大抵のBBSもログが一つなのでビジーの出具合がそれと比べて多いわけではないはずです。
添付ファイルを受ける際、それをメモリに読み込みます。分割してテンポラリに書き出すというようなおしとやかなことはしてません。この点についてだけはメモリに優しくないです。ですから余りにも大きな添付ファイルを受けるようにするのは考え物です。
サーバーへの設置
含まれるファイル
FTPでサーバーにアップロードするときは解凍して出てきた状態のままアップしてください。但し、気をつけなければならないことがありますので、下記を参照してください。
なお、パーミッションの設定やcgiが生成するファイルのパーミッションはcgiがオーナー権限で実行されることを前提としています。そうでないプロバイダの場合、まず動かないです。もしそういった環境でこれを使いたいという方がおりましたらご一報ください。そのような環境でムリヤリ動かしても、データファイルの内容からIPが漏れたりする可能性が高いです。
ファイルの説明
第一階層 [705]
- styx.cgi [700]
- これが本体です。実行できなければならないので、パーミッションは 700 等にしてください。この辺は設置するサーバー(プロバイダ)によっても違います。(755 でないと動かない、とか差があります。700 が一番安全です。)
- index.html [644]
- これは単にこのディレクトリにブラウザでアクセスされたときに、ファイル一覧を出さないために入れておいているだけの空ファイルです。
lib / [700]
- 〜〜.pl [644]
-
パッケージ各種です。特に注意が必要そうなものについて軽く触れておきます。
- jcode.pl
- jcode.plは現時点で比較的新しいものを入れているはずです。(旧バージョンだと半角カナがからんだときのコード自働判定に不都合があるくさかった)jcode.plを使いまわしされる方は新しいバージョンのものを使うようにしてくれた方がおかしな挙動はないと思います。jcode.plをrequireしているのはpost.pl内だけですのでパスを変える場合、そこを修正してもらえれば良いかと思います。
- help.pl
- このファイルは開いて見てもらえればわかりますが、殆どがhelpで表示される内容の定義です。ですからここに自由にhtmlで内容を追加することができます。
- post.pl
- 投稿時の規制などは post.pl 内のサブルーチンで行っています。もし、この辺の機能を追加、改造する場合(串排除のような)、post.pl を改造することになると思います。
- rend.pl
- htmlの出力に関する処理は大体ここにあります。strict htmlを吐き出させたいとかいう場合、これを改造することになるでしょう。
これらの〜.pl というファイルは、これから機能が増えたりすると追加される可能性があります。
logs / [705]
- ip.dat, threads.dat, lockfile [600]
- ip.dat は多重投稿防止の ip を一時的に記録するファイルです。各スレッドにも自動的に同じ物がスレを立てた時点で作られますが、始めに入っているこれは、スレ立て時の ip を記録するものです。これは外部から覗かれるべきではないファイルなので必ずパーミッションを 600 にして下さい。
- ここに作られるものについて
- スレッドが作られると、この logs/ 以下にスレごとのデータを自動的に作ります。bbs.datというファイルに記事のデータを記録します。これにはホストやパスワード(一応暗号化されています)が記録されるので作成時にパーミッションを 600 にしています。又、多重投稿防止の記録ファイルであるip.datも同じく600で作成されます。
past / [705]
ここの下には、html化された過去ログが保存されます。
ここまでに上げたファイルは全て、アスキーモードで、コードの変換はしないで転送してください。モードの判別を自働にしないでください!! 自働判別にすると、*.dat等がバイナリで転送されることがあります。
css /
ここにあるものは自働で転送しても大丈夫だと思います。gifやpng等の画像ファイルはバイナリで。他の js ファイルや css はアスキーで、コードの変換をしないで転送してください。
設定方法
ファイルの編集
Styxに付属するあらゆるファイルは全て、EUC-JPとういう文字コードで書かれています。必ず、編集時にはEUC-JPで開き、保存時もEUC-JPで保存してください。FTP で転送する際は、文字コードの変換を行わないようにしてください。
メモ帳では EUC-JP を扱えません。テキストエディタを使って下さい。テキストエディタによっては、保存した時に勝手に文字コードを変換してしまうものもあります。そのような場合、大抵は”名前を付けて保存”などから保存すると、逐一文字コードを指定して保存できると思います。
ここまでの説明が全く理解できなく、理解出来るように調べる気もないという方には、厳しいようですが設置をお奨めしません。
設定ファイル解説
設定はすべてstyx.cgiを編集することで行います。
perl のパス
- #!/usr/bin/perl
- おなじみ、perlのパスです。お使いの環境に合わせて変更してください。
管理者設定
- $ADMINPWD
- このパスワードで投稿すると、投稿者名が$ADMINで指定したものになる。全ての記事、スレッドの操作が可能。必ず変更すること。
- $ADMIN
- 上のパスで投稿すると、名前が自動的にこれになる。通常名前にはタグを使えないが、ここで埋め込めば管理者だけ名前を絵にする等出来る。
設置環境設定 1
- $CGINAME
- このcgiのファイル名。
- $CGIURL
- 設置URL (必ず絶対URL表記)*1
- $GZIPPASS
- ZGIPのパス。不明な場合はサーバー管理者に聞くと良い。
- $GZIP
- 転送時にgzip圧縮を行うかどうか。( 1 or 0 )
- $CSSURL
- 通常使用するcssのURL
- $PASTCSSURL
- 過去ログ( html 化 )作成時に使用するcssのURL *1 *2
- $JSURL
- 付属のjavascriptのURL *1
- $BACKURL
- backで戻るURL ( index page 等 )
- $ATTACHIMG
- 添付ファイルへのリンクに使用するイメージ *1
- *1
- 絶対URL表記にすること。$CGIURLはリファラチェックに使用するため。$PASTCSSURL, $JSURL, $ATTACHIMG はhtml化時にリンク切れさせない為に絶対URL表記にして下さい。
- *2
- 違うcssで同じログを参照する(共用する)bbsを設置したり、ログは違うが過去ログは一箇所にまとめたい場合などにhtml化された過去ログのデザイン(css)を統一するために設定される項目です。通常は$CSSURLと同じで差し支えありません。
設置環境設定 2
- $LOGDIR
- ログディレクトリ名
- $HTMLDIR
- html 化したログを溜め込むディレクトリ名
これを変更すれば、各ライブラリ(*.pl)等を複製せずに bbs を増やすことが出来ます。但し通常の設置時と同じく、初期に必要なディレクトリやファイル、そしてそれらのパーミッションの設定は必要です。
設置環境設定 3
- $DATAFILE
- ログファイル名
- $TRDINDEX
- スレッドインデックスファイル名
- $IPDAT
- 多重投稿防止ip記録ファイル名
- $DATAPMS
- 上記三つのファイルのパーミッション
通常これらのファイルは特定のディレクトリ以下に作成されるか設置場所が固定されているので重複することもなく、名称を変える必要はありません。
- この設定を変える必要があるのは次の場合です
- cgi がオーナー権限で作動しないサーバーの場合
通常は、データファイルのパーミッションを 600 (オーナー以外は見ることも書くことも実行も出来ない )にすることで機密を保っていますが、cgiがオーナー権限で作動しないサーバーの場合、600ではcgi自身もそのファイルを読み書きできなくなってしまいます。そこで、パーミッションを666にする必要があるわけですが、今度は一般のユーザー、つまりブラウザからデータを覗かれてしまいます。それを阻止するためにデータファイルの拡張子をcgiにする、等の対策が考えられます。
これらの項目はそのために変更できるようにされています。ですが本来、Styx はそのような環境で動作させることを前提とはしていませんので(テストもしていません)変更は自己責任でお願いします。
css切り替え設定
- @INICHANGE
- INICHANGE[1]に登録したcssならstyx.cgi?i=1とすることで呼び出せます。追加する時は$INICHANGE[2]とか増やしていってください。表示設定やログも同じでわざわざ設定ファイルを書き換えるまでもないとき等に便利です。
表示設定
- $MAXTHD
- BBSのトップで一ページに表示するスレッド数
- $MAXTHDLST
- スレッド一覧に表示するスレッド数
- $MAXART1
- スレッドビューで一ページに表示する記事数
- $MAXART2
- BBSのトップで表示するスレッドの記事数(1件目及び最新の〜件を表示)
- $MAXART3
- 最新の○件
- $MAXVIEWW, $MAXVIEWH
- これを設定すると、画像の大きさ(px)が、これ以内($MAXVIEWW * $MAXVIEWH)なら本文に埋め込む
- $USEKEY
- "@!"キーワードによるコメントの強調を使用するか。1:使う、0:使わない、2:管理人だけ可能
- $USEAUTOLNK
- オートリンクを使用するか。
サーバーの負荷が増えるような設定について、Styxは特に内部でそれをはじいたり、限度を設定していません。
プログラム的に扱える限度があるわけではありませんが、余りにも端的な設定をした場合、サーバーに与える負荷や速度の低下も考慮してください
例えばトップページでの各スレッドの表示記事が50もあり、それを100スレッド全部一気に表示とかすると、毎回cgiが呼び出される度にかなりの負荷がかかります。
一般的には、$MAXTHDは10前後$MAXART2も10前後が閲覧者にとってもサーバーにとっても、優しいと思います。
投稿設定
- $MAXREP
- 1スレッドにつけられる最大レス数
- $MAXLOG
- 最大スレッド数
- $MAXLOGSIZE
- ログファイルの最大容量
- $MAXCHAR
- 本文最大文字数
- $MINCHAR
- 本文最小文字数
- $MAXLINE
- 本文最大行数
- $MAXNAME
- 投稿者名最大文字数
- $MAXMAIL
- メールアドレス最大文字数
- $MAXURL
- URL 最大文字数
- $MAXSBJ
- 題名最大文字数
- $MAXSIZE
- 添付ファイルの最大許容サイズ (本文部分の容量も含みます)
文字数は全て半角として数えます。
サーバーの負荷が増えるような設定について、Styxは特に内部でそれをはじいたり、限度を設定していません。
プログラム的に扱える限度があるわけではありませんが、余りにも端的な設定をした場合、サーバーに与える負荷や速度の低下も考慮してください
添付ファイルを受ける際、それをメモリに読み込みます。分割してテンポラリに書き出すというようなおしとやかなことはしてません。この点についてだけはメモリに優しくないです。ですから余りにも大きな添付ファイルを受けるようにするのは考え物です。
$MAXREP は最大で 1000位が限度だと思います。2000でも、3000でも動作はします。けども、全件表示にしたとき3000件一気に表示したらサーバーに負荷がかかりまくり、閲覧者のブラウザもスクロールもままならぬほど重くなることを考えて下さい。2chでも1000レスまでですし、1000で我慢しといてください (・∀・)オネガイ!
Styxはフローティングスレッド型ですが、本当に巨大なbbsを運営するためのスクリプトではありません。管理者の手の届く範囲で運営されることを前提としています。どうかご理解ください。本当に巨大なものを運営したいのなら他のスクリプトをお奨めします。
セキュリティなどに関わる設定
- $USEIMGLNK
- "@#"キーワードによるイメージのリンクを生成するか。1:使う、0:使わない、2:管理人だけ可能(対ブラクラなどの保証はしません。)
- $USEATTFILE
- 添付ファイルアップロード機能を 1:使う、0:使わない、2:管理人だけ可能
- $ANONY
- 匿名投稿を許可するか、1:する、0:しない
- $NANASI
- 匿名を許可した時に名無し投稿時に入れ替わる名前。
- $HOST
- ホスト表示をするか、1:する、0:しない、2:ソース内に埋め込む
- $USEREFCHK
- リファラのチェックをするか、1:する、0:しない
- $CHKIP
- 多重投稿のチェックをするか、1:する、0:しない
- $CHKIPSEC
- 何秒以内なら多重投稿とみなすか
- $CHKTHDIP
- 多重スレ立てのチェックをするか、1:する、0:しない
- $CHKTHDIPSEC
- 何秒以内なら多重スレ立てとみなすか
- $CHKIPDEPTH
- 多重投稿チェックの深度
- $FILEEXTS
- 投稿を許容する拡張子です。画像以外のファイルの内容のチェックはしていません。その危険性が理解できない場合、この設定は変更しない方が良いです。
- $NOWINDOW
- もし画像以外も許容した場合、その添付ファイルへのリンクをクリックした時にjavascriptでウインドウを開かないようにする拡張子です。
Styxは入力されたパラメーターのチェックなどはそれなりにしっかりと行っていますが、それはサーバーやbbsに損害を与えないためのものであり、倫理的なチェックや、串規制などを行う機能は持っていません。
串規制や特定ip排除についてはpost.plを改造してください。結構簡単だと思います。
間違っても、対荒らしbbsではありません。なりすまし防止なら利用者にトリップの使用を勧めてみてください。
画像の投稿に関しても、倫理的にまずい画像かどうか、などはcgiではどうにもチェックできません。又、一応画像については画像かどうかのチェックは行っていますが、偽装ファイルを作る抜け道はいくらでもあります
画像を投稿できると言うことはそれだけでセキュリティ的に問題があるということを理解した上でご利用ください。
画像以外を許可するのは余程の自信が無い限りお奨めしません。上記にもある通り、画像以外はデータをチェックしていません。それがどれだけ危険か理解した上で十分な対策を取って(例えば、パス制限したディレクトリに設置するとか、post.plを改造して他の形式もデータをチェックするようにする等。)各自の責任でやってください。
この件について、いかなる損害があってもこのスクリプトの作者は責任を取りません。
過去ログ生成設定
$PASTMODEでは最大スレッド数を越えた時の挙動を設定します。(残り容量に注意!)
| -1 | @がついていようがなかろうが、消す |
|---|---|
| 0 | なにもしない |
| 1 | @がついていても消すが、@付きはhtml化しておく |
| 2 | @のついていないものから無条件で消す(ふつう) |
| 3 | @のついていないものから無条件で消すし、html化もする |
html化を自働でやるときの複数のファイルの処理がちょっと自信無し。大丈夫だとは思うけど、もし壊れるとしたらこの辺でしょう。2にしておいて、気に入ったスレを手動でhtml化が無難だと思います。
Styxは、記事の追加時に、サーバーの残り容量を確認しません。又、残り容量による記事の削除は行いません。(スレッドの数による削除は行います)
最大スレッド数ですが、このスレ数を超えても投稿を禁止できるわけではありません。このスレ数を目安として、古いものから消去していくというだけです。それも書き込み時にチェックがはいってそのたびに一スレずつしか消さないので、100スレあるとこにいきなり設定を50スレにしてもいきなり50スレになるわけではありません。それより増えないってだけです。
ですから、あまり容量のないスペースで動かす方にはお奨めできません。あまりBBSを管理する時間がない方(ほったらかしにする方)にもお奨めできません。
見た目設定
以下は、見た目にしか関係ない文字列等です。変更しても危険性はありません、多分。お好みで変えてください。
$PREIMG等は、当初は(Styxの前身になるBBSでは)この部分にイメージを使用していました。 変数名にその名残があります。言うまでもなく、これを変更してイメージを使用するようにすることもできます。 テキストがある部分に、テキストの変わりに<img src 〜〜と書けば、テキストがあった所がイメージに置き換わるはずです。
そのときに注意すべきことがあります。絶対URL表記にすることです。絶対URL表記にしておかないと、html化されてpastディレクトリに入れられた時、リンク切れしてしまいます。
運用方法及び使い方
ここでは実際に動かしているBBSの説明をします。ほとんどは、前もって読む必要性はあまりないものです。もしかすると、気付いていない機能や使い方があるかもしれません。フローティングスレッド型BBSを始めて使う人は目を通した方が良いかもしれません。
各部説明
Styxには大きく二つの表示モードがあります。一覧モードとスレッドモードです。
一覧モード
一覧モードは、始めにBBSにアクセスした時に表示されている、スレッド一覧やリストで上位のいくつかのスレッドの最新の記事が並んでいる状態です。
閲覧者は、このモードから新しいスレッドを作成したり(スレッドを立てる、と言います)、BBSにどのようなスレッドがあって、どのスレッドが話題が活発なのか(リストの上位にあるのか)判断したり、又、上位にあるスレッドの最新の書き込み何件かを見ることが出来ます。
各スレッドの最新記事には、簡易的な投稿欄があり、その場で返信をつけることができます(Quick Reply)。但しQuick ReplyにはURL欄や、添付ファイル欄が無いのでそれらが必要な時は本式のフォームで投稿しなければなりません。又、Quick Replyからの投稿時にはクッキーを焼きません。これはトリップのテスト等を考慮してのことです。
スレッド一覧には、スレッドのタイトルが列記されています。リンクの貼られ方が二通りありますが(題名そのものがアンカーの場合と数字にアンカーがついている場合)2chと同じなので特に説明はしません。(わからない方は実際にリンクをクリックしてみれば違いが理解できるでしょう。)
スレッドモード
一覧モードでのスレッド一覧のリンクや、| 1- | all | newest |とあるリンク(それぞれが、始めの投稿から、全部見る、最新の〜件)をクリックするとスレッドモードになります。スレッドモードでは一つのスレッドのみを表示します。
このモードでは、特定のスレッドに対する操作や、記事削除を行なえます。
このモードにあるフォームには必要な項目が全て揃っていて、添付ファイルの投稿等が可能です。又、このフォームで投稿した際にはクッキーが焼かれます。
スレッド操作
スレッドとは、一つの話題についての投稿を一まとめにしたものです。このスレッドに対して色々な操作を行なうことが出来ます。
これらの操作を行なうには、スレッドモードにあるAdministrator Menuから行なうか、管理者モードから行なうかの二通りの方法があります。どちらからでも結果は同じですが、沢山のスレッドに対して操作を行ないたい時は、管理者モードからの方が容易です。
3つのステータス
スレッドには3つ(通常状態も入れれば4つ)の状態があります。
- 通常
- そのままの状態です。書き込みがあり、それがsage投稿でなければスレッドは書き込み後にスレッドリストの一番上に上がります。つまり最新の書き込みがあったスレッドは、多くの人の目に触れ易くなります。また、どのスレッドが話題が活発になっているのか判断する目安になります。*4
- @付き
- スレッドをこの状態にすると、スレッドの題名に@マークが付き、リスト中で目立つようになります。また、設定にもよりますが、@がついているとどんなに落ちてもそのスレッドは消えません。長く使いたいスレッドや、分散されると困る話題を誘導して一まとめにしたりする際に便利です。*5
- !付き
- !がついているスレッドは常に一番上にきます。既に落ちているスレに!をつけた場合、次に書き込みがどこかのスレッドにあったときに上にあがります。お知らせなどに使えます。
- ロック
- ロックされているスレッドには書き込みができなくなります。
これらの状態は、重複できるので色々なスレ管理ができます。!付けてロックすれば、管理人からのお知らせ等に使えます。@つけて下げるだけさげながらマターリsage進行もできます。
html化とpastディレクトリ
育ちに育って大きくなったスレッドや、お気に入りのスレッドをhtml化して保存することが出来ます。
これを実行すると、そのスレッドをhtml化して(デフォルトでは)pastディレクトリに保存します。もちろん添付ファイルも移動します。そして元のログデータとそれを保存していたフォルダ、インデックスファイル内のそのスレッドのエントリは消去されます。
html化されたスレッドを閲覧するには、(デフォルトで)pastとなっているリンクをクリックします。すると、プログラムが過去ログ内を自動的に走査*6して、そこに index.html があればその中から title 部分を抜き出してリンクの一覧を作成して表示します。*7
スレッドの削除
なにも残さずそのスレッドを消去します。とりかえしはつきません。(あなたがバックアップをとっていて、手作業でインデックスを直すなら別ですが)
設定確認
BBSの上部にあるhelpというリンクをクリックすると、主な設定内容が表示されます。デフォルトではこれだけですが、help.plを編集することで、好き勝手な内容にできます。htmlがわかるなら簡単だと思います。
管理者モード
管理者モードを使うには、helpの中にあるフォームに管理者パスを入力して下さい。スレッドの一覧、及びデータとインデックスの整合性をテストして異常があればそれを表示します。エラーがあれば簡単なアドバイスもでますが多分役にたちません。このスレッド一覧からもスレッドに対する操作ができるので管理者モードっぽくて便利かと思います。というかそのための機能かもしれません。
記事削除
一記事を削除するには、まずその記事があるスレッドをスレッドモードで表示してください。その中に記事削除用のフォームがありますので、投稿時のパスワードか管理者パス、削除したい記事の記事番号を入力すると行なえます。*8
- *4
- 逆にこっそりと話題を進行させたいときは、sageで投稿することで、スレッドを上げないで書き込みすることが出来ます。
- *5
- ちなみにsageで書き込んでいてもログ落ちは阻止できないので@つけてください。
- *6
- 本来は、html 化された過去スレを簡易的に閲覧するための機能ですが、このいい加減さを逆に利用すると、勝手に作った全然関係ないコンテンツをこの中に入れてもリンクが表示されます。ただし最低限の規則があります。ディレクトリの名前は半角数字であること。なかのindex.htmlはEUCで書かれていること。20行以内にタイトルがあること。タイトルはtitleタグで正しく囲まれていること。
- *7
- pastで出る一覧は毎度毎度の自動生成なので、あまりにもpastディレクトリをいっぱいにしておくと重くなります。適度に削除とか整理してください。
- *8
- データの先頭のみを書き換えます。つまり表示はされませんが、データ的には存在しています。FTP でダウンロードして修正すれば簡単に復帰できます。削除された記事は欠番になるので良く見るとそこに記事があったことが判るはずです。1が削除された時だけ、”親記事は削除されたようです”とメッセージが記事の代わりに出ますがレイアウト的な問題で特に意味はないです。
css切り替え
同じBBSを違う場所からcssだけ変えて使いたい時や閲覧者のニーズに合わせて複数のcssを切り替えたい時などに便利な機能です。cgi呼び出し時にパラメータをつけることで適用されるcssを切り替えることが出来ます。
詳しくは、設定方法のcss切り替え設定を参考にして下さい。
投稿時の操作, 機能
自動変換, タグ生成
- 自働リンク
- 投稿文中にurlと思わしき文字列があれば、自働リンクします。長いurlは省略されてアンカーに使われます。
- 記事番号指定
- 2ch式で >>1 のような表記ができます。>>1-10といった表記にはまだ対応していません。
- 引用
- 引用は>か>でできます。ブロック単位でblockquoatで囲います。見た目はcssに準ずるのでcssで設定してないと色が変わったりとかはしません。
- キーワード反応
- これはIRCのキーワードにヒントを得たものです。文中に半角で@!とあると、その行をemで囲います。どのような表示になるかはcssに準じます。
- イメージリンク
- 半角で@#のあとにURLを書くと、それがイメージへのリンクとして相応しいもの(チェックはいいかげんです)であった場合、リンクを張ります。この機能は危険性もあるので管理者onlyや使用不可にもできます。
投稿フォーム
特に説明することは無いと思います。”euc-jpとして処理”にチェックをいれていると、投稿された内容はeucだと決めうちして処理します。そうすると半角カナが化けません。大抵のUAはeucで正常に送信するはずなのでこれを気にしなければならないことはほとんど無いはずです。もしこのチェックが外れていると、内部で一生懸命文字コードを判定してから処理します。でもこのとき半角かなとか一部の文字が混ざっていると、判定に失敗して文字化けの可能性があります。
ちなみにQuick Replyの投稿時には携帯端末等からの投稿を考慮して、必ず文字コードの自働判定をするようになっています。もし特殊な文字を投稿したくてどうしても文字化けする場合は、本式のフォームから、”euc-jpとして処理”にチェックをいれて投稿して下さい。
クッキー
Quick Replyから投稿したときはクッキーが記録されません。
トリップ
トリップについては下記のURLをご覧下さい。要は、なりすまし防止の機能です。
- トリップを探すにはこれを使って下さい
- 見知らぬ国のトリッパー(w
ただし、トリップに変換しているタイミングが、タグをエスケープした後なので、> や <, & 等が入っていると2chと違うものになる可能性があります。( 8月追記, 2ch のソースコードと思わしきものを見ましたら、2ch もエスケープ後にトリップを作っているようです。ただし、文字コードの関係で一部の漢字等が入っていると違う結果になるようですが、大体トリップを再現できていると思います。)
免責及び著作について
Disclaimerをご覧ください。
このマニュアルについて
このマニュアルは、2002年11月にそれまで分割されて適当なHTMLで書かれていたものをまとめ、私個人の勉強のためにXHTMLで書き直しました。なにぶんまだ始めたばかりですのでおかしなマークアップ等あると思いますが、BBSへの報告などあれば参考にさせていただきます。
このマニュアルの内容は、予告無く変更されることがあります。ご了承ください。