Skip to content

meta description の改行由来の空白とブラケットリンクを整形する#219

Merged
znz merged 1 commit into
rurema:masterfrom
znz:meta-description-plain-text
Jul 11, 2026
Merged

meta description の改行由来の空白とブラケットリンクを整形する#219
znz merged 1 commit into
rurema:masterfrom
znz:meta-description-plain-text

Conversation

@znz

@znz znz commented Jul 11, 2026

Copy link
Copy Markdown
Member

解決したい問題

Fixes #131
Fixes #52

Entry#description の値は各ページの <meta name="description"> にそのまま入りますが、
2つの問題が残っていました。

変更内容

Entry#description_text を追加し、class / library / doc / method / function の各
description で共通に通すようにしました。

  1. 各行を strip して連結し、非 ASCII 文字間の改行は削除(Truncate newline between non-ASCII characters #61 の本文と同じ規則)。
    連続する日本語行もすべて連結されるよう後読みではなく先読みでマッチします
  2. 残った改行(ASCII 語境界)は空白1つに変換
  3. ブラケットリンクはリンク先名のみのプレーンテキストに変換
    ([[m:URI::Generic#host]]URI::Generic#host[[m:String#[] ]]String#[])

md ソース DB では従来どおり MarkdownToRRD.restore_description で rd インライン形式に
戻した後に同じ整形を適用します(display_text 経由)。

動作確認

issue #131 の実例を rd / markdown 両ソースの検証 DB で確認:

=== db-refe-md (source_format=markdown)
"自身の hostname を文字列で返します。また、URI::Generic#host が設定されていない場合は nil を返します。"
=== db-refe-rd (source_format=rd)
"自身の hostname を文字列で返します。また、URI::Generic#host が設定されていない場合は nil を返します。"

テスト

  • test/test_entry.rbTestEntryDescription を追加(CJK 改行連結・連続行・ASCII 境界の空白化・ブラケットリンク・インデクサ表記・メソッド description の6ケース)
  • ruby test/run_test.rb 全件パス(17560 tests)
  • sig/bitclust/entry.rbs に新規メソッドのシグネチャを追記

🤖 Generated with Claude Code

Entry#description が返すテキストは <meta name="description"> にそのまま
入るが、ソース由来の改行とブラケットリンク記法が未整形のまま残っていた。

- 非 ASCII 文字間の改行は削除(rurema#61 の本文と同じ規則。ブラウザや SNS の
  プレビューで日本語文中に不自然な空白として見えるため)
- 残りの改行は空白1つに変換
- [[m:URI::Generic#host]] などのブラケットリンクはリンク先名のみの
  プレーンテキストにする

class/library/doc/method/function の各 description で共通の
Entry#description_text を通すようにした。

Fixes rurema#131
Fixes rurema#52

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@znz znz merged commit f328a47 into rurema:master Jul 11, 2026
9 checks passed
@znz znz deleted the meta-description-plain-text branch July 11, 2026 04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

メタタグのdescriptionでも、改行による不要な空白を取り除きたい metaタグ内が未整形のまま表示される

1 participant