Skip to content

Commit eef2625

Browse files
authored
Generate llm.txt on build (#1317)
1 parent 57ae752 commit eef2625

File tree

4 files changed

+289
-1
lines changed

4 files changed

+289
-1
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"sync": "node scripts/collections/index.mjs",
99
"sync:orama": "pnpm build && node scripts/sync-orama.mjs",
1010
"dev": "pnpm sync && vinxi dev",
11-
"build": "pnpm sync && pnpm build:sitemap && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build",
11+
"build": "pnpm sync && pnpm build:sitemap && pnpm build:llms && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build",
12+
"build:llms": "node scripts/llms-gen.js",
1213
"build:sitemap": "node scripts/generateSitemap.js",
1314
"start": "vinxi start",
1415
"e2e": "npx playwright test",

public/llms.txt

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
# SolidJS Documentation
2+
> 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.
3+
> - SolidJS: The core library for building reactive user interfaces.
4+
> - SolidStart: A full-stack framework for building web applications.
5+
> - Solid Router: A routing library for building web applications.
6+
> - Solid Meta: A library for managing the HTML head and meta tags.
7+
8+
## SolidJS
9+
10+
- [Overview](https://docs.solidjs.com/)
11+
- [Quick start](https://docs.solidjs.com/quick-start)
12+
- [Intro to reactivity](https://docs.solidjs.com/concepts/intro-to-reactivity)
13+
- [Understanding JSX](https://docs.solidjs.com/concepts/understanding-jsx)
14+
- [Basics](https://docs.solidjs.com/concepts/components/basics)
15+
- [Class and style](https://docs.solidjs.com/concepts/components/class-style)
16+
- [Event handlers](https://docs.solidjs.com/concepts/components/event-handlers)
17+
- [Props](https://docs.solidjs.com/concepts/components/props)
18+
- [Signals](https://docs.solidjs.com/concepts/signals)
19+
- [Conditional rendering](https://docs.solidjs.com/concepts/control-flow/conditional-rendering)
20+
- [Dynamic](https://docs.solidjs.com/concepts/control-flow/dynamic)
21+
- [List rendering](https://docs.solidjs.com/concepts/control-flow/list-rendering)
22+
- [Portal](https://docs.solidjs.com/concepts/control-flow/portal)
23+
- [Error boundary](https://docs.solidjs.com/concepts/control-flow/error-boundary)
24+
- [Effects](https://docs.solidjs.com/concepts/effects)
25+
- [Derived signals](https://docs.solidjs.com/concepts/derived-values/derived-signals)
26+
- [Memos](https://docs.solidjs.com/concepts/derived-values/memos)
27+
- [Context](https://docs.solidjs.com/concepts/context)
28+
- [Stores](https://docs.solidjs.com/concepts/stores)
29+
- [Refs](https://docs.solidjs.com/concepts/refs)
30+
- [Fine-grained reactivity](https://docs.solidjs.com/advanced-concepts/fine-grained-reactivity)
31+
- [Styling your components](https://docs.solidjs.com/guides/styling-your-components)
32+
- [SASS](https://docs.solidjs.com/guides/styling-components/sass)
33+
- [LESS](https://docs.solidjs.com/guides/styling-components/less)
34+
- [CSS modules](https://docs.solidjs.com/guides/styling-components/css-modules)
35+
- [Macaron](https://docs.solidjs.com/guides/styling-components/macaron)
36+
- [Tailwind CSS](https://docs.solidjs.com/guides/styling-components/tailwind)
37+
- [UnoCSS](https://docs.solidjs.com/guides/styling-components/uno)
38+
- [State management](https://docs.solidjs.com/guides/state-management)
39+
- [Routing & navigation](https://docs.solidjs.com/guides/routing-and-navigation)
40+
- [Complex state management](https://docs.solidjs.com/guides/complex-state-management)
41+
- [Fetching data](https://docs.solidjs.com/guides/fetching-data)
42+
- [Testing](https://docs.solidjs.com/guides/testing)
43+
- [Deploy your app](https://docs.solidjs.com/guides/deploying-your-app)
44+
- [AWS via Flightcontrol](https://docs.solidjs.com/guides/deployment-options/aws-via-flightcontrol)
45+
- [AWS via SST](https://docs.solidjs.com/guides/deployment-options/aws-via-sst)
46+
- [Cloudflare](https://docs.solidjs.com/guides/deployment-options/cloudflare)
47+
- [Firebase](https://docs.solidjs.com/guides/deployment-options/firebase)
48+
- [Netlify](https://docs.solidjs.com/guides/deployment-options/netlify)
49+
- [Railway](https://docs.solidjs.com/guides/deployment-options/railway)
50+
- [Vercel](https://docs.solidjs.com/guides/deployment-options/vercel)
51+
- [Stormkit](https://docs.solidjs.com/guides/deployment-options/stormkit)
52+
- [Zerops](https://docs.solidjs.com/guides/deployment-options/zerops)
53+
- [Environment variables](https://docs.solidjs.com/configuration/environment-variables)
54+
- [TypeScript](https://docs.solidjs.com/configuration/typescript)
55+
- [createEffect](https://docs.solidjs.com/reference/basic-reactivity/create-effect)
56+
- [createMemo](https://docs.solidjs.com/reference/basic-reactivity/create-memo)
57+
- [createResource](https://docs.solidjs.com/reference/basic-reactivity/create-resource)
58+
- [createSignal](https://docs.solidjs.com/reference/basic-reactivity/create-signal)
59+
- [children](https://docs.solidjs.com/reference/component-apis/children)
60+
- [createContext](https://docs.solidjs.com/reference/component-apis/create-context)
61+
- [createUniqueId](https://docs.solidjs.com/reference/component-apis/create-unique-id)
62+
- [lazy](https://docs.solidjs.com/reference/component-apis/lazy)
63+
- [useContext](https://docs.solidjs.com/reference/component-apis/use-context)
64+
- [<Dynamic>](https://docs.solidjs.com/reference/components/dynamic)
65+
- [<ErrorBoundary>](https://docs.solidjs.com/reference/components/error-boundary)
66+
- [<For>](https://docs.solidjs.com/reference/components/for)
67+
- [<Index>](https://docs.solidjs.com/reference/components/index-component)
68+
- [<NoHydration>](https://docs.solidjs.com/reference/components/no-hydration)
69+
- [<Portal>](https://docs.solidjs.com/reference/components/portal)
70+
- [<Show>](https://docs.solidjs.com/reference/components/show)
71+
- [<Suspense>](https://docs.solidjs.com/reference/components/suspense)
72+
- [<SuspenseList>](https://docs.solidjs.com/reference/components/suspense-list)
73+
- [<Switch> / <Match>](https://docs.solidjs.com/reference/components/switch-and-match)
74+
- [@once](https://docs.solidjs.com/reference/jsx-attributes/once)
75+
- [attr:*](https://docs.solidjs.com/reference/jsx-attributes/attr)
76+
- [bool:*](https://docs.solidjs.com/reference/jsx-attributes/bool)
77+
- [classList](https://docs.solidjs.com/reference/jsx-attributes/classlist)
78+
- [innerHTML](https://docs.solidjs.com/reference/jsx-attributes/innerhtml)
79+
- [on:*](https://docs.solidjs.com/reference/jsx-attributes/on)
80+
- [on*](https://docs.solidjs.com/reference/jsx-attributes/on_)
81+
- [prop:*](https://docs.solidjs.com/reference/jsx-attributes/prop)
82+
- [ref](https://docs.solidjs.com/reference/jsx-attributes/ref)
83+
- [style](https://docs.solidjs.com/reference/jsx-attributes/style)
84+
- [textContent](https://docs.solidjs.com/reference/jsx-attributes/textcontent)
85+
- [use:*](https://docs.solidjs.com/reference/jsx-attributes/use)
86+
- [onCleanup](https://docs.solidjs.com/reference/lifecycle/on-cleanup)
87+
- [onMount](https://docs.solidjs.com/reference/lifecycle/on-mount)
88+
- [batch](https://docs.solidjs.com/reference/reactive-utilities/batch)
89+
- [catchError](https://docs.solidjs.com/reference/reactive-utilities/catch-error)
90+
- [createRoot](https://docs.solidjs.com/reference/reactive-utilities/create-root)
91+
- [from](https://docs.solidjs.com/reference/reactive-utilities/from)
92+
- [getOwner](https://docs.solidjs.com/reference/reactive-utilities/get-owner)
93+
- [indexArray](https://docs.solidjs.com/reference/reactive-utilities/index-array)
94+
- [mapArray](https://docs.solidjs.com/reference/reactive-utilities/map-array)
95+
- [mergeProps](https://docs.solidjs.com/reference/reactive-utilities/merge-props)
96+
- [observable](https://docs.solidjs.com/reference/reactive-utilities/observable)
97+
- [on](https://docs.solidjs.com/reference/reactive-utilities/on-util)
98+
- [runWithOwner](https://docs.solidjs.com/reference/reactive-utilities/run-with-owner)
99+
- [splitProps](https://docs.solidjs.com/reference/reactive-utilities/split-props)
100+
- [startTransition](https://docs.solidjs.com/reference/reactive-utilities/start-transition)
101+
- [untrack](https://docs.solidjs.com/reference/reactive-utilities/untrack)
102+
- [useTransition](https://docs.solidjs.com/reference/reactive-utilities/use-transition)
103+
- [DEV](https://docs.solidjs.com/reference/rendering/dev)
104+
- [hydrate](https://docs.solidjs.com/reference/rendering/hydrate)
105+
- [hydrationScript](https://docs.solidjs.com/reference/rendering/hydration-script)
106+
- [isServer](https://docs.solidjs.com/reference/rendering/is-server)
107+
- [render](https://docs.solidjs.com/reference/rendering/render)
108+
- [renderToStream](https://docs.solidjs.com/reference/rendering/render-to-stream)
109+
- [renderToString](https://docs.solidjs.com/reference/rendering/render-to-string)
110+
- [renderToStringAsync](https://docs.solidjs.com/reference/rendering/render-to-string-async)
111+
- [createComputed](https://docs.solidjs.com/reference/secondary-primitives/create-computed)
112+
- [createDeferred](https://docs.solidjs.com/reference/secondary-primitives/create-deferred)
113+
- [createReaction](https://docs.solidjs.com/reference/secondary-primitives/create-reaction)
114+
- [createRenderEffect](https://docs.solidjs.com/reference/secondary-primitives/create-render-effect)
115+
- [createSelector](https://docs.solidjs.com/reference/secondary-primitives/create-selector)
116+
- [createMutable](https://docs.solidjs.com/reference/store-utilities/create-mutable)
117+
- [createStore](https://docs.solidjs.com/reference/store-utilities/create-store)
118+
- [modifyMutable](https://docs.solidjs.com/reference/store-utilities/modify-mutable)
119+
- [produce](https://docs.solidjs.com/reference/store-utilities/produce)
120+
- [reconcile](https://docs.solidjs.com/reference/store-utilities/reconcile)
121+
- [unwrap](https://docs.solidjs.com/reference/store-utilities/unwrap)
122+
- [getRequestEvent](https://docs.solidjs.com/reference/server-utilities/get-request-event)
123+
124+
## SolidStart
125+
126+
- [Overview](https://docs.solidjs.com/solid-start/)
127+
- [Getting started](https://docs.solidjs.com/solid-start/getting-started)
128+
- [Routing](https://docs.solidjs.com/solid-start/building-your-application/routing)
129+
- [API routes](https://docs.solidjs.com/solid-start/building-your-application/api-routes)
130+
- [CSS and styling](https://docs.solidjs.com/solid-start/building-your-application/css-and-styling)
131+
- [Data loading](https://docs.solidjs.com/solid-start/building-your-application/data-loading)
132+
- [Head and metadata](https://docs.solidjs.com/solid-start/building-your-application/head-and-metadata)
133+
- [Route Pre-rendering](https://docs.solidjs.com/solid-start/building-your-application/route-prerendering)
134+
- [Static assets](https://docs.solidjs.com/solid-start/building-your-application/static-assets)
135+
- [Middleware](https://docs.solidjs.com/solid-start/advanced/middleware)
136+
- [Sessions](https://docs.solidjs.com/solid-start/advanced/session)
137+
- [Request events](https://docs.solidjs.com/solid-start/advanced/request-events)
138+
- [Returning responses](https://docs.solidjs.com/solid-start/advanced/return-responses)
139+
- [Auth](https://docs.solidjs.com/solid-start/advanced/auth)
140+
- [WebSocket endpoint](https://docs.solidjs.com/solid-start/advanced/websocket)
141+
- [Security](https://docs.solidjs.com/solid-start/guides/security)
142+
- [Data fetching](https://docs.solidjs.com/solid-start/guides/data-fetching)
143+
- [Data mutation](https://docs.solidjs.com/solid-start/guides/data-mutation)
144+
- [Service workers](https://docs.solidjs.com/solid-start/guides/service-workers)
145+
- [app.config.ts](https://docs.solidjs.com/solid-start/reference/entrypoints/app-config)
146+
- [app.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/app)
147+
- [entry-client.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-client)
148+
- [entry-server.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-server)
149+
- [defineConfig](https://docs.solidjs.com/solid-start/reference/config/define-config)
150+
- [FileRoutes](https://docs.solidjs.com/solid-start/reference/routing/file-routes)
151+
- [clientOnly](https://docs.solidjs.com/solid-start/reference/client/client-only)
152+
- [mount](https://docs.solidjs.com/solid-start/reference/client/mount)
153+
- [StartClient](https://docs.solidjs.com/solid-start/reference/client/start-client)
154+
- ["use server"](https://docs.solidjs.com/solid-start/reference/server/use-server)
155+
- [createHandler](https://docs.solidjs.com/solid-start/reference/server/create-handler)
156+
- [createMiddleware](https://docs.solidjs.com/solid-start/reference/server/create-middleware)
157+
- [GET](https://docs.solidjs.com/solid-start/reference/server/get)
158+
- [getServerFunctionMeta](https://docs.solidjs.com/solid-start/reference/server/get-server-function-meta)
159+
- [HttpHeader](https://docs.solidjs.com/solid-start/reference/server/http-header)
160+
- [HttpStatusCode](https://docs.solidjs.com/solid-start/reference/server/http-status-code)
161+
- [StartServer](https://docs.solidjs.com/solid-start/reference/server/start-server)
162+
163+
## Solid Router
164+
165+
- [Overview](https://docs.solidjs.com/solid-router/)
166+
- [Installation and setup](https://docs.solidjs.com/solid-router/getting-started/installation-and-setup)
167+
- [Component routing](https://docs.solidjs.com/solid-router/getting-started/component)
168+
- [Config-based routing](https://docs.solidjs.com/solid-router/getting-started/config)
169+
- [Navigation](https://docs.solidjs.com/solid-router/concepts/navigation)
170+
- [Path parameters](https://docs.solidjs.com/solid-router/concepts/path-parameters)
171+
- [Search parameters](https://docs.solidjs.com/solid-router/concepts/search-parameters)
172+
- [Catch-all routes](https://docs.solidjs.com/solid-router/concepts/catch-all)
173+
- [Nesting routes](https://docs.solidjs.com/solid-router/concepts/nesting)
174+
- [Layouts](https://docs.solidjs.com/solid-router/concepts/layouts)
175+
- [Alternative routers](https://docs.solidjs.com/solid-router/concepts/alternative-routers)
176+
- [Actions](https://docs.solidjs.com/solid-router/concepts/actions)
177+
- [Single page applications](https://docs.solidjs.com/solid-router/rendering-modes/spa)
178+
- [Server side rendering](https://docs.solidjs.com/solid-router/rendering-modes/ssr)
179+
- [Lazy loading](https://docs.solidjs.com/solid-router/advanced-concepts/lazy-loading)
180+
- [Migration from v0.9.x](https://docs.solidjs.com/solid-router/guides/migration)
181+
- [A](https://docs.solidjs.com/solid-router/reference/components/a)
182+
- [HashRouter](https://docs.solidjs.com/solid-router/reference/components/hash-router)
183+
- [MemoryRouter](https://docs.solidjs.com/solid-router/reference/components/memory-router)
184+
- [Navigate](https://docs.solidjs.com/solid-router/reference/components/navigate)
185+
- [Route](https://docs.solidjs.com/solid-router/reference/components/route)
186+
- [Router](https://docs.solidjs.com/solid-router/reference/components/router)
187+
- [action](https://docs.solidjs.com/solid-router/reference/data-apis/action)
188+
- [cache](https://docs.solidjs.com/solid-router/reference/data-apis/cache)
189+
- [createAsync](https://docs.solidjs.com/solid-router/reference/data-apis/create-async)
190+
- [createAsyncStore](https://docs.solidjs.com/solid-router/reference/data-apis/create-async-store)
191+
- [query](https://docs.solidjs.com/solid-router/reference/data-apis/query)
192+
- [revalidate](https://docs.solidjs.com/solid-router/reference/data-apis/revalidate)
193+
- [useAction](https://docs.solidjs.com/solid-router/reference/data-apis/use-action)
194+
- [useSubmission](https://docs.solidjs.com/solid-router/reference/data-apis/use-submission)
195+
- [useSubmissions](https://docs.solidjs.com/solid-router/reference/data-apis/use-submissions)
196+
- [Preload](https://docs.solidjs.com/solid-router/reference/preload-functions/preload)
197+
- [useBeforeLeave](https://docs.solidjs.com/solid-router/reference/primitives/use-before-leave)
198+
- [useCurrentMatches](https://docs.solidjs.com/solid-router/reference/primitives/use-current-matches)
199+
- [useIsRouting](https://docs.solidjs.com/solid-router/reference/primitives/use-is-routing)
200+
- [useLocation](https://docs.solidjs.com/solid-router/reference/primitives/use-location)
201+
- [useMatch](https://docs.solidjs.com/solid-router/reference/primitives/use-match)
202+
- [useNavigate](https://docs.solidjs.com/solid-router/reference/primitives/use-navigate)
203+
- [useParams](https://docs.solidjs.com/solid-router/reference/primitives/use-params)
204+
- [usePreloadRoute](https://docs.solidjs.com/solid-router/reference/primitives/use-preload-route)
205+
- [useSearchParams](https://docs.solidjs.com/solid-router/reference/primitives/use-search-params)
206+
- [json](https://docs.solidjs.com/solid-router/reference/response-helpers/json)
207+
- [redirect](https://docs.solidjs.com/solid-router/reference/response-helpers/redirect)
208+
- [reload](https://docs.solidjs.com/solid-router/reference/response-helpers/reload)
209+
210+
## Solid Meta
211+
212+
- [Overview](https://docs.solidjs.com/solid-meta/)
213+
- [Install and configure](https://docs.solidjs.com/solid-meta/getting-started/installation-and-setup)
214+
- [Client setup](https://docs.solidjs.com/solid-meta/getting-started/client-setup)
215+
- [Server setup](https://docs.solidjs.com/solid-meta/getting-started/server-setup)
216+
- [Base](https://docs.solidjs.com/solid-meta/reference/meta/base)
217+
- [Link](https://docs.solidjs.com/solid-meta/reference/meta/link)
218+
- [Meta](https://docs.solidjs.com/solid-meta/reference/meta/meta)
219+
- [MetaProvider](https://docs.solidjs.com/solid-meta/reference/meta/metaprovider)
220+
- [Style](https://docs.solidjs.com/solid-meta/reference/meta/style)
221+
- [Title](https://docs.solidjs.com/solid-meta/reference/meta/title)

scripts/collections/index.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,8 @@ export const COLLECTIONS_ROOT = "src/routes";
7272
Object.keys(projectTrees).forEach((project) =>
7373
writeFile(`${project}-entries.ts`, projectTrees[project])
7474
),
75+
Object.keys(projectFlatEntries).forEach((project) =>
76+
writeFile(`${project}-flat-entries.js`, projectFlatEntries[project], true)
77+
),
7578
]);
7679
})();

scripts/llms-gen.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import entries from "../.solid/entriesList.js";
2+
import startEntries from "../.solid/solid-start-flat-entries.js";
3+
import routerEntries from "../.solid/solid-router-flat-entries.js";
4+
import metaEntries from "../.solid/solid-meta-flat-entries.js";
5+
import fs from "fs";
6+
7+
const generateLinkArray = (routes) => {
8+
return routes.map((route) => ({
9+
title: route.title,
10+
url: `https://docs.solidjs.com${route.path}`,
11+
}));
12+
};
13+
14+
const formatSection = (title, links) => {
15+
const formattedLinks = links
16+
.map((link) => `- [${link.title}](${link.url})`)
17+
.join("\n");
18+
return `## ${title}\n\n${formattedLinks}`;
19+
};
20+
21+
(async () => {
22+
// SolidJS Core
23+
const coreLinks = [
24+
...generateLinkArray(entries.learn),
25+
...generateLinkArray(entries.reference),
26+
];
27+
28+
// SolidStart
29+
const startLinks = [
30+
...generateLinkArray(startEntries.learn),
31+
...generateLinkArray(startEntries.reference),
32+
];
33+
34+
// Solid Router
35+
const routerLinks = [
36+
...generateLinkArray(routerEntries.learn),
37+
...generateLinkArray(routerEntries.reference),
38+
];
39+
40+
// Solid Meta
41+
const metaLinks = [
42+
...generateLinkArray(metaEntries.learn),
43+
...generateLinkArray(metaEntries.reference),
44+
];
45+
46+
const output = `# SolidJS Documentation
47+
> 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.
48+
> - SolidJS: The core library for building reactive user interfaces.
49+
> - SolidStart: A full-stack framework for building web applications.
50+
> - Solid Router: A routing library for building web applications.
51+
> - Solid Meta: A library for managing the HTML head and meta tags.
52+
53+
${formatSection("SolidJS", coreLinks)}
54+
55+
${formatSection("SolidStart", startLinks)}
56+
57+
${formatSection("Solid Router", routerLinks)}
58+
59+
${formatSection("Solid Meta", metaLinks)}
60+
`;
61+
62+
fs.writeFileSync("public/llms.txt", output, { encoding: "utf-8" });
63+
})();

0 commit comments

Comments
 (0)