TypeScript

页面可以是 .ht.ts / .ht.tsx,无需任何配置。

definePageModule

sitelo/page 提供的辅助函数带来完整的类型推导。构建时,这个 import 会被替换为按路由生成的模块,其 PageParams 来自文件名:[slug]{ slug: string }[...path]{ path: string[] }[...path]?{ path?: string[] }

import { html, body, h1 } from 'javascript-to-html'
import { definePageModule } from 'sitelo/page'

export default definePageModule({
  generateStaticParams: () => [{ slug: 'hello' }],
  data: ({ params }) => ({ title: params.slug }),
  render: ({ data }) =>
    html(
      body(h1(data.title))
    ),
})

同时导出的还有:definePagedefineDatadefineStaticParams

生成的类型

每次启动开发服务器或执行构建时,声明文件都会写入 .sitelo/types/。把这个目录加进 .gitignore