From aec65c36c6517b4b29aab53d4ca0f8be6b30d03a Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sun, 11 Oct 2026 03:10:35 +0900 Subject: [PATCH] #425 --- .../app/services/tag_group_markdown_renderer.rb | 14 +++++++++----- backend/spec/requests/tag_group_markdown_spec.rb | 14 +++++++------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/backend/app/services/tag_group_markdown_renderer.rb b/backend/app/services/tag_group_markdown_renderer.rb index 99ba2fe..75b08c0 100644 --- a/backend/app/services/tag_group_markdown_renderer.rb +++ b/backend/app/services/tag_group_markdown_renderer.rb @@ -15,7 +15,9 @@ class TagGroupMarkdownRenderer placements = @group.fetch('placements') validate_membership!(placements) blocks = [] - blocks << clean_text(@group['description']) if @group['description'].present? + if @group['description'].present? + blocks << clean_text(@group['description']) + end sections = placements.select { _1.key?('section_name') } if sections.any? && sections.size != placements.size @@ -24,7 +26,7 @@ class TagGroupMarkdownRenderer end if placements.all? { _1.key?('section_name') } - blocks.concat(placements.map { render_heading(_1, 1) }) + blocks.concat(placements.map { render_heading(_1, 2) }) else blocks << render_list(placements, 0) end @@ -36,15 +38,17 @@ class TagGroupMarkdownRenderer def validate_membership! placements placed = placement_members(placements).uniq.sort - members = @group.fetch('members').map do |member| + members = @group.fetch('members').map { |member| if member['tag'] ['tag', member.fetch('tag').fetch('id')] else ['tag_group', member.fetch('tag_group').fetch('id')] end - end.uniq.sort + }.uniq.sort missing = members - placed - raise UnsupportedStructure, '掲載位置のない membership は Markdown にできません.' if missing.any? + if missing.any? + raise UnsupportedStructure, '掲載位置のない membership は Markdown にできません.' + end end def placement_members nodes diff --git a/backend/spec/requests/tag_group_markdown_spec.rb b/backend/spec/requests/tag_group_markdown_spec.rb index 8a06381..68cc37b 100644 --- a/backend/spec/requests/tag_group_markdown_spec.rb +++ b/backend/spec/requests/tag_group_markdown_spec.rb @@ -6,7 +6,7 @@ RSpec.describe 'Tag group Markdown round trips through the Wiki facade', type: : let!(:user) { create_member_user! } let!(:series) { group_tag('ぼざろクリーチャーシリーズ') } let!(:deer) { group_tag('洗澡鹿') } - let!(:nijika) { group_tag('伊地知ニジカ') } + let!(:nizika) { group_tag('伊地知ニジカ') } let!(:wanted) { group_tag('タグ希望') } let!(:character) { group_tag('キャラクター名希望') } let!(:music) { group_tag('楽曲情報希望') } @@ -58,9 +58,9 @@ RSpec.describe 'Tag group Markdown round trips through the Wiki facade', type: : it 'renders a child Tag Group distinctly from its parent Tags' do check_round_trip( - members: [tag_member(series), tag_member(nijika), + members: [tag_member(series), tag_member(nizika), { 'tag_group_id' => child_id, 'version_no' => 1 }], - placements: [tag_node(series, [tag_node(nijika, [ + placements: [tag_node(series, [tag_node(nizika, [ { 'tag_group_id' => child_id, 'children' => [] }])])], markdown: <<~MARKDOWN) - ぼざろクリーチャーシリーズ @@ -81,14 +81,14 @@ RSpec.describe 'Tag group Markdown round trips through the Wiki facade', type: : markdown: <<~MARKDOWN) 全体の説明 - # 要求 + ## 要求 要求の説明 - タグ希望 - キャラクター名希望 - 楽曲情報希望 - # 情報 + ## 情報 - bot操作 - ニジラー情報不詳 MARKDOWN @@ -103,12 +103,12 @@ RSpec.describe 'Tag group Markdown round trips through the Wiki facade', type: : { 'section_name' => '子', 'description' => '子の説明', 'children' => [tag_node(deer)] }] }], markdown: <<~MARKDOWN) - # 親 + ## 親 親の説明 - 洗澡鹿 - ## 子 + ### 子 子の説明 - 洗澡鹿