Files
angular-challenges/docs/astro.config.mjs
2023-09-18 22:40:09 +02:00

340 lines
10 KiB
JavaScript

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',
},
},
],
},
],
},
],
}),
],
});