BoxPistols / BoxPistols/LP-WebDesign-Brand
[Phase F0・最優先] プレビューのiframe隔離とcustomContentのDOMパス依存解消
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## 背景
`docs/MOBIRISE_ROADMAP.md` の重大ギャップ①(旧⑥)。以下の2点は、マルチページ化やper-block設定パネルより**先に**解消しないと、後で作り直す二重工数になる。
## 現状の問題
1. プレビューは `previewFrame.innerHTML = html`(`js/generator.js:988`)で、ツールUIと生成LPのCSSが同一カスケード。テーマ変更・ダークモード切替でレイアウトが崩れる恐因になっている。
2. インライン編集はcontenteditableで同一ドキュメントに依存(`js/generator.js:4058`)。編集内容は `customContent[elementPath]` というDOMパス文字列(例: `section[0] > h1[0] > span[1]`、`js/generator.js:1532, 4106, 4114`)をキーに保存される脆い構造。セクション追加/並替/ページ増加でパスが変わると編集内容が不整合を起こす。
## やること
- [ ] プレビューを `` へ移行。画像差替・インライン編集・並替などの全編集経路をpostMessage/委譲で再配線
- [ ] `customContent` のキーをDOMパスから、テンプレート側の宣言的フィールドID(`data-field="headline"` 等)へ正規化
- [ ] 移行後、既存プロジェクトの自動マイグレーションパスを用意
## Done条件
- テーマ切替・ダークモード切替・全アーキタイプでレイアウト非破綻を回帰テストで確認
- セクション追加/並替/複製を行っても編集内容(customContent)が一切失われない(E2Eで保証)
## 参照
- `docs/MOBIRISE_ROADMAP.md` §2-① / Phase F0
- CodeRabbit指摘: `getRenderedSectionHTML()` が `customContent` のみサニタイズし `template.html` 自体はサニタイズしていない点も、このリファクタで併せて解消する
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.