禁則文字の制定とサニタイズ #281

閉鎖
みてるぞ2026-03-06 12:50:06 +09:00に作成 · 2件のコメント
オーナー

まづ,以下の 2 文字を禁則文字と制定する:

  • *
  • ?

この 2 文字は検索のためのワイルドカードとして用ゐられるため,タグ名としての使用を禁止する(外部タグ含む).

また,以下のパターンも禁ずる:

  • /
  • 2 文字以上連続する _
  • 先頭および末尾の _

すでに使用されてゐるタグには以下のサニタイズを行ふ:

  1. 既存の *_ に置換
  2. 既存の ?_ に置換
  3. 連続する _ を 1 文字の _ に置換
  4. 先頭および末尾の _ を削除(外部タグの場合はプレフィクスを外して考へる)
  5. この結果,空文字列となった場合は名称を null に設定

複数のタグと競合する場合は統合を行ふ.

また,ニコニコ連携の処理においても上記の変換を行ふものとする.

まづ,以下の 2 文字を禁則文字と制定する: - `*` - `?` この 2 文字は検索のためのワイルドカードとして用ゐられるため,タグ名としての使用を禁止する(外部タグ含む). また,以下のパターンも禁ずる: - `/` - 2 文字以上連続する `_` - 先頭および末尾の `_` すでに使用されてゐるタグには以下のサニタイズを行ふ: 1. 既存の `*` を `_` に置換 2. 既存の `?` を `_` に置換 3. 連続する `_` を 1 文字の `_` に置換 4. 先頭および末尾の `_` を削除(外部タグの場合はプレフィクスを外して考へる) 5. この結果,空文字列となった場合は名称を `null` に設定 複数のタグと競合する場合は統合を行ふ. **また,ニコニコ連携の処理においても上記の変換を行ふものとする.**
みてるぞ がラベル area/backendtype/enhancementP1status/ready を追加 2026-03-06 12:50:06 +09:00
みてるぞ がラベル status/blocked を追加, status/ready を除去 2026-03-07 07:40:46 +09:00
みてるぞ がタイトルを 禁則文字の制定とマイグレーション から 禁則文字の制定とクレンジング に変更 2026-03-07 07:41:29 +09:00
みてるぞ が新しい依存関係を追加 2026-03-08 15:24:59 +09:00
みてるぞ が新しい依存関係を追加 2026-03-08 15:25:26 +09:00
みてるぞ がラベル status/ready を追加, status/blocked を除去 2026-03-08 16:26:14 +09:00
みてるぞ がラベル P0 を追加, P1 を除去 2026-03-08 23:27:07 +09:00
みてるぞ が新しい依存関係を追加 2026-03-08 23:27:32 +09:00
みてるぞ がタイトルを 禁則文字の制定とクレンジング から 禁則文字の制定とサニタイズ に変更 2026-03-08 23:57:58 +09:00
作成者
オーナー
class << self
  def apply!
    TagName.find_each do |tn|
      name = sanitise(tn.name)
      next if name == tn.name

      tn.update_columns(name:, updated_at: Time.current)
    end
  end

  private

  def sanitise name
    order(:priority).reduce(name.dup) do |value, tnsr|
      value.gsub(Regexp.new(tnsr.source_pattern), tnsr.replacement)
    end
  end
end
``` class << self def apply!   TagName.find_each do |tn|   name = sanitise(tn.name)   next if name == tn.name   tn.update_columns(name:, updated_at: Time.current)   end end private def sanitise name   order(:priority).reduce(name.dup) do |value, tnsr|    value.gsub(Regexp.new(tnsr.source_pattern), tnsr.replacement)  end end end
みてるぞ がラベル status/in-progress を追加, status/ready を除去 2026-03-09 12:31:37 +09:00
みてるぞ が作業を開始 2026-03-09 12:31:39 +09:00
みてるぞ2h 20min 34s の作業を終了 2026-03-09 14:52:13 +09:00
みてるぞ が作業を開始 2026-03-09 16:19:03 +09:00
みてるぞ16min 24s の作業を終了 2026-03-09 16:35:27 +09:00
みてるぞ が作業を開始 2026-03-09 17:33:12 +09:00
みてるぞ1h 36min 1s の作業を終了 2026-03-09 19:09:13 +09:00
みてるぞ が作業を開始 2026-03-09 19:42:20 +09:00
みてるぞ42min 15s の作業を終了 2026-03-09 20:24:35 +09:00
みてるぞ がコミットでこの課題を参照 2026-03-10 22:35:11 +09:00
みてるぞ がラベル status/blocked を追加, status/in-progress を除去 2026-03-10 22:35:21 +09:00
みてるぞ が新しい依存関係を追加 2026-03-10 22:53:50 +09:00
みてるぞ がラベル status/in-progress を追加, status/blocked を除去 2026-03-11 22:56:46 +09:00
作成者
オーナー

tag_nameswiki_pages も Discardable にしたい.

`tag_names` と `wiki_pages` も Discardable にしたい.
みてるぞ がコミットでこの課題を参照 2026-03-12 00:46:22 +09:00
みてるぞ が作業を開始 2026-03-12 19:07:01 +09:00
みてるぞ がタイム・トラッキングを中止 2026-03-12 19:07:13 +09:00
みてるぞ がコミットでこの課題を参照 2026-03-12 21:41:29 +09:00
みてるぞ がラベル P0status/in-progress を除去 2026-03-12 22:07:58 +09:00
サインインしてこの会話に参加.
1 人の参加者
通知
かかった時間の合計: 4 hours 55 minutes
みてるぞ
4 hours 55 minutes
期日
期日は設定されてゐません.
ブロック対象 依存先
リファレンス: miteruzo/btrc-hub#281