10 puan yazan GN⁺ 2025-06-04 | 5 yorum | WhatsApp'ta paylaş
  • Mevcut Markdown sözdizimini genişleterek kitap, makale, slayt, sunum gibi farklı belge türlerini kolayca üretmeyi sağlayan modern bir tipografi sistemi
  • Fonksiyon desteği, değişken kullanımı, koşullar/döngüler, standart kütüphane gibi gelişmiş özellikleri doğrudan Markdown içine gömerek, mevcut Markdown veya LaTeX'e kıyasla genişletilebilirlik ve otomasyon açısından farklılaşıyor
  • Tek bir kaynak dosyayla HTML, PDF, slaytlar (reveal.js), sayfalı kitap (paged.js) gibi birden fazla çıktı üretilebiliyor; kod tabanlı içerik üretimi için optimize edilmiş
  • Betik yazma özellikleri ve ifade gücü yüksek genişletilmiş sözdizimi ile karmaşık veya dinamik içerikler de esnek biçimde oluşturulabiliyor
  • REPL, canlı önizleme, hızlı derleme ortamı sunarak gerçek zamanlı belge düzenleme ve hata ayıklamayı mümkün kılıyor
  • Mevcut araçlarla karşılaştırıldığında betik yazma, belge denetimi, kolay öğrenme eğrisi gibi alanlarda Markdown, LaTeX, Typst, AsciiDoc, MDX karşısında güçlü yanlara sahip
  • Ayrı bir geliştirme ortamı veya karmaşık kurulum gerekmeden yalnızca Java 17 veya üzeri ile başlıca işletim sistemlerinin tamamında kullanılabiliyor

About

  • Quarkdown, Markdown'ın temel yapısına fonksiyonlar ve genişletilmiş sözdizimi ekleyerek, kullanıcıların basit metinlerden kitap, makale, slayt gibi farklı biçimlerde yüksek kaliteli çıktıları kolayca üretmesini sağlamak üzere tasarlanmış modern bir dizgi sistemi
  • CommonMark ve GFM temel alınarak geliştirilmiştir; kendi sözdizimiyle birlikte fonksiyonları, değişkenleri ve kullanıcı tanımlı kütüphaneleri de destekler
    • Quarkdown Flavor adlı özgün bir sözdizimi sunar
    • Turing-tam fonksiyon genişletme sözdizimi ile Markdown'a fonksiyonlar, koşullar, döngüler gibi gelişmiş özellikler ekler
  • .qmd kütüphanesi sayesinde düzen, giriş/çıkış, matematik, koşullar, döngüler gibi çeşitli işlevler kullanılabilir
  • Karmaşık belge yapıları veya dinamik içerik gerektiren durumlarda da genişletilebilirliği ve üretkenliği artırabilir

Başlıca özellikler ve kullanım şekilleri

  • HTML, slaytlar, kitap (Paged), PDF gibi çeşitli çıktı biçimlerini destekler
    • .doctype {slides}, .doctype {paged} gibi fonksiyon çağrılarıyla belge türü belirlenebilir
    • reveal.js, paged.js gibi açık kaynak tabanlı motorlarla entegre olur
  • Betik yazma ve dinamik içerik
    • Fonksiyonlar, değişkenler, koşullar, döngüler gibi programlama öğelerini içerir
    • ör.) .function {greet} ... .greet {world} from:{iamgio}
  • Canlı önizleme, hızlı derleme
    • Gerçek zamanlı önizleme ve dosya değişikliği izleme (Watch) özelliği sunar
    • -p --preview, -w --watch seçenekleriyle çalışma verimliliğini artırır
  • Diğer belge araçlarıyla karşılaştırma
    • LaTeX'e kıyasla öğrenme eğrisi daha düşüktür; Markdown'a kıyasla ise özellik genişletilebilirliği daha yüksektir
    • Typst, AsciiDoc, MDX gibi araçlarla karşılaştırıldığında betik yazma / ifade gücü açısından öne çıkar

Desteklenen hedefler

  • HTML
    • Genel çıktı (varsayılan)
    • Slaytlar (reveal.js kullanır)
    • Kitap/makale biçimi (paged.js kullanır, web sunucusu gerekir)
  • PDF
    • HTML'in desteklediği tüm belge türleri ve özellikler aynen PDF olarak da üretilebilir
    • PDF çıktısıyla ilgili ayrıntılar için wiki belgesine bakın
  • .doctype {slides}, .doctype {paged} gibi fonksiyon çağrılarıyla çıktı biçimi denetlenebilir

Karşılaştırma

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
Sadelik · okunabilirlik
Tüm belge üzerinde denetim
Betik yazma özellikleri Kısmen desteklenir
Kitap/makale biçimi çıktı 3rd party
Sunum çıktısı 3rd party
Öğrenme eğrisi düşük düşük yüksek orta düşük düşük
Hedef desteği HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5 yorum

 
plastic041 2025-06-05

Galiba tablo olduğu için mobil düzen bozuluyor.

 
plastic041 2025-06-05

.topic_contents öğesine min-width: 0 verince düzeliyor. min-width yüzünden gerçekten başım ağrıdı...

 
xguru 2025-06-05

Ah, bunu farklı bir şekilde çözdüm. Teşekkürler!

 
plastic041 2025-06-05

Hızlı geri bildiriminiz için teşekkürler~

 
GN⁺ 2025-06-04
Hacker News görüşleri
  • Benim FOSS metin editörüm KeenWrite, Markdown'dan XHTML, TeX ve PDF'ye dönüştürmek için benzer bir yaklaşım kullanıyor
    Yazılım mimarisi, işlemci zincirinin nasıl tasarlanabileceğini gösteriyor
    KeenWrite'ı oluşturma nedenim, bilimkurgu yazarken karakter adları ya da yerler gibi değişkenleri kullanabilmekti
    Ayrıntılar için eğiticiye bakın
    Hâlâ pandoc ve kabuk betikleri kullananlar için, Typesetting Markdown serisi Markdown'dan PDF'ye dönüştüren betik tabanlı bir altyapının nasıl kurulacağını anlatıyor
    KeenWrite hakkında daha fazla bilgiyi burada bulabilirsiniz
    Mimari diyagramı buradan inceleyebilirsiniz

  • Son dönemde çok ilgi gören Typst ile bu projeyi karşılaştırmak ilginç olurdu; ama özellik karşılaştırma matrisinde Typst'ten hiç bahsedilmemesi şaşırtıcı

    • En son baktığımda Typst HTML çıktısı veremiyordu
    • Şimdi Typst'ten de bahsediliyor
      Genel olarak iki proje birbirine çok benziyor gibi görünüyor
  • Karşılaştırma tablosunun doğru olup olmadığını merak ediyorum – bağlantı
    LaTeX'in kesinlikle tam teşekküllü betik yetenekleri olduğunu düşünüyorum, kullanması ne kadar sancılı olsa da
    Quarkdown'un daha esoterik sözdiziminin Typst'ten daha kısa ve okunabilir olduğu iddiasına şüpheyle yaklaşıyorum
    Öğrenme eğrisinin de Typst'ten daha kolay olacağını sanmıyorum; ikisi neredeyse aynı görünüyor
    LaTeX'in tex4ht ile HTML de üretebildiğini sanıyorum

    • Açıkçası Markdown'ın büyük kısmı Quarkdown'da da olduğu gibi kullanılabiliyor
      Bundan daha düşük bir giriş bariyeri olamaz
      Elbette öğrenme eğrisi ile giriş bariyeri aynı şey değil, ama büyük ölçüde örtüşüyorlar
      Ayrıca "öğrenme eğrisi" öznel bir özellik
      Karşılaştırma tablosuna koyarsanız baştan çarpıtılmış olur
      Net özellikler daha nesnel olsa da, bazen ürünün doğası gereği bazı özellikler gereksiz olabilir
    • Bu tür kullanım senaryolarında Pandoc en iyisi
    • TikZ ve pgf, LaTeX ve TeX'in betik yeteneklerinin ne düzeyde olduğunu hemen gösteriyor
      Karşılaştırma tablosu açıkça hatalı
  • Örnek çıktılar hoş görünüyor
    Ama şablon dilinin fonksiyon çağrılarıyla ya da karmaşıklıkla büyümesinden hiçbir zaman pek hoşlanmıyorum
    Elbette bu bağlamda anlamlı olabilir
    Ama bunu başka bir dille birlikte kullanmak gerekirse, örneğin sunucu tarafı render etme ya da veri odaklı belge üretimi gibi durumlarda, iki dil arasında gidip gelerek fazla zaman harcanıyor
    Şablon dilleri hiçbir zaman "gerçek" bir dil kadar güçlü olmuyor
    Bu yüzden JSX ya da JavaScript'in tagged template literal gibi yaklaşımlarını tercih ediyorum
    Gerçek bir programlama dili kullanırken aynı zamanda belgenin bağlamını anlayıp kaçış işlemleriyle (XSS gibi) daha az uğraştıran bir yaklaşım daha iyi

  • Quarto ile bu proje arasındaki farkı merak ediyorum
    İsimleri de benziyor, uzantıları da aynı, hedefleri de benzer görünüyor ama özellikleri daha az gibi – Quarto

    • Quarto, R Markdown ekosisteminin fiilî halefi
      SSS'de aynı geliştiriciler tarafından yapıldığı belirtiliyor
    • Ben de aynı soruyu soracaktım
      Bir arkadaşım birkaç gün önce tüm ders notlarını Quarto ile yeniden yazdığını ve içine sunum da gömdüğünü gösterdi; oldukça temiz görünüyordu
      Quarto'nun R Studio ve Jupyter Notebook ile de iyi entegre olması büyük avantaj
    • İsmin benzerliği muhtemelen QuarkXPress'e bir gönderme ya da çağrışımdan geliyor
      Bence bu, yakınsak evrim gibi bir durum
  • Aslında "planet" gibi görünebilecek şeyin bir kuark, özellikle de down kuark olduğuna dair açıklama ilginç
    Havalı bir proje ama yayıncılık sektöründeki ünlü marka QuarkXPress yüzünden "Quark" kelimesini bir yayın sistemi adı olarak kullanmak biraz riskli
    İlgili ticari marka kayıtlarına buradan ve buradan bakılabilir
    (Aynı kelime için neden iki ticari marka kaydı olduğunu da merak ediyorum)

  • Bu alandaki her tartışma başlığında hep "%70 neden LaTeX kullanmıyorsun?" tarzı yorumlar oluyor; o yüzden en baştan net olayım
    Ben kesinlikle modern, Markdown tabanlı bir dizgi sistemine ihtiyaç duyuyorum
    LaTeX'in yerini almaya çalışan daha fazla girişim olmasını isterim
    LaTeX gerçekten kullanışsız ve eski usul; işaretlemeyi daha serbest verebileceğim bir sistem iyi olurdu
    Özellikler arttıkça sözdizimi uzasa bile, Markdown'dan biraz daha güçlü bir alana kesinlikle ihtiyaç var
    Ama bu projenin benim aradığım şey olmadığını hissediyorum
    Örneklere bakınca, sanki sadece Markdown'dan biraz daha güçlü tarafa kayıyor; tam bir LaTeX (veya Typst) alternatifi gibi durmuyor
    Bu tür belge sistemlerinin kullanımı "gerçekten akıcı" olmalı; bunda o hissi alamadım

    1. Ayrıca JVM tabanlı olduğu için kurmak bile istemiyorum
      Bu, yaygınlaşma açısından iyi görünmüyor
    2. Sözdizimini de beğenmedim
      Mümkün olduğunca normal Markdown ile uyumlu olmasını isterdim ama fonksiyon argümanları için girinti zorunlu olunca tüm belge girintili olacakmış gibi görünüyor; oysa Markdown'ın uzantı noktası genelde kod bloklarıdır (```plugin-name` gibi) ve bu daha doğal
      Sözdizimi farkı yüzünden belgenin tüm yapısını değiştirmek gerekebilir
    3. "Daha iyi Markdown" fikri, kişisel notlardan başlayıp zamanla herkese açık belgelere dönüşen işler için daha uygun gibi geliyor
      Eğer belgeyi doğrudan yayımlama amacıyla üretiyorsam, zaten LaTeX ile de çalışabilirim
      En faydalı olduğu yer, not alma uygulamalarına iyi entegre edildiği zaman
      Bunu Emacs ya da Vim'de yapanlar vardır ama benim gibi eski kafalı biri bile sonunda Obsidian ve benzerlerine geçtiğini itiraf etmeli
      Belge yapısını not uygulamasında daha iyi kontrol edebilen veya yayımlama işlevlerine bağlanabilen bir parça olması güzel olurdu
      Bağımsız bir araçsa neden kullanayım, emin değilim
      Hiç değilse Typst'in bir çevrimiçi editörü var; herkes onu kullanıyor
    • LaTeX eski bir çöp değil; en iyi yazılımlardan biri
      Önemli olan belgeye gereksiz şeyler eklememesi
  • Bu tür sistemler (Typst dahil) temelde makale gibi uzun metinlerin dizgisi için yapılmış
    Keşke HTML'e bir alternatif olsalar; Typst'i de denedim ama geliştiriciler neredeyse sadece "makaleler ya da uzun metinler" ile ilgileniyor gibi geliyor
    Formlar, faturalar, el ilanları, kartvizitler gibi şeyler de yapmak istiyorum ama bunlar ilgi alanlarının dışında
    (Aslında aklımda Sile vardı ama Typst de benzer)
    Typst ticari olduğu için çok derinlemesine kullanmadım

    • Bahsettiğiniz form, fatura vb. şeylerde Typst'i kullanamamak için özel bir sebep var mı, emin değilim
      Özellikle etkileşimli formlar için zaten çalışma yürütüldüğüne dair haberler var (pdf writer arka ucu şimdiden kısmen destekliyor)
      Biraz zamanla Typst'te form özellikleri muhtemelen hayata geçer – issue
    • Bunun nedeni, bu alanın "dizgi"den çok "grafik tasarım"a yakın olması olabilir
      Fatura, reklam broşürü, kartvizit gibi şeylerde küçük öğeleri sayfanın ortasına ya da kenarlarına hassas biçimde yerleştirmek gerekir; bu da WYSIWYG araçları daha uygun kılar
      Sadece metin tabanlı dizgiyle çok fazla deneme-yanılma gerekir
      Örneğin tabloid tarzı düzenlerde metin, dikdörtgen olmayan görsellerin ya da kesitlerin etrafından akıp sarılmalı; bunu gerçekten gözle görmeden sadece koordinatlarla yapmak çok zor
    • Typst'in çevrimiçi editörü ticari olabilir ama Typst'in kendisi Apache 2.0 lisansı ile açık kaynak
      Ben Rust ile cargo üzerinden kurup çevrimiçi editör olmadan gayet rahat kullanıyorum
    • Typst yerelde de kullanılabilir; ticari kısmı tamamen atlayabilirsiniz
      Birçok farklı belge türü üretmek için oldukça kolay
      Ben zaten slayt ve dağıtım notu hazırlamakta alternatif olarak kullanıyorum
    • Typst'teki ilk "gerçek kullanımım" bir posteri hazırlamak oldu; LaTeX'ten çok daha kolaydı
      Görsel etrafına metin sarma ya da metin akışı gibi birkaç özellik henüz yok ama TeX'te de bunlar zor; Typst'e de ileride eklenecek
      Poster örneği
  • Bu neredeyse reStructuredText (rST) ile tamamen aynı görünüyor
    Quarkdown'un fonksiyon sözdizimi (.somefunction {argüman} {argüman} body) ile rST'nin fonksiyon sözdizimi (.. somefunction:: {argüman} {argüman} body) çok benzer

  • Markdown, Quarkdown, Typst derken çok fazla seçenek ve çok az standardizasyon varmış gibi geliyor; bu yüzden sonunda HTML+CSS'ye geri dönüyorum

    • XML'e ne dersiniz?
      Hiç doğrudan kullanmadım ama epey ciddi düşünüyorum
      Diğer biçimlerin hepsi karmaşık ve öğrenme eğrileri yazının kendisini engelliyor
      XML'de kendi etiketlerimi istediğim gibi tanımlayıp, bir ayrıştırıcıyla dipnotların otomatik oluşturulması gibi çeşitli yapılar kurabilirim
      Bu yaklaşımı kullanan var mı merak ediyorum
    • Markdown temel seviyede gerçekten verimli
      Sorun, çok fazla insanın onun üstüne katmanlar inşa edip en başta "daha karmaşık" bir şeyi çözmeye çalışmasıyla başlıyor
      Başlangıçta basit bir amaç için tasarlanmış bir sistemi, onu geliştirdiğini sanarak aslında sınırlarını anlamadan zorlamalarının gereksiz tekrar ve kafa karışıklığını artırdığını düşünüyorum
      Eksik olan özellikler değil; mesele tasarım amacının dışına çıkılması
      Hatta Windows notepad'e biçimlendirme gelse bile, bunun özünde bir iyileştirme olacağını düşünmüyorum
      Çünkü notepad'in zaten kendine ait bir rolü vardı
    • Olgun ve güvenilir Org-mode da var
      Emacs'tan nefret etmiyorsanız iyi bir seçenek
    • Ben de HTML, CSS, Javascript ile web geliştirmede DOM manipülasyonu yapmayı daha eğlenceli buluyorum
      Yüzlerce framework ve karmaşık sözdizimi ezberlemek gerekmiyor
      Yapay zekaya markdown to html dönüştürücü oluşturması için komut vermek bile yeterli olabilir
    • Eğer 2005'teki metin editörlerinin otomatik tamamlama özellikleri bugün olduğu kadar iyi tag dengeleme, girinti ve vurgulama desteği sunsaydı, belki JSON, YAML, Markdown gibi biçimler bu kadar yaygınlaşmazdı
      2003 tarihli The Art of Unix Programming'de de XML'i doğrudan düzenlemenin acı verici olduğundan ve bu yüzden türlü biçimlerle ayrıştırıcıların ortaya çıktığından bahsediliyor