feat(docs): writing getting started and answering a challenge

This commit is contained in:
thomas
2023-09-19 13:11:36 +02:00
parent 412e105c5e
commit b445f81aaf
43 changed files with 478 additions and 367 deletions

View File

@@ -16,6 +16,11 @@ export default defineConfig({
linkedin: 'https://www.linkedin.com/in/thomas-laforge-2b05a945/',
twitter: 'https://twitter.com/laforge_toma',
},
customCss: [
'@fontsource/ibm-plex-serif/400.css',
'@fontsource/ibm-plex-serif/600.css',
'./src/styles/custom-css.css',
],
sidebar: [
{
label: 'Guides',
@@ -23,315 +28,316 @@ export default defineConfig({
},
{
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',
},
},
],
},
],
autogenerate: { directory: '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',
// },
// },
// ],
// },
// ],
},
],
}),