91 lines
4.2 KiB
Python
91 lines
4.2 KiB
Python
#!/usr/bin/env python3
|
|
# Run from your project root: python3 add_block_thumbnails.py
|
|
|
|
import os
|
|
import re
|
|
|
|
BLOCKS_DIR = "src/blocks"
|
|
THUMBNAILS_DIR = "public/block-thumbnails"
|
|
|
|
# Fix double extension if present
|
|
double = os.path.join(THUMBNAILS_DIR, "fd-team.png.png")
|
|
correct = os.path.join(THUMBNAILS_DIR, "fd-team.png")
|
|
if os.path.exists(double):
|
|
os.rename(double, correct)
|
|
print("✓ Fixed: fd-team.png.png → fd-team.png")
|
|
|
|
# Block config → thumbnail mapping
|
|
BLOCKS = [
|
|
("FDHeroBlock", "fd-hero.png", "FD Hero"),
|
|
("FDAlternateHeroBlock", "fd-header-text-image-alt.png", "FD Alternativ Hero"),
|
|
("FDHeaderTextImageBlock", "fd-header-text-image.png", "FD Rubrik med bild"),
|
|
("FDCardGridBlock", "fd-card-grid.png", "FD Kortrutnät"),
|
|
("FDWideCardBlock", "fd-wide-card.png", "FD Bredt kort"),
|
|
("FDPricingCardBlock", "fd-pricing-card.png", "FD Priskort"),
|
|
("FDUspTableBlock", "fd-usp-table.png", "FD USP-tabell"),
|
|
("FDUspChecklistBlock", "fd-usp-checklist.png", "FD USP-checklista"),
|
|
("FDServicesGridBlock", "fd-services-grid.png", "FD Tjänsterrutnät"),
|
|
("FDIconBarBlock", "fd-icon-bar.png", "FD Ikonrad"),
|
|
("FDFeatureAnnouncementBlock", "fd-feature-announcement.png", "FD Funktionsnyhet"),
|
|
("FDTechPropertiesBlock", "fd-tech-properties.png", "FD Tekniska Egenskaper"),
|
|
("FDCtaSideImageBlock", "fd-cta-side-image.png", "FD CTA med bild"),
|
|
("FDFaqBlock", "fd-faq.png", "FD FAQ"),
|
|
("FDContactBlock", "fd-contact.png", "FD Kontaktformulär"),
|
|
("FDContactFormBlock", "fd-contact.png", "FD Kontaktformulär"),
|
|
("FDSpacerBlock", "fd-spacer.png", "FD Mellanrum"),
|
|
("FDLocationsGridBlock", "fd-places-grid.png", "FD Platser Grid"),
|
|
("FDStatisticsBlock", "fd-statistics.png", "FD Statistik"),
|
|
("FDPartnersLogosBlock", "fd-partners-logos.png", "FD Partnerlogotyper"),
|
|
("FDNewsletterBlock", "fd-newsletter.png", "FD Nyhetsbrev"),
|
|
("FDServiceChooserBlock", "fd-service-chooser.png", "FD Tjänsteväljare"),
|
|
("FDDataTableBlock", "fd-data-table.png", "FD Datatabell"),
|
|
("FDVpsCalculatorBlock", "fd-vps-calculator.png", "FD VPS-kalkylator"),
|
|
("FDTagsBlock", "fd-tags.png", "FD Taggar"),
|
|
("FDTextBlock", "fd-text-block.png", "FD Textblock"),
|
|
("FDCodeEmbedBlock", "fd-code-embed.png", "FD Kodinbäddning"),
|
|
("FDVideoBlock", "fd-video.png", "FD Video"),
|
|
("FDCtaBannerBlock", "fd-cta-banner.png", "FD CTA-banner"),
|
|
("FDTestimonialBlock", "fd-testimonial.png", "FD Omdöme"),
|
|
("FDTeamBlock", "fd-team.png", "FD Team"),
|
|
]
|
|
|
|
print()
|
|
skipped, updated, missing = 0, 0, 0
|
|
|
|
for block_name, image, alt in BLOCKS:
|
|
config_path = os.path.join(BLOCKS_DIR, block_name, "config.ts")
|
|
|
|
if not os.path.exists(config_path):
|
|
print(f"⚠ NOT FOUND: {config_path}")
|
|
missing += 1
|
|
continue
|
|
|
|
content = open(config_path, encoding="utf-8").read()
|
|
|
|
if "imageURL" in content:
|
|
print(f"⏭ SKIPPED: {block_name} (already has imageURL)")
|
|
skipped += 1
|
|
continue
|
|
|
|
# Insert after the slug line
|
|
new_content = re.sub(
|
|
r"(slug:\s*'[^']+',)",
|
|
f"\\1\n imageURL: '/block-thumbnails/{image}',\n imageAltText: '{alt}',",
|
|
content,
|
|
count=1,
|
|
)
|
|
|
|
if new_content == content:
|
|
print(f"⚠ NO MATCH: {block_name} — slug line not found, check manually")
|
|
missing += 1
|
|
continue
|
|
|
|
open(config_path, "w", encoding="utf-8").write(new_content)
|
|
print(f"✓ UPDATED: {block_name}")
|
|
updated += 1
|
|
|
|
print(f"\nDone — {updated} updated, {skipped} skipped, {missing} not found")
|
|
print("\nNext steps:")
|
|
print(" git add public/block-thumbnails/ src/blocks/")
|
|
print(' git commit -m "feat: block thumbnails in admin UI"')
|
|
print(" git push") |