Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Broken html when crossref matches `#<` without linking `<`

クローズ
#1,743 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
58/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
ruby
領域
documentation

調査の方向性

lib/rdoc/markup/formatter.rb の handle_regexp_CROSSREF から始め、issue の例を使って RDoc::CrossReference::CROSSREF_REGEXP と比較してください。相互参照がスペースで始まる場合でも、生成された Encoding::Converter のドキュメントに壊れた HTML が含まれなくなっていることを確認し、意図した参照が引き続き正しくリンクされることを確認してください。

索引モデルが issue の本文から書いたものです。

説明

https://docs.ruby-lang.org/en/4.0/Encoding/Converter.html#method-i-convpath

<p>In the above example, [#&lt;Encoding:ISO-8859-1&gt;,
 <encoding:utf-8&gt;] means="" a="" converter="" from="" iso-8859-1="" to="" utf-8.="" “crlf_newline”="" newline="" lf="" crlf.<="" p="">
 </encoding:utf-8&gt;]>
</p>

Second #<Encoding with a leading space is matched:

"In the above example, [#<Encoding:ISO-8859-1>, #<Encoding:UTF-8>] means"
  .match(RDoc::CrossReference::CROSSREF_REGEXP, 2)

# => #<MatchData " #<" 1:"#<" 2:nil 3:nil 4:nil 5:"<" 6:nil>

"<" doesn't get linked by handle_regexp_CROSSREF and assigns handled as unescaped text "<" which breaks html:

https://github.com/ruby/rdoc/blob/d6422f499fb2961b91de400f48426fc6d3fa5b67/lib/rdoc/markup/formatter.rb#L113-L115

主要言語
Ruby
スター
927
フォーク
467
平均マージ
23時間 47分
マージ済み PR(30日)
12

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ruby/rdoc のほかの issue

ruby/rdoc の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。