- Sistem tipografi modern yang memperluas sintaks Markdown yang ada sehingga dokumen dalam berbagai format seperti buku, makalah, slide, dan presentasi dapat dibuat dengan mudah
- Dengan menanamkan langsung fitur tingkat lanjut seperti dukungan fungsi, penggunaan variabel, kondisional/perulangan, dan pustaka standar ke dalam Markdown, Quarkdown memiliki keunggulan dalam ekstensibilitas dan otomatisasi dibanding Markdown biasa maupun LaTeX
- Dari satu berkas sumber, dapat menghasilkan berbagai output seperti HTML, PDF, slide (reveal.js), dan buku berpaginasi (paged.js), sehingga sangat cocok untuk pembuatan konten berbasis kode
- Dengan fitur scripting dan sintaks ekstensi yang ekspresif, konten yang kompleks atau dinamis pun dapat diwujudkan dengan leluasa
- Menyediakan lingkungan REPL, live preview, dan kompilasi cepat, sehingga penyuntingan dan debugging dokumen dapat dilakukan secara real time
- Dibandingkan alat yang sudah ada, Quarkdown unggul dalam fitur scripting, kontrol dokumen, dan kurva belajar yang mudah dibanding Markdown, LaTeX, Typst, AsciiDoc, dan MDX
- Tanpa lingkungan pengembangan terpisah atau konfigurasi rumit, Quarkdown dapat digunakan di semua sistem operasi utama selama tersedia Java 17 atau lebih baru
About
- Quarkdown adalah sistem typesetting modern yang dirancang agar pengguna dapat dengan mudah membuat hasil akhir berkualitas tinggi, mulai dari teks sederhana hingga buku, makalah, dan slide, dengan menambahkan fungsi serta sintaks ekstensi ke struktur dasar Markdown
- Dikembangkan berdasarkan CommonMark dan GFM, serta mendukung sintaks sendiri, fungsi, variabel, hingga pustaka buatan pengguna
- Menyediakan sintaks khusus bernama Quarkdown Flavor
- Melalui sintaks ekstensi fungsi yang Turing-complete, Quarkdown menambahkan fitur tingkat lanjut seperti fungsi, kondisional, dan perulangan ke dalam Markdown
- Dengan pustaka .qmd, pengguna dapat memanfaatkan berbagai fitur seperti layout, input/output, matematika, kondisional, dan perulangan
- Bahkan saat membutuhkan struktur dokumen yang kompleks atau konten dinamis, Quarkdown dapat meningkatkan ekstensibilitas dan produktivitas
Fitur utama dan cara penggunaan
- Mendukung berbagai format output seperti HTML, slide, buku (Paged), dan PDF
- Jenis dokumen dapat ditentukan melalui pemanggilan fungsi seperti
.doctype {slides} dan .doctype {paged}
- Terintegrasi dengan engine berbasis open source seperti reveal.js dan paged.js
- Scripting dan konten dinamis
- Mengadopsi elemen pemrograman seperti fungsi, variabel, kondisional, dan perulangan
- contoh) .function {greet} ... .greet {world} from:{iamgio}
- Live preview dan kompilasi cepat
- Menyediakan pratinjau real time dan fitur deteksi perubahan berkas (Watch)
- Opsi
-p --preview dan -w --watch meningkatkan efisiensi kerja
- Perbandingan dengan alat dokumen lain
- Kurva belajarnya lebih rendah dibanding LaTeX, dan kemampuan ekstensinya lebih baik daripada Markdown
- Dibanding Typst, AsciiDoc, MDX, dan lainnya, Quarkdown unggul dalam scripting dan daya ekspresi
Target yang didukung
- HTML
- Output umum (default)
- Slide (menggunakan reveal.js)
- Bentuk buku/makalah (menggunakan paged.js, memerlukan web server)
- PDF
- Semua jenis dokumen dan fitur yang didukung HTML dapat dikeluarkan ke PDF apa adanya
- Untuk detail lebih lanjut tentang output PDF, lihat dokumen wiki
- Format output dapat dikendalikan melalui pemanggilan fungsi seperti
.doctype {slides} dan .doctype {paged}
Perbandingan
|
Quarkdown |
Markdown |
LaTeX |
Typst |
AsciiDoc |
MDX |
| Kesederhanaan·keterbacaan |
✔ |
✔ |
✗ |
✔ |
✔ |
✔ |
| Kontrol dokumen menyeluruh |
✔ |
✗ |
✔ |
✔ |
✗ |
✗ |
| Fitur scripting |
✔ |
✗ |
Dukungan sebagian |
✔ |
✗ |
✔ |
| Output format buku/artikel |
✔ |
✗ |
✔ |
✔ |
✔ |
3rd party |
| Output presentasi |
✔ |
✗ |
✔ |
✔ |
✔ |
3rd party |
| Kurva belajar |
hijau |
hijau |
merah |
oranye |
hijau |
hijau |
| Dukungan target |
HTML, PDF |
HTML |
PDF, PostScript |
PDF |
HTML, PDF, ePub |
HTML |
5 komentar
Mungkin karena ada tabel, tata letak di perangkat seluler jadi rusak.
Memberi
.topic_contentsmin-width: 0memperbaiki masalahnya.min-widthmemang benar-benar bikin pusing...Ah, saya sudah menemukan solusinya dengan cara lain. Terima kasih!
Terima kasih atas tanggapan cepatnya~
Komentar Hacker News
Editor teks FOSS saya, KeenWrite, menggunakan pendekatan serupa untuk mengonversi Markdown menjadi XHTML, TeX, dan PDF
Arsitektur perangkat lunaknya menunjukkan bagaimana rantai prosesor bisa dirancang
Saya membuat KeenWrite karena ingin bisa memakai variabel seperti nama tokoh atau lokasi saat menulis novel fiksi ilmiah
Untuk detailnya, lihat tutorial
Bagi yang masih memakai pandoc dan shell script, seri Typesetting Markdown menjelaskan cara membangun infrastruktur berbasis skrip untuk mengubah Markdown menjadi PDF
Informasi tentang KeenWrite sendiri bisa dilihat di sini
Diagram arsitekturnya bisa dilihat di sini
Akan menarik membandingkan proyek ini dengan Typst, yang belakangan mendapat banyak perhatian, jadi agak mengejutkan bahwa Typst sama sekali tidak disebut dalam matriks perbandingan fitur
Secara keseluruhan, kedua proyek ini terlihat sangat mirip
Saya penasaran apakah chart perbandingannya akurat – tautan
LaTeX jelas punya kemampuan scripting yang lengkap, walau memang menyiksa untuk dipakai
Saya skeptis terhadap klaim bahwa sintaks Quarkdown yang aneh lebih ringkas dan mudah dibaca daripada Typst
Kurva belajarnya juga sepertinya tidak akan lebih mudah daripada Typst; keduanya tampak hampir sama
Saya rasa LaTeX juga bisa menghasilkan HTML lewat tex4ht
Hambatan masuk rasanya tidak bisa lebih rendah lagi dari itu
Tentu saja kurva belajar tidak sama persis dengan hambatan masuk, tapi banyak tumpang tindihnya
Dan "kurva belajar" adalah sifat yang subjektif
Kalau dimasukkan ke tabel perbandingan, pasti sejak awal akan bias
Fitur yang jelas lebih objektif, meski kadang suatu produk memang tidak membutuhkan fitur tertentu secara desain
Tabel perbandingannya jelas tidak akurat
Hasil output contohnya terlihat keren
Tapi saya memang tidak terlalu suka saat bahasa template berkembang dengan pemanggilan fungsi atau kompleksitas lain
Tentu saja dalam konteks ini mungkin masuk akal
Namun jika harus dipakai bersama bahasa lain, misalnya untuk server-side rendering atau pembuatan dokumen berbasis data, waktu habis hanya untuk bolak-balik antara dua bahasa
Bahasa template tidak pernah sekuat bahasa yang "sesungguhnya"
Karena itu saya lebih suka pendekatan seperti JSX atau tagged template literal di JavaScript
Lebih baik memakai bahasa pemrograman sungguhan sambil tetap memahami konteks dokumen, sehingga kekhawatiran soal escaping seperti XSS bisa berkurang
Saya penasaran apa bedanya proyek ini dengan Quarto
Namanya mirip, ekstensinya juga sama, dan arahnya pun tampak serupa, tapi fiturnya malah kelihatan lebih sedikit – Quarto
Di FAQ disebutkan bahwa pengembangnya juga orang yang sama
Beberapa hari lalu seorang teman memperlihatkan bagaimana dia menulis ulang semua naskah kuliahnya di Quarto dan bahkan menyematkan presentasi, dan hasilnya terlihat cukup rapi
Kelebihan besar Quarto adalah integrasinya yang baik dengan R Studio dan Jupyter Notebook
Menurut saya ini semacam evolusi konvergen
Menarik bahwa sesuatu yang bisa terlihat seperti "planet" itu ternyata adalah quark, khususnya down quark
Proyeknya keren, tapi karena QuarkXPress adalah merek terkenal di industri penerbitan, memakai kata "Quark" sebagai nama sistem penerbitan terasa agak berisiko
Informasi pendaftaran merek terkait bisa dilihat di sini, di sini
(Saya juga penasaran kenapa ada dua merek terdaftar untuk kata yang sama)
Di setiap thread diskusi bidang ini, selalu ada sekitar 70% komentar tipe "kenapa tidak pakai LaTeX?", jadi biar saya tegaskan dulu dari awal
Saya jelas butuh sistem typesetting modern berbasis Markdown
Saya ingin ada banyak upaya untuk menggantikan LaTeX
LaTeX benar-benar tidak nyaman, kuno, dan akan bagus jika ada sistem yang memberi markup lebih bebas
Bahkan jika akhirnya kaya fitur sampai sintaksnya menjadi panjang, tetap ada kebutuhan nyata untuk sesuatu yang sedikit lebih kuat daripada Markdown
Tapi saya merasa proyek ini bukan yang saya cari
Dari contoh-contohnya, kelihatannya ia cenderung hanya sedikit lebih kuat dari Markdown biasa, dan belum cukup sebagai pengganti penuh LaTeX (atau Typst)
Sistem dokumen seperti ini harus terasa "sangat mulus" dipakai, dan ini tidak memberi kesan seperti itu
Itu bukan hal yang baik untuk penyebaran
Saya ingin ia semaksimal mungkin kompatibel dengan Markdown normal, tetapi kalau argumen fungsi wajib diindentasi, seluruh dokumen bisa ikut terindentasi, padahal titik ekstensi Markdown biasanya lebih alami dalam bentuk code block (gaya ```plugin-name`)
Karena perbedaan sintaks, struktur seluruh dokumen mungkin perlu diubah
Kalau dokumennya memang dibuat untuk tujuan penerbitan, ya sekalian saja pakai LaTeX
Yang paling berguna justru saat ia terintegrasi baik dengan aplikasi pencatatan
Mungkin ada yang tetap melakukannya di Emacs atau Vim, tapi bahkan saya yang cukup retro pun akhirnya pindah ke Obsidian dan sejenisnya
Akan bagus kalau ada bagian yang membuat struktur dokumen lebih mudah dikendalikan dari aplikasi catatan, atau yang juga bisa terhubung ke fitur publishing
Kalau berdiri sendiri, saya jadi bertanya kenapa harus memakainya
Setidaknya Typst punya editor online, dan semua orang memakainya
Kuncinya adalah tidak menambahkan hal-hal yang tidak perlu ke dokumen
Sistem seperti ini (termasuk Typst) pada dasarnya ditujukan untuk typesetting teks panjang seperti paper
Saya berharap ini bisa menjadi alternatif HTML, tapi setelah mencoba Typst pun, rasanya para pembuatnya hampir hanya peduli pada "paper atau teks panjang"
Saya juga ingin membuat formulir, invoice, flyer, kartu nama, dan semacamnya, tetapi elemen-elemen seperti itu berada di luar perhatian mereka
(Sebenarnya saya sedang memikirkan Sile, tapi Typst juga mirip)
Saya tidak mendalami Typst karena sifat komersialnya
Khususnya untuk formulir interaktif, kabarnya itu sudah sedang dikerjakan (backend pdf writer bahkan sudah mendukung sebagian)
Seiring waktu, fitur formulir tampaknya akan hadir di Typst – lihat issue
Invoice, brosur iklan, kartu nama, dan semacamnya perlu menempatkan elemen kecil secara tepat di tengah halaman atau di tepi, dan untuk itu alat WYSIWYG lebih nyaman
Kalau hanya mengandalkan typesetting berbasis teks, trial and error-nya jadi terlalu banyak
Misalnya di tabloid, teks harus mengalir dan membungkus mengikuti gambar atau potongan yang bentuknya tidak persegi, dan melakukan itu hanya dengan menulis koordinat tanpa melihat hasilnya secara langsung sangat sulit
Saya menginstalnya lewat cargo di Rust dan bisa memakainya dengan sangat baik tanpa editor online
Cukup mudah dipakai untuk membuat berbagai jenis dokumen
Saya sendiri sudah memakainya sebagai pengganti untuk membuat slide dan handout
Memang masih ada beberapa fitur seperti image wrapping dan text flow yang belum ada, tetapi di TeX pun itu sulit dan direncanakan akan ditambahkan ke Typst nanti
Contoh poster
Ini kelihatannya hampir persis sama dengan reStructuredText (rST)
Sintaks fungsi Quarkdown (.somefunction {argumen} {argumen} body) sangat mirip dengan sintaks fungsi rST (.. somefunction:: {argumen} {argumen} body)
Markdown, Quarkdown, Typst, dan sebagainya terlalu banyak dan terasa tidak terstandarisasi, jadi saya akhirnya kembali ke HTML+CSS
Saya belum pernah benar-benar memakainya, tapi sedang mempertimbangkannya cukup serius
Format-format lain terlalu rumit dan punya kurva belajar yang mengganggu kegiatan menulis itu sendiri
Di XML saya bisa mendefinisikan tag saya sendiri dan membangun berbagai struktur dengan parser, seperti pembuatan catatan kaki otomatis
Penasaran apakah ada yang pernah mencoba pendekatan seperti ini
Masalah muncul ketika terlalu banyak orang mulai menumpuk sistem di atasnya, lalu mencoba menyelesaikan sesuatu yang sejak awal memang "lebih kompleks"
Menurut saya mereka berusaha memperbaiki sistem yang awalnya ditujukan untuk hal sederhana, tetapi gagal memahami batasannya, sehingga yang bertambah justru pengulangan yang tidak perlu dan kebingungan
Ini bukan soal kekurangan fitur, melainkan soal dipakai di luar cakupan tujuan desainnya
Bahkan kalau Windows Notepad menambahkan pemformatan pun, menurut saya itu tetap bukan perbaikan secara esensial
Karena Notepad memang punya peran aslinya sendiri
Kalau Anda tidak membenci Emacs, itu pilihan yang bagus
Tidak perlu menghafal ratusan framework dan sintaks rumit sebanyak itu
Bahkan cukup memberi AI perintah untuk membuat konverter markdown ke html
Bahkan dalam The Art of Unix Programming yang terbit pada 2003 ada pembahasan bahwa mengedit XML secara langsung itu menyakitkan, sehingga perlu dibuat berbagai format dan parser baru