Konfigurasi menurut tanggung jawab

Berkas src/config.ts menyimpan identitas situs dan pilihan perilaku yang dapat diubah pemilik blog. Nilai desain seperti warna, jarak, ukuran huruf, dan breakpoint tidak berada di sini karena akan dimiliki sistem token CSS.

Konfigurasi dikelompokkan berdasarkan tanggung jawab:

  • theme membedakan nama tema dari nama blog.
  • site menyimpan nama blog, deskripsi, bahasa, lokal, dan zona waktu.
  • routes menyimpan alamat arsip dan taksonomi.
  • homepage mengatur jumlah tulisan terbaru.
  • footer mengatur rentang tahun, nama hak cipta, dan email kontak opsional.
  • posts mengatur metadata serta navigasi tulisan.
  • contentFeatures menyiapkan batas fitur konten.
  • search mengatur ketersediaan pencarian, path indeks, dan batas hasil.
  • publishing mengatur ketersediaan RSS, sitemap, dan robots.txt.
  • seo mengatur metadata kanonik dan sosial.

Origin publik blog memiliki tanggung jawab berbeda. Nilai itu hanya disimpan oleh konfigurasi Astro agar komponen dan proses build memakai sumber yang sama.

URL blog

Atur URL publik akhir blog di astro.config.ts:

ts
export default defineConfig({
  site: process.env.SITE_URL ?? "https://example.com",
  trailingSlash: "always",
});

Nilai site adalah origin tempat hasil build akhirnya diterbitkan. Ganti placeholder https://example.com sebelum deployment produksi. Pilih domain akar atau subdomain yang memang ingin dijadikan alamat utama, lalu gunakan pilihan itu secara konsisten. Jangan menyalin URL tersebut ke src/config.ts.

Shaurastro secara baku diterbitkan pada akar domain Cloudflare Pages atau akar domain kustom, sehingga tidak memerlukan opsi base. Opsi base hanya digunakan bila blog benar-benar berada di bawah subpath. Sebagai contoh penjelasan:

ts
export default defineConfig({
  site: "https://example.com",
  base: "/blog",
});

Contoh subpath tersebut bukan konfigurasi baku Shaurastro.

Garis miring di akhir URL

Shaurastro menetapkan:

ts
trailingSlash: "always"

Karena itu, rute halaman memakai garis miring di akhir:

/tulisan/
/tagar/astro/
/kategori/panduan/

Tautan halaman internal dan URL kanonik memakai bentuk yang sama secara konsisten. Sumber daya yang berbentuk berkas tetap mempertahankan nama berkasnya:

/rss.xml
/robots.txt
/search-index.json

Ketiga alamat tersebut dihasilkan sebagai artefak statis. Sitemap juga diterbitkan sebagai /sitemap-index.xml dan berkas sitemap turunannya.

Cloudflare

Pengaturan URL dan perlindungan tanggal kalender merupakan dua urusan terpisah:

  • site menentukan origin publik dan menjadi dasar pembuatan URL kanonik.
  • trailingSlash menentukan bentuk rute halaman yang diutamakan.
  • Utilitas tanggal kalender yang sudah ada menjaga tanggal Indonesia agar tidak bergeser mengikuti zona waktu lingkungan build.

Hasil statis mengharapkan Cloudflare melayani bentuk halaman bergaris miring akhir. Perilaku pengalihan antara bentuk tanpa garis miring dan bentuk tersebut baru dapat dipastikan setelah deployment nyata. Konfigurasi ini tidak menganggap Cloudflare selalu melakukan pengalihan tertentu.

Mengubah jumlah tulisan beranda

Ubah postLimit tanpa menyentuh komponen daftar:

ts
homepage: {
  postLimit: 10,
},

Kueri tetap mengurutkan seluruh tulisan berdasarkan tanggal publikasi, kemudian beranda mengambil jumlah teratas sesuai konfigurasi.

startYear menyimpan tahun awal blog. includeCurrentYear menentukan apakah tahun build saat ini kelak ikut ditampilkan, sedangkan copyrightName menentukan nama pada baris hak cipta. contactEmail menerima alamat email atau null. Alamat valid menghasilkan tautan [ Kontak ]; nilai kosong, tidak valid, atau null tidak menghasilkan tautan kosong.

Lisensi dan fitur tulisan

Tulisan yang tidak memiliki objek license menggunakan defaultLicense. Tulisan tertentu dapat menggantinya melalui frontmatter, seperti tulisan “Memulai dengan Tema Ini”.

Fitur terkait tulisan menggunakan boolean yang jelas. Rekomendasi tulisan terkait tetap enabled: false pada v1, sehingga komponen batasnya tidak menampilkan bagian kosong dan tidak menjalankan pemeringkatan apa pun.

TinaCloud dan Cloudflare

Cloudflare menjalankan bun run build dari repositori GitHub. Perintah itu membangun /admin/index.html melalui Tina lebih dahulu, lalu menghasilkan situs publik statis melalui Astro. Atur PUBLIC_TINA_CLIENT_ID, TINA_TOKEN, dan SITE_URL sebagai variabel build tanpa menulis kredensial nyata ke repositori.

Setelah mengubah konfigurasi

Jalankan pemeriksaan agar kesalahan tipe terlihat sebelum build:

sh
bun run check
bun run build