Twitterユーザー名に自動リンクして出力するグローバルフィルターを提供するプラグイン
Twitterユーザー名は自動リンクにしてほしいかも、ということでそういったフィルターをかけられるプラグインを作ってみました。
参考にしましたのは、以下のエントリからです。
プラグインにしてみたら面白そうにおもえたので作成してみることにしました。
どんな実装にするか?
- Markdown や改行を変換などの記法に関係なくモディファイア指定した箇所を反映するようにする
- ブログ単位でプラグインの設定画面を使って詳細設定可能にする
- Link target をなしにするか _blank をつけるか
- class 名(twitter-anywhere-user)をつけるかつけないか
- テキスト中に自動リンクさせたくないときの方法をサポートする
ダウンロード
動作確認は、MTOS 5.14-ja を使用しました。
- markdiarycom / TwUserLinky / -- Bitbucket
- https://bitbucket.org/markdiarycom/twuserlinky/get/default.zip
簡単な使い方
展開後のフォルダをpluginsディレクトリにアップロードします
システムのプラグイン一覧に、TwUserLinky が表示されていれば使える状態になっています
反映させたい箇所に、
TwUserLink="1"
というモディファイアをつけます。
例: MT:EntryBody など
<$mt:EntryBody TwUserLink="1"$>
使用とエスケープの方法
EntryBodyにこのモディファイアを適用した場合は、ブログエントリ内に@ユーザー名といったように記述するだけです。
.@bizという記述は@bizという形での出力となります。
なお、リンクURIはスキーマ省略した//twitter.com/をベースとして出力します。
片っ端から自動変換されると、本来変換されるべきでないところにまでTwitterへのリンクがついてしまいます。エスケープしたいときに、@の前にピリオド(.)かあるいはバックスラッシュ(\) を置いて記述すれば、そこはリンクさせないようにしてあります。
設定について
設定は各ブログのプラグイン設定よりおこなうことができます。
必要なものに対して、チェックをいれます。
今のところ設定可能なのは、以下の2点です。
- リンクを新規ウィンドウで開くか (デフォルトは別ウィンドウで開かない)
- リンクにclass (class="twitter-anywhere-user")をつけるか (デフォルトはclassをつける)
リッチテキストモードでの注意点
@の次にspan、code 等インライン要素で囲んである場合、リッチテキスト側に.\(コロン、バックスラッシュ)でエスケープしても、正しく解釈しません。
HTML表示のほうにして、タグの内部(Twitterユーザーのテキストの@の前)でエスケープするようにしてください。
アップデート
2013/07/10 分かち書き(単語の前後に半角スペースを挿入)で出力できるオプションを追加しました。プラグイン設定をラジオボタンに変更しました。
2015/03/02 リッチテキストモードでの注意点を書きました。
Trackbacks:0
- TrackBack URL for this entry
- https://www.markdiary.com/mt/app-pingback.cgi/80
- Listed below are links to weblogs that reference
- Twitterユーザー名に自動リンクして出力するグローバルフィルターを提供するプラグイン from maRk lab
Comments:0