TypeScript
页面可以是 .ht.ts / .ht.tsx,无需任何配置。
definePageModule
sitelo/page 提供的辅助函数带来完整的类型推导。构建时,这个 import 会被替换为按路由生成的模块,其 PageParams 来自文件名:[slug] → { slug: string },[...path] → { path: string[] },[...path]? → { path?: string[] }。
import { definePageModule } from 'sitelo/page'
export default definePageModule({
generateStaticParams: () => [{ slug: 'hello' }],
data: ({ params }) => ({ title: params.slug }),
render: ({ data }) => `<html><body><h1>${data.title}</h1></body></html>`,
})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))
),
})import { definePageModule } from 'sitelo/page'
export default definePageModule({
generateStaticParams: () => [{ slug: 'hello' }],
data: ({ params }) => ({ title: params.slug }),
render: ({ data }) => (
<html>
<body>
<h1>{data.title}</h1>
</body>
</html>
),
})同时导出的还有:definePage、defineData、defineStaticParams。
生成的类型
每次启动开发服务器或执行构建时,声明文件都会写入 .sitelo/types/。把这个目录加进 .gitignore。