A_single_file_wiki_wifky2.png

[plugin] にっきプラグイン

wifky で「にっき」を書く場合の支援プラグインです。 開発者のにっきや、当サイトの FrontPage のニュースは、 これを利用して書いています。

具体的には「(yyyy.mm.dd)」という形式で始まるページを 「にっきページ」とみなし、これらを効果的に閲覧する、下記の仕組みを設けます。

  • 最新/最古の日記 n 回分の表示機能
  • 前の日記・次の日記のメニューバーからのリンク
  • RSS 出力
  • リファラー記録・表示

当然ながら、専用ツール(ブログ・にっきツール)に 勝るはずもありませんので、その点、ご了承ください。

インストール

ダウンロードページより、 アーカイブファイル nikky-X.XX.X.zip をダウンロードしてください。 これを展開して、nikky.pl をワークディレクトリ(wifky.dat)に置いてください。その後、ナビゲーションメニューの Tools を押下すると、 設定画面に下記のような項目が現れます。

Author RSS に出力する著者名(省略時はタイトルを出力)
Print diary as FrontPage チェックすると、FrontPage のかわりに最新日記をデフォルト表示する。
Days of top diary (アクションプラグインで表示する場合の)表示日数
1-section to 1-rss-item チェックすると、RSS に出力するアイテムが、ページ内のセクション単位となる。
RSS description RSS に出力される、サイトの説明
insert hh:mm into title チェックすると、新ページ作成の際のデフォルトタイトルに時刻(hh:mm)が 付加される。
Symbol of start day link 最古の日記へのリンクシンボル(デフォルトは「|」)
Symbol of previous month link 前月を示すリンク文字列を指定します(デフォルトは「<<」)
Symbol of previous day link 前日を示すリンク文字列を指定します(デフォルトは「 >」)
Symbol of next day link 翌日を示すリンク文字列を指定します(デフォルトは「」)
Symbol of next month link 翌月を示すリンク文字列を指定します(デフォルトは「>>」)
Symbol of end day link 最新の日記へのリンクシンボル(デフォルトは「|」)
Print month with English チェックすると、月を英語表記します(January…)

機能

新規にっき作成

新規ページ作成時([New]リンク押下時)、ページ名のテキストボックスに、 その日の日付を (YYYY.MM.DD) 形式でデフォルト値として挿入します。 にっきを編集する場合、そのままか、標題を追記します。

設定「insert hh:mm into title」にチェックを入れている時は、 時刻 hh:mm も挿入します。

にっき以外のページを作るのであれば、挿入された日付を削除して、 目的のページ名を入力してください。

最新日記の表示

二種類の方法があります。

アクションプラグイン方式

Print diary as FrontPage」を On にして、FrontPage にアクセスするか *1((a_nikky 適当な標題文字列)) で生成される URL「http://…/wifky.pl?a=nikky」へアクセスする ことにより、最新3回分の日記を新しいものより順に表示します。

各日記の末尾には、各々「Footer」が付きます。 コメントや(後述の)リファラ表示のプラグインを Footer ページ内に配置すると、ブログっぽくなります。

この方式で表示させる時の日数は、設定「Days of top diary」で設定します。

インラインプラグイン方式

既存のページ内に「((lastdiary 日数))」と記述することで、 現在までの、日数分の最新日記をインクルードさせることができます。

この方式の場合、引用日記のフッタの他、元ページのフッタも表示されますので、 文言を工夫しないと、フッタだらけでみっともないことになります。 (たとえば、そのままコメント・リファラープラグインを使わず、 にっきページでしか機能しない、((nikky_comment)) ,((nikky_referer)) を使って回避する…など)

その他のコマンド

((lastdirary)) に似たものとして次のインラインコマンドも用意されています。

((newdiary 日数)) (((lastdiary)) は、未来のにっきを表示しません。 これは未来のものも含めた上での最新にっきを include します。
((olddiary 日数)) 逆に最古のにっきを include します。

リンク元表示

((referer 排他キーワード…))

アクセスしてきた時の参照元 URL を記録・表示します。 通常、Footer に記述します。

1ページ内に何回でも記述できますが、カウントが更新されるのは最初のものだけで、 あとは表示するだけとなります。

にっきページ限定リンク元表示

((nikky_referer 排他キーワード…))

(yyyy.mm.dd) 形式で始まるページでしか機能しない点を除けば、((referer)) と同じです。

Footer 内に置いた場合、((lastdiary 日数)) や a=nikky でインクルードされた各日の末尾では機能しますが、インクルード元のページ自身の末尾では、そのページが(yyyy.mm.dd)という形式で始まらない限り、機能しません。

にっきページ限定コメント表示

((nikky_comment 排他キーワード…))

(yyyy.mm.dd) 形式で始まるページでしか機能しない点を除けば、((comment)) と同じです。

Footer 内に置いた場合、((lastdiary 日数)) や a=nikky でインクルードされた各日の末尾では機能しますが、インクルード元のページ自身の末尾では、そのページが(yyyy.mm.dd)という形式で始まらない限り、機能しません。

最新日記タイトル一覧

((recentdiary 日数))

((recent)) と同じですが、出力されるのは、 「(YYYY.MM.DD)」で始まる名前だけに限定されます。

RSS 出力機能

http://…/wifky.pl?a=rss

で、RSS が出力されます。 このリンクは、署名表示部に追加されます。

  • RSS 出力は、1ページ=1アイテムか、 1セクション(1ページを大見出しで分割したもの)かを選択できます。 セクション単位にする場合、設定の『1-section to 1-rss-item』 にチェックを入れてください。
  • RSS に出力する著者名・サイトの説明は、 設定「Author」「RSS Description」に記述します。 空の場合、ページタイトルが変わりに出力されます。
  • ((read_more)) 以降は RSS に出力されません。

CGI 引数拡張

新たな記事指定の引数として、?date=YYYYMMDD というものを追加します (YYYY:西暦,MM:月,DD:日)。 これは、「(YYYY.MM.DD)」で始まる記事を連結して出力するものです。

カレンダー出力機能

表示している日記の日付か、あるいは、現在の月のカレンダーを表示します。

((calender)) … テーブル型の場合
((calender f)) … フラット型の場合

CSS 定義は下記とおりです。

table.calender / div.calender_flat
カレンダー全体
table.calender caption / div.calender_flag span.calender_header
カレンダーのヘッダ
table.calender td / div.calender.span
カレンダー中の各日付部分
td.Today / span.Today
今日の日付、あるいは、現在表示中の日付
td.Suntd.Sat / span.Sunspan.Sat
各曜日の日の日付

リンク用コマンド

次のようなインラインコマンドが用意されます。

((nextday)) 翌日へのリンクを表示します。
((prevday)) 前日へのリンクを表示します。
((nextmonth)) 翌月へのリンクを表示します。
((prevmonth)) 前月へのリンクを表示します。

年間カレンダー表示機能

((archives) , ((packedarchives)) で、 にっきが存在する年・月のリストを表示します。

((archives [n]))
縦方向にリストを表示します。月の表記は、 設定「Print month with English」に依存します。 n を指定すると、nヶ月前以降の月のみ表示します。
表示例
((packedarchives))
横方向にリストを表示しまう。月の表記は、数字固定です。
表示例

各「月」に貼られたリンクをたどると、その月の記事全てを連結して表示します。

にっきページでのみのコマンド実行 (1.1.2_0 以降のみ)

((on_nikky xxxxxxx ))

とすると、表示ページが (YYYY.MM.DD)〜 形式の時だけ、コマンド xxxxxx が実行されます。

更新履歴

0.05 で追加された機能

  • RSS 出力機能

0.07 で追加された機能

  • カレンダー出力機能
  • プルダウンメニュー拡張(現在は廃止)
  • RSS 出力でカテゴリーを出力
  • 前日・翌日へのリンク

0.7.1

  • 0.79 以降の整形済みテキストを、RSS出力でエスケープ処理できていない 箇所がありましたので修正しました。

0.7.3

虫繕
  • 最初の !!! よりも前に文章があると、RSS のリンク位置がずれてしまっていた。
  • 1月・2月のカレンダーの曜日がおかしくなっていた。

0.8.0

  • RSS 出力で、著者名 < author>/<dc:creator>・ 作成日時 <dc:date> を出力するようにした。 (著者名は、設定画面より任意名を設定)
  • [RSS] マークを、フッタに移動した。
  • JavaScript によるメニュー拡張を廃止した。
  • [New] ボタンの押下時の挙動を、0.5 相当に戻した。
  • tDiary 互換の ?date=… 型リンクをなるべく使用しないようにした。

0.8.1

  • Perl 5.005 環境(ひらたく言うと nifty)で動作しない不具合を修正

0.8.2

  • 本体 0.81 対応

wifky 0.81 で、リンクアンカーを含む標題が RSS 上で化けるようになってしまいました。 これは、wifky 本体側での span.adminmenu 対応のため、 リンクアンカータグをエンコード処理したためです。 (なぜ、そのような処理が必要だったかというと、書きだすと長くなります汗)

この対応のため、タイトル展開時にデコードを行うようにしました。

0.9.0

  • アクションプラグイン方式追加

0.10.0

  • tDiary 模倣モードの時、日付の見出しに<h2> を使うようにした。
  • 非公開で実装していた ((include)),((includes)) を廃止

0.10.1

  • 本体 0.83 での、@main::history 廃止に伴う対応 (そのままだと、最新ページ連結ページで、リファラーが二重カウントされる)

0.11.0

  • (yyyy.mm.dd) で始まるページでしか機能しない ((nikky_comment)) , ((nikky_referer)) を追加 (機能は ((comment)),((referer)) と全く同じ )

0.11.1

  • CGIパラメータ date=yyyymmdd が効かなくなっていたのを修正
  • 「)」移行に文字列があっても、date パラメータで指定できるようになった(ただし、同一日時に複数あった場合は、どれか一つになる:特定不能)
  • スクリプト中の不要な空行・末尾の空白を削除

0.12.0

  • RSS に出力する標題が「ページ名 - 大見出し」となっていたのを「大見出し」だけとした。大見出しが無い部分には、ページ名だけが標題となるのは従来どおり
  • スクリプト中のタブを空白にコンバートした。

0.14.0

  • 1ページ - 1RSSアイテムモードを追加した。
  • RSS に出力される見出しの自ページへのリンクに ページ名(p=???)が入っていなかったのを修正。

0.15.0

  • date=YYYYMMDD を (YYYY.MM.DD)* にマッチする 全ての記事を連結したものを返すコマンドとした。
  • カレンダーの基準日時を、date 引数からも得るようにした。
  • カレンダーのリンク先を date 引数で指定するようにした。

0.16.0

  • 未来の日記を FrontPage に出さないようにした。
  • << , >> の起点を今日の最後に設定した。

0.17.0

  • CGI引数 a=new を、そのまま、新規にっきページ作成とした。 それに伴い a=newdiary は廃止。
  • 前月へのリンクコマンド ((prevmonth))追加
  • 翌月へのリンクコマンド ((nextmonth))追加
  • カレンダーのヘッダに前月・翌月へのアンカーの設置
  • カレンダーのヘッダの年月表示で、英名の月表示だけでなく、 数字による月表記も出来るようにした。
  • 翌日・前日・翌月・前月のリンクシンボルの変更機能(Tools)

0.18.0

  • NoGood 氏による nikky_plus.pl のコードを統合。
    • 横一列なフラットカレンダー ((calender f))
    • calender のキャプションの左右両端に最新・最古の日記へのリンクを追加
  • カレンダーから翌日・前日リンクを削除(リンクが多過ぎるため)
  • メニューバーから翌月・前月リンク等を削除(リンクが多過ぎるため)
  • 本文ファイルが存在しない時、そのページは表示しないようにした(amazon.pl 向け対応)
  • RSS の description を設定で定義できるようにした。
  • 新規にっきのタイトルに時刻も挿入できるようにした。
  • RSS 出力の charset を wifky 本体のものと合わせるようにした。

以降は、 ダウンロードページの変更履歴参照のこと

*1p=FrontPage という指定を明示的に入れてはいけません

|

Designed for @nifty.