Perutean

Rute datang langsung dari sistem berkas di bawah src/.

src/
  index.ht.js              → /
  about.ht.js              → /about
  blog/
    index.ht.js            → /blog
    [slug].ht.js           → /blog/:slug
  docs/
    [...path]?.ht.js       → /docs, /docs/a, /docs/a/b, ...
  (admin)/
    users.ht.js            → /users
  404.ht.js                → dist/404.html

Tabel rute

FiturBerkasURL
Statisindex.ht.js/
Bersarangblog/index.ht.js/blog
Dinamisblog/[slug].ht.js/blog/my-post
Beberapa parameterblog/[year]/[slug].ht.js/blog/2026/my-post
Penangkap semuadocs/[...path].ht.js/docs/api/auth
Penangkap semua opsionaldocs/[...path]?.ht.js/docs + lebih dalam
Grup rute(admin)/users.ht.js/users

Rute yang lebih spesifik menang: statis mengalahkan dinamis, dinamis mengalahkan penangkap semua. Dua berkas yang menghasilkan URL sama adalah galat build.

generateStaticParams

Rute dinamis menyatakan halaman mana yang dihasilkan saat build. Di sitelo (pengembangan), rute dinamis tetap dirender sesuai permintaan tanpa perlu mendaftar setiap parameter.

import { html, body, h1 } from 'javascript-to-html'

export function generateStaticParams() {
  return [
    { slug: 'hello-world' },
    { slug: 'my-first-post' },
  ]
}

export default ({ params }) =>
  html(
    body(h1(params.slug))
  )

Nilainya bisa berupa string, angka, atau boolean — semuanya diubah menjadi string dan dikodekan untuk URL. Parameter penangkap semua menerima larik ({ path: ['a', 'b'] }) atau string berpemisah garis miring ({ path: 'a/b' }).

Halaman dinamis yang menghasilkan nol rute akan mencetak peringatan, sehingga ia tidak bisa lenyap diam-diam dari situs Anda.