๐Ÿ–‹๏ธ 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.

Keywords

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
  2. ๐Ÿงญ Navigasi Website

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:

  1. Jalankan perintah Quarto: Create Project lewat Command Palette.

membuka command pallete di VS Code dengan ctrl + shift + p

  1. Pilih opsi Website Project ๐ŸŒ.

pilih opsi website project setelah memilih create project quarto sebelumnya

  1. Pilih direktori induk dan beri nama direktori proyekmu ๐Ÿ“‚.

gambar menunjukkan kolom memberikan nama proyek direktori

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 ๐Ÿ”.

gambar menunjukkan tombol preview untuk melihat sementara website buatan pemogram

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:

  1. Gunakan menu New Project dan pilih Quarto Website ๐Ÿ†•.

  1. Isi nama direktori dan opsi lainnya, lalu klik Create Project.

Sebuah bagian dari 'New Project Wizard' menu dari Rstudio. Bagian ini diberi judul Panduan 'Membuat website Quarto dari Nol'. Logo quarto ditampilkan di sebelah kiri. Di sebelah kanan adalah tempat untuk 'Nama Direktori' ('Directory name') dan 'Create project as subdirectory of:'. Dibawah opsi 'Engine' di set ke 'None'. Dibawah opsi 'Create a git repository', dan 'Use visual markdown editor'. Ada tombol untuk 'Create Project' dan 'Cancel' disusun samping-samping di bawah kanan window. Ada opsi 'Open in new session' di tombol sudut kiri.

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.

Important

โš ๏ธ 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:

  1. Sebuah file atau prefix direktori . (hidden files)

  2. 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)

  3. File bernama README.md atau README.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:

2. ๐Ÿงญ Navigasi Website

2.1 ๐Ÿ˜— Gambaran Ikhtisar

Ada berbagai opsi yang tersedia untuk menyediakan navigasi situs web, termasuk:

  • Menggunakan navigasi atas (navbar) dengan sub-menu opsional.๐Ÿ“Œ

  • Menggunakan navigasi samping dengan hierarki halaman.๐Ÿ“‘

  • Menggabungkan navigasi atas dan samping (di mana navigasi atas menautkan ke berbagai bagian situs dengan navigasi sampingnya sendiri).๐Ÿ”€

Selain itu, kamu dapat menambahkan pencarian teks lengkap ke antarmuka navigasi atas atau samping.

2.2 ๐Ÿ˜ Top Navigation

Untuk menambahkan navigasi teratas ke situs web, tambahkan entri navbar ke konfigurasi `website di _quarto.yml. Misalnya, YAML berikut:

yaml
website:
  navbar:
    background: primary
    search: true
    left:
      - text: "Home"
        href: index.qmd
      - talks.qmd
      - about.qmd

Menghasilkan bilah navigasi yang terlihat seperti ini:

Bilah navigasi. Judul 'My Site' ada di sebelah kiri. Di sebelah kanan judul terdapat kata 'Home', 'Talks', dan 'About'. 'Home' sedikit lebih ringan dari dua kata lainnya. Di sisi paling kanan bilah navigasi adalah kotak pencarian.

Di atas kami menggunakan opsi kiri untuk menentukan item untuk sisi kiri bilah navigasi. kamu juga dapat menggunakan opsi kanan untuk menentukan item untuk sisi kanan.

Teks untuk item bilah navigasi akan diambil dari judul dokumen target yang mendasarinya. Perhatikan bahwa dalam contoh di atas kami menyediakan nilai text: "Home" khusus untuk index.qmd.

kamu juga dapat membuat menu bilah navigasi dengan menyertakan menu (yang merupakan daftar item seperti kiri dan kanan).

Contoh lainnya bisa dibuat menarik seperti berikut:

yaml
project:
  type: website

website:
  title: "My Site"
  navbar:
    search: true
    left:
      - href: index.qmd
        text: Home ๐Ÿ 
      - about.qmd
      - text: Blog โœ๏ธ
        menu:
          - href: blog/post1.qmd
            text: Post 1
          - href: blog/post2.qmd
            text: Post 2
  sidebar:
    style: floating
    contents:
      - section: "Tutorial"
        contents:
          - href: intro.qmd
            text: Pengenalan ๐Ÿ“˜
          - href: dasar.qmd
            text: Dasar-Dasar โš™๏ธ

Kamu juga bisa membuat menu dropdown di navbar dengan menu: seperti contoh Blog di atas ๐Ÿงบ.

Misalnya:

yaml
left:
  - text: "More"
    menu:
      - talks.qmd
      - about.qmd 

Berikut adalah semua opsi yang tersedia untuk navigasi teratas ( Top Navigation ):

Opsi Deskripsi
title Judul navbar (menggunakan site: title jika tidak ada yang ditentukan). Gunakan title: false untuk menekan tampilan judul di bilah navigasi.
logo Gambar logo yang akan ditampilkan di sebelah kiri judul.
logo-alt Teks alternatif untuk gambar logo.
logo-href Targetkan href dari logo /title navbar. Secara default, logo dan tautan judul ke halaman root situs (/index.html).
background Warna Latar Belakang (โ€œprimaryโ€, โ€œsecondaryโ€, โ€œsuccessโ€, โ€œdangerโ€, โ€œwarningโ€, โ€œinfoโ€, โ€œlightโ€, โ€œdarkโ€, or hex color).
foreground Warna latar depan (โ€œprimaryโ€, โ€œsecondaryโ€, โ€œsuccessโ€, โ€œdangerโ€, โ€œwarningโ€, โ€œinfoโ€, โ€œlightโ€, โ€œdarkโ€, or hex color). Warna latar depan akan digunakan untuk mewarnai elemen navigasi, teks, dan tautan yang muncul di bilah navigasi.
search Sertakan kotak pencarian (true or false).
tools Daftar alat navbar (seperti link ke github atau twitter, dll.). Lihat Navbar Tools untuk detail.
left / right Daftar item navigasi untuk sisi kiri dan kanan navbar.
pinned Selalu tampilkan bilah navigasi (true or false). Defaults ke false, dan menggunakan headroom.js untuk menampilkan bilah navigasi secara otomatis saat pengguna menggulir ke atas pada halaman.
collapse Menciutkan item navbar ke dalam menu hamburger saat tampilan menjadi sempit (defaults ke true).
collapse-below Breakpoint responsif untuk menciutkan item navbar ke menu hamburger (โ€œsmโ€, โ€œmdโ€, โ€œlgโ€, โ€œxlโ€, or โ€œxxlโ€, defaults ke โ€œlgโ€).
toggle-position Posisi menu hamburger navbar yang diciutkan saat dalam mode responsif (โ€œleftโ€ or โ€œrightโ€, defaults ke โ€œleftโ€).
tools-collapse Perkecil alat ke dalam menu navbar saat tampilan menjadi sempit.

Berikut adalah opsi yang tersedia untuk item navigasi individual:

Opsi Deskripsi
href Tautkan ke file yang berisi proyek atau URL eksternal.
text Teks yang akan ditampilkan untuk item navigasi (default ke title dokumen jika tidak disediakan).
icon Nama salah satu standar Bootstrap 5 icons (misalnya โ€œgithubโ€, โ€œtwitterโ€, โ€œshareโ€, dll.).
aria-label Accessible label untuk item navigasi.
rel Nilai untuk rel atribut. Beberapa nilai yang dipisahkan spasi diizinkan.
target Nilai untuk target atribut. Misalnya _blank untuk buka di tab baru.
menu Daftar item navigasi untuk mengisi menu tarik-turun.

Untuk informasi selengkapnya tentang mengontrol tampilan bilah navigasi menggunakan tema HTML, lihat HTML Themes - Navigation.


2.3 ๐Ÿ“‘ Side Navigation

Jika situs kamu terdiri dari lebih dari beberapa dokumen. Maka kamu mungkin lebih suka menggunakan navigasi samping, yang memungkinkan kamu menampilkan hierarki artikel yang sangat dalam.

Jika kamu membaca halaman ini di perangkat desktop. Maka kamu akan melihat tampilan navigasi sisi default di sebelah kiri (jika tidak, kamu akan melihat bilah judul di bagian atas yang dapat kamu klik atau sentuh untuk membuka navigasi).

Untuk menambahkan navigasi samping ke situs web, tambahkan entri sidebar ke bagian websitedi _quarto.yml. Misalnya:

yaml
website:
  sidebar:
    style: "docked"
    search: true
    contents:
      - text: "Introduction"
        href: introduction.qmd
      - section: "Basics"
        href: basics-summary.qmd
        contents:
          - index.qmd
          - basics-knitr.qmd
          - basics-jupyter.qmd
      - section: "Layout"
        contents:
          - layout.qmd
          - layout-knitr.qmd
          - layout-jupyter.qmd
      - section: advanced.qmd
        contents:
          - raw-code.qmd
          - custom-theme.qmd
      - acknowlegment.qmd

Ada dua gaya navigasi samping yang tersedia: โ€œdockedโ€ yang menampilkan navigasi di bilah sisi dengan warna latar belakang yang berbeda, dan โ€œfloatingโ€ yang menempatkannya lebih dekat ke teks isi utama. Seperti inilah tampilan gaya โ€œdockedโ€ dan โ€œfloatingโ€ (masing-masing):

Tangkapan layar dokumen Quarto dengan bilah sisi berwarna abu-abu.

Berikut adalah semua opsi yang tersedia untuk navigasi samping ( side Navigation ):

Opsi Deskripsi
id ID opsional (dipakai hanya untuk navigasi hybrid, dijelaskan nanti) ๐Ÿ†”.
title Judul sidebar ๐Ÿ“. Kalau tidak diisi, akan pakai title dari project secara otomatis.
logo Gambar logo opsional ๐Ÿ–ผ๏ธ.
logo-alt Teks alternatif untuk gambar logo (buat aksesibilitas dan SEO) ๐Ÿ”ค.
logo-href Link tujuan saat logo diklik ๐Ÿ”—. Secara default akan diarahkan ke halaman utama (/index.html).
search Tampilkan kotak pencarian ๐Ÿ”. Kalau true, sidebar akan punya fitur pencarian (kecuali sudah ada di navbar).
tools Daftar tools tambahan ๐Ÿ› ๏ธ (contoh: link ke GitHub, Twitter, dll โ€“ lihat bagian berikutnya).
contents Daftar isi navigasi yang mau ditampilkan ๐Ÿ“š. Biasanya berisi daftar halaman utama dan sub-halaman.
style Gaya tampilan sidebar: docked ๐Ÿ“Œ (menempel) atau floating ๐Ÿงญ (melayang).
type Warna tema sidebar: dark ๐ŸŒ‘ atau light โ˜€๏ธ. Ini hanya sebagai petunjuk, warnanya bisa disesuaikan.
background Warna latar belakang ๐ŸŽจ. Pilihannya: โ€œnoneโ€, โ€œprimaryโ€, โ€œsecondaryโ€, โ€œsuccessโ€, โ€œwarningโ€, โ€œinfoโ€, โ€œlightโ€, โ€œdarkโ€, โ€œwhiteโ€. Default: โ€œlightโ€.
foreground Warna teks dan elemen di sidebar โœ๏ธ. Bisa pilih nama warna atau kode hex.
border Tampilkan garis tepi di sidebar atau tidak? ๐Ÿ“ Gunakan true atau false.
alignment Posisi teks/isi sidebar: left โ†–๏ธ, right โ†˜๏ธ, atau center ๐ŸŽฏ.
collapse-level Level kedalaman menu yang ditampilkan langsung (sisanya disembunyikan/di-collapse) ๐Ÿ“‚. Default: 2.
pinned Selalu tampilkan tombol judul yang bisa membuka sidebar di layar sempit ๐Ÿ“ฑ. Default-nya false dan akan muncul otomatis saat pengguna scroll ke atas (pakai headroom.js).

๐Ÿ“š Cara Kerja sidebar di Quarto

Satu item sidebar tanpa id atau title akan berlaku untuk semua halaman di situs kamu ๐ŸŒ. Tapi kalau sidebar punya id atau title, maka sidebar itu hanya berlaku untuk halaman-halaman tertentu, yaitu:

  • Halaman yang terdaftar di contents sidebar tersebut ๐Ÿ“„

  • Atau halaman yang secara eksplisit menyebutkan id sidebar-nya ๐Ÿท๏ธ


๐Ÿ“Œ Cara Menentukan Sidebar Khusus untuk Halaman Tertentu

Kalau kamu ingin pakai sidebar tertentu hanya di satu halaman (atau sekelompok halaman), kamu tinggal menambahkan id sidebar ke bagian front matter halaman tersebut, atau ke file _metadata.yml ๐Ÿ› ๏ธ

Misalnya, kalau sidebar kamu punya:

yaml
id: tutorials

Lalu kamu ingin sidebar ini tampil di halaman tertentu, tambahkan ini di front matter halaman tersebut:

yaml
sidebar: tutorials

๐ŸŽจ Kustomisasi Tampilan Sidebar

Untuk mengatur tampilan sidebar lewat tema HTML, baca bagian HTML Themes - Navigation.

Kalau kamu ingin mengatur lebar sidebar, cek bagian Page Layout - Grid Customization ๐Ÿ“.

2.4 โš™๏ธ Pembuatan Navigasi Sidebar Otomatis

Sebelumnya, kita sudah bahas cara mengisi contents sidebar secara manual dengan daftar navigasi. Nah, Quarto juga mendukung pembuatan sidebar otomatis berdasarkan struktur folder dan file di proyek kamu ๐Ÿ“โœจ

Cara termudah adalah dengan menulis:

yaml
sidebar:
  contents: auto

๐Ÿงญ Jika kamu menulis contents: auto di level root, maka semua dokumen di situs kamu akan otomatis masuk ke sidebar (kecuali halaman utama โ€” halaman utama tetap bisa diakses lewat tautan judul di atas).


๐Ÿ” Aturan Pembentukan Navigasi Otomatis

Navigasi otomatis akan dibentuk dengan aturan berikut:

  1. ๐Ÿท Judul item diambil dari kolom title di metadata file .qmd atau .ipynb.

  2. ๐Ÿ“‚ Folder akan membentuk section tersendiri, dengan judul otomatis berdasarkan nama folder (huruf besar diawal, tanda strip dan underscore diganti spasi). โž• Kalau kamu ingin judul section yang lebih rapi, cukup tambahkan file index.qmd di dalam folder, lalu isi title di metadata-nya.

  3. ๐Ÿ”ค Urutan file ditentukan secara alfabet berdasarkan nama file โ€” kecuali jika kamu memberi nilai numerik order di metadata masing-masing file.


๐Ÿงน Hanya Isi dari Folder Utama (Tanpa Subfolder)

Secara default, sidebar otomatis akan ikut menyertakan isi dari subfolder. Tapi kalau kamu hanya ingin dokumen di folder utama saja, tuliskan seperti ini:

yaml
sidebar:
  contents: /*

๐ŸŽฏ Menentukan Folder atau Pola File Tertentu

Daripada menyertakan semua file, kamu juga bisa menentukan folder tertentu atau menggunakan pola file (glob pattern). Berikut ini contoh yang sah:

yaml
sidebar:
  contents: reports        # semua isi dalam folder "reports"

sidebar:
  contents: reports/*      # hanya isi langsung (tanpa subfolder) dari "reports"

sidebar:
  contents: "*.ipynb"      # hanya file Jupyter Notebook di folder utama

๐Ÿ“Œ Catatan: Kalau kamu memakai simbol * (asterisk), wajib diberi tanda kutip agar YAML bisa membacanya dengan benar.


๐Ÿงฑ Gabungkan dengan Navigasi Biasa

Sidebar otomatis juga bisa digabung dengan item sidebar manual lainnya. Misalnya, kamu ingin membuat section khusus Reports secara otomatis dari folder:

yaml
sidebar:
  contents:
    - about.qmd
    - contributing.qmd
    - section: Reports
      contents: reports

Atau kamu ingin menyisipkan daftar otomatis di tengah-tengah daftar sidebar manual:

yaml
sidebar:
  contents:
    - about.qmd
    - contributing.qmd
    - auto: "*-report.qmd"

โš ๏ธ Ingat lagi: kalau ada simbol *, pastikan kamu selalu pakai tanda kutip (โ€ atau โ€™) supaya tidak error saat dibaca YAML.

2.9 ๐Ÿ” Kembali ke Atas (Back to Top)

Kamu bisa menambahkan tautan โ€œKembali ke atasโ€ di bagian bawah dokumen dalam situsmu dengan menggunakan opsi back-to-top-navigation.

yaml
website:
  back-to-top-navigation: true

Catatan: Kamu juga bisa menonaktifkan fitur โ€œKembali ke atasโ€ ini per halaman, dengan menambahkan back-to-top-navigation: false di bagian YAML halaman tersebut.

2.11 ๐Ÿ™ˆ Menyembunyikan Navigasi

Untuk halaman tertentu (terutama yang tata letaknya sepenuhnya kustom), kamu bisa menyembunyikan navigasi โ€” baik itu navbar, sidebar, atau keduanya.

yaml
# Hides the sidebar on this page
sidebar: false

# Hides the navbar on this page
navbar: false
  • sidebar: false untuk menyembunyikan sidebar di halaman itu.
  • navbar: false untuk menyembunyikan navbar di halaman itu.

2.12 ๐Ÿ“– Mode Pembaca (Reader Mode)

Kalau kamu ingin pengguna dapat menyembunyikan navigasi samping dan daftar isi agar pengalaman membacanya lebih fokus ๐Ÿ“š, kamu bisa mengaktifkan reader-mode.

Saat diaktifkan, akan muncul tombol mode pembaca di navbar (jika ada) atau di sidebar. Ketika ditekan, tombol ini akan menyembunyikan (roll-up) sidebar dan daftar isi.

Tombol mode pembaca muncul di navigasi atas halaman.

yaml
# Aktifkan reader-mode
website:
  reader-mode: true

2.14 ๐Ÿ”— Tautan GitHub

Kamu bisa menambahkan berbagai tautan ke repositori GitHub tempat kode sumber situsmu disimpan โ€” misalnya untuk mengedit halaman โœ๏ธ, melihat sumber ๐Ÿ“„, atau melaporkan masalah ๐Ÿ›. Untuk melakukannya, tambahkan repo-url beserta satu atau lebih repo-actions.

yaml
website:
  repo-url: https://github.com/quarto-dev/quarto-demo
  repo-actions: [edit, source, issue]

Tautan-tautan ini akan ditampilkan tepat di bawah daftar isi halaman ๐Ÿ“‘.

Tangkapan layar dari dokumen Quarto. Di bawah daftar isi halaman di sisi kanan, terdapat tiga opsi: 'Edit halaman ini', 'Lihat sumber', dan 'Laporkan masalah'. Ada ikon GitHub di sebelah kiri teks 'Edit halaman ini'.

Kamu juga bisa menyesuaikan perilaku tautan ke repositori dengan opsi tambahan berikut ๐Ÿ› ๏ธ:

  • repo-subdir: Subdirektori dalam repositori tempat file sumber berada (default-nya adalah root direktori).
  • repo-branch: Cabang repositori yang memuat file sumber (default-nya main).
  • issue-url: URL khusus untuk aksi โ€˜Report an Issueโ€™.
  • repo-link-target: Atribut target untuk tautan, misalnya _blank untuk membuka di tab/jendela baru.
  • repo-link-rel: Atribut rel untuk tautan.

Jika kamu ingin menyembunyikan tautan GitHub hanya pada halaman tertentu, atur repo-actions: false di YAML dokumen tersebut.

page.qmd
---
repo-actions: false
---

2.15 ๐Ÿ” Redirect (Pengalihan Halaman)

Kalau kamu mengganti nama atau memindahkan suatu halaman di situsmu ๐Ÿ—‚๏ธ, kamu bisa mengatur pengalihan dari URL lama ke yang baru, supaya tautan lama tidak rusak ๐Ÿ”—๐Ÿšซ.

Misalnya, kamu mengganti nama page.qmd menjadi renamed-page.qmd. Maka, kamu bisa menambahkan aliases ke halaman baru seperti ini:

renamed-page.qmd
---
title: "Renamed Page"
aliases:
  - page.html
---

๐Ÿ“ Pengalihan karena Reorganisasi Struktur Direktori

Pengalihan juga berguna ketika kamu menyusun ulang konten di situsmu menjadi struktur direktori yang berbeda ๐Ÿงฑ, atau saat kamu memecah satu artikel panjang menjadi beberapa bagian ๐Ÿ“„โžก๏ธ๐Ÿ“„๐Ÿ“„.

Untuk kasus reorganisasi ke dalam struktur direktori baru, kamu mungkin perlu menggunakan path absolut (dengan awalan /). Misalnya, jika kamu memindahkan file dari /old-directory/index.md ke /new-directory/index.md:

/new-directory/index.md
---
title: "Halaman yang Disusun Ulang"
aliases: 
  - "/old-directory/index.html"
---

Hal ini juga berguna saat kamu mengatur ulang struktur direktori situs atau memecah artikel panjang menjadi beberapa bagian. Kamu bisa menambahkan URL hash (#) dari bagian yang sebelumnya berada dalam artikel lama, dan mengarahkannya ke halaman baru.

learning-more.qmd
---
title: "Learning More"
aliases:
  - overview.html#learning-more
---
๐Ÿ’ก Tips

Tergantung pada tempat kamu menyimpan situsnya, ada juga alat pengalihan (redirect) yang lebih kuat berdasarkan pola tertentu. Contohnya:

Coba cari dokumentasi dari penyedia hostingmu dengan kata kunci โ€œredirectsโ€ ๐Ÿ”.

2.16 โŒ Halaman 404

Kalau browser nggak bisa menemukan halaman web yang diminta, maka akan muncul error 404 yang menandakan file-nya tidak ditemukan. Tampilan default 404 dari browser biasanya cukup โ€˜keringโ€™ ๐Ÿœ๏ธ, jadi kamu mungkin ingin membuat halaman kustom yang lebih ramah ๐Ÿ˜Š dan memberikan petunjuk agar pengguna bisa menemukan apa yang mereka cari.

Sebagian besar platform hosting website (seperti Netlify, GitHub Pages, dll) akan memakai file bernama 404.html di root situs kamu sebagai halaman error kustom โ€” kalau kamu menyediakannya.

Kamu bisa menyertakan halaman 404 kustom di situs Quarto dengan membuat file markdown bernama 404.qmd di direktori utama proyek kamu.

404.qmd
---
title: Page Not Found
---

The page you requested cannot be found (perhaps it was moved or renamed).

You may want to try searching to find the page's new location.

๐Ÿ“ƒ Catatan Penting! Kamu bisa menggunakan HTML barengan dengan markdown di file 404.qmd agar tampilan dan layout-nya benar-benar sesuai keinginan.

Halaman 404 ini akan tetap muncul dalam kerangka tampilan situsmu (misalnya: font, CSS, layout, navigasi, dll). Tujuannya agar pengguna nggak merasa โ€œkeluar dari situsmuโ€ sepenuhnya saat dapat error 404. Tapi kalau kamu nggak ingin perilaku seperti ini, maka sediakan 404.html langsung, bukan 404.qmd.

๐Ÿ”— Berikut contoh halaman 404 keren dari berbagai website populer: https://blog.fluidui.com/top-404-error-page-examples/


๐Ÿ“ Jalur Situs Non-Root

Kalau situs kamu di-deploy dari root domain (misalnya https://contoh.com/), maka cukup dengan membuat file 404.qmd seperti penjelasan di atas.

Tapi, kalau situs kamu tidak di-deploy dari root domain โ€” misalnya https://contoh.com/situsku/ โ€” kamu perlu menambahkan konfigurasi ekstra supaya resource (seperti CSS situs kamu) bisa dimuat dengan benar di halaman 404.

yaml
website:
  title: "Situs ku"
  site-path: "/situsku/"

๐Ÿงญ Catatan Tambahan! Kalau kamu sudah menyetel site-url (yang dibutuhkan untuk sitemap dan pratinjau metadata sosial), kamu cukup memasukkan path situs langsung ke site-url.

yaml
website:
  title: "Situs ku"
  site-url: "https://contoh.com/situsku/"

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.

  1. Pilih Blog Project dari daftar pilihan.

  1. Tentukan direktori induk dan nama folder untuk proyek blog kamu.

  1. 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:

  1. Gunakan perintah New Project & Pilih Quarto Blog

  1. Masukkan nama folder dan pengaturan lain sesuai kebutuhan

  1. 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 ๐Ÿ•’:

Gambar menampilkan: Navbar berisi judul blog ('myblog') di kiri dan tautan 'About', ikon GitHub, ikon Twitter, serta ikon Search di kanan. Di bawahnya ada daftar postingan dengan judul, tag, deskripsi, dan preview yang diurutkan berdasarkan tanggal. Di sisi kanan tampak daftar kategori dan jumlah post tiap kategori.

๐Ÿ› ๏ธ Ketika kamu membuat post baru, daftar ini akan otomatis diperbarui โ€” post terbaru akan muncul di bagian paling atas.

Peringatan penting:

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.

Screenshot halaman about dengan foto di tengah atas, nama besar, teks deskripsi, dan dua tombol untuk Twitter & GitHub.

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.

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. 1๏ธโƒฃ Tambahkan site-url dan description di file _quarto.yml agar Quarto bisa menghasilkan feed ๐Ÿ“„.

    website:
      title: "myblog"
      site-url: https://www.myblogexample.io
      description: "A great sample blog"
  2. 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.

Tip

๐Ÿ’ก 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:

  1. 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 -->
Warning

โš ๏ธ 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.

  1. Buat file subscribe.html di root proyek kamu ๐Ÿ“.
  2. Tempelkan kode HTML widget langganan ke dalam file subscribe.html dan simpan ๐Ÿ’พ.
  3. Tambahkan subscribe.html ke bagian margin-header di file _quarto.yml seperti ini:
website:
  # (metadata tambahan disembunyikan)
  margin-header: subscribe.html

Gambar blog menunjukkan bagian Subscribe di sisi kanan halaman, dengan kolom input bertuliskan 'email address' dan tombol bertuliskan 'Subscribe'.

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.

Cuplikan layar dari sebuah postingan berjudul 'Post With Code', menampilkan spanduk bertuliskan 'Draft' di bagian atas halaman.

A rendered draft document will include a โ€œDraftโ€ banner

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:

Listing 1: Bilah navigasi untuk situs berjudul 'Cool Website.' hanya menampilkan satu item navigasi 'Item 1'.
_quarto.yml
project:
  type: website

website:
  title: "Cool Website."
  navbar:
    left:
      - stuff/item1.qmd
      - stuff/item2.qmd
1  drafts:
    - stuff/item2.qmd
2  draft-mode: unlinked
1
Proyek menyediakan daftar halaman draf secara eksplisit. Hal yang sama bisa juga dilakukan dengan menambahkan draft: true langsung di halaman stuff/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.

Cuplikan layar dari halaman web berjudul 'Item 2'. Bilah navigasi hanya menampilkan 'Item 1'. Di atas navbar terdapat spanduk bertuliskan '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.

Cuplikan layar dari halaman web berjudul 'Item 2'. Bilah navigasi menampilkan dua item: 'Item 1' dan 'Item 2'. Di atas navbar terdapat spanduk bertuliskan 'Draft'.

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.

Halaman Quarto dengan overlay pencarian Algolia dalam mode 'terpisah'. Latar belakang halaman digelapkan dan dialog pencarian muncul dengan hasil pencarian di bawahnya.

  • textbox: Kotak input langsung di navbar/sidebar.

Pencarian Algolia dengan textbox di navbar. Dialog pencarian muncul sebagai dropdown di sisi kanan layar.

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

Kotak pencarian menampilkan teks 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)
Sebagian hasil pencarian yang menampilkan teks '3 more matches in this document' di bawah hasil pencarian.
copy-button Menambahkan ikon salin URL hasil pencarian ke clipboard. Berguna untuk berbagi pencarian tertentu.
Kotak pencarian dengan ikon clipboard di sisi kanan.
show-item-context Menampilkan konteks halaman di hasil pencarian (contoh: Panduan > Menulis > Gambar)
Kotak pencarian yang menampilkan konteks navigasi di atas judul hasil pencarian pertama.

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.