WebBlocks CMS Sayfa Dönüştürücü Yol Haritası
Amaç
Sayfa Dönüştürücü, yapıştırılan veya yüklenen statik HTML'i birinci sınıf bloklardan oluşan yapılandırılmış CMS sayfalarına dönüştüren, önerilmiş yeniden kullanılabilir bir WebBlocks CMS yönetim özelliğidir.
Bu özellik; statik siteleri, elle yazılmış HTML sayfalarını, dokümantasyon sayfalarını, pazarlama sayfalarını ve eski içerikleri, sayfa gövdesinin tamamını tek bir Safe HTML bloğuna indirgemeden WebBlocks CMS'e taşımaya yardımcı olmalıdır.
Amaç, webblocksui.com için siteye özel bir içe aktarıcı oluşturmak değildir. Dönüştürücü, bir WebBlocks CMS kurulumunun yönettiği herhangi bir site için kullanılabilecek genel bir CMS yeteneği olmalıdır.
Mevcut Uygulama Durumu
İlk çalışma zamanı temeli hazır: Admin -> Pages -> Page Converter, kapsamlandırılmış hedef/kaynak formunu görüntüler ve hedef yol çakışmaları dahil olmak üzere yapıştırılan veya yüklenen .html / .htm girdisini doğrular. Analizci, gönderilen HTML'i normalleştirir, en olası içerik alanını çıkarır ve güven puanları ve uyarılarla birlikte sıralı yapılandırılmış blok önerilerini gösterir. İnceleme ekranı bu önerileri imzalı bir dönüştürme planı yüküne serileştirir; ardından Create draft page, imzalı hedef ayrıntılarını yeniden doğrular ve desteklenen ana slot bloklarıyla bir yeni taslak sayfa oluşturabilir. Taslak oluşturma; header, plain_text, rich-text, code, table, quote, açık html geri dönüşü, button_link, Rich Text olarak list, Alert olarak callout, section, content_header, hero, cta ve imzalı card_header / card_body / card_footer alt öğelerine sahip açık card kabuklarını destekler. Bölüm benzeri <section> parçaları Section kapsayıcı blokları olarak korunur ve bunların kullanılabilir başlıkları, metinleri, bağlantıları, tanıtım içerikleri, kart ızgaraları ve bitişik details grupları, bölüm metni olarak saklanmak yerine alt öneriler olarak üretilir. Bitişik <details> grupları artık açık accordion_item alt öğelerine sahip tek bir imzalı accordion önerisine dönüşür ve hem accordion hem faq blok türleri yayında olduğunda taslak oluşturma bu öğeleri mevcut faq alt satır sözleşmesine yazar. Açık kullanılabilir bölge alt öğeleri olmayan kart önerileri ile kullanılabilir öğe sözleşmesi olmayan akordeon önerileri, güvensiz HTML'e düzleştirilmek yerine atlanır. image ve gallery gibi medyaya dayalı öneriler hâlâ atlanır ve medya içe aktarılmadan raporlanır.
Kompakt bir WebBlocks UI havalı fixture pilotu artık <main>, içerik başlığı/gövde sarmalayıcıları, tanıtım, kart ızgarası, düğmeler, kod, tablo, bitişik details ve uzak görsel medya içeren gerçekçi bir statik dokümantasyon/pazarlama parçasını kapsıyor. Fixture; analizin tek bir Safe HTML geri dönüşü yerine çok sayıda yapılandırılmış öneri üretmesini, imzalı bir plan ve taslak sayfa oluşturmasını, mevcut blok sözleşmesinin temsil edebildiği yerlerde açık kart bölgelerini ve alt bilgi düğme bağlantılarını korumasını ve medyaya dayalı parçaları dosya içe aktarmadan, sayfa yayınlamadan, gezinme oluşturmadan, ortak slotlara dokunmadan, uzak URL'ler getirmeden veya içeriğin üzerine yazmadan yalnızca uyarı verilen/atlanan durumda tutmasını güvence altına alır.
Temel İlke
Dönüştürücü, tek bir Safe HTML bloğu yerine yapılandırılmış CMS bloklarını tercih etmelidir.
Kötü çıktı:
Page
└── Main Slot
└── Safe HTML Block
└── entire page main HTML
Tercih edilen çıktı:
Page
└── Main Slot
├── Content Header
├── Hero
│ └── Button
├── Section
│ └── Columns
│ ├── Column Item
│ ├── Column Item
│ └── Column Item
├── Rich Text
├── Code
├── Table
├── Card
│ ├── Card Header
│ ├── Card Body
│ └── Card Footer
└── Accordion
Safe HTML, yalnızca henüz yapılandırılmış CMS bloklarıyla temsil edilemeyen parçalar için görünür ve incelenebilir bir geri dönüş olarak kullanılabilir.
Ürün Konumlandırması
Önerilen yönetim paneli konumu:
Admin -> Pages -> Page Converter
Araç, çıktısı bir CMS sayfa taslağı olduğu için Sayfalar bölümüne yakın olmalıdır. Bu, öncelikle operasyonel bir bakım aracı değil, editoryal/içerik aracıdır.
Olası ikincil giriş noktası:
Admin -> Pages -> Import Page -> Convert HTML
Bununla birlikte, ana Sayfa Dönüştürücü akışı; kaynak girişi, analiz, inceleme, uyarılar ve nihai taslak oluşturma içerdiği için kendi ekranına sahip olmalıdır.
Hedef Kullanıcılar
super_admin: Sayfa Dönüştürücü'yü tüm siteler için kullanabilir.site_admin: Sayfa Dönüştürücü'yü atanmış siteler için kullanabilir.editor: daha sonra mümkün olabilir; MVP için temkinli kalın ve mevcut sayfa oluşturma izinlerine göre karar verin.
Oluşturulan sayfalar her zaman draft olarak başlamalıdır.
Dönüştürücü asla otomatik olarak yayınlamamalıdır.
MVP Kapsamı
MVP'ye Dahil Olanlar
- Sayfalar alanı altında yönetim ekranı.
- Kullanıcı erişimiyle sınırlı Hedef Site seçici.
- Hedef Dil (Locale) seçici.
- Hedef Sayfa Yerleşimi seçici.
- Sayfa başlığı alanı.
- Slug/yol alanı.
- Kaynak HTML metin alanı.
.htmlve.htmiçin kaynak HTML dosyası yükleme.- Bellek içi bir dönüştürme planı oluşturan Analiz eylemi.
- Önerilen blokları, güveni, uyarıları ve geri dönüşleri gösteren inceleme ekranı.
- Nihai
Create Draft Pageeylemi. - Yol çakışması doğrulaması.
- Yalnızca taslak olarak sayfa oluşturma.
- Yüksek güvenli eşlemeler için yapılandırılmış blok oluşturma.
- Açık Safe HTML geri dönüş raporlaması.
- Odaklı testler.
- Dokümantasyon ve changelog güncellemeleri.
MVP Dışında Kalanlar
- Uzak URL getirme.
- Web sitesi tarama (crawling).
- Çok sayfalı ZIP içe aktarma.
- Toplu dönüştürme.
- Ekran görüntüsü karşılaştırma.
- AI API entegrasyonu.
- Otomatik yayınlama.
- Mevcut bir sayfanın üzerine yazma veya değiştirme.
- Uzak URL'lerden medya dosyası indirme/içe aktarma.
- Eski sayfaların veya Safe HTML bloklarının yıkıcı temizliği.
Kaynak Girdi Modları
MVP Girdi Modları
| Girdi Modu | Durum | Notlar |
|---|---|---|
| HTML yapıştırma | MVP | En güvenli başlangıç noktası. |
| .html / .htm dosyası yükleme | MVP | Statik site dışa aktarımları için kullanışlı. |
| Uzak URL getirme | Daha sonra | SSRF koruması ve ağ politikası gerektirir. |
| Sayfalardan oluşan ZIP yükleme | Daha sonra | Toplu inceleme ve çakışma yönetimi gerektirir. |
| Site tarama | Daha sonra | Kapsam denetimleri, hız sınırları ve URL izin listeleri gerektirir. |
Yönetim Akışı
Adım 1: Kaynak ve Hedef
Yönetici şunları seçer:
- Hedef Site
- Hedef Dil (Locale)
- Sayfa Yerleşimi
- Sayfa başlığı
- Sayfa slug/yolu
- Dönüştürme profili
- Kaynak HTML yapıştırma veya yüklenen dosya
Adım 2: Analiz
Dönüştürücü, HTML'i analiz eder ve sayfa içeriğini veritabanına yazmadan bir dönüştürme planı üretir.
Örnek analiz özeti:
Detected page title: Admin Standards
Suggested path: /patterns/admin-standards
Suggested layout: docs
Detected blocks:
- 1 Content Header
- 8 Header blocks
- 12 Rich Text blocks
- 4 Card blocks
- 2 Table blocks
- 3 Code blocks
- 0 Safe HTML fallbacks
Warnings:
- Theme switcher controls ignored.
- Sidebar navigation detected; review whether it belongs in a Shared Slot.
Adım 3: İnceleme
İnceleme ekranı, önerilen her bloğu gösterir:
| Sıra | Kaynak Parça | Önerilen Blok | Güven | Uyarı |
|---|---|---|---|---|
| 1 | Content Header | 96% | ||
| 2 | Section | 92% | ||
| 3 | Card | 94% | ||
| 4 | Code | 99% | ||
| 5 | Bilinmeyen widget HTML'i | HTML geri dönüşü | 41% | Manuel inceleme gerekli |
İnceleme ekranı şunları net biçimde ayırmalıdır:
- yüksek güvenli yapılandırılmış bloklar
- orta güvenli öneriler
- yok sayılan parçalar
- geri dönüş Safe HTML parçaları
- güvensiz olduğu için ayıklanan içerik
- medya uyarıları
Adım 4: Taslak Sayfa Oluştur
Araç, yalnızca açık onaydan sonra yeni bir taslak sayfa oluşturur.
İşlem transactional olmalı ve şunları oluşturmalıdır:
- sayfa kaydı
- sayfa çevirisi
- gerekli sayfa slotları
- blok ağacı
- blok çevirileri
- blok ayarları ve ilişkileri
- mevcut revizyon servislerinin desteklediği yerlerde revizyon meta verileri
Araç sayfayı yayınlamamalıdır.
Dönüştürme Profilleri
Profiller, dönüştürücüyü siteye özel hale getirmeden farklı eşleme katılık düzeylerine olanak tanır.
Genel Pazarlama Sayfası
Açılış sayfaları ve ürün sayfaları için en uygunudur.
Öncelik verdikleri:
- Hero
- Section
- Daha sonraki bir yapılandırılmış eşlemenin kaynağı güvenle temsil edebildiği yerlerde Columns ve Column Item
- Card
- Button Link
- CTA
- Image
- Gallery
- Quote
Genel Dokümantasyon Sayfası
Dokümantasyon ve uzun biçimli içerik için en uygunudur.
Öncelik verdikleri:
- Content Header
- Header
- Rich Text
- Code
- Table
- List
- Callout
- Accordion
- TOC
WebBlocks UI Havalı HTML
Zaten WebBlocks UI sınıf adlarını kullanan sayfalar için en uygunudur.
Şunlar için sınıf farkındalıklı eşlemeye öncelik verir:
wb-sectionwb-content-headerwb-promowb-cardwb-gridwb-btnwb-alertwb-gallerywb-rich-textwb-link-list
Bu profil genel ve yeniden kullanılabilir kalmalıdır. ui.webblocksui.com gibi belirli bir alan adını varsaymamalıdır.
Temkinli
Kaynak HTML dağınık veya bilinmez olduğunda en uygunudur.
Öncelik verdikleri:
- daha az tahmin
- daha fazla zengin metin gruplaması
- açık uyarılar
- görünür geri dönüşler
HTML'den CMS Bloğuna Eşleme Kuralları
Genel Anlamsal Kurallar
| HTML Deseni | CMS Bloğu |
|---|---|
| h1-h6 | header |
| düz paragraf | plain_text veya rich-text |
| satır içi biçimlendirmeli birden çok paragraf | rich-text |
| ul, ol, li | bağlama göre list veya rich-text |
| pre > code | code |
| table | table |
| blockquote | quote |
| figure > img | medya içe aktarma mevcut değilse image yer tutucusu ile birlikte medya uyarısı |
| tekrarlanan kartlar veya tekrarlanan hücreler | mevcut olduğu yerde açık card bölgeleri; columns + column_item daha sonraki bir yapılandırılmış eşleme olarak kalır |
| details > summary grupları | mümkün olduğunda accordion |
| bilinmeyen ama güvenli editoryal işaretleme | html geri dönüşü |
WebBlocks UI Sınıf Farkındalıklı Kurallar
| HTML Deseni | CMS Bloğu |
|---|---|
| .wb-section | section |
| .wb-content-header | content_header |
| .wb-promo | hero veya cta |
| .wb-card | card |
| .wb-card-header | card_header |
| .wb-card-body | card_body |
| .wb-card-footer | card_footer |
| .wb-grid, .wb-grid-2, .wb-grid-3, .wb-grid-4 | doğrudan .wb-card alt öğeleri açık card planlarına dönüşür; genel sütunlar daha sonraya kalır |
| .wb-btn anchor/button | kart alt bilgileri içindekiler dahil, güvenle temsil edildiğinde button_link |
| .wb-alert, .wb-callout | callout |
| .wb-gallery | gallery |
| .wb-rich-text | rich-text |
| .wb-link-list | bağlama göre gelecekteki toc veya yapılandırılmış liste |
| tekrarlanan .wb-stat kartları | desteklendiği yerde istatistik tarzı öğeler içeren gelecekteki columns |
Safe HTML Geri Dönüş Politikası
Safe HTML varsayılan dönüştürme çıktısı değil, son çare olmalıdır.
İzin Verilen Geri Dönüş Durumları
- CMS'in bu parça için henüz birinci sınıf bir bloğu yoktur.
- İşaretleme, mevcut sürümde güvenle eşlenemeyecek kadar karmaşıktır.
- Dönüştürücünün güveni düşüktür.
- Yönetici, inceleme sırasında geri dönüşü açıkça kabul eder.
Geri Dönüş Gereksinimleri
Her geri dönüş, inceleme ekranında şunlarla birlikte gösterilmelidir:
- kaynak parça önizlemesi
- neden
- güven puanı
- uyarı metni
- sayfadaki yaklaşık konum
Geri Dönüş Karşıt Hedefi
Dönüştürücü, anlamlı yapılandırılmış blok eşlemeleri mevcutken tüm main içeriği için tek bir büyük Safe HTML bloğu oluşturmamalıdır.
Temizleme ve Güvenlik
Dönüştürücü, yapılandırılmış metin dönüştürmesini agresif biçimde temizlemelidir.
Ayıklanacak veya reddedilecekler:
<script>onclickgibi olay özniteliklerijavascript:URL'leriiframeobjectembed- açıkça desteklenmeyen tehlikeli satır içi stiller
- bilinmeyen çalıştırılabilir öznitelikler
SSRF risklerinden kaçınmak için uzak URL getirme MVP dışında bırakılmıştır. Daha sonra eklenirse şunları engellemelidir:
- localhost
- özel IP aralıkları
- link-local adresler
- metadata servisleri
- dahili ana bilgisayar adları
- engellenen adreslere yönlendirmeler
Medya Yönetimi
MVP tam medya içe aktarmayı denememelidir.
Görseller için:
- görsel referanslarını tespit et
- yalnızca mevcut CMS medya eşleştirmesi uygulanmışsa görsel yer tutucusu oluştur
- aksi halde bir medya uyarısı raporla
- manuel kullanım için alt/başlık önerilerini koru
Sonraki aşamalar şunları ekleyebilir:
- bir HTML arşiviyle birlikte yerel görsel dosyalarını yükleme
- mevcut medyayı dosya adı/karma (hash) ile eşleştirme
- ZIP paketlerinden görsel içe aktarma
- görsel bloklarını CMS medya kimlikleriyle yeniden yazma
Önerilen Teknik Mimari
Denetleyiciler ve İstekler
PageConverterController
PageConverterAnalyzeRequest
PageConverterCreateRequest
Denetleyiciler ince kalmalı ve ayrıştırmayı/dönüştürmeyi servislere devretmelidir.
Servisler
Services/PageConverter/PageHtmlNormalizer
Services/PageConverter/PageHtmlSegmenter
Services/PageConverter/PageConversionEngine
Services/PageConverter/PageConversionProfileRegistry
Services/PageConverter/BlockSuggestionMapper
Services/PageConverter/ConvertedPageDraftCreator
Services/PageConverter/HtmlSafetySanitizer
DTO'lar / Değer Nesneleri
ConvertedPagePlan
ConvertedSlotPlan
ConvertedBlockPlan
ConversionWarning
ConversionSourceFragment
ConversionProfile
ConversionConfidence
Çalışma Zamanı Akışı
HTML input
→ normalize
→ extract body/main
→ segment meaningful regions
→ map segments to block suggestions
→ calculate confidence and warnings
→ render review screen
→ create draft page in transaction
Veri Oluşturma Kuralları
Taslak sayfa oluşturulurken:
- veritabanı transaction'ları kullan
- yalnızca yeni bir sayfa oluştur
- MVP'de asla mevcut sayfaların üzerine yazma
- sayfayı
draftolarak oluştur - seçilen dil (locale) için varsayılan çeviriyi oluştur
- seçilen yerleşim için gerekli slotları oluştur
- MVP'de yalnızca sayfaya ait blokları oluştur
- ortak slotları otomatik olarak oluşturma
- otomatik olarak yayınlama
- mevcut servisler desteklediğinde revizyon meta verilerini kaydet
Yetkilendirme Kuralları
MVP, mevcut sayfa oluşturma ve site erişim kurallarını izlemelidir.
Önerilen erişim:
super_admin: tüm sitelersite_admin: atanmış sitelereditor: erteleyin veya yalnızca normal sayfa oluşturma izin veriyorsa izin verin
Tüm site seçiciler, kimliği doğrulanmış kullanıcının erişebildiği sitelerle kapsamlandırılmalıdır.
Yol ve Çakışma Kuralları
Dönüştürücü şunları doğrulamalıdır:
- seçilen site mevcut ve erişilebilir
- seçilen dil (locale) mevcut ve site için etkin
- seçilen yerleşim mevcut ve aktif
- başlık mevcut
- yol/slug geçerli
- yol, aynı site ve dil (locale) için mevcut bir sayfa çevirisiyle çakışmıyor
MVP, mevcut bir sayfayı değiştirmemeli, onunla birleştirmemeli veya güncellememelidir.
Yönetim Arayüzü Standartları
Mevcut WebBlocks CMS yönetim paneli kalıplarını kullanın:
- kart tabanlı formlar
- kompakt inceleme tabloları
- net uyarılar
- yalnızca yararlı olduğunda modal
- yıkıcı eylemler için tarayıcı confirm'i yok
- gerekli olmadıkça özel CSS/JS yok
- yalnızca WebBlocks UI sınıfları
İnceleme ekranı şu soruların kolayca yanıtlanmasını sağlamalıdır:
- Ne oluşturulacak?
- Hangi kısımlar yapılandırılmış bloklar?
- Hangi kısımlar geri dönüş HTML'i?
- Hangi kısımlar yok sayıldı?
- Ne manuel inceleme gerektiriyor?
Test Planı
Odaklı özellik testleri şunları kapsamalıdır:
- yetkili kullanıcılar Sayfa Dönüştürücü'yü açabilir
- yetkisiz kullanıcılar erişimleri olmayan sitelere erişemez
- yapıştırılan HTML analiz edilebilir
- yüklenen
.htmldosyası analiz edilebilir - desteklenmeyen dosya türleri reddedilir
- script'ler ve güvensiz öznitelikler yapılandırılmış dönüştürmeden ayıklanır
h1/h2başlık bloğu önerisine eşlenir- paragraflar rich-text/plain_text önerilerine eşlenir
pre > codekod önerisine eşlenirtabletablo önerisine eşlenir.wb-cardkart önerisine eşlenir.wb-gridkart öğeleri açık kart bölgesi önerilerine eşlenir- bilinmeyen parçalar sessizce atılmak yerine geri dönüş olarak raporlanır
- hedef yol çakışması taslak oluşturmayı engeller
- taslak sayfa yalnızca açık gönderimden sonra oluşturulur
- oluşturulan sayfa yayınlanmaz
- hiçbir mevcut sayfanın üzerine yazılmaz
Dokümantasyon Güncellemeleri
Ekleyin veya güncelleyin:
docs/page-converter.mddocs/index.mdREADME.mdCHANGELOG.md
Dokümantasyon şunları içermelidir:
- özelliğin amacı
- kaynak girdi modları
- dönüştürme profilleri
- Safe HTML geri dönüş politikası
- güvenlik istisnaları
- MVP sınırlamaları
- gelecek yol haritası
Changelog İfade Taslağı
## Unreleased
- Add a reusable admin Page Converter foundation for turning pasted or uploaded static HTML into draft CMS pages made from structured blocks, with an analysis/review step, Safe HTML fallback reporting, and draft-only creation.
Uygulama Aşamaları
Aşama 0: Yalnızca Dokümantasyon
Bu yol haritasını oluşturun ve Sayfa Dönüştürücü planlaması için standart bir CMS dokümantasyon sayfası ekleyin.
Çalışma zamanı değişikliği yok.
Aşama 1: Salt Okunur Analizci
Yalnızca yönetim ekranını ve analiz akışını ekleyin.
- Yapıştırılan HTML'i kabul et.
- Dönüştürme planı üret.
- İnceleme ekranını göster.
- Henüz sayfa oluşturma.
Aşama 2: Taslak Oluşturucu
Açık oluşturma eylemini ekleyin.
- Taslak sayfa oluştur.
- Ana slot bloklarını oluştur.
- Yol çakışmalarını doğrula.
- Uyarıları arayüzde koru.
Aşama 3: HTML Dosyası Yükleme
.html / .htm yükleme desteğini ekleyin.
Aşama 4: Daha İyi Yapılandırılmış Eşlemeler
Şunlar için eşlemeleri iyileştirin:
- daha derin kart bölgesi alt öğeleri
- sütunlar
- mevcut düz metin
faqalt sözleşmesinin ötesinde daha zengin akordeon öğesi görüntüleme - tablolar
- listeler
- callout'lar
- hero/cta yönetilen düğme alt öğeleri
Aşama 5: Medya Farkındalıklı Dönüştürme
Yerel görsel paketleri veya mevcut medyayla eşleştirme için isteğe bağlı destek ekleyin.
Aşama 6: Toplu Dönüştürme
Çok sayfalı iş akışları ekleyin:
- ZIP yükleme
- sayfa envanteri
- sayfa başına inceleme
- toplu taslak oluşturma
Aşama 7: İsteğe Bağlı URL Getirme
Yalnızca katı SSRF ve ağ güvenliği kuralları uygulandıktan sonra.
MVP Kabul Kriterleri
MVP şu koşullarda başarılıdır:
- Yönetici tek bir statik HTML sayfasını yapıştırabilir veya yükleyebilir.
- CMS incelenebilir bir dönüştürme planı gösterir.
- Yaygın HTML yapıları yapılandırılmış CMS bloklarına dönüşür.
- Safe HTML geri dönüşü görünür ve sınırlıdır.
- Yönetici yeni bir taslak sayfa oluşturabilir.
- Oluşturulan sayfa normal Page Builder'da düzenlenebilir.
- Hiçbir sayfa otomatik olarak yayınlanmaz.
- Hiçbir mevcut sayfanın üzerine yazılmaz.
- Testler temel dönüştürme ve güvenlik davranışını kapsar.
WebBlocks UI Statik Site Taşıması İçin Notlar
WebBlocks UI statik site taşıması, bu genel Sayfa Dönüştürücü'nün ilk gerçek dünya kullanımı olmalıdır.
Önerilen pilot sayfa:
pattern-admin-standards.html
Neden bu sayfa:
- birçok WebBlocks UI deseni içeriyor
- dokümantasyon yerleşimi davranışını test ediyor
- içerik kabuğu, kartlar, tablolar, durum yönergeleri ve kod benzeri örnekler içeriyor
- WebBlocks UI sınıf farkındalıklı eşlemeyi doğrulamaya yardımcı oluyor
Taşıma, WebBlocks UI'ye özgü davranışı doğrudan CMS çekirdeğine eklememelidir. Ek eşleme zekâsı gerekiyorsa bunu WebBlocks UI-flavored HTML gibi yeniden kullanılabilir bir profil olarak, ya da daha sonra isteğe bağlı bir operatör/eklenti profili olarak ekleyin.