lecture.studio

Marp nedir? Markdown ile sunum hazırlama rehberi

Marp, bir Markdown dosyasını slayt destesine çeviren açık kaynaklı bir araç ailesidir: dosyanın başındaki bir blok Marp'ı açar, tek başına üç tire yeni slayt başlatır, HTML yorumları konuşmacı notu olur. Ders için anlamı şudur: her hafta düz bir metin dosyasıdır; sürümlenir, farkı alınır, aranır, gerektiğinde PDF ya da PowerPoint'e çevrilir.

Bu yazı Marp'ı hiç görmemiş bir öğretim üyesi için yazıldı. Önce ne olduğu, sonra bir dersi yazarken kullanılan sözdizimi, sonra dışa aktarma.

Marp nedir?

Marp ("Markdown Presentation Ecosystem") üç parçadan oluşur:

Hepsi MIT lisanslıdır ve ücretsizdir. Slayt dosyası birkaç kural eklenmiş sıradan Markdown olduğu için her düzenleyicide açılır; PowerPoint gibi ikili bir biçime bağımlılık yoktur.

En küçük deste

---
marp: true
theme: default
paginate: true
---

# 3. Hafta: Süreçler

## Dersin sonunda söyleyebilecekleriniz

---

# Bir süreç her an beş durumdan tam olarak birindedir

- yeni, hazır, çalışıyor, bekliyor, sonlandı
- süreç bunlar arasında geçer; aynı anda ikisinde olmaz

<!-- Silberschatz 3.1. İlerlemeden önce durum diyagramını çiz. -->

Burada üç şey olur:

  1. Ön bloktaki marp: true, dosyanın deste olduğunu söyler.
  2. Tek başına bir satırdaki --- slaytları ayırır. İlk --- çifti ön bloktur, sonrakiler slayt sınırıdır.
  3. HTML yorumu konuşmacı notudur. Slaytta görünmez, sunum görünümünde görünür. Bir slayttaki birden çok yorum birleştirilir.

Ön blokta kullanacağınız anahtarlar

Anahtar Ne yapar
theme default, gaia, uncover (hazır temalar) ya da kendi temanızın adı
paginate: true slayt numarası
size: 16:9 en-boy oranı; 4:3 de olur
header / footer her slaytta tekrar eden metin; ders kodu ya da kaynak satırı için
style tüm desteye uygulanan CSS bloğu

Ders koduyla altbilgi örneği:

---
marp: true
theme: gaia
paginate: true
footer: "BLM2012 · İşletim Sistemleri · 3. Hafta"
---

Yönergeler: tek slaydı değiştirmek

Yönerge, anahtar ve değer içeren bir HTML yorumudur. Alt çizgiyle yalnızca o slayda, alt çizgisiz o slayttan itibaren hepsine uygulanır.

<!-- _class: lead -->
# 2. Kısım: Zamanlama

---

<!-- _backgroundColor: #f5f5f5 -->
# Kendi rengi olan bir slayt

En çok kullanacağınız _class: lead'dir: hazır temalarda slaydı ortalar, kısım ayıracının istediği budur. _paginate: false başlık slaydında numarayı gizler.

Görseller ve arka planlar

![width:600px](sekiller/durum-diyagrami.svg)

![bg right:40%](sekiller/cpu.jpg)
# Görsel sağ %40'ı alır, metin kalanını

---

![bg contain](sekiller/tam-diyagram.svg)

contain şeklin tamamını sığdırır, cover slaydı doldurur. Ders için salonun arkasından en iyi okunan düzen, yeniden çizilmiş bir diyagramla bg right'tır.

Temalar

Desteyi dersinize benzetmek için hazır bir temayı içe aktarıp birkaç kuralı ezen bir CSS dosyası yazılır:

/* @theme ders */
@import "gaia";

section { font-family: "IBM Plex Sans", system-ui, sans-serif; font-size: 28px; }
footer { font-size: 16px; color: #737373; }

/* @theme ders */ yorumu temayı adlandırır; ön blokta theme: ders yazılır ve CSS dosyası araca verilir (marp-cli'de --theme ders.css, VS Code'da markdown.marp.themes ayarı). Lecture Studio biri ders biri konuşma için iki böyle tema ile gelir ve önizlemede uygular.

Konuşmacı notları

Yönerge olmayan her HTML yorumu nottur:

# Bağlam değişimi salt ek yüktür

- yazmaçlar, program sayacı, bellek haritası saklanır ve geri yüklenir
- değişim sırasında işe yarar bir şey çalışmaz

<!--
Sor: saniyede 1000 kez olursa maliyet ne?
Kaynak: os-kitabı 3.2.3. Lab makinelerindeki süreler lab-03'te.
-->

Notlar VS Code eklentisinin ve Lecture Studio'nun sunum görünümünde görünür; marp --notes ile metin olarak dışa aktarılır.

Kod, matematik ve tablo

Çitli kod blokları dile göre renklendirilir; matematik $...$ ve $$...$$ ile yazılır (Marp Core varsayılan olarak MathJax kullanır; ön bloğa math: katex yazılırsa KaTeX); tablolar GitHub biçimindedir. Üçü de yalnızca kısaysa slayda sığar: otuz satırlık bir listeleme föye gider, ilginç beş satırı slayda. Bir slaytta hem tablo hem kod varsa büyük olasılıkla iki slayttır.

# Ortalama bekleme süresi algoritmaya göre değişir

| Algoritma | Ortalama bekleme |
|---|---|
| FCFS | 17 ms |
| SJF | 9 ms |

$$\bar{w} = \frac{1}{n}\sum_{i=1}^{n} w_i$$

Sunum sırasında

Desteyi dışa aktarmadan sunmanın üç yolu vardır: VS Code eklentisinin sunum görünümü (mevcut slayt, sonraki slayt ve notlar sizde, slayt projeksiyonda), marp-cli'nin --preview seçeneğiyle açılan pencere ve HTML çıktısını bir tarayıcıda açıp P tuşuyla sunum görünümüne geçmek. Lecture Studio'da sunum modu slaydı dinleyici ekranına koyar; notlar, sonraki slayt ve bir mola sayacı sizin ekranınızda kalır.

PDF ve PPTX'e çevirme

Projeksiyon için en güvenli biçim PDF, düzenlemek isteyen meslektaş için PPTX'tir. İkisi de marp-cli'den gelir:

npm install -g @marp-team/marp-cli    # ya da: brew install marp-cli
marp hafta3-slides.md --pdf
marp hafta3-slides.md --pptx
marp hafta3-slides.md --pptx --pptx-editable   # düzenlenebilir metin; LibreOffice ister, notları taşımaz

PDF ve PPTX üretimi makinede bir tarayıcı (Chrome, Edge ya da Firefox) ister; HTML çıktısı için hiçbir şey gerekmez. Varsayılan PPTX her slaydı görüntü olarak koyar ve notları taşır; --pptx-editable gerçek metin kutuları üretir ama sadakati düşüktür ve notlar kaybolur.

Ders için dosya düzeni

ders/
  izlence.md
  sources/               her haftanın ortak okumaları
  hafta3/
    hafta3-slides.md
    hafta3-ogretim-rehberi.md
    assets/              destenin kullandığı şekiller
    sources/             yalnızca bu haftanın okumaları

Her deste aynı ön blokla başlar: haftanın sorusunu taşıyan bir kapak, öğrencinin söyleyebileceklerini listeleyen bir slayt, gövde, iddiaları tekrar eden bir özet ve iletişim satırlarıyla bir kapanış. Lecture Studio yeni bir ders ya da konuşma için bu yapıyı oluşturur ve desteyi o klasörlerdeki kaynaklardan yazar. macOS'te çalışır ve asistan için bir Oberik proje anahtarı gerekir. Kaynaktan slayta yöntem Ders slaytı nasıl hazırlanır yazısında.

Sık sorulan sorular

Marp ücretsiz mi?

Evet. Marp, Marpit, VS Code eklentisi ve marp-cli MIT lisansıyla açık kaynaktır.

Marp destesini dışa aktarmadan sunabilir miyim?

Evet. VS Code eklentisinin sunum görünümü vardır; marp-cli'nin --preview seçeneği bir pencere açar; HTML çıktısı her tarayıcıda açılır. Lecture Studio'nun dinleyici ekranlı bir sunum modu vardır.

Marp konuşmacı notunu destekler mi?

Evet. Notlar slaydın içindeki HTML yorumlarıdır; sunum görünümlerinde görünür ve marp --notes ile dışa aktarılır.

Var olan PowerPoint dosyamı Marp'a çevirebilir miyim?

Marp'ın kendi araçlarıyla otomatik olarak hayır. Olağan yol desteyi okumalardan yeniden yazmaktır; göründüğünden hızlıdır ve daha temiz bir deste verir.