๐๏ธ Dasar Lengkap buat website di Quarto
Panduan praktis untuk mahasiswa dan asisten laboratorium pemula di bidang matematika, statistika, dan aktuaria yang ingin membuat website atau dokumentasi online secara gratis menggunakan Quarto dan GitHub Pages. Tidak perlu pengalaman pemrograman.
panduan membuat website dari nol, quarto website pemula, github pages untuk mahasiswa, dokumentasi lab asisten, markdown dan YAML dasar, blog mahasiswa statistika aktuaria, dokumentasi praktikum, personal site untuk asisten lab, publikasi ilmiah mahasiswa, website gratis tanpa coding
๐ Pendahuluan
Mahasiswa tingkat awal dan asisten laboratorium baru di bidang matematika, statistika, dan aktuaria sering kali dihadapkan pada kebutuhan mendokumentasikan kegiatan, membuat catatan, atau membangun portofolio digital. Sayangnya, membuat website terdengar seperti sesuatu yang rumit, memerlukan keahlian pemrograman, atau biaya mahal untuk hosting.
Panduan ini dirancang untuk membantumu membuat website secara gratis menggunakan Quarto dan GitHub Pages, tanpa harus jago coding. Kamu akan belajar langkah demi langkah mulai dari instalasi, penulisan konten dengan Markdown, pengaturan tampilan, hingga publikasi. Semua dijelaskan secara modular, visual, dan cocok dipelajari di sela-sela aktivitas kuliah atau laboratorium.
Dengan mengikuti panduan ini, kamu bisa membangun blog belajar, dokumentasi praktikum, portofolio akademik, hingga situs publikasi ilmiah dengan cara yang rapi, profesional, dan mudah diakses.
๐ Daftar Isi
1. ๐ Membuat Website
1.1 ๐งญ Gambaran Ikhtisar
Quarto Websites adalah cara yang nyaman untuk mempublikasikan kumpulan dokumen ๐. Dokumen-dokumen ini dipublikasikan sebagai bagian dari sebuah website ๐ yang berbagi elemen navigasi, opsi rendering, dan gaya visual ๐จ.
Navigasi website bisa ditampilkan lewat navbar global ๐งฑ, sidebar dengan tautan ๐งพ, atau kombinasi keduanya untuk situs dengan banyak tingkat konten ๐. Kamu juga bisa menyalakan fitur ๐ full text search untuk memudahkan pencarian.
Website Quarto bisa dipublikasikan ke berbagai platform seperti GitHub Pages, Netlify, Posit Connect, atau server web statis dan intranet ๐. Lihat dokumentasi lengkapnya di Publishing Websites.
1.2 โก Quick Start
Ikuti panduan Quick Start sesuai alat yang kamu pakai ๐ ๏ธ agar website kamu langsung bisa jalan. Setelah paham dasarnya, lanjutkan untuk mempelajari fitur-fitur lanjutan ๐.
Untuk membuat proyek website baru di VS Code:
- Jalankan perintah Quarto: Create Project lewat Command Palette.
- Pilih opsi Website Project ๐.
- Pilih direktori induk dan beri nama direktori proyekmu ๐.
Lalu, tekan tombol Preview โถ๏ธ untuk melihat hasilnya secara langsung di jendela preview. Saat kamu re-render file seperti index.qmd
atau about.qmd
, preview akan otomatis diperbarui ๐.
Preview ini akan menunjukkan tepat ke sumber file. Ketika re-render index.qmd
atau render files lainnya seperti about.qmd
, preview otomatis diperbarui.
Untuk membuat proyek website di RStudio:
- Gunakan menu New Project dan pilih Quarto Website ๐.
- Isi nama direktori dan opsi lainnya, lalu klik Create Project.
Gunakan tombol Render โถ๏ธ untuk melihat preview websitemu langsung di RStudio.
Preview ini akan menunjukkan tepat ke sumber file. Ketika re-render index.qmd
atau render files lainnya seperti about.qmd
, preview otomatis diperbarui.
Untuk membuat project website baru dari Terminal, gunakan quarto create project
command, diikuti prompt untuk memiliki tipe dan memberi nama untuk projek tersebut (yang akan digunakan untuk nama direktori tersebut):
Terminal
quarto create project website mysite
Ini akan membuat panggung untuk website sederhana di dalam mysite
sub-directory. Gunakan quarto preview
command untuk render dan preview website:
Terminal
quarto preview mysite
Website akan dibuka di browser ๐ dan akan otomatis ter-update saat kamu menyimpan perubahan. Ketika kamu edit dan simpan index.qmd
(atau file lain seperti about.qmd
) preview ini otomatis diperbarui.
1.3 ๐ Alur Kerja (Workflow)
Setelah memahami cara membuat dan mengedit website sederhana, sekarang saatnya mempelajari alur kerja yang lebih dalam ๐ง.
1.3.1 โ๏ธ File Konfigurasi _quarto.yml
Semua pengaturan website dikontrol lewat file _quarto.yml
. Contoh konfigurasi sederhana:
_quarto.yml
project:
type: website
website:
title: "today"
navbar:
left:
- href: index.qmd
text: Home
- about.qmd
format:
html:
theme: cosmo
css: styles.css
toc: true
๐ Lihat dokumentasi Navigasi Website untuk info lebih lanjut.
1.3.2 ๐ Preview Website
Di VS Code dan RStudio, kamu bisa klik tombol Preview atau Render untuk menjalankan quarto preview
langsung di jendela editor. Atau, jalankan lewat terminal:
Terminal
# preview the website in the current directory
quarto preview
๐ก Perhatikan bahwa ketika preview sebuah site (entah gunakan VS Code / RStudio alat terintegrasi atau dari terminal) perubahan file configurasi (yakni _quarto.yml
) sebagai sumber data situs (yakni thema atau file CSS) akan secara otomatis memperbaharui website.
Kamu dapat mengkustomisasi perilaku bagaimana server preview (port, apakah di buka di browser terbuka dll.) gunakan opsi command line atau _quarto.yml
file config. Lihat quarto preview help
atau project file reference untuk detail tambahan.
โ ๏ธ Perubahan besar seperti pada _quarto.yml
butuh re-render penuh sebelum kamu deploy. Selalu jalankan quarto render
sebelum menerbitkan websitemu.
1.3.3 ๐๏ธ Render Website
Untuk merender tanpa preview, jalankan:
Terminal
# merender website dalam direktori ini
quarto render
Website akan dihasilkan (secara default) di folder _site
๐.
Lihat artikel Project Basics untuk mempelajari lebih tentang pekerjaan terkait dengan projects, termasuk secara spesifik list eksplisit file untuk dirender, sebagaimana tambahan custom pre dan post render scripts untuk project kamu.
๐ฏ Render Targets
Secara default, semua input Quarto yang valid (.qmd, .ipynb, .md, .Rmd) di dalam direktori project akan di render, simpan salah satu dari:
Sebuah file atau prefix direktori
.
(hidden files)Sebuah file atau prefix direktori
_
(secara tipe digunakan untuk file non top-level, yakni termasuk A file or directory prefix of_
(typically used for non top-level files, yakni satu included di file lain)File bernama
README.md
atauREADME.qmd
(yang mana secara tipe tidak aktual render targets tapi konten informational sedikit sumber kode untuk dilihat di dalam web UI version control).
Jika kalian tidak ingin render semua target dokumen di dalam sebuah project, atau kalian harapkan untuk urutan secara precise rendering, kalian dapat menambahkanproject: render: [files]
entry untuk metadata project kalian. Contoh:
yaml
project:
render:
- section1.qmd
- section2.qmd
Perhatikan bahwa kalian dapat menggunakan wildcards ketikan mendefinisikan list render
. Misalnya:
yaml
project:
render:
- section*.qmd
Kalian dapat juga menggunakan prefix (awalan !
untuk menghiraukan beberapa file atau direktori dalam list render
. Perhatikan bahwa kasus kalian butuh dimulai dengan menspesifikasikan semua yang kalian ingin render. Misalnya:
yaml
project:
render:
- "*.qmd"
- "!ignored.qmd"
- "!ignored-dir/"
Jika sebuah nama dari file output membutuhkan dimulai dengan .
atau _
(misalnya _index.md
untuk pengguna Hugo), Kalian harus memberi nama Quarto file input tanpa prefix (misalnya index.qmd
) dan tambahkan secara eksplisit output-file
parameter di dalam YAML seperti.
yaml
output-file: "_index.md"
1.4 ๐ Linking antar Halaman
Ketika membuat link di antara halaman site kamu, kamu dapat memberikan sumber file sebagai target link (daripada .html
file). kamu juga dapat memberikan identifier hash (tanda pagar #)
ke sumber file jika kamu ingin ke link bagian secara khusus di dokumen. Misalnya:
[about](about.qmd)
[about](about.qmd#section)
Salah satu keuntungan dari penggunaan style ini dari link mengarah ke targeting .html
files secara langsung itu jika kamu pada titik tertentu ingin mengubah website ke buku dasar file ini akan menautkan secara otomatis ke bagian link untuk format yang menghasilkan single file (misalnya PDF atau MS Word).
1.5 ๐จ Tema Website
Tampilan website mu dikontrol via HTML themes. Opsi ini telah diatur dibawah opsi format
dalam website configuration file mu:
_quarto.yml
format:
html:
theme: cosmo
css: styles.css
Lihat HTML Theming untuk eksplorasi tema lebih lanjut.
๐ Pelajari Lebih Lanjut
Begitu websitemu sudah jalan, kamu bisa:
๐ Tambahkan navigasi: Website Navigation mendeskripsikan berbagai cara untuk menambahkan navigasi ke website, termasuk bar navigasi tingkat tinggi, sidebar atau menggunakan kedua desain hybrid. Bagian ini juga meliputi penambahan pencarian full-text dan juga footer situs yang lebar.
๐งฐ Tambahkan fitur sosial & analytics: Website Tools meliputi penambahan metadata social (seperti kartu twitter) dan analitik Google untuk situsmu, sebagaimana pengguna memverifikasi toggle di antara skema warna terang dan gelap.
โ๏ธ Kustomisasi opsi website: Website Options menyajikan referensi komprehensif kepada semua opsi website yang tersedia.
๐งฎ Optimalkan eksekusi kode: Code Execution menyajikan tips untuk optimisasi merender website dengan banyak dokumen atau komputasi yang mahal.
๐ Publikasikan websitemu: Publishing Websites menyebutkan berbagai opsi untuk menerbitkan situs web termasuk Halaman GitHub, Netlify, dan Posit Connect.
3. ๐ Fitur Blog di Quarto
3.1 ๐ Gambaran Umum
Situs web Quarto punya dukungan bawaan untuk fitur blog. Blog terdiri dari kumpulan postingan โ๏ธ disertai halaman navigasi yang menampilkannya secara urut dari yang terbaru. Blog juga bisa punya halaman profil khusus, menerbitkan RSS feed ๐ก, dan menggunakan beragam tema keren ๐จ.
Kamu bisa bikin:
- Situs web yang hanya berisi blog ๐
- Situs dengan beberapa blog ๐งฉ
- Atau menambahkan blog ke situs yang punya konten lain ๐ฆ
3.2 โก Mulai Cepat (Quick Start)
Ikuti langkah Mulai Cepat sesuai alat yang kamu gunakan untuk membuat blog sederhana yang langsung bisa jalan. Setelah memahami dasar-dasarnya, lanjut baca bagian berikutnya untuk fitur blog yang lebih canggih ๐ง.
Untuk membuat proyek blog baru di dalam VS Code: 1. Jalankan perintah Quarto: Create Project dari command palette.
- Pilih Blog Project dari daftar pilihan.
- Tentukan direktori induk dan nama folder untuk proyek blog kamu.
- Klik tombol Preview โถ๏ธ untuk melihat pratinjau blog.
Preview akan otomatis diperbarui saat kamu menyimpan atau merender ulang index.qmd
atau file lainnya seperti about.qmd
.
Untuk membuat proyek blog baru di RStudio:
- Gunakan perintah New Project & Pilih Quarto Blog
- Masukkan nama folder dan pengaturan lain sesuai kebutuhan
- Klik tombol Render โถ๏ธ untuk melihat pratinjau
Preview akan muncul di sisi kanan file sumber, dan otomatis diperbarui setiap kamu merender ulang index.qmd
atau file lain seperti about.qmd
.
Untuk membuat proyek blog dari Terminal:
Terminal
quarto create project blog myblog
๐ Setelah membuat proyek blog dengan quarto create
, struktur dasar blog akan disiapkan di folder tujuan. Kamu bisa menggunakan quarto preview
untuk merender dan menampilkan blog di browser.
Terminal
quarto preview myblog
Preview akan terbuka otomatis di browser ๐งญ dan akan diperbarui setiap kamu menyimpan atau merender ulang file seperti index.qmd
dan about.qmd
.
๐ Ringkasan File Proyek Blog
Berikut ini adalah ringkasan file penting yang dibuat saat kamu memulai proyek blog dengan template bawaan Quarto:
File | Deskripsi ๐ |
---|---|
_quarto.yml |
File utama konfigurasi proyek Quarto |
index.qmd |
Halaman utama blog ๐ |
about.qmd |
Halaman tentang penulis ๐ |
posts/ |
Folder berisi semua postingan ๐ |
posts/_metadata.yml |
Pengaturan bersama untuk postingan โ๏ธ |
styles.css |
CSS kustom untuk tampilan situs ๐จ |
๐ฏ Di bagian selanjutnya, kita akan bahas satu per satu komponen ini lebih dalam.
3.3 ๐ Halaman Utama Blog
Halaman utama blog kamu adalah listing page โ yaitu halaman daftar semua dokumen yang ada di folder posts
. Postingan ditampilkan secara otomatis dalam urutan terbaru ke terlama ๐:
๐ ๏ธ Ketika kamu membuat post baru, daftar ini akan otomatis diperbarui โ post terbaru akan muncul di bagian paling atas.
Sebaiknya jangan gunakan tanggal dinamis seperti today
atau last-modified
di post blog kamu. Ini akan mengacaukan urutan postingan di halaman utama dan RSS feed karena akan berubah setiap kali file dirender ulang.
๐ท๏ธ Kategori di Halaman Blog
Halaman daftar post (listing page) bisa menampilkan kategori ๐ di sisi kanan halaman, yang membantu pembaca menjelajahi konten berdasarkan topik.
yaml
---
title: "myblog"
listing:
categories: true
---
Kategori ini diambil dari metadata (bagian depan) setiap dokumen yang ditampilkan. Misalnya, kamu bisa memberi label seperti news
, code
, atau analysis
ke dalam satu post agar lebih mudah ditemukan ๐ก.
yaml
---
title: "Post With Code"
description: "Post description"
author: "Fizz McPhee"
date: "5/22/2021"
categories:
- news
- code
- analysis
---
Lihat artikel Categories untuk mempelajari lebih lanjut.
3.4 โน๏ธ Halaman Tentang (About)
File about.qmd
digunakan untuk memberikan informasi tambahan tentang blog kamu dan penulisnya โ๏ธ. Misalnya, kamu bisa menampilkan foto profil, nama, deskripsi singkat, dan tautan ke media sosial seperti Twitter atau GitHub ๐.
about.qmd
---
title: "About"
image: profile.jpg
about:
template: jolla
links:
- icon: twitter
text: Twitter
href: https://twitter.com
# (additional links excluded for brevity)
---
## About this blog
This is the contents of the about page for my blog.
Kamu bisa menggunakan berbagai gaya tampilan (template) untuk halaman ini, salah satunya adalah template jolla
yang tampak modern dan terstruktur rapi.
Untuk mempelajari lebih banyak pengaturan halaman About, lihat artikel About Pages.
3.5 ๐ Direktori Postingan
Semua konten blog kamu tersimpan dalam folder posts
. Untuk menambah post baru, cukup buat sub-folder di dalam posts/
lalu tambahkan file index.qmd
di dalamnya. Post tersebut akan otomatis muncul di halaman utama setelah kamu render ๐.
๐ Post terbaru akan muncul paling atas secara otomatis.
๐ Draft (Draf)
Kamu bisa menandai sebuah post sebagai draf jika belum siap dipublikasikan. Cukup tambahkan draft: true
di metadata post.
yaml
---
title: "My Post"
description: "Post description"
author: "Fizz McPhee"
date: "5/22/2021"
draft: true
---
๐ Post dengan status draft akan muncul saat kamu preview situs, tapi tidak akan muncul di hasil render akhir, listing, navigasi, peta situs, maupun fitur pencarian ๐.
Untuk mempublikasikannya, cukup hapus draft: true
lalu render ulang post-nya โ
.
---
draft: true
---
๐ Pembaruan Terakhir (Last Updated)
Untuk menampilkan tanggal modifikasi terakhir tanpa mengubah tanggal publikasi asli, kamu bisa menambahkan date-modified
di metadata post.
yaml
---
title: "My Post"
description: "Post description"
author: "Fizz McPhee"
date: "5/22/2021"
date-modified: "5/23/2021"
---
Ini berguna agar pembaca tahu kapan konten terakhir diperbarui ๐.
---
date-modified: "5/23/2021"
---
๐ง Membekukan Hasil Eksekusi Post (Freezing Posts)
Kalau blog kamu punya post dengan kode program, mungkin akan sulit di-render di masa depan โ misalnya karena paketnya sudah berubah โ ๏ธ. Juga, post dengan perhitungan berat bisa bikin waktu render seluruh situs jadi lama ๐ข.
Solusinya: freeze hasil render post kamu. Saat kamu menggunakan freeze: true
, hasil render disimpan dan tidak dihitung ulang tiap kali kamu render situs โ๐ฅ๏ธ.
Ini membuat situs tetap stabil dan cepat, walaupun ada banyak post dengan kode dan analisis rumit. Kamu hanya perlu re-render post tersebut kalau memang perlu diubah.
๐ฆ Default blog dari Quarto menyertakan file _metadata.yml
di dalam folder posts/
untuk menetapkan freeze: true
ke semua post dalam folder itu secara otomatis.
๐๏ธ Metadata Bersama di Blog Default
Pada blog default, Quarto menyertakan sebuah file bernama _metadata.yml
yang berfungsi untuk menetapkan metadata bersama untuk semua dokumen di dalam folder posts
๐.
Di dalam file ini, kita bisa menentukan agar semua post secara default menggunakan freeze: true
โ๏ธ โ artinya hasil eksekusi kode akan disimpan dan tidak dihitung ulang saat situs dirender.
# options apply to all posts in this folder
freeze: true
3.6 ๐จ Tema Blog
Blog di Quarto bisa memakai salah satu dari 25 tema Bootswatch yang sudah tersedia. Kamu juga bisa membuat tema sendiri jika ingin tampilan yang lebih personal ๐งโ๐จ.
Secara default, proyek blog yang dibuat menggunakan quarto create project
akan memakai tema cosmo.
Beberapa contoh tema yang bisa kamu pilih di antaranya:
- default
- cerulean
- cosmo
- cyborg ๐
- darkly ๐
- flatly
- journal
- litera ๐
- lumen
- lux
- materia
- minty
- morph ๐
- pulse
- quartz
- sandstone
- simplex
- sketchy
- slate
- solar โ๏ธ
- spacelab
- superhero
- united
- vapor โ๏ธ
- yeti
- zephyr
- Dan masih banyak lagi!
Setiap tema punya tampilan berbeda, jadi kamu bisa pilih yang sesuai dengan gaya blog kamu โจ.
3.7 ๐ก RSS Feed untuk Blog
Blog biasanya menyertakan RSS Feed agar pembaca bisa mengikuti konten terbaru menggunakan feed reader ๐ฌ atau aplikasi lainnya.
Untuk mengaktifkan RSS, kamu perlu melakukan dua langkah penting:
1๏ธโฃ Tambahkan
site-url
dandescription
di file_quarto.yml
agar Quarto bisa menghasilkan feed ๐.website: title: "myblog" site-url: https://www.myblogexample.io description: "A great sample blog"
2๏ธโฃ Aktifkan opsi
feed: true
di halaman utama blog (index.qmd
) agar feed otomatis dibuat ketika situs dirender ๐.--- title: "myblog" listing: contents: posts sort: "date desc" type: default categories: true feed: true ---
Untuk belajar lebih lanjut tentang RSS feed.
๐ก Menambahkan Tautan RSS di Navbar
Kalau kamu ingin pengunjung mudah berlangganan RSS feed blog kamu, kamu bisa menambahkan ikon RSS ke navigasi atas (navbar) ๐งญ.
website:
title: "myblog"
site-url: https://www.myblogexample.io
description: "A great sample blog"
navbar:
right:
- icon: rss
href: index.xml
๐ Feed Berdasarkan Kategori
Kamu juga bisa membuat RSS feed khusus untuk kategori tertentu dalam blogmu.
Misalnya, kalau kamu punya kategori news
dan posts
, kamu bisa menghasilkan feed seperti index-news.xml
dan index-posts.xml
secara otomatis ๐๏ธ.
---
title: "myblog"
listing:
contents: posts
sort: "date desc"
type: default
categories: true
feed:
categories: [news, posts]
---
๐ Ini akan menghasilkan file index.xml
berisi RSS feed utama untuk semua postingan, serta file index-news.xml
dan index-posts.xml
yang berisi RSS feed khusus untuk kategori news
dan posts
๐ฐ๐ฌ.
3.8 ๐ Publikasi
Ada banyak cara untuk mempublikasikan blog Quarto kamu. Secara default, konten blog akan ditulis ke dalam sub-direktori _site
. Proses publikasi hanyalah soal menyalin direktori ini ke server web atau layanan hosting yang kamu gunakan ๐๏ธโก๏ธ๐.
Artikel Publikasi Website menjelaskan lebih detail cara mempublikasikan ke layanan berikut ini:
3.9 ๐ฌ Langganan (Subscriptions)
Kamu bisa memberikan opsi kepada pembaca blog agar bisa berlangganan update via email โ๏ธ๐ฅ. Untuk ini, kamu bisa menggunakan layanan email pihak ketiga untuk mengelola dan mengirimkan email langganan tersebut.
Biasanya, layanan email pihak ketiga ini akan menerima input dari RSS Feed kamu (misalnya: https://www.myblogexample.io/index.xml
) dan memberi HTML widget langganan yang bisa kamu pasang di blog.
๐งฉ Tempat terbaik untuk meletakkan widget ini biasanya di margin kanan blog kamu.
Berikut langkah-langkah untuk menambahkan widget langganan:
Gunakan fitur dari layanan email kamu (seperti Mailchimp) untuk membuat HTML widget langganan ๐๐ง.
html
<span style="font-weight: 600;">Subscribe</span> <!-- Awal dari Formulir Pendaftaran Mailchimp --> <link href="http://cdn-images.mailchimp.com/embedcode/slim-10_7_dtp.css" rel="stylesheet" type="text/css"> <style type="text/css"> #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; width:170px;} /* Tambahkan penyesuaian gaya formulir Mailchimp milikmu sendiri dalam stylesheet situs atau di dalam blok <style> ini. Kami menyarankan untuk memindahkan blok ini dan link CSS sebelumnya ke bagian HEAD dari file HTML kamu. */ #mc-embedded-subscribe-form{margin-left:-5px;} </style> <div id="mc_embed_signup"> <form action="<site_url>" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div id="mc_embed_signup_scroll"> <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required> <!-- Orang sungguhan sebaiknya tidak mengisi bagian ini dan berharap hasil baik โ jangan hapus bagian ini agar terhindar dari pendaftaran bot --> <div style="position: absolute; left: -5000px;" aria-hidden="true"> <input type="text" name="b_f718424fc5df77c22533bdaa6_a3c37fb57b" tabindex="-1" value=""> </div> <div class="optionalParent"> <div class="clear foot" style="margin-top: 10px;"> <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"> <p class="brandingLogo"></p> </div> </div> </div> </form> </div> <!-- Akhir dari Formulir Pendaftaran Mailchimp -->
โ ๏ธ HTML widget di atas tidak akan langsung bekerja di blog kamu karena HTML untuk langganan harus berisi informasi yang spesifik untuk blog kamu (seperti alamat situs dan pengaturan unik lainnya). Silakan ikuti panduan dari penyedia layanan email yang kamu gunakan untuk menghasilkan widget langganan yang sesuai.
- Buat file
subscribe.html
di root proyek kamu ๐. - Tempelkan kode HTML widget langganan ke dalam file
subscribe.html
dan simpan ๐พ. - Tambahkan
subscribe.html
ke bagianmargin-header
di file_quarto.yml
seperti ini:
website:
# (metadata tambahan disembunyikan)
margin-header: subscribe.html
4. ๐ฆซ Draft Website
4.1 ๐ Ikhtisar: Konsep Draf
Gunakan fitur draft (draf) untuk meninjau dan merencanakan konten sebelum benar-benar dipublikasikan. Secara default, halaman draf akan tampil kosong di situs yang dirender, dan tidak akan muncul di navigasi, daftar postingan, hasil pencarian, atau sitemap ๐ต๏ธโ๏ธ. Di bagian ini, kamu akan belajar cara menandai halaman sebagai draf, mengatur bagaimana draf ditampilkan di situs akhir, dan seperti apa tampilannya saat preview situs. Di halaman ini, kamu akan belajar cara:
- Menandai halaman sebagai draft
- Mengatur tampilan draft di situs yang dirender
- Meninjau draft melalui pratinjau situs
4.2 โ๏ธ Menandai Halaman Sebagai Draft
Untuk menandai halaman atau postingan sebagai draft, tambahkan draft: true
pada YAML dokumen:
---
title: "Postingan dengan Kode"
draft: true
---
Untuk menjadikan seluruh dokumen dalam suatu direktori sebagai draf, gunakan draft: true
di metadata direktori.
posts/_metadata.yml
draft: true
Sebagai alternatif, kamu bisa juga menentukan opsi drafts
di bagian website
dalam file _quarto.yml
.
_quarto.yml
website:
title: "Cool Website."
drafts:
- posts/post-with-code/index.qmd
Kalau kamu ingin menyimpan daftar path draf dalam file terpisah, gunakan fitur metadata include. Misalnya, kamu bisa menulis daftar draf ke dalam drafts.yml
.
drafts.yml
website:
drafts:
- posts/post-with-code/index.qmd
Lalu tambahkan file tersebut ke bagian metadata-files
di _quarto.yml
.
_quarto.yml
website:
title: "Cool Website."
metadata-files:
- drafts.yml
Opsi drafts
di bagian website
juga bisa dikonfigurasi lewat project profiles.
4.3 ๐จ Tampilan Halaman Draf
Kamu bisa menggunakan opsi draft-mode
untuk mengatur apakah konten draf akan ditampilkan dan bisa diakses di situs akhir. Nilai yang tersedia untuk draft-mode
adalah:
gone
(default) โ Tidak ditampilkan dan tidak memiliki tautan โunlinked
โ Ditampilkan tapi tidak ditautkan ๐๐ซvisible
โ Ditampilkan dan ditautkan ๐โ
URL untuk halaman kosong tetap akan tersedia, tetapi isi halamannya akan kosong. Halaman draf yang dirender juga akan menampilkan spanduk Draft di atasnya.
Jika draf disetel sebagai unlinked, maka halaman tersebut tidak akan muncul di hasil pencarian, daftar, sitemap, maupun navigasi (seperti sidebar, navbar, atau footer). Kalau halaman lain menautkan ke draf ini, tautannya akan dihilangkan โ hanya isi teks tautan yang ditampilkan tanpa hyperlink-nya.
Contoh konfigurasi lengkap seperti berikut:

_quarto.yml
- 1
-
Proyek menyediakan daftar halaman draf secara eksplisit. Hal yang sama bisa juga dilakukan dengan menambahkan
draft: true
langsung di halamanstuff/item2.qmd
. - 2
-
Draft mode disetel ke
unlinked
, artinya draf tetap dirender tetapi tidak ditautkan dari mana pun.
Namun, stuff/item2.qmd
masih bisa diakses lewat URL stuff/item2.html
dan menampilkan spanduk Draft.
4.4 ๐ Meninjau Halaman Draf
Terlepas dari nilai yang kamu atur di draft-mode
, saat kamu menjalankan quarto preview
, semua halaman draf akan diperlakukan sebagai visible
. Artinya, halaman akan ditampilkan lengkap dengan spanduk Draft, dan semua tautan atau item navigasi menuju draf akan aktif dan terlihat.
Misalnya, saat preview dari situs yang dikonfigurasi di atas dijalankan, tautan ke stuff/item2.html
akan muncul di navigasi.
Perilaku ini juga berlaku untuk tombol Render di RStudio dan Preview di VS Code. ๐งช๐ก
5. ๐ Pencarian Website
5.1 ๐ Ikhtisar Fitur Pencarian
Quarto mendukung pencarian teks penuh di dalam situs kamu. Secara default, Quarto akan membuat indeks lokal dari konten situs kamu supaya bisa dicari dengan mudah. Kalau kamu butuh solusi yang lebih canggih dan terhosting, kamu juga bisa menggunakan Algolia.
5.2๐ Penempatan Pencarian
Pencarian diaktifkan secara otomatis di website dan buku. Kalau situs kamu punya navbar, UI pencarian akan muncul di navbar. Kalau tidak, maka pencarian akan muncul di sidebar. Kamu bisa mengatur lokasi ini dengan opsi berikut:
Opsi | Deskripsi |
---|---|
location |
Posisi pencarian: navbar atau sidebar (default-nya navbar jika ada) |
type |
Jenis tampilan: overlay (pop-up) atau textbox (langsung di navbar) |
Contohnya:
website:
search:
location: navbar
type: overlay
๐ Opsi Lokasi:
navbar
: Pencarian muncul di bilah navigasi atas.sidebar
: Pencarian muncul di bilah samping.
๐๏ธ Opsi Tampilan:
overlay
: Tombol yang membuka jendela pencarian pop-up.
textbox
: Kotak input langsung di navbar/sidebar.
Secara default, textbox pencarian tidak memiliki teks placeholder. Kamu bisa menambahkan teks ini dengan opsi search-text-placeholder
di bagian language
.
language:
search-text-placeholder: Search
โ ๏ธ Catatan: Opsi ini adalah default, jadi tidak wajib ditulis kecuali ingin mengubahnya.
5.3 โจ๏ธ Pintasan Keyboard
Selain klik, pencarian juga bisa dibuka dengan pintasan keyboard:
s
f
/
Kamu juga bisa mengganti pintasannya. Misalnya:
website:
search:
keyboard-shortcut: ["?", "H"]
Contoh: Pencarian bisa dibuka dengan tombol ?
atau H
.
5.4 ๐จ Kustomisasi Hasil Pencarian
Kamu bisa mengatur bagaimana hasil pencarian ditampilkan dengan opsi berikut:
Opsi | Deskripsi |
---|---|
limit |
Jumlah maksimal hasil pencarian yang ditampilkan (default: 20). |
collapse-after |
Jumlah bagian hasil yang ditampilkan sebelum disembunyikan dalam link โmore matchesโ. (default: 2) |
![]() |
|
copy-button |
Menambahkan ikon salin URL hasil pencarian ke clipboard. Berguna untuk berbagi pencarian tertentu. |
![]() |
|
show-item-context |
Menampilkan konteks halaman di hasil pencarian (contoh: Panduan > Menulis > Gambar ) |
![]() |
5.5 ๐ Menggunakan Algolia
Kalau kamu mau pakai sistem pencarian eksternal yang lebih kuat, Quarto bisa dikonfigurasi untuk menggunakan Algolia. Saat membuat situs, Quarto akan menghasilkan file search.json
di folder output situs โ ini bisa digunakan untuk memperbarui indeks Algolia. ๐ฆ Untuk informasi lebih lanjut tentang membuat indeks dengan Algolia, lihat panduan Mengirim dan Memperbarui Data Anda menggunakan Algolia.
๐ง Konfigurasi Dasar
Agar Quarto bisa tersambung dengan indeks Algolia-mu, kamu perlu menyertakan informasi berikut di file proyek _quarto.yml
:
Contoh:
website:
search:
algolia:
index-name: <my-index-name>
application-id: <my-application-id>
search-only-api-key: <my-search-only-api-key>
๐ ๏ธ Skema Indeks Khusus (Custom Index Schema)
Kalau kamu tidak menggunakan search.json
default dari Quarto, kamu harus memberi tahu Quarto struktur data apa yang digunakan di indeks Algolia kamu.
You can enable this using:
๐งฉ Opsi Skema: - href
: URL dari hasil pencarian (wajib). - title
: Judul dari hasil pencarian (wajib). - text
: Teks konten (wajib). - section
: Bagian/subjudul dari dokumen (opsional).
Contoh: hasil pencarian dikelompokkan berdasarkan URL dan teks.
๐ Algolia Insights
Algolia otomatis menyediakan statistik performa pencarian. Kalau kamu ingin melacak klik dan konversi pengguna lebih lanjut, aktifkan opsi ini:
You can enable this using:
๐ Catatan: Tracking menggunakan cookie anonim. Kalau situsmu pakai sistem izin cookie, maka tracking hanya aktif setelah pengguna menyetujui.
โ๏ธ Konfigurasi Lanjutan
Kamu juga bisa mengirim parameter khusus ke Algolia untuk membatasi hasil berdasarkan tag atau kategori tertentu.
You can enable this using:
Contoh: Batasi hasil pencarian hanya untuk tag tertentu seperti tag1
dan tag2
.
๐ Dokumentasi lengkap: Search API Parameters
5.6 ๐ซ Menonaktifkan atau Memaksa Pencarian
Untuk menonaktifkan pencarian di satu dokumen, tambahkan search: false
di metadata YAML.
You can enable this using:
Kalau kamu ingin menonaktifkan pencarian untuk seluruh situs, tambahkan website.search: false
di _quarto.yml
๐ Memaksa elemen tertentu ikut diindeks
Kalau ada bagian dari dokumen yang ingin kamu paksa masuk ke hasil pencarian, tambahkan kelas berikut:
<div class="quarto-include-in-search-index">Konten penting ini akan selalu bisa dicari!</div>
Gunakan tag <span>
atau <div>
di sekeliling teks yang ingin dipastikan masuk indeks.