**[[質問箱4/538]] [#vbfd20af]
#author("2018-03-11T20:53:52+09:00;2009-12-26T13:45:38+09:00","","")
**[[質問箱/4538]] [#vbfd20af]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|行頭に空白文字が入っている行の文字列にリンクを設定したい|
|~バージョン|1.4.7|
|~投稿者|[[godzilla]]|
|~状態|完了|
|~投稿日|&new{2009-12-13 (日) 01:02:14};|
***質問 [#o945ddc5]
コードリーディングのツールとして利用しているのですが、インデントして行頭に空白文字が1つでも入っているとその行の文字列にリンクを設定できません。~
例)
 int main(){
     struct [[file]] *files;

上記例のようにfileにリンクを設定してfile構造体を定義しているページへ飛べるようにしたいのですが [[file]] として表示されてしまいます。しかたないので、次の行の先頭に別途リンクの設定をしていますが、都度同じ文字列が出てくるので全体が間延びして見にくくなってしまいます。何かよい方法があればご紹介ください。

***回答 [#o1f7c39f]
- [[整形済みテキスト>整形ルール#g72f3a72]] は整形のルールを一切適用しないので、そうなります。&br;[[dev:PukiWiki/1.4/ちょっと便利に/インライン要素が展開される整形済みテキスト行]] を使うとか?ただし、リンク以外の[[インライン要素>整形ルール#l7110f11]] に見えるものにもルールが適用されてしまうとか、行頭に# をいちいち付けないといけないとか、長所ばかりでもないんですが・・・ --  &new{2009-12-13 (日) 10:40:28};
- 副作用がありそうですが・・・ (^^; -- [[teanan]] &new{2009-12-13 (日) 22:57:20};
 --- convert_html.php.orig       Sat May 13 16:29:58 2006
 +++ convert_html.php    Sun Dec 13 22:59:18 2009
 @@ -743,7 +743,8 @@
 
         function toString()
         {
 -               return $this->wrap(join("\n", $this->elements), 'pre');
 +               $string = make_link(join("\n", $this->elements));
 +               return $this->wrap($string, 'pre');
         }
  }
- お二方有難うございます。teananさんのpatchを取り入れたのですが、エイリアスが使えません。ここの例では、示していなかったのですが、構造体のタグ名、変数名と関数名を区別する意図もあって[ [エイリアス名>ページ名] ]としていました。何か方法があるようでしたらご紹介ください。phpをさわれればよいのですが、pukiwikiでページを作りかけたばかりでpukiwikiもphpも全くわかっていない素人です。 -- [[godzilla]] &new{2009-12-14 (月) 23:40:01};
- teanan さ~ん。Pre クラスはデータの取り込み時に、[[htmlspecialchars()>PHP関数:htmlspecialchars]] してますよ~。
 class Pre extends Element
 {
 	function Pre(& $root, $text)
 	{
 		global $preformat_ltrim;
 		parent::Element();
 		$this->elements[] = htmlspecialchars(
 			(! $preformat_ltrim || $text == '' || $text{0} != ' ') ? $text : substr($text, 1));
 	}
「> → >」変換されたせいで、エイリアスが効かなくなっていそう。(そのまま表示するには、セキュリティ的に必要な処理なんですが)&br;teanan さんのパッチをキャンセルして、上に挙げた部分を
 -		$this->elements[] = htmlspecialchars(
 +		$this->elements[] = make_link(
としたらどうですか? --  &new{2009-12-15 (火) 15:12:25};
-- 失礼いたしました、ご指摘の通りです((久々で忘れてしまっています(ノД`) ))。 -- [[teanan]] &new{2009-12-15 (火) 16:15:22};
- ありがとうございます。エイリアスが使えるようになりました。もう少し時間に余裕ができたならpukiwikiやってみようかなぁ... と思ったりしております。 --[[godzilla]] &new{2009-12-15 (火) 23:35:55};

//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2021 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.077 sec.

OSDN