修改完成

This commit is contained in:
2026-07-21 07:53:03 +08:00
parent 01d246c47b
commit ff60119277
172 changed files with 7982 additions and 2999 deletions
@@ -3,16 +3,10 @@ $root = Split-Path $PSScriptRoot -Parent
$publish = [System.IO.File]::ReadAllText((Join-Path $root 'pages/family/f02-publish-feed.vue'), [System.Text.Encoding]::UTF8)
$editor = [System.IO.File]::ReadAllText((Join-Path $root 'pages/family/f06-article-editor.vue'), [System.Text.Encoding]::UTF8)
foreach ($selector in @('.publish-form, .publish-result','.publish-field textarea')) {
$escaped = [regex]::Escape($selector)
if ($publish -match "(?s)$escaped\s*\{[^}]*position\s*:\s*(absolute|fixed|sticky)\s*;") { throw "F02 normal content selector uses positioning: $selector" }
}
foreach ($selector in @('.editor-control input, .editor-control textarea')) {
$escaped = [regex]::Escape($selector)
if ($editor -match "(?s)$escaped\s*\{[^}]*position\s*:\s*(absolute|fixed|sticky)\s*;") { throw "F06 normal content selector uses positioning: $selector" }
}
foreach ($content in @($publish,$editor)) {
if (-not $content.Contains('pointer-events: none')) { throw 'Family editor decorative skins must not intercept form controls' }
}
if ($publish -match 'position\s*:') { throw 'F02 must keep its editor in document flow' }
if ($editor -match 'position\s*:') { throw 'F06 must keep its editor in document flow' }
if (-not $publish.Contains('background: url("/static/assets/modules/family/transparent/module-field-frame.png") center / 100% 100% no-repeat')) { throw 'F02 field frame must be a container background' }
if (-not $editor.Contains('background: url("/static/assets/modules/family/transparent/module-field-frame.png") center / 100% 100% no-repeat')) { throw 'F06 field frame must be a container background' }
if ($editor -match '<view[^>]+class="editor-control[^>]*>\s*<image') { throw 'F06 control must not retain a positioned decorative image' }
Write-Output 'FAMILY-EDITORS-DOCUMENT-FLOW-CONTRACT PASS'