Web拍手をHTML Dwarfと連携する

Web拍手と小説HTMLの小人さん — HTML Dwarfとの連携方法を記載します。有名なプログラムなので創作に携わってらっしゃる方はご存じでしょうが、簡単に説明すると……。

HTML Dwarfとは小説を公開するためのCGIです。多機能が故に一度お世話になると二度と離れられないプログラムです。

テンプレートを利用して小説ページや目次を自動で作成したり、作成ページに連番を自動で付与したり、前後ページへ自動でリンクを張ったり、改行からbrタグに変換したりと、至れり尽くせりなプログラム。

今回はHTML Dwarfのテンプレート機能・テンプレート変数を利用して、小説ページを作成する時にページにつけるWeb拍手にひと工夫しましょう、というのが目的です。
連携するとこんなことができます。

  • 拍手があったページのURLを取得できる。
  • 拍手があったページのタイトル名を取得できる。

前回の記事でお見せした、呼び出し側のサンプルはこちら。

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>小説タイトル -章タイトル-</title>
 </head>
 <body>
 <h1>小説タイトル</h1>
 <h2>章タイトル</h2>
 <div id="novelStory">
 小説本文
 <!-- /#novelStory -->
 </div>
 <form method="post" action="webclap.php">
 感想: 
 <select name="impression">
 <option value="面白かった" selected="selected">面白かった</option>
 <option value="いまいち">いまいち</option>
 <option value="続きを書いて">続きを書いて</option>
 </select>
 一言:
 <input type="text" size="50" name="message" />
 <input type="submit" value="拍手!" />
 </form>
 </body>
 </html>

このformタグに小説のHTML Dwarfのテンプレートで使われている変数を組み込んでいきます。

まずはサンプル

 <form method="post" action="webclap.php">
 <input type="hidden" value="$NOVEL_TITLE<DWARF>-$CHAPTER_TITLE-</DWARF>" name="noveltitle" />
 <input type="hidden" value="$SITE_URL/$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX" name="novelurl" />
 感想:
 <select name="impression">
 <option value="面白かった" selected="selected">面白かった</option>
 <option value="いまいち">いまいち</option>
 <option value="続きを書いて">続きを書いて</option>
 </select>
 一言:
 <input type="text" size="50" name="message" />
 <input type="submit" value="拍手!" />
 </form>
 

2行増えました。その結果こんなメールが届くようになります。

noveltitle:
Fiori di Luce-光の欠片 No.30-

novelurl:
http://nekoproject.net/novel/contents/fiori/hikari/30.html impression: 面白かった message: 一言メッセージ本文ですよ! -------------------------------------------------------- リファラ:http://nekoproject.net/novel/contents/fiori/hikari/30.html

impressionと(感想)message(一言メッセージ)以外はHTML Dwarfとの連携結果です。順に解説します。

<input type="hidden" value="$NOVEL_TITLE<DWARF>-$CHAPTER_TITLE-</DWARF>" name="noveltitle" />
 

ここで小説のタイトルと章タイトルを取得しています。

  • $NOVEL_TITLE…小説タイトル
  • $CHAPTER_TITLE…章タイトル


これらが、小説ページを作成した時点で挿入されます。

<DWARF> </DWARF>
で囲うと各要素が空っぽだった時に表示されなくなります。
この例だと章タイトルがない場合、章タイトルを囲っている-も一緒に消してくれるので便利です。

<input type="hidden" value="$SITE_URL/$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX" name="novelurl" />
 

ここでどのページで拍手されたかのURLを取得しています。

  • $SITE_URL…サイトのURL
  • $SAVEFOLDER…小説保存フォルダ(CGI動作設定で設定したもの)
  • $FILE_PATH…小説保存フォルダからのパス
  • $FILE_NAME…ファイル名(拡張子より前の部分)
  • $FILE_EX…ファイルの拡張子



タイトル名の取得より複雑ですが、URLが記載されているとメールからページに飛べるので結構便利です(誤字報告があった時とか)
ここは環境によって変わってくるのでサイトに合わせる必要があります。

サイトルートにHTML Dwarfをインストール&サイトのURLをhttp://~/で登録している場合

NekoProjectで例えるとこんな状態。

  • http://nekoproject.net/htmldwarf.cgiでHTML Dwarfの管理画面にアクセスできる。
  • サイトURLをhttp://nekoproject.net/で登録している。

この場合だと、下記の変数でURLが取得できます。

$SITE_URL$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX

$SITE_URLと$SAVEFOLDERの間に”/”がありません。

サイトルートにHTML Dwarfをインストール&サイトのURLをhttp://~で登録している場合

NekoProjectで例えるとこんな状態。

  • http://nekoproject.net/htmldwarf.cgiでHTML Dwarfの管理画面にアクセスできる。
  • サイトURLをhttp://nekoproject.netで登録している。

この場合だと、下記の変数でURLが取得できます。

$SITE_URL/$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX

$SITE_URLと$SAVEFOLDERの間に”/”を入れる必要があります。

サイトルート以外にHTML Dwarfをインストール&サイトのURLをhttp://~/で登録している場合

NekoProjectで例えるとこんな状態。

  • http://nekoproject.net/novel/htmldwarf.cgi等でHTML Dwarfの管理画面にアクセスできる。
  • サイトURLをhttp://nekoproject.net/で登録している。

この場合だと、下記の変数でURLが取得できます。

$SITE_URLnovel/$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX

$SITE_URLと$SAVEFOLDERの間に”novel/”を追加する必要があります。HTML Dwarfがインストールされているフォルダを記述する必要があります。

サイトルート以外にHTML Dwarfをインストール&サイトのURLをhttp://~で登録している場合

NekoProjectで例えるとこんな状態。

  • http://nekoproject.net/novel/htmldwarf.cgi等でHTML Dwarfの管理画面にアクセスできる。
  • サイトURLをhttp://nekoproject.netで登録している。

この場合だと、下記の変数でURLが取得できます。

$SITE_URLnovel/$SAVEFOLDER/$FILE_PATH/$FILE_NAME.$FILE_EX

上記までの応用

 

 

……ということで、HTML Dwarfとの連携方法を記載しました。前回掲載した拍手じゃなくても、項目を自由に設定できるタイプのものであれば応用できるはず。

環境はなるべく快適に作っちゃって、楽しい創作ライフを過ごしましょう。

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください