← Blog

Boş inen sunum

27 Ekim 2026 · OnePress'in İçinden

Bir ebeveyn, ajanımızdan bir öğrencinin bilim fuarı raporunu — termoelektrik bir içme suyu sebili hakkındaki bir Word belgesini — şehir düzeyinde bir inovasyon yarışması için sunuma dönüştürmesini istedi. Gerçek bir görev: gerçek bir teslim tarihi ve çıktıyı okuyacak gerçek bir öğretmenle.

Biten sunum iyi çıktı — düzenlenebilir sürüm, süslü render edilmiş sürüm kadar cilalı görünecek kadar temizdi. Ama oraya ulaşmak dört farklı şekilde kırıldı ve her kırılma, ancak biri dosyayı gerçekten indirip okul laptop'unda açtığında bulunan türden bir hataydı. İşte olanlar ve bu yüzden sistemde değiştirdiklerimiz.

1. kırılma: üç slayt bomboş döndü

Önizleme kusursuz görünüyordu. İndirilen HTML görünmüyordu — dokuz görsel boş render edildi. Sebep: sunum görsellere göreli yolla (src="assets/chart.png") başvuruyordu; bu, çalışma alanı önizlemesinde düzgün çözümlenir ama .html dosyası tek başına bir indirilenler klasörüne gittiğinde hiçbir yere işaret etmez.

Önemli olan düzeltme "görselleri göm" değil — değişmez kural: bir sunuma teslim edilebilir denmeden önce, grep -c 'src="assets/' sıfır döndürmelidir. Görselleri tek tek yamalamak, ilk düzeltme denemesinin üç grafiği kaçırmasının yoludur. Bu hikâyedeki her kural aynı şekilde biter: döngüyü gözle değil, bir kontrolle kapat.

2. kırılma: yalnızca çevrimiçiyken var olan grafikler

Etkileşimli grafik kitaplıkları canlı bir canvas üzerine render eder. Önizlememizin kaydırma modundaki DOM klonunda boyanmış pikseller kaybolur; çevrimdışıyken CDN script'i hiç gelmez. Sınıfta yansıtılması gereken bir sunum için "çevrimiçiyken çalışır" yeterince iyi değildir — bu yüzden sunum desteleri artık grafikleri önceden PNG'ye render edip görsel olarak gömüyor. Etkileşimli grafikler, yalnızca ortam biliniyorsa ve etkileşim amaçsa bir seçenek olarak kalıyor.

3. kırılma: sığmayan dışa aktarım

Kullanıcı iki sürüm istedi: cilalı, render edilmiş bir PPTX ve öğrencinin sunmadan önce rötuşlayabileceği düzenlenebilir bir sürüm. Düzenlenebilir-dışa-aktarım hattının sert bir girdi sınırı olduğu ortaya çıktı — tamamen kendi kendine yeten bir deste fazlasıyla büyüktür — üstelik göreli yollu görselleri düşürüyor ve metin kutularını yanlış birleştiriyordu. Bu yüzden düzenlenebilir deste python-pptx ile natif olarak yeniden inşa edildi. Bu da üç gerçek-dünya hatasını daha ortaya çıkardı:

  • Yazı tipi boyutu hesabı ekrandan değil, slayttan gelmelidir. 16:9 bir slayt 960×540pt iken tasarım tuvali 1920×1080px'tir, yani pt = px × 0.5 — sezgisel 96dpi dönüşümü her metin parçasını 50% büyütüyor ve metin her yerde satır kırılıp çakışıyordu.
  • Yerleşim, farklı yazı tipi ölçümlerine dayanmalıdır. "Büyük sayı + küçük alt yazı" çiftleri tarayıcıda güzelce hizalanıyor ama glif genişlikleri farklı olan WPS'te üst üste biniyordu. Dikey istifleme buna bağışıktır; sabit ofsetli yan yana dizme değildir.
  • Geometrinin bir lint'e ihtiyacı var. Bir kapak görseli slayt kenarının 200px ötesine taştı — build değil, ebeveynin gözleri yakaladı. Artık her şekil kayıttan önce bir sınır denetiminden geçiyor.

4. kırılma: teslimatı bozan doğrulama

QA script'i bir keresinde bitmiş dosyayı doğrularken yerinden taşıdı — kontrolün kendisi, kontrol edilen şeyi yok etti. İki sessiz ders de kaldı: toplu metin düzenlemeleri öğe başına tolerans artı kalıntı için bir leftover-grep ister; grafik sayıları yalnızca kaynak belgenin tablolarından gelebilir — küçük bir ekran görüntüsünden asla yeniden okunmaz, orada bir keresinde 4.62, 5.89'a dönüşmüştü.

Üründe ne değişti

Bunların her biri artık ajanın beceri setinde yazılı bir kural — her kullanıcının aldığı aynı beceriler. Teslimat-durumu değişmezi (sıfır harici referans, hash ile doğrulanmış), dışa aktarım hattı sınırları, python-pptx geometri ve yerleşim kuralları, önce-tek-slayt-sonra-toplu build'ler ve her sayfayı teslim etmeden önce render eden QA döngüsü. Ham yazıyı ayrıca bir çalışma alanı becerisi olarak sakladık; böylece gerçek bir projeden çıkan dersler buharlaşmak yerine birikiyor.

İşte "yapay zeka slayt yapıyor" sözünün kimsenin demo yapmadığı kısmı: dosyanın hâlâ bir okul laptop'ına, bir WPS kurulumuna ve bir projektöre giden yolculuğu atlatması gerekiyor. "Önizlemede harika görünüyor" ile "her yerde doğru açılıyor" arasındaki uçurum, tam da ustalığın yaşadığı yer — ve gerçek görevleri ürünün içinden kendimiz geçirip her kırılmayı yazıya dökmemizin sebebi bu.

Aynı hattı Document to Slides üzerinde kendiniz deneyin — ücretsiz önizleme, yalnızca temiz dosyayı isterseniz ödüyorsunuz.

Inside OnePress — the build log

More posts like this, plus the weekly AI digest, straight to your inbox.

Get the build log in your inbox →

Reading this and have thoughts?

Spot a mistake, disagree, or want a follow-up? Tell us — a human reads it.