質問箱/4538

カテゴリ
サマリ行頭に空白文字が入っている行の文字列にリンクを設定したい
バージョン1.4.7
投稿者godzilla?
状態完了
投稿日2009-12-13 (日) 01:02:14

質問

コードリーディングのツールとして利用しているのですが、インデントして行頭に空白文字が1つでも入っているとその行の文字列にリンクを設定できません。
例)

int main(){
    struct [[file]] *files;

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

回答

  • 整形済みテキスト は整形のルールを一切適用しないので、そうなります。
    dev:PukiWiki/1.4/ちょっと便利に/インライン要素が展開される整形済みテキスト行 を使うとか?ただし、リンク以外のインライン要素 に見えるものにもルールが適用されてしまうとか、行頭に# をいちいち付けないといけないとか、長所ばかりでもないんですが・・・ -- 2009-12-13 (日) 10:40:28
  • 副作用がありそうですが・・・ (^^; -- teanan 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? 2009-12-14 (月) 23:40:01
  • teanan さ~ん。Pre クラスはデータの取り込み時に、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));
    	}
    「> → >」変換されたせいで、エイリアスが効かなくなっていそう。(そのまま表示するには、セキュリティ的に必要な処理なんですが)
    teanan さんのパッチをキャンセルして、上に挙げた部分を
    -		$this->elements[] = htmlspecialchars(
    +		$this->elements[] = make_link(
    としたらどうですか? -- 2009-12-15 (火) 15:12:25
    • 失礼いたしました、ご指摘の通りです*1。 -- teanan 2009-12-15 (火) 16:15:22
  • ありがとうございます。エイリアスが使えるようになりました。もう少し時間に余裕ができたならpukiwikiやってみようかなぁ... と思ったりしております。 --godzilla? 2009-12-15 (火) 23:35:55

*1 久々で忘れてしまっています(ノД`)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-26 (土) 13:45:38
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.364 sec.

OSDN