ブロック要素のユーザー定義をプラグイン化†
- ページ: BugTrack
- 投稿者: reimy
- 優先順位: 重要
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2002-07-11 (木) 20:57:23
- バージョン:
メッセージ†
ユーザー定義のうち、RIGHT:やCENTER:などブロック要素のものはプラグイン化しないとダメ。
プラグイン化しないと、<p>~<p>の中に埋め込まれてしまうため。
なお、表組み(table)の中では従来通りRIGHT:やCENTER:が使用できる。
サンプル(align.inc.php)
<?
// $id$
function plugin_align_convert()
{
if(func_num_args()!=2) {
return;
}
$aryargs = func_get_args();
$string = htmlspecialchars($aryargs[1]);
$string = inline2($string);
$align = strtoupper($aryargs[0]);
if($align == 'R' || $align == 'RIGHT') {
$align = 'right';
}
elseif($align == 'C' || $align == 'CENTER') {
$align = 'center';
}
else {
$align = 'left';
}
return "<div style=\"text-align:$align\">$string</div>";
}
? >
これはサンプルで、実用のためには$stringにWikiName、BracketName、ユーザー定義や画像のURLなどが含まれている場合の処理などが必要となります、対象文字列内に注釈とユーザー定義のうちソースを直接書き換えるもの(now?など)は入れることはできません。COLORやSIZEのようなユーザー定義は大丈夫です。
同様に、ユーザー定義でブロック要素を定義している場合は、プラグイン化する必要があります。
- ユーザー定義ルールもブロックとして判定するものとインラインのものと2種類を用意する必要があるのかもしれません。 -- kawara 2002-07-12 (金) 11:44:15
- とりあえずWikiNameやユーザー定義などのインライン要素の変換はhtml.phpのinline2関数を呼び出して対応。まだ注釈は未対応(^^;; -- reimy 2002-07-15 (月) 03:45:52
- align.inc.phpは自作プラグインのページに掲載 -- reimy 2002-07-21 (日) 20:51:35
- どうします?これ。プラグインに入れますか?文法拡張しますか?ブロックユーザ定義ルール作りますか? -- ゆう 2002-07-22 (月) 00:45:19
- できれば本体で処理してほしいです(プラグインでは日時置換文字や注釈には対応できないため)。本体で対応する場合は、#imgの機能も本体に含めるといいでしょう。 -- reimy 2002-07-22 (月) 01:11:20
- ついでに#anchorプラグインのインライン化もお願いします。インライン化しない限り、使い物にならないので… -- reimy 2002-07-22 (月) 01:26:48
- これは今後書式にいくんですよね。というわけで保留に。 -- ゆう 2002-08-05 (月) 19:19:57
- 一行はspanでブロックはdivで一段落をPでばっちりだと思います -- kyo 2002-08-22 (木) 15:26:48
- LEFT/CENTER/RIGHTをconvert_html()に組み込んでみました。(cvs:html.php,cvs:pukiwiki.ini.php) -- ぱんだ 2002-12-02 (月) 10:15:58
- CENTER:fuga