このコミットが含まれているのは:
2026-07-18 21:19:53 +09:00
コミット 1c906d7432
6個のファイルの変更140行の追加138行の削除
+8 -1
ファイルの表示
@@ -87,7 +87,7 @@ class PostCreatePlan
end
raise Tag::SectionLiteralParseError.new(raw_name, raw_name) if name.include?('[') || name.include?(']')
[TagName.canonicalise(name).first, category&.to_sym, sections]
[resolved_tag_name(name), category&.to_sym, sections]
end
def build_default_tag_specs direct_tag_specs
@@ -254,4 +254,11 @@ class PostCreatePlan
end
end
end
def resolved_tag_name name
tag_name = TagName.includes(:canonical).find_by(name:)
return name if tag_name.nil?
(tag_name.canonical || tag_name).name
end
end
+1 -7
ファイルの表示
@@ -126,7 +126,6 @@ class PostImportPreviewer
validate_basic_data(attributes, validation_errors)
validate_preview_tags(merged_tags(tag_sources, provenance['tags']),
validation_errors,
field_warnings,
known_tags)
validate_parents(attributes['parent_post_ids'], validation_errors, existing_parent_ids)
attributes.delete('url')
@@ -450,7 +449,7 @@ class PostImportPreviewer
[]
end
def validate_preview_tags raw, errors, field_warnings, known_tags
def validate_preview_tags raw, errors, known_tags
names = raw.to_s.split
return if names.empty?
if names.any? { _1.downcase.start_with?('nico:') }
@@ -462,11 +461,6 @@ class PostImportPreviewer
existing = parsed.filter_map { known_tags[_1] }
deprecated = existing.select(&:deprecated?).map(&:name)
errors[:tags] = ["廃止済みタグがあります: #{ deprecated.join(' ') }"] if deprecated.present?
known = existing.reject(&:deprecated?).map(&:name)
new_tags = parsed.uniq - known
if new_tags.present?
add_field_warning!(field_warnings, 'tags', "新規タグを作成します: #{ new_tags.join(' ') }")
end
rescue Tag::SectionLiteralParseError
errors[:tags] = ['タグ区間の記法が不正です.']
end
+2 -1
ファイルの表示
@@ -12,7 +12,7 @@ const PostImportTagLinks: FC<Props> = ({ tags }) => {
return null
return (
<div className="flex flex-wrap gap-2">
<div className="flex flex-wrap text-xs gap-x-1">
{tags.map (tag => {
const key = `${ tag.category }:${ tag.name }:${ tag.sectionLiterals?.join ('|') ?? '' }`
return (
@@ -21,6 +21,7 @@ const PostImportTagLinks: FC<Props> = ({ tags }) => {
tag={{
name: tag.name,
category: tag.category }}
linkFlg={false}
withWiki={false}
withCount={false}/>
{tag.sectionLiterals?.map (literal => (
+1 -1
ファイルの表示
@@ -1,5 +1,5 @@
const POST_NEW_REVIEW_PATH_PREFIX = '/posts/new?urls='
const MAX_POST_NEW_REVIEW_TARGET_BYTES = 4096
const MAX_POST_NEW_REVIEW_TARGET_BYTES = 6_144
const textEncoder = new TextEncoder ()
+1 -1
ファイルの表示
@@ -96,7 +96,7 @@ export const UnsavedChangesGuardProvider: FC<PropsWithChildren> = ({ children })
try
{
const confirmed = await dialogue.confirm ({
title: '変更破棄してページ移動しますか?',
title: '変更破棄してページ移動しますか?',
confirmText: '変更を破棄して移動',
variant: 'danger' })
if (!(confirmed))