#author("2023-01-08T19:02:36+09:00;2023-01-08T18:58:53+09:00","","") #author("2023-01-09T10:32:27+09:00","","") * 行頭がタブでも整形済テキストになる+タブが除去されない [#af402a93] - ページ: [[BugTrack]] - 投稿者: [[ぬぺぺ]] - 優先順位: 低 - 状態: 提案 - カテゴリー: 本体バグ - 投稿日: 2022-12-30 (金) 13:32:14 - バージョン: 1.5.4 ** メッセージ [#k43cf058] [[FormattingRules#g72f3a72]]では 行頭が半角空白で始まる行は整形済みテキストとなります。 と記載がありますが、実際には行頭がタブでも整形済テキストになります。 行頭はタブでも良いと思うので、FormattingRules#g72f3a72 を訂正した方が良いんじゃないでしょうか。 ***おまけの問題 [#g728ea61] 半角空白でスタートする整形済テキストはその半角空白が除去されますが、タブスタートの整形済テキストは行頭のタブが除去されません。 例1:半角空白スタート 例2:タブスタート (半角スペースとタブを混ぜてもひと続きの整形済テキストになるの気持ち悪いですね…笑) ***該当部分 [#eb656507] convert_html.php L780 // ' 'Space-beginning sentence // ' 'Space-beginning sentence // ' 'Space-beginning sentence class Pre extends Element { function Pre(& $root, $text) { $this->__construct($root, $text); } function __construct(& $root, $text) { global $preformat_ltrim; parent::__construct(); $this->elements[] = htmlsc( (! $preformat_ltrim || $text == '' || $text[0] != ' ') ? $text : substr($text, 1)); } // : // 略 // : } タブ文字が $text[0] != ' ' に引っかかって $text がそのまま出力されています。 convert_html.php L955あたり // The first character $head = $line[0]; // : // 略 // : // Pre if ($head == ' ' || $head == "\t") { $this->last = & $this->last->add(new Pre($this, $line)); continue; } 明確にタブ文字スタート行が整形済テキストだと扱われています。 -------- - 指摘ありがとうございます。これはドキュメントを変えたほうがいいですね。タブと空白の挙動の違い (タブが除去されない) については、理想的には合わせた方がいいのですが、今から変えるのは影響が大きいのでこのままにしたいです -- [[umorigu]] &new{2023-01-08 (日) 18:58:53}; - ありがとうございます。割と重要度低めだとは思うのですが、よろしくお願いします。 -- [[ぬぺぺ]] &new{2023-01-09 (月) 10:32:27}; #comment