BugTrack/308
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*アンカー名重複を防ぐためにも、見出しタイトル出力で自動的...
-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 低
-状態: 完了
-カテゴリー: 本体新機能
-投稿日: 2003-04-24 (木) 01:03:44
-バージョン:
**メッセージ [#b56851b8]
[[BugTrack/285]]関連。
*、**、***で自動的に固定的なアンカーを出力してほしい。
手動でアンカーを付けると、#calendar_viewなどで複数ページ...
その場合、*、**、***で指定したタイトル全体を<a>タイトル</...
&aname(hoge);ではなく&aname(hoge){hogehoge};形式...
----
-見出し全体を<a>~</a>で囲んでしまうと、見出しの中でWikiN...
--そうしないと第三者にアンカーの存在がわかりません。もし...
-とりあえず第一案です。 -- [[ぱんだ]] &new{2003-04-24 (木...
++ページの更新時に(now ?などの置換と同時期に)見出し行に固...
file.php/make_str_rules()
// 日付・時刻置換処理
foreach ($arr as $str)
{
if ($str != '' and $str{0} != ' ' and $str{0} != "\t")
{
foreach ($str_rules as $rule => $replace)
{
$str = preg_replace("/$rule/",$replace,$str);
}
}
+ // 見出しに固有IDを付与する
+ if (preg_match('/^(\*{1,3}(.(?!\[#[A-Za-z][\w-]+\]))+...
+ {
+ $anchor = md5(uniqid($matches[2],1));
+ $str = rtrim($matches[1])." [#A$anchor]\n";
+ }
$retvars[] = $str;
}
---md5()の出力をそのまま使っているので、妙に長い(32+1桁)...
---未来永劫絶対にユニークである、とは断言できないですが、...
---アンカーにしたい文字列を手動で[ #hogehoge]書いておくこ...
++コンバート時置換ルールに、上記IDをアンカーに置換するル...
default.ini.php,i_mode.ini.php,jphone.ini.phpなど
'#related' => '<del>#related</del>',
+'\[#([A-Za-z][\w-]+)\]' => '<a class="anchor" id="$1" h...
---ユーザ定義ルールなので、ページのどこに書いてあっても置...
++おまけ CSS .anchorを定義
default.ja.css,default.en.css
+.anchor
+{
+ font-size:xx-small;
+ vertical-align:super;
+}
-これだと''#contentsや#ls2の出力にも † が出力''さ...
--ちょっと#contentsと#ls2の暫定対処。インチキっぽいやり方...
~convert_html 800行めあたり
// 行頭\nで整形済みを表す ... X(
+ $text = preg_replace("/\s\[#[A-Za-z][\w-]+\]/",'',$te...
$text = "\n<a href=\"#$id\">".strip_htmltag(inline2(i...
~ls2.inc.php 195行めあたり
// array_push($params['result'], '<li>'.$s_title
// .'<a href="'.$href.LS2_CONTENT_HEAD.$anchor.'">'.$...
+ $s_title = preg_replace("/\s\&dagger\;$/",'',$s_title...
array_push($params['result'], '<li><a href="'.$href.L...
$s_title.'</a>'
-主眼とする部分(固有番号のアンカー設定)は暫定解決したので...
----
-それとアンカーにhrefで設定する飛び先は単純に#hogehogeで...
--そうするとconvert_html内で何とかするしかないですね。現...
-第二案を添付します。 %%308.diff.2%%(現在、このファイル...
--33桁はあまりにも長いので、固有IDを8桁(ランダムな英字1文...
--固有ID部のHTML化にaname.inc.phpを使用するようにしました...
--ls2.inc.php内で固有ID部を削除するようにしました。
-第二案に変えたら、#contentsで再び † が表示される...
--ということで、再び#contentsの泥縄的対策。 -- [[reimy]] ...
~convert_html 800行あたり
function Contents_UList($text,$id,$level,$id)
{
+ if (preg_match('/^(.*)\&aname\(.*\)\{.*\}\;(.*)$/',$...
+ {
+ $text = $matches[1].$matches[2];
+ }
// テキストのリフォーム
// 行頭\nで整形済みを表す ... X(
-第二案がいいですね。#contents対策が終われば、cvs行きかな...
-ついでに#contentsの<a>~</a>の間の無駄な空白を省く。 -- ...
~convert_html.php 809行めあたり
// テキストのリフォーム
// 行頭\nで整形済みを表す ... X(
- $text = "\n<a href=\"#$id\">".strip_htmltag(inline2...
+ $text = "\n<a href=\"#$id\">".trim(strip_htmltag(in...
parent::ListContainer('ul', 'li', --$level, $text);
}
-cvsに投入しました。 -- [[ぱんだ]] &new{2003-04-26 (土) 1...
--pukiwiki.ini.phpに、以下の設定を追加しました。
/////////////////////////////////////////////////
// 見出し行に固有のアンカーを自動挿入する
$fixed_heading_anchor = 0;
--[[cvs:pukiwiki.ini.php]](v1.4:r1.35)
--[[cvs:file.php]](v1.4:r1.18)
--[[cvs:convert_html.php]](v1.4:r1.32)
--[[cvs:skin/default.en.css]](v1.4:r1.17)
--[[cvs:skin/default.ja.css]](v1.4:r1.18)
--[[cvs:plugin/ls2.inc.php]](v1.4:r1.11)
--[[cvs:plugin/aname.inc.php]](v1.4:r1.12)
-いただきました。#contentsの処理もスマートになってる&hear...
-ついでに#contentsや#ls2での飛び先も固定アンカーを使うよ...
-[[BugTrack2/96]] アンカーIDの重複する可能性について -- ...
//#comment
終了行:
*アンカー名重複を防ぐためにも、見出しタイトル出力で自動的...
-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 低
-状態: 完了
-カテゴリー: 本体新機能
-投稿日: 2003-04-24 (木) 01:03:44
-バージョン:
**メッセージ [#b56851b8]
[[BugTrack/285]]関連。
*、**、***で自動的に固定的なアンカーを出力してほしい。
手動でアンカーを付けると、#calendar_viewなどで複数ページ...
その場合、*、**、***で指定したタイトル全体を<a>タイトル</...
&aname(hoge);ではなく&aname(hoge){hogehoge};形式...
----
-見出し全体を<a>~</a>で囲んでしまうと、見出しの中でWikiN...
--そうしないと第三者にアンカーの存在がわかりません。もし...
-とりあえず第一案です。 -- [[ぱんだ]] &new{2003-04-24 (木...
++ページの更新時に(now ?などの置換と同時期に)見出し行に固...
file.php/make_str_rules()
// 日付・時刻置換処理
foreach ($arr as $str)
{
if ($str != '' and $str{0} != ' ' and $str{0} != "\t")
{
foreach ($str_rules as $rule => $replace)
{
$str = preg_replace("/$rule/",$replace,$str);
}
}
+ // 見出しに固有IDを付与する
+ if (preg_match('/^(\*{1,3}(.(?!\[#[A-Za-z][\w-]+\]))+...
+ {
+ $anchor = md5(uniqid($matches[2],1));
+ $str = rtrim($matches[1])." [#A$anchor]\n";
+ }
$retvars[] = $str;
}
---md5()の出力をそのまま使っているので、妙に長い(32+1桁)...
---未来永劫絶対にユニークである、とは断言できないですが、...
---アンカーにしたい文字列を手動で[ #hogehoge]書いておくこ...
++コンバート時置換ルールに、上記IDをアンカーに置換するル...
default.ini.php,i_mode.ini.php,jphone.ini.phpなど
'#related' => '<del>#related</del>',
+'\[#([A-Za-z][\w-]+)\]' => '<a class="anchor" id="$1" h...
---ユーザ定義ルールなので、ページのどこに書いてあっても置...
++おまけ CSS .anchorを定義
default.ja.css,default.en.css
+.anchor
+{
+ font-size:xx-small;
+ vertical-align:super;
+}
-これだと''#contentsや#ls2の出力にも † が出力''さ...
--ちょっと#contentsと#ls2の暫定対処。インチキっぽいやり方...
~convert_html 800行めあたり
// 行頭\nで整形済みを表す ... X(
+ $text = preg_replace("/\s\[#[A-Za-z][\w-]+\]/",'',$te...
$text = "\n<a href=\"#$id\">".strip_htmltag(inline2(i...
~ls2.inc.php 195行めあたり
// array_push($params['result'], '<li>'.$s_title
// .'<a href="'.$href.LS2_CONTENT_HEAD.$anchor.'">'.$...
+ $s_title = preg_replace("/\s\&dagger\;$/",'',$s_title...
array_push($params['result'], '<li><a href="'.$href.L...
$s_title.'</a>'
-主眼とする部分(固有番号のアンカー設定)は暫定解決したので...
----
-それとアンカーにhrefで設定する飛び先は単純に#hogehogeで...
--そうするとconvert_html内で何とかするしかないですね。現...
-第二案を添付します。 %%308.diff.2%%(現在、このファイル...
--33桁はあまりにも長いので、固有IDを8桁(ランダムな英字1文...
--固有ID部のHTML化にaname.inc.phpを使用するようにしました...
--ls2.inc.php内で固有ID部を削除するようにしました。
-第二案に変えたら、#contentsで再び † が表示される...
--ということで、再び#contentsの泥縄的対策。 -- [[reimy]] ...
~convert_html 800行あたり
function Contents_UList($text,$id,$level,$id)
{
+ if (preg_match('/^(.*)\&aname\(.*\)\{.*\}\;(.*)$/',$...
+ {
+ $text = $matches[1].$matches[2];
+ }
// テキストのリフォーム
// 行頭\nで整形済みを表す ... X(
-第二案がいいですね。#contents対策が終われば、cvs行きかな...
-ついでに#contentsの<a>~</a>の間の無駄な空白を省く。 -- ...
~convert_html.php 809行めあたり
// テキストのリフォーム
// 行頭\nで整形済みを表す ... X(
- $text = "\n<a href=\"#$id\">".strip_htmltag(inline2...
+ $text = "\n<a href=\"#$id\">".trim(strip_htmltag(in...
parent::ListContainer('ul', 'li', --$level, $text);
}
-cvsに投入しました。 -- [[ぱんだ]] &new{2003-04-26 (土) 1...
--pukiwiki.ini.phpに、以下の設定を追加しました。
/////////////////////////////////////////////////
// 見出し行に固有のアンカーを自動挿入する
$fixed_heading_anchor = 0;
--[[cvs:pukiwiki.ini.php]](v1.4:r1.35)
--[[cvs:file.php]](v1.4:r1.18)
--[[cvs:convert_html.php]](v1.4:r1.32)
--[[cvs:skin/default.en.css]](v1.4:r1.17)
--[[cvs:skin/default.ja.css]](v1.4:r1.18)
--[[cvs:plugin/ls2.inc.php]](v1.4:r1.11)
--[[cvs:plugin/aname.inc.php]](v1.4:r1.12)
-いただきました。#contentsの処理もスマートになってる&hear...
-ついでに#contentsや#ls2での飛び先も固定アンカーを使うよ...
-[[BugTrack2/96]] アンカーIDの重複する可能性について -- ...
//#comment
ページ名: