Files
effect-view/packages/docs/docusaurus.config.ts
Thilawyn 4478598f15
Lint / lint (push) Successful in 57s
Publish / publish (push) Failing after 57s
Add Effect v4 support, Fast Refresh tooling, and revamped docs (#56)
## Summary

- Add `effect-fc-next`, a React 19 integration targeting Effect v4 beta.
- Introduce component lifecycles, scoped resources, queries, mutations, forms, lenses, views, and refreshable components.
- Add `@effect-view/vite-plugin` for Vite Fast Refresh support.
- Add an Effect v4 example application covering the new APIs.
- Expand test coverage for both the existing and next-generation packages.
- Replace the starter Docusaurus content with complete Effect View documentation while preserving the Effect v3 docs as a versioned snapshot.
- Update the landing page, navigation, package scripts, and build output.
- Extend CI with linting, tests, package builds, Docker builds, and container publishing.

## Validation

- `bun lint:tsc`
- `bun lint:biome`
- `bun test`
- `bun run build`
- `bun pack`
- Docker image build

---------

Co-authored-by: Julien Valverdé <julien.valverde@mailo.com>
Reviewed-on: Thilawyn/effect-fc#56
2026-07-26 02:32:59 +02:00

148 lines
3.8 KiB
TypeScript

import type * as Preset from "@docusaurus/preset-classic"
import type { Config } from "@docusaurus/types"
import { themes as prismThemes } from "prism-react-renderer"
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
const config: Config = {
title: "Effect View",
tagline: "Write React function components with Effect",
favicon: "img/favicon.ico",
// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
future: {
v4: true, // Improve compatibility with the upcoming Docusaurus v4
},
// Set the production url of your site here
url: "https://thiladev.github.io",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/effect-view/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "Thiladev", // Usually your GitHub org/user name.
projectName: "effect-view", // Usually your repo name.
onBrokenLinks: "throw",
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
},
presets: [
[
"classic",
{
docs: {
sidebarPath: "./sidebars.ts",
editUrl:
"https://github.com/Thiladev/effect-view/tree/main/packages/docs/",
lastVersion: "current",
versions: {
current: {
label: "effect-view v0",
},
"effect-fc-v0": {
label: "effect-fc v0",
path: "effect-fc/v0",
},
},
},
blog: false,
theme: {
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
],
themeConfig: {
// Replace with your project's social card
colorMode: {
respectPrefersColorScheme: true,
},
navbar: {
title: "Effect View",
logo: {
alt: "Effect View logo",
src: "img/logo.svg",
},
items: [
{
type: "docSidebar",
sidebarId: "docsSidebar",
position: "left",
label: "Docs",
},
{
type: "docsVersionDropdown",
position: "right",
},
{
href: "https://www.npmjs.com/package/effect-view",
label: "npm",
position: "right",
},
{
href: "https://github.com/Thiladev/effect-view",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "Getting Started",
to: "/docs/getting-started",
},
],
},
{
title: "Project",
items: [
{
label: "GitHub",
href: "https://github.com/Thiladev/effect-view",
},
{
label: "Example App",
href: "https://github.com/Thiladev/effect-view/tree/main/packages/example",
},
],
},
{
title: "Ecosystem",
items: [
{
label: "Effect",
href: "https://effect.website/",
},
{
label: "React",
href: "https://react.dev/",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Effect View contributors. Built with Docusaurus.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
}
export default config