diff --git a/package.json b/package.json index 4d69a6845..79013ccb2 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "sync": "node scripts/collections/index.mjs", "sync:orama": "pnpm build && node scripts/sync-orama.mjs", "dev": "pnpm sync && vinxi dev", - "build": "pnpm sync && pnpm build:sitemap && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build", + "build": "pnpm sync && pnpm build:sitemap && pnpm build:llms && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build", + "build:llms": "node scripts/llms-gen.js", "build:sitemap": "node scripts/generateSitemap.js", "start": "vinxi start", "e2e": "npx playwright test", diff --git a/public/llms.txt b/public/llms.txt new file mode 100644 index 000000000..59c510b3f --- /dev/null +++ b/public/llms.txt @@ -0,0 +1,221 @@ +# SolidJS Documentation +> Solid is a JavaScript library built around signals. It prioritizes a simple and predictable development experience, making it a great choice for developers of all skill levels. These are the documention for the main official projects. +> - SolidJS: The core library for building reactive user interfaces. +> - SolidStart: A full-stack framework for building web applications. +> - Solid Router: A routing library for building web applications. +> - Solid Meta: A library for managing the HTML head and meta tags. + +## SolidJS + +- [Overview](https://docs.solidjs.com/) +- [Quick start](https://docs.solidjs.com/quick-start) +- [Intro to reactivity](https://docs.solidjs.com/concepts/intro-to-reactivity) +- [Understanding JSX](https://docs.solidjs.com/concepts/understanding-jsx) +- [Basics](https://docs.solidjs.com/concepts/components/basics) +- [Class and style](https://docs.solidjs.com/concepts/components/class-style) +- [Event handlers](https://docs.solidjs.com/concepts/components/event-handlers) +- [Props](https://docs.solidjs.com/concepts/components/props) +- [Signals](https://docs.solidjs.com/concepts/signals) +- [Conditional rendering](https://docs.solidjs.com/concepts/control-flow/conditional-rendering) +- [Dynamic](https://docs.solidjs.com/concepts/control-flow/dynamic) +- [List rendering](https://docs.solidjs.com/concepts/control-flow/list-rendering) +- [Portal](https://docs.solidjs.com/concepts/control-flow/portal) +- [Error boundary](https://docs.solidjs.com/concepts/control-flow/error-boundary) +- [Effects](https://docs.solidjs.com/concepts/effects) +- [Derived signals](https://docs.solidjs.com/concepts/derived-values/derived-signals) +- [Memos](https://docs.solidjs.com/concepts/derived-values/memos) +- [Context](https://docs.solidjs.com/concepts/context) +- [Stores](https://docs.solidjs.com/concepts/stores) +- [Refs](https://docs.solidjs.com/concepts/refs) +- [Fine-grained reactivity](https://docs.solidjs.com/advanced-concepts/fine-grained-reactivity) +- [Styling your components](https://docs.solidjs.com/guides/styling-your-components) +- [SASS](https://docs.solidjs.com/guides/styling-components/sass) +- [LESS](https://docs.solidjs.com/guides/styling-components/less) +- [CSS modules](https://docs.solidjs.com/guides/styling-components/css-modules) +- [Macaron](https://docs.solidjs.com/guides/styling-components/macaron) +- [Tailwind CSS](https://docs.solidjs.com/guides/styling-components/tailwind) +- [UnoCSS](https://docs.solidjs.com/guides/styling-components/uno) +- [State management](https://docs.solidjs.com/guides/state-management) +- [Routing & navigation](https://docs.solidjs.com/guides/routing-and-navigation) +- [Complex state management](https://docs.solidjs.com/guides/complex-state-management) +- [Fetching data](https://docs.solidjs.com/guides/fetching-data) +- [Testing](https://docs.solidjs.com/guides/testing) +- [Deploy your app](https://docs.solidjs.com/guides/deploying-your-app) +- [AWS via Flightcontrol](https://docs.solidjs.com/guides/deployment-options/aws-via-flightcontrol) +- [AWS via SST](https://docs.solidjs.com/guides/deployment-options/aws-via-sst) +- [Cloudflare](https://docs.solidjs.com/guides/deployment-options/cloudflare) +- [Firebase](https://docs.solidjs.com/guides/deployment-options/firebase) +- [Netlify](https://docs.solidjs.com/guides/deployment-options/netlify) +- [Railway](https://docs.solidjs.com/guides/deployment-options/railway) +- [Vercel](https://docs.solidjs.com/guides/deployment-options/vercel) +- [Stormkit](https://docs.solidjs.com/guides/deployment-options/stormkit) +- [Zerops](https://docs.solidjs.com/guides/deployment-options/zerops) +- [Environment variables](https://docs.solidjs.com/configuration/environment-variables) +- [TypeScript](https://docs.solidjs.com/configuration/typescript) +- [createEffect](https://docs.solidjs.com/reference/basic-reactivity/create-effect) +- [createMemo](https://docs.solidjs.com/reference/basic-reactivity/create-memo) +- [createResource](https://docs.solidjs.com/reference/basic-reactivity/create-resource) +- [createSignal](https://docs.solidjs.com/reference/basic-reactivity/create-signal) +- [children](https://docs.solidjs.com/reference/component-apis/children) +- [createContext](https://docs.solidjs.com/reference/component-apis/create-context) +- [createUniqueId](https://docs.solidjs.com/reference/component-apis/create-unique-id) +- [lazy](https://docs.solidjs.com/reference/component-apis/lazy) +- [useContext](https://docs.solidjs.com/reference/component-apis/use-context) +- [](https://docs.solidjs.com/reference/components/dynamic) +- [](https://docs.solidjs.com/reference/components/error-boundary) +- [](https://docs.solidjs.com/reference/components/for) +- [](https://docs.solidjs.com/reference/components/index-component) +- [](https://docs.solidjs.com/reference/components/no-hydration) +- [](https://docs.solidjs.com/reference/components/portal) +- [](https://docs.solidjs.com/reference/components/show) +- [](https://docs.solidjs.com/reference/components/suspense) +- [](https://docs.solidjs.com/reference/components/suspense-list) +- [ / ](https://docs.solidjs.com/reference/components/switch-and-match) +- [@once](https://docs.solidjs.com/reference/jsx-attributes/once) +- [attr:*](https://docs.solidjs.com/reference/jsx-attributes/attr) +- [bool:*](https://docs.solidjs.com/reference/jsx-attributes/bool) +- [classList](https://docs.solidjs.com/reference/jsx-attributes/classlist) +- [innerHTML](https://docs.solidjs.com/reference/jsx-attributes/innerhtml) +- [on:*](https://docs.solidjs.com/reference/jsx-attributes/on) +- [on*](https://docs.solidjs.com/reference/jsx-attributes/on_) +- [prop:*](https://docs.solidjs.com/reference/jsx-attributes/prop) +- [ref](https://docs.solidjs.com/reference/jsx-attributes/ref) +- [style](https://docs.solidjs.com/reference/jsx-attributes/style) +- [textContent](https://docs.solidjs.com/reference/jsx-attributes/textcontent) +- [use:*](https://docs.solidjs.com/reference/jsx-attributes/use) +- [onCleanup](https://docs.solidjs.com/reference/lifecycle/on-cleanup) +- [onMount](https://docs.solidjs.com/reference/lifecycle/on-mount) +- [batch](https://docs.solidjs.com/reference/reactive-utilities/batch) +- [catchError](https://docs.solidjs.com/reference/reactive-utilities/catch-error) +- [createRoot](https://docs.solidjs.com/reference/reactive-utilities/create-root) +- [from](https://docs.solidjs.com/reference/reactive-utilities/from) +- [getOwner](https://docs.solidjs.com/reference/reactive-utilities/get-owner) +- [indexArray](https://docs.solidjs.com/reference/reactive-utilities/index-array) +- [mapArray](https://docs.solidjs.com/reference/reactive-utilities/map-array) +- [mergeProps](https://docs.solidjs.com/reference/reactive-utilities/merge-props) +- [observable](https://docs.solidjs.com/reference/reactive-utilities/observable) +- [on](https://docs.solidjs.com/reference/reactive-utilities/on-util) +- [runWithOwner](https://docs.solidjs.com/reference/reactive-utilities/run-with-owner) +- [splitProps](https://docs.solidjs.com/reference/reactive-utilities/split-props) +- [startTransition](https://docs.solidjs.com/reference/reactive-utilities/start-transition) +- [untrack](https://docs.solidjs.com/reference/reactive-utilities/untrack) +- [useTransition](https://docs.solidjs.com/reference/reactive-utilities/use-transition) +- [DEV](https://docs.solidjs.com/reference/rendering/dev) +- [hydrate](https://docs.solidjs.com/reference/rendering/hydrate) +- [hydrationScript](https://docs.solidjs.com/reference/rendering/hydration-script) +- [isServer](https://docs.solidjs.com/reference/rendering/is-server) +- [render](https://docs.solidjs.com/reference/rendering/render) +- [renderToStream](https://docs.solidjs.com/reference/rendering/render-to-stream) +- [renderToString](https://docs.solidjs.com/reference/rendering/render-to-string) +- [renderToStringAsync](https://docs.solidjs.com/reference/rendering/render-to-string-async) +- [createComputed](https://docs.solidjs.com/reference/secondary-primitives/create-computed) +- [createDeferred](https://docs.solidjs.com/reference/secondary-primitives/create-deferred) +- [createReaction](https://docs.solidjs.com/reference/secondary-primitives/create-reaction) +- [createRenderEffect](https://docs.solidjs.com/reference/secondary-primitives/create-render-effect) +- [createSelector](https://docs.solidjs.com/reference/secondary-primitives/create-selector) +- [createMutable](https://docs.solidjs.com/reference/store-utilities/create-mutable) +- [createStore](https://docs.solidjs.com/reference/store-utilities/create-store) +- [modifyMutable](https://docs.solidjs.com/reference/store-utilities/modify-mutable) +- [produce](https://docs.solidjs.com/reference/store-utilities/produce) +- [reconcile](https://docs.solidjs.com/reference/store-utilities/reconcile) +- [unwrap](https://docs.solidjs.com/reference/store-utilities/unwrap) +- [getRequestEvent](https://docs.solidjs.com/reference/server-utilities/get-request-event) + +## SolidStart + +- [Overview](https://docs.solidjs.com/solid-start/) +- [Getting started](https://docs.solidjs.com/solid-start/getting-started) +- [Routing](https://docs.solidjs.com/solid-start/building-your-application/routing) +- [API routes](https://docs.solidjs.com/solid-start/building-your-application/api-routes) +- [CSS and styling](https://docs.solidjs.com/solid-start/building-your-application/css-and-styling) +- [Data loading](https://docs.solidjs.com/solid-start/building-your-application/data-loading) +- [Head and metadata](https://docs.solidjs.com/solid-start/building-your-application/head-and-metadata) +- [Route Pre-rendering](https://docs.solidjs.com/solid-start/building-your-application/route-prerendering) +- [Static assets](https://docs.solidjs.com/solid-start/building-your-application/static-assets) +- [Middleware](https://docs.solidjs.com/solid-start/advanced/middleware) +- [Sessions](https://docs.solidjs.com/solid-start/advanced/session) +- [Request events](https://docs.solidjs.com/solid-start/advanced/request-events) +- [Returning responses](https://docs.solidjs.com/solid-start/advanced/return-responses) +- [Auth](https://docs.solidjs.com/solid-start/advanced/auth) +- [WebSocket endpoint](https://docs.solidjs.com/solid-start/advanced/websocket) +- [Security](https://docs.solidjs.com/solid-start/guides/security) +- [Data fetching](https://docs.solidjs.com/solid-start/guides/data-fetching) +- [Data mutation](https://docs.solidjs.com/solid-start/guides/data-mutation) +- [Service workers](https://docs.solidjs.com/solid-start/guides/service-workers) +- [app.config.ts](https://docs.solidjs.com/solid-start/reference/entrypoints/app-config) +- [app.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/app) +- [entry-client.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-client) +- [entry-server.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-server) +- [defineConfig](https://docs.solidjs.com/solid-start/reference/config/define-config) +- [FileRoutes](https://docs.solidjs.com/solid-start/reference/routing/file-routes) +- [clientOnly](https://docs.solidjs.com/solid-start/reference/client/client-only) +- [mount](https://docs.solidjs.com/solid-start/reference/client/mount) +- [StartClient](https://docs.solidjs.com/solid-start/reference/client/start-client) +- ["use server"](https://docs.solidjs.com/solid-start/reference/server/use-server) +- [createHandler](https://docs.solidjs.com/solid-start/reference/server/create-handler) +- [createMiddleware](https://docs.solidjs.com/solid-start/reference/server/create-middleware) +- [GET](https://docs.solidjs.com/solid-start/reference/server/get) +- [getServerFunctionMeta](https://docs.solidjs.com/solid-start/reference/server/get-server-function-meta) +- [HttpHeader](https://docs.solidjs.com/solid-start/reference/server/http-header) +- [HttpStatusCode](https://docs.solidjs.com/solid-start/reference/server/http-status-code) +- [StartServer](https://docs.solidjs.com/solid-start/reference/server/start-server) + +## Solid Router + +- [Overview](https://docs.solidjs.com/solid-router/) +- [Installation and setup](https://docs.solidjs.com/solid-router/getting-started/installation-and-setup) +- [Component routing](https://docs.solidjs.com/solid-router/getting-started/component) +- [Config-based routing](https://docs.solidjs.com/solid-router/getting-started/config) +- [Navigation](https://docs.solidjs.com/solid-router/concepts/navigation) +- [Path parameters](https://docs.solidjs.com/solid-router/concepts/path-parameters) +- [Search parameters](https://docs.solidjs.com/solid-router/concepts/search-parameters) +- [Catch-all routes](https://docs.solidjs.com/solid-router/concepts/catch-all) +- [Nesting routes](https://docs.solidjs.com/solid-router/concepts/nesting) +- [Layouts](https://docs.solidjs.com/solid-router/concepts/layouts) +- [Alternative routers](https://docs.solidjs.com/solid-router/concepts/alternative-routers) +- [Actions](https://docs.solidjs.com/solid-router/concepts/actions) +- [Single page applications](https://docs.solidjs.com/solid-router/rendering-modes/spa) +- [Server side rendering](https://docs.solidjs.com/solid-router/rendering-modes/ssr) +- [Lazy loading](https://docs.solidjs.com/solid-router/advanced-concepts/lazy-loading) +- [Migration from v0.9.x](https://docs.solidjs.com/solid-router/guides/migration) +- [A](https://docs.solidjs.com/solid-router/reference/components/a) +- [HashRouter](https://docs.solidjs.com/solid-router/reference/components/hash-router) +- [MemoryRouter](https://docs.solidjs.com/solid-router/reference/components/memory-router) +- [Navigate](https://docs.solidjs.com/solid-router/reference/components/navigate) +- [Route](https://docs.solidjs.com/solid-router/reference/components/route) +- [Router](https://docs.solidjs.com/solid-router/reference/components/router) +- [action](https://docs.solidjs.com/solid-router/reference/data-apis/action) +- [cache](https://docs.solidjs.com/solid-router/reference/data-apis/cache) +- [createAsync](https://docs.solidjs.com/solid-router/reference/data-apis/create-async) +- [createAsyncStore](https://docs.solidjs.com/solid-router/reference/data-apis/create-async-store) +- [query](https://docs.solidjs.com/solid-router/reference/data-apis/query) +- [revalidate](https://docs.solidjs.com/solid-router/reference/data-apis/revalidate) +- [useAction](https://docs.solidjs.com/solid-router/reference/data-apis/use-action) +- [useSubmission](https://docs.solidjs.com/solid-router/reference/data-apis/use-submission) +- [useSubmissions](https://docs.solidjs.com/solid-router/reference/data-apis/use-submissions) +- [Preload](https://docs.solidjs.com/solid-router/reference/preload-functions/preload) +- [useBeforeLeave](https://docs.solidjs.com/solid-router/reference/primitives/use-before-leave) +- [useCurrentMatches](https://docs.solidjs.com/solid-router/reference/primitives/use-current-matches) +- [useIsRouting](https://docs.solidjs.com/solid-router/reference/primitives/use-is-routing) +- [useLocation](https://docs.solidjs.com/solid-router/reference/primitives/use-location) +- [useMatch](https://docs.solidjs.com/solid-router/reference/primitives/use-match) +- [useNavigate](https://docs.solidjs.com/solid-router/reference/primitives/use-navigate) +- [useParams](https://docs.solidjs.com/solid-router/reference/primitives/use-params) +- [usePreloadRoute](https://docs.solidjs.com/solid-router/reference/primitives/use-preload-route) +- [useSearchParams](https://docs.solidjs.com/solid-router/reference/primitives/use-search-params) +- [json](https://docs.solidjs.com/solid-router/reference/response-helpers/json) +- [redirect](https://docs.solidjs.com/solid-router/reference/response-helpers/redirect) +- [reload](https://docs.solidjs.com/solid-router/reference/response-helpers/reload) + +## Solid Meta + +- [Overview](https://docs.solidjs.com/solid-meta/) +- [Install and configure](https://docs.solidjs.com/solid-meta/getting-started/installation-and-setup) +- [Client setup](https://docs.solidjs.com/solid-meta/getting-started/client-setup) +- [Server setup](https://docs.solidjs.com/solid-meta/getting-started/server-setup) +- [Base](https://docs.solidjs.com/solid-meta/reference/meta/base) +- [Link](https://docs.solidjs.com/solid-meta/reference/meta/link) +- [Meta](https://docs.solidjs.com/solid-meta/reference/meta/meta) +- [MetaProvider](https://docs.solidjs.com/solid-meta/reference/meta/metaprovider) +- [Style](https://docs.solidjs.com/solid-meta/reference/meta/style) +- [Title](https://docs.solidjs.com/solid-meta/reference/meta/title) diff --git a/scripts/collections/index.mjs b/scripts/collections/index.mjs index 9edb96298..3ce8189f6 100644 --- a/scripts/collections/index.mjs +++ b/scripts/collections/index.mjs @@ -72,5 +72,8 @@ export const COLLECTIONS_ROOT = "src/routes"; Object.keys(projectTrees).forEach((project) => writeFile(`${project}-entries.ts`, projectTrees[project]) ), + Object.keys(projectFlatEntries).forEach((project) => + writeFile(`${project}-flat-entries.js`, projectFlatEntries[project], true) + ), ]); })(); diff --git a/scripts/llms-gen.js b/scripts/llms-gen.js new file mode 100644 index 000000000..7002ae76d --- /dev/null +++ b/scripts/llms-gen.js @@ -0,0 +1,63 @@ +import entries from "../.solid/entriesList.js"; +import startEntries from "../.solid/solid-start-flat-entries.js"; +import routerEntries from "../.solid/solid-router-flat-entries.js"; +import metaEntries from "../.solid/solid-meta-flat-entries.js"; +import fs from "fs"; + +const generateLinkArray = (routes) => { + return routes.map((route) => ({ + title: route.title, + url: `https://docs.solidjs.com${route.path}`, + })); +}; + +const formatSection = (title, links) => { + const formattedLinks = links + .map((link) => `- [${link.title}](${link.url})`) + .join("\n"); + return `## ${title}\n\n${formattedLinks}`; +}; + +(async () => { + // SolidJS Core + const coreLinks = [ + ...generateLinkArray(entries.learn), + ...generateLinkArray(entries.reference), + ]; + + // SolidStart + const startLinks = [ + ...generateLinkArray(startEntries.learn), + ...generateLinkArray(startEntries.reference), + ]; + + // Solid Router + const routerLinks = [ + ...generateLinkArray(routerEntries.learn), + ...generateLinkArray(routerEntries.reference), + ]; + + // Solid Meta + const metaLinks = [ + ...generateLinkArray(metaEntries.learn), + ...generateLinkArray(metaEntries.reference), + ]; + + const output = `# SolidJS Documentation +> Solid is a JavaScript library built around signals. It prioritizes a simple and predictable development experience, making it a great choice for developers of all skill levels. These are the documention for the main official projects. +> - SolidJS: The core library for building reactive user interfaces. +> - SolidStart: A full-stack framework for building web applications. +> - Solid Router: A routing library for building web applications. +> - Solid Meta: A library for managing the HTML head and meta tags. + +${formatSection("SolidJS", coreLinks)} + +${formatSection("SolidStart", startLinks)} + +${formatSection("Solid Router", routerLinks)} + +${formatSection("Solid Meta", metaLinks)} +`; + + fs.writeFileSync("public/llms.txt", output, { encoding: "utf-8" }); +})();