このコミットが含まれているのは:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
# 親
|
||||
## 親
|
||||
親の説明
|
||||
|
||||
- 洗澡鹿
|
||||
|
||||
## 子
|
||||
### 子
|
||||
子の説明
|
||||
|
||||
- 洗澡鹿
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする