アンカー自動生成プラグイン

a.rb

機能

アンカーを自動生成してくれます。 単純に、URLと名称を指定すればアンカーになりますし、辞書ファイルに登録しておけば短いキーワードからアンカーを表示してくれます。

  • 指定方法が簡単である
  • 今後、登録しておいたURLが変更された場合でも辞書ファイルを変更するだけで追随できる
    • 過去にさかのぼって日記自体を修正し直す必要がありません
  • myとほぼ同機能を実現(title指定はできません)
  • tlink拡張でtlinkとほぼ同機能を実現(title指定はできません)
    • tDiaryプラグイン集に標準添付のtlinkの機能である「アンカーのtitle属性値にリンク先の情報を指定させる」ことができます。
  • 辞書ファイルをWWWの管理画面から登録できる
    • 辞書ファイルはテキストファイルなのでそのまま編集することもできますが、WWWの管理画面を利用すればさらに簡単に管理できます。
  • アンカー自動生成キーワード表示プラグインを使うと、編集時に登録してあるキーワードの一覧が表示できます。

必要環境

  • tDiary-2.0.0 or later
  • ruby-1.8.x or later

ダウンロード・インストール

プラグイン集に収録されます(次のリリースから2003/3/5現在)。CVSからダウンロードすることもできます。以下のリンクをダウンロードして配置してください。

  • plugin/a.rb - プラグイン本体(pluginディレクトリに置いてください)

使う場所

本文、ヘッダ、もしくはフッタ

利用方法

本プラグインは a()というメソッドを提供しますが、大きく2つの使い方があります。

引数から単純にアンカーを生成する方法

a "url"
a "name|url"
  • name - そのリンク先の名称(省略可能。省略した場合はurlが名称として表示される)
  • url - URL
例:
<%= a "http://www.hoge.com/" %>
<%= a "hoge|http://www.hoge.com/" %>

これらは以下のような結果になります。

結果:
<a href="http://www.hoge.com/">http://www.hoge.com/</a>
<a href="http://www.hoge.com/">hoge</a>

my形式

tDiary標準のmyプラグイン(あるいはmy-exプラグイン)と同じ機能を提供します。 実際にmyプラグインを呼び出しますのでそちらは別途インストールしておく必要があります(デフォルトでインストールされています)。

a "name|YYYYMMDD#..."
  • name - そのリンク先の名称(省略できません)
  • YYYYMMDD#... - 「YYYYMMDD#pXX」(YYYY年MM月DD日のXX番目のセクション)や「YYYYMMDD#cXX」(YYYY年MM月DD日のXX番目のツッコミ)のような形式で指定します。
例:
<%= a "以前言ってたこと|20030101#p01" %>

辞書ファイルからURLを検索してアンカーを生成する方法

あらかじめ、辞書ファイルを用意しておき、keyに該当するデータを元にアンカーを生成します。keyに該当するデータがない場合は1つ目の出力結果と同様になります。

辞書ファイルは設定画面の「アンカー自動生成プラグイン辞書ファイル編集」で作成・編集できます。

a "name|key:option"
  • name - そのリンク先の名称。辞書ファイルに記述した名称より優先されます。(省略可能。省略した場合は辞書ファイルに記述した名称が表示され、さらに辞書ファイルに名称が無い場合はnameが名称として表示される)
  • key - キー(辞書ファイルのキーワード)。辞書ファイルのURLに展開されます。
  • option - URLに追加する文字列(省略可能)。日本語を使いたい場合はURLエンコードするように設定します(defaultはなし、辞書ファイルにeuc/sjis/jisのいずれかを指定する)。
例:
<%= a "tDiary.Net" %>
<%= a "h" %>
<%= a "bibo:20020329" %>
<%= a "こちら|bibo:20020329" %>
<%= a "プラグインはこちら|users:プラグイン" %>

例えば、後述するa.datをそのまま利用したとすると以下のような結果になります。

結果:
<a href="http://www.tdiary.net/">tDiary.Net</a>
<a href="http://ponx.s5.xrea.com/">My Home Page</a>
<a href="http://ponx.s5.xrea.com/bibo/?date=20020329">Linuxビボ〜ろく</a>
<a href="http://ponx.s5.xrea.com/bibo/?date=20020329">こちら</a>
<a href="http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3">プラグインはこちら</a>

Another way

上述の方法の他に以下のような指定もできます(1.3.0まではこちらしかできませんでした)。 nameの順序が逆転しています(一番最後になっている)。もし、上述の方法でうまくいかない場合(例えば、nameやoptionに|や:が区切り文字が出てきてしまう場合)に使うと良いでしょう。

<%= a "http://www.hoge.com/" %>
<%= a "http://www.hoge.com/", "hoge" %>
<%= a "20020202#p01", "以前言ってたこと" %>
<%= a "tDiary.Net" %>
<%= a "h" %>
<%= a "bibo", "20020329" %>
<%= a "bibo", "20020329", "こちら" %>
<%= a "users", "プラグイン", "プラグインはこちら" %>

辞書ファイルフォーマットについて

辞書ファイルは必須ではありませんが、あるととても便利です。もちろん、辞書ファイルからURLを検索してアンカーを生成する場合は必須です。 辞書ファイルは以下のようなフォーマットにします。

tDiary.Net http://www.tdiary.net/ 
h      http://ponx.s5.xrea.com/ My Home Page 
bibo   http://ponx.s5.xrea.com/bibo/?date= Linuxビボ〜ろく 
users http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?  tDiary-users Project euc

Wiki等にリンクを張る際に、日本語が必要な時があります。その場合は相手先の文字コードで呼び出す必要がありますので、最後に文字コード(euc/sjis/jis)を指定します。 また、英語だけでもURLエンコードさせたいときは、文字コードにeucを指定しておくと良いでしょう。逆に20030101#p01など'#'を使いたいときなどはむやみにURLエンコードさせたくないと思うので、その場合は何も指定しません。

  • 辞書ファイルは設定画面の「アンカー自動生成プラグイン辞書ファイル編集」で作成・編集できます。
  • 各行のフォーマットは、 キー URL 名称 文字コードです。各項目は空白で区切ります。
  • 名称は上記例(usersの行)のように空白を使うことができます。また、省略可能です。省略した場合はキーが使われます。
  • 文字コードは省略可能です。省略した場合はURLエンコードされません。euc, sjis, jisを指定できます。
  • ファイルはEUC-JPで保存します。

オプション指定

辞書ファイルの置き場所

辞書ファイルはデフォルトで@data_path(tdiary.confに設定したもの)/cache/a.datに置かれます。 辞書ファイルの置き場所を変更した場合は、tdiary.confに以下のオプションを追加します。

@options['a.path'] = "/home/hoge/diary/a.dat"

a.dat(辞書ファイル:後述)はWWW経由でアクセスできない(public_html配下でない)ディレクトリに置いた方が良いでしょう。それから、ディレクトリ・ファイルのアクセス権には注意してください。WWWサーバがRead/Writeアクセスできる必要があります。

tlink拡張

tDiaryプラグイン集に標準添付のtlink.rbを呼び出し、tlink.rbの機能である「アンカーのtitle属性値にリンク先に書いてある内容を指定する」ことができます(詳しくはtlink.rbのコメントを参照してください)。この機能を使う場合は、tlink.rbをpluginディレクトリにおいてtdiary.confに以下のオプションを追加します。

@options['a.tlink'] = true

ただし、このオプションを有効にした場合、最初に日記を開いたときにリンク先へのアクセスが発生します(1度アクセスしたデータはキャッシュされますので2回目以降は大丈夫です)。レンタルサーバ等で使用して負荷が高くなってしまった場合はfalseにしてください。指定しない場合はfalseです。

ライセンスについて

Copyright (C) 2002,2003 MUTOH Masao <mutoh@highwhay.ne.jp>

本ソフトウェアはGNU General Public License Version 2(GNU一般公有使用許諾書バージョン2)に基づいてリリースされるフリーソフトウェアです。 また、本プログラムは無保証です。本プログラムの利用により何らかのトラブルが生じても、当方は一切責任を負いません。

ChangeLog

2004-09-26 MUTOH Masao
  • plugin/a.rb: Support conf menu.
  • plugin/a/: Removed.
  • plugin/en/a.rb: Added.
2003-11-15 MUTOH Masao
  • a.rb: Translate documents of header part to English.
  • README.rd: Removed.
2003-03-07 MUTOH Masao
  • README.rd: Revised.
  • version 1.3.2.
2003-03-06 MUTOH Masao
  • Don't escape when charset is not given. Pointed out by UECHI Yasumasa.
2003-03-04 MUTOH Masao
  • BugFix not to escape EUC-JP.
  • Add a_conf.rb, a_conf.rhtml.
  • Remove i.a_conf.rhtml.
  • version 1.3.1.
2003-03-03 MUTOH Masao
  • Support "name|key:option" style.
  • Support my plugin style.
  • Support Japanese to option. You need to charset to the dictionary(default:euc).
  • version 1.3.0 as a tDiary standart plugin.
2003-01-02 MUTOH Masao
  • Support tDiary-1.5.x.
2002-05-08 MUTOH Masao
  • Bugfix when set url only.
  • version 1.2.1
2002-05-05 MUTOH Masao
  • Add @options["a.tlink"].
  • Update the documentation.
  • version 1.2.0
2002-05-01 MUTOH Masao
  • Code clean up.
  • @data_path/cache/a.dat set as default path for dictionary.
  • Add Configuration CGI(a_conf.rb, a_conf.rhtml, i.a_conf.rhtml).
  • Add navi_a.
  • version 1.1.0
2002-03-29 MUTOH Masao
  • version 1.0.0
更新日時:2004/09/26 11:06:24
キーワード:
参照:[tDiary関係] [アンカー自動生成キーワード表示プラグイン]