import starlight from '@astrojs/starlight'; import { defineConfig } from 'astro/config'; // https://astro.build/config export default defineConfig({ integrations: [ starlight({ title: 'Angular Challenges', logo: { src: './public/angular-challenge.webp', alt: 'angular challenges logo', }, favicon: './public/angular-challenge.ico', social: { github: 'https://github.com/withastro/starlight', linkedin: 'https://www.linkedin.com/in/thomas-laforge-2b05a945/', twitter: 'https://twitter.com/laforge_toma', }, sidebar: [ { label: 'Guides', autogenerate: { directory: 'guides' }, }, { label: 'Challenges', items: [ { label: 'Angular', items: [ { label: 'Projection', link: '/challenges/angular/projection', badge: { text: 'E', variant: 'success', }, }, { label: 'Directive enhancement', link: '/challenges/angular/directive-enhancement', badge: { text: 'M', variant: 'caution', }, }, { label: 'ContextOutlet Typing', link: '/challenges/angular/context-outlet-typing', badge: { text: 'H', variant: 'danger', }, }, { label: 'CRUD', link: '/challenges/angular/crud', badge: { text: 'E', variant: 'success', }, }, { label: 'Permissions', link: '/challenges/angular/permissions', badge: { text: 'M', variant: 'caution', }, }, { label: 'Simple Pure Pipe', link: '/challenges/angular/pipe-pure', badge: { text: 'E', variant: 'success', }, }, { label: 'WrapFn Pipe', link: '/challenges/angular/pipe-wrapFn', badge: { text: 'M', variant: 'caution', }, }, { label: 'Utility Pipe', link: '/challenges/angular/pipe-utility', badge: { text: 'H', variant: 'danger', }, }, { label: 'Change Dectection - scroll', link: '/challenges/angular/scroll-cd', badge: { text: 'M', variant: 'caution', }, }, { label: 'Styling', link: '/challenges/angular/styling', badge: { text: 'M', variant: 'caution', }, }, { label: 'Dependancy Injection', link: '/challenges/angular/di', badge: { text: 'H', variant: 'danger', }, }, { label: 'Anchor Scrolling', link: '/challenges/angular/anchor-scrolling', badge: { text: 'E', variant: 'success', }, }, { label: 'Router Input', link: '/challenges/angular/router-input', badge: { text: 'E', variant: 'success', }, }, { label: 'Interop Rxjs Signal', link: '/challenges/angular/interop-rxjs-signal', badge: { text: 'H', variant: 'danger', }, }, { label: 'Module to Standalone', link: '/challenges/angular/modaule-to-standalone', badge: { text: 'E', variant: 'success', }, }, { label: 'Bug - Change Detection', link: '/challenges/angular/bug-cd', badge: { text: 'M', variant: 'caution', }, }, { label: "Component's Decoupling", link: '/challenges/angular/decoupling', badge: { text: 'M', variant: 'caution', }, }, ], }, { label: 'Angular - Performance', items: [ { label: 'Default vs OnPush', link: '/challenges/angular-performance/default-onpush', badge: { text: 'E', variant: 'success', }, }, ], }, { label: 'Testing', items: [ { label: 'Router', link: '/challenges/testing/router', badge: { text: 'M', variant: 'caution', }, }, { label: 'Nested Component', link: '/challenges/testing/nested-comp', badge: { text: 'M', variant: 'caution', }, }, { label: 'Input Output', link: '/challenges/testing/input-output', badge: { text: 'M', variant: 'caution', }, }, { label: 'Modal', link: '/challenges/testing/modal', badge: { text: 'M', variant: 'caution', }, }, { label: 'harness', link: '/challenges/testing/harness', badge: { text: 'E', variant: 'success', }, }, { label: 'Harness Creation', link: '/challenges/testing/harness-creation', badge: { text: 'M', variant: 'caution', }, }, { label: 'Checkbox', link: '/challenges/testing/checkbox', badge: { text: 'E', variant: 'success', }, }, { label: 'Reallife Application', link: '/challenges/testing/real-application', badge: { text: 'H', variant: 'danger', }, }, ], }, { label: 'RxJs', items: [ { label: 'Bug - Chaining Operators', link: '/challenges/rxjs/bug-chaining-operator', badge: { text: 'M', variant: 'caution', }, }, { label: 'Race Condition', link: '/challenges/rxjs/race-condition', badge: { text: 'E', variant: 'success', }, }, ], }, { label: 'Nx', items: [ { label: 'Extending Library Generator', link: '/challenges/nx/generator-lib-ext', badge: { text: 'H', variant: 'danger', }, }, { label: 'Component Generator', link: '/challenges/nx/generator-comp', badge: { text: 'M', variant: 'caution', }, }, { label: 'Custom Eslint Rule', link: '/challenges/nx/forbid-enum-rule', badge: { text: 'E', variant: 'success', }, }, ], }, { label: 'NgRx', items: [ { label: 'Effect vs Selector', link: '/challenges/ngrx/effect-selector', badge: { text: 'M', variant: 'caution', }, }, { label: 'Power of Effects', link: '/challenges/ngrx/power-effect', badge: { text: 'H', variant: 'danger', }, }, ], }, { label: 'Typescript', items: [ { label: 'Function Overload', link: '/challenges/typescript/overload-fn', badge: { text: 'M', variant: 'caution', }, }, ], }, ], }, ], }), ], });