というより、人狼物語ソース改造の話。
どこに需要があるかもわからないけど、とりあえず残しておく。
ここからは、実際に人狼物語システムを改造していく時の話をしていきます。
こちらの続きです。
6、基本的なHTMLの話① ~<head>部分の記述~
まずシステムどうこうよりも先に、HTMLソースを見てみましょう。
人狼物語のソースには、デフォルトでロボット対策、いわゆる検索エンジンよけが入れられています。
head内の
<meta name="robots" content="noindex,nofollow">
<meta name="robots" content="noarchive">
こちらの記述です。
これらの記述はhtmlフォルダー内html_pc.plで調整が可能です。
ただし、この部分は削らないことを推奨します。
「なんで? 検索には拾ってもらった方がいいんじゃないの?」
と思った方もいるかもしれません。
あくまでこれは私個人の考えであり、強制ではありません。
が、検索避けを行った方が良い理由として以下をあげておきます。
①定期的にくるロボット、クローラーを回避する
頻繁に来られると迷惑です。重くなります。
②村の内容が検索エンジンに引っかからないようにする
国を運営していると、様々な村が建ちます。
「○×のキャラになりきって遊ぼう!」「○×というゲームの世界観で遊ぼう!」といった二次創作の村。
また普通の村の中でも、誰かが歌の歌詞などを書き込んだ場合、検索エンジンに引っかかってしまうとそこから発見される恐れがあります。
歌詞を書き込んだのが発見されると、なぜいけないのか。
日本にはJA○RACという音楽の著作権を管理する団体があります。(一応伏せる)
日本で広まっている多くの歌は、この団体に登録されています。
そして個々のアーティストにかわり楽曲の利用料金を徴収します。
つまりは「使用料払えやゴルァ」と言われる可能性が出てくるのです。
面倒臭いことこの上ないですね。
実際に書き込んだのはユーザーであっても、サイトの管理者に連絡が来ます。
実際の使用料がどれくらいであるかはサイトの形態で異なりますので、お調べください。
(広告を置いている場合、いない場合でも異なります)
https://www.jasrac.or.jp/info/network/index.html
とても大変というか、面倒臭いものです。
該当するものがあるかどうか、わざわざ管理人がチェックも出来ない。
でも、検索で引っかかれば、いつ徴収が来るかもわからない。
いちいち対処はしきれません。
というわけで、面倒ごと回避のおまじないでも思っておきましょう。
検索エンジンに拾われるというのは、それだけ良いことも勿論あります。
が、広く人目に触れることで、面倒なことも当然増えます。
この点に関しては運営する側の考え一つではありますが、私は避けておくことを推奨します。
それ以外、<head>内によく記載することといえば、jqueryを使用する方なら読み込ませておいた方がいいでしょう。
最近だとアップルタッチアイコン用の画像指定や、スマホ環境からサイトを見やすくするためのviewportもあった方が便利ですね。
なお、月狼国は
<meta name="viewport" content="width=device-width, user-scalable=yes">
で指定しております。
7、基本的なHTMLの話② ~発言部分~
村発言はhtmlフォルダー内html_vlogsingle_pc.plで調整します。
実際の細かい改造に関しては、難しい話になるので……「このファイルが関わっているんだな」くらいに思っておいてください。
人狼物語を使っている一部の国でも、HTMLタグが使える国があります。
発言の一部を太字にしたり、小文字にしたりなど色々。
発言の装飾ができると、使う人は喜んでくれるでしょう。
通常では発言の中にHTMLタグを書き込んでも、タグとしてではなく単なる文字列として処理されます。
なぜかというと、<と>の記号が記号そのままではなく特殊文字に変換されているからですね。
(この処理は多分libフォルダー内base.plで行われています)
じゃ、それを特殊文字からそのままの記号に戻したら、タグが使えるようになるのか。
考え方としてはその通り。
しかし、この機能の実装は少し慎重に行う必要があります。
なぜかというと「HTMLタグは該当発言以降、全ての表示に関わってくる」からです。
一つの発言の中で、<b>とタグを打った後、タグを閉じなかったらどうなるか。
<b>タグは文字を太字にするタグです。<b>と</b>で該当文字を囲み、その間だけ太字で表示します。
つまりは閉じるタグを記述されなかった場合「そこから先全ての発言、全ての文字が太字で表示されてしまう」のです。
誰か一人の閉じ忘れで、以降全ての表示が崩れてしまうことになる。
というわけで、タグを変換する場合は必ず「閉じるタグまでセットになった状態で処理する」ことを強く推奨します。
「こんな機能いらんわ! 文字装飾など不要!」という場合は、もうそのままでOKです。男らしい。
行いたい場合にだけ、覚えておいてください。
「で、実際どうやって特殊文字を<に書き換えるの?」という方。
正規表現で置換します。
perlの正規表現を用いた置換については、こちらのサイトが私の見た中では一番よく理解できました。
http://sak.cool.coocan.jp/w_sak3/doc/sysbrd/pe_k08.htm
「いやこれだけじゃなにをどうしたらいいのかもわからないよ!!!」
と思われる方もいらっしゃるかもしれない。
ブログ内でソースまで書いて説明しようとしたら、同じ現象が起きたんだよ!!!
タグ書こうとしたら、タグが反映されて無理だったというね。
というわけで、細かい説明できませんでした。
勘弁してください。
8、基本的なHTMLの話③ ~その他~
これ以上細かく説明してもきりがないので、ざっとhtmlフォルダー内のどのファイルがどの部分に関わっているかだけ説明しておきます。
_pcとついているのはPC版、_mbとついているのはガラケー版です。
トップページ
html_index.pl
情報欄
html_vinfo_pc.pl
html_vinfo_mb.pl
村ログ全体の表示
html_vlog_pc.pl
html_vlog_mb.pl
メモ欄
html_memo_pc.pl
html_memo_mb.pl
発言欄
html_formpl_pc.pl
html_formpl_mb.pl
発言フィルター
html_sayfilter.pl
キャラセット画像
html_chrlist.pl
エントリー画面
html_entryform_pc.pl
html_entryform_mb.pl
村建て画面
html_makevilform.pl
改造する中でよく編集することになるファイルは、だいたいこのあたりでしょうか……?
先ほど説明した<head>記述のあるhtml_pc.plもよく使います。
どのファイルがどの機能に関わっているかを把握しておくと、改造がよりしやすくなるのではないでしょうか。
他のフォルダー内ファイルのことやconfig、メインのcgiについても触れたい。
が、そちらはいずれまた気が向いた時にでも。
どこに需要があるかもわからないけど、とりあえず残しておく。
ここからは、実際に人狼物語システムを改造していく時の話をしていきます。
こちらの続きです。
6、基本的なHTMLの話① ~<head>部分の記述~
まずシステムどうこうよりも先に、HTMLソースを見てみましょう。
人狼物語のソースには、デフォルトでロボット対策、いわゆる検索エンジンよけが入れられています。
head内の
<meta name="robots" content="noindex,nofollow">
<meta name="robots" content="noarchive">
こちらの記述です。
これらの記述はhtmlフォルダー内html_pc.plで調整が可能です。
ただし、この部分は削らないことを推奨します。
「なんで? 検索には拾ってもらった方がいいんじゃないの?」
と思った方もいるかもしれません。
あくまでこれは私個人の考えであり、強制ではありません。
が、検索避けを行った方が良い理由として以下をあげておきます。
①定期的にくるロボット、クローラーを回避する
頻繁に来られると迷惑です。重くなります。
②村の内容が検索エンジンに引っかからないようにする
国を運営していると、様々な村が建ちます。
「○×のキャラになりきって遊ぼう!」「○×というゲームの世界観で遊ぼう!」といった二次創作の村。
また普通の村の中でも、誰かが歌の歌詞などを書き込んだ場合、検索エンジンに引っかかってしまうとそこから発見される恐れがあります。
歌詞を書き込んだのが発見されると、なぜいけないのか。
日本にはJA○RACという音楽の著作権を管理する団体があります。(一応伏せる)
日本で広まっている多くの歌は、この団体に登録されています。
そして個々のアーティストにかわり楽曲の利用料金を徴収します。
つまりは「使用料払えやゴルァ」と言われる可能性が出てくるのです。
面倒臭いことこの上ないですね。
実際に書き込んだのはユーザーであっても、サイトの管理者に連絡が来ます。
実際の使用料がどれくらいであるかはサイトの形態で異なりますので、お調べください。
(広告を置いている場合、いない場合でも異なります)
https://www.jasrac.or.jp/info/network/index.html
とても大変というか、面倒臭いものです。
該当するものがあるかどうか、わざわざ管理人がチェックも出来ない。
でも、検索で引っかかれば、いつ徴収が来るかもわからない。
いちいち対処はしきれません。
というわけで、面倒ごと回避のおまじないでも思っておきましょう。
検索エンジンに拾われるというのは、それだけ良いことも勿論あります。
が、広く人目に触れることで、面倒なことも当然増えます。
この点に関しては運営する側の考え一つではありますが、私は避けておくことを推奨します。
それ以外、<head>内によく記載することといえば、jqueryを使用する方なら読み込ませておいた方がいいでしょう。
最近だとアップルタッチアイコン用の画像指定や、スマホ環境からサイトを見やすくするためのviewportもあった方が便利ですね。
なお、月狼国は
<meta name="viewport" content="width=device-width, user-scalable=yes">
で指定しております。
7、基本的なHTMLの話② ~発言部分~
村発言はhtmlフォルダー内html_vlogsingle_pc.plで調整します。
実際の細かい改造に関しては、難しい話になるので……「このファイルが関わっているんだな」くらいに思っておいてください。
人狼物語を使っている一部の国でも、HTMLタグが使える国があります。
発言の一部を太字にしたり、小文字にしたりなど色々。
発言の装飾ができると、使う人は喜んでくれるでしょう。
通常では発言の中にHTMLタグを書き込んでも、タグとしてではなく単なる文字列として処理されます。
なぜかというと、<と>の記号が記号そのままではなく特殊文字に変換されているからですね。
(この処理は多分libフォルダー内base.plで行われています)
じゃ、それを特殊文字からそのままの記号に戻したら、タグが使えるようになるのか。
考え方としてはその通り。
しかし、この機能の実装は少し慎重に行う必要があります。
なぜかというと「HTMLタグは該当発言以降、全ての表示に関わってくる」からです。
一つの発言の中で、<b>とタグを打った後、タグを閉じなかったらどうなるか。
<b>タグは文字を太字にするタグです。<b>と</b>で該当文字を囲み、その間だけ太字で表示します。
つまりは閉じるタグを記述されなかった場合「そこから先全ての発言、全ての文字が太字で表示されてしまう」のです。
誰か一人の閉じ忘れで、以降全ての表示が崩れてしまうことになる。
というわけで、タグを変換する場合は必ず「閉じるタグまでセットになった状態で処理する」ことを強く推奨します。
「こんな機能いらんわ! 文字装飾など不要!」という場合は、もうそのままでOKです。男らしい。
行いたい場合にだけ、覚えておいてください。
「で、実際どうやって特殊文字を<に書き換えるの?」という方。
正規表現で置換します。
perlの正規表現を用いた置換については、こちらのサイトが私の見た中では一番よく理解できました。
http://sak.cool.coocan.jp/w_sak3/doc/sysbrd/pe_k08.htm
「いやこれだけじゃなにをどうしたらいいのかもわからないよ!!!」
と思われる方もいらっしゃるかもしれない。
ブログ内でソースまで書いて説明しようとしたら、同じ現象が起きたんだよ!!!
タグ書こうとしたら、タグが反映されて無理だったというね。
というわけで、細かい説明できませんでした。
勘弁してください。
8、基本的なHTMLの話③ ~その他~
これ以上細かく説明してもきりがないので、ざっとhtmlフォルダー内のどのファイルがどの部分に関わっているかだけ説明しておきます。
_pcとついているのはPC版、_mbとついているのはガラケー版です。
トップページ
html_index.pl
情報欄
html_vinfo_pc.pl
html_vinfo_mb.pl
村ログ全体の表示
html_vlog_pc.pl
html_vlog_mb.pl
メモ欄
html_memo_pc.pl
html_memo_mb.pl
発言欄
html_formpl_pc.pl
html_formpl_mb.pl
発言フィルター
html_sayfilter.pl
キャラセット画像
html_chrlist.pl
エントリー画面
html_entryform_pc.pl
html_entryform_mb.pl
村建て画面
html_makevilform.pl
改造する中でよく編集することになるファイルは、だいたいこのあたりでしょうか……?
先ほど説明した<head>記述のあるhtml_pc.plもよく使います。
どのファイルがどの機能に関わっているかを把握しておくと、改造がよりしやすくなるのではないでしょうか。
他のフォルダー内ファイルのことやconfig、メインのcgiについても触れたい。
が、そちらはいずれまた気が向いた時にでも。