entry-server.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // @refresh reload
  2. import { createHandler, StartServer } from "@solidjs/start/server"
  3. import { getRequestEvent } from "solid-js/web"
  4. export default createHandler(() => (
  5. <StartServer
  6. document={({ assets, children, scripts }) => {
  7. const lang = (() => {
  8. const event = getRequestEvent()
  9. const header = event?.request.headers.get("accept-language")
  10. if (!header) return "en"
  11. for (const item of header.split(",")) {
  12. const value = item.trim().split(";")[0]?.toLowerCase()
  13. if (!value) continue
  14. if (value.startsWith("zh")) return "zh"
  15. if (value.startsWith("en")) return "en"
  16. }
  17. return "en"
  18. })()
  19. return (
  20. <html lang={lang}>
  21. <head>
  22. <meta charset="utf-8" />
  23. <meta name="viewport" content="width=device-width, initial-scale=1" />
  24. <title>OpenCode</title>
  25. <meta name="theme-color" content="#F8F7F7" />
  26. <meta name="theme-color" content="#131010" media="(prefers-color-scheme: dark)" />
  27. {assets}
  28. </head>
  29. <body class="antialiased overscroll-none text-12-regular">
  30. <div id="app">{children}</div>
  31. {scripts}
  32. </body>
  33. </html>
  34. )
  35. }}
  36. />
  37. ))