diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 6e639a4..4dc14cb 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -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',
+ // },
+ // },
+ // ],
+ // },
+ // ],
},
],
}),
diff --git a/docs/package-lock.json b/docs/package-lock.json
index 8850707..92c1e25 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.1",
"dependencies": {
"@astrojs/starlight": "^0.10.0",
+ "@fontsource/ibm-plex-serif": "^5.0.8",
"astro": "^3.0.6",
"sharp": "^0.32.5"
}
@@ -814,6 +815,11 @@
"node": ">=12"
}
},
+ "node_modules/@fontsource/ibm-plex-serif": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-serif/-/ibm-plex-serif-5.0.8.tgz",
+ "integrity": "sha512-KUp1E9Wzf2Umhr2SbpcF9HwgFJmuxvKAARmpl7GDDkIG30R1PMFJWxfSfQ7oX/oVBtomGq5RUTaMMUeE0ngEgw=="
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
diff --git a/docs/package.json b/docs/package.json
index 4a0c7e9..069569d 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -11,6 +11,7 @@
},
"dependencies": {
"@astrojs/starlight": "^0.10.0",
+ "@fontsource/ibm-plex-serif": "^5.0.8",
"astro": "^3.0.6",
"sharp": "^0.32.5"
}
diff --git a/docs/src/assets/header-github.png b/docs/src/assets/header-github.png
new file mode 100644
index 0000000..08da88d
Binary files /dev/null and b/docs/src/assets/header-github.png differ
diff --git a/docs/src/content/docs/challenges/angular-performance/default-onpush.md b/docs/src/content/docs/challenges/angular-performance/default-onpush.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular-performance/default-onpush.md
+++ b/docs/src/content/docs/challenges/angular-performance/default-onpush.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/achor-scrolling.md b/docs/src/content/docs/challenges/angular/achor-scrolling.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/achor-scrolling.md
+++ b/docs/src/content/docs/challenges/angular/achor-scrolling.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/bug-cd.md b/docs/src/content/docs/challenges/angular/bug-cd.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/bug-cd.md
+++ b/docs/src/content/docs/challenges/angular/bug-cd.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/context-outlet-typed.md b/docs/src/content/docs/challenges/angular/context-outlet-typed.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/context-outlet-typed.md
+++ b/docs/src/content/docs/challenges/angular/context-outlet-typed.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/crud.md b/docs/src/content/docs/challenges/angular/crud.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/crud.md
+++ b/docs/src/content/docs/challenges/angular/crud.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/decoupling.md b/docs/src/content/docs/challenges/angular/decoupling.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/decoupling.md
+++ b/docs/src/content/docs/challenges/angular/decoupling.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/di.md b/docs/src/content/docs/challenges/angular/di.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/di.md
+++ b/docs/src/content/docs/challenges/angular/di.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/directive-enhancement.md b/docs/src/content/docs/challenges/angular/directive-enhancement.md
index 741cbaa..3859892 100644
--- a/docs/src/content/docs/challenges/angular/directive-enhancement.md
+++ b/docs/src/content/docs/challenges/angular/directive-enhancement.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: π Directive Enhancement
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/interop-rxjs-signal.md b/docs/src/content/docs/challenges/angular/interop-rxjs-signal.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/interop-rxjs-signal.md
+++ b/docs/src/content/docs/challenges/angular/interop-rxjs-signal.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/module-to-standalone.md b/docs/src/content/docs/challenges/angular/module-to-standalone.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/module-to-standalone.md
+++ b/docs/src/content/docs/challenges/angular/module-to-standalone.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/permissions.md b/docs/src/content/docs/challenges/angular/permissions.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/permissions.md
+++ b/docs/src/content/docs/challenges/angular/permissions.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/pipe-pure.md b/docs/src/content/docs/challenges/angular/pipe-pure.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/pipe-pure.md
+++ b/docs/src/content/docs/challenges/angular/pipe-pure.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/pipe-utility.md b/docs/src/content/docs/challenges/angular/pipe-utility.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/pipe-utility.md
+++ b/docs/src/content/docs/challenges/angular/pipe-utility.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/pipe-wrapFn.md b/docs/src/content/docs/challenges/angular/pipe-wrapFn.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/pipe-wrapFn.md
+++ b/docs/src/content/docs/challenges/angular/pipe-wrapFn.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/projection.md b/docs/src/content/docs/challenges/angular/projection.md
index d54accf..75b7ee0 100644
--- a/docs/src/content/docs/challenges/angular/projection.md
+++ b/docs/src/content/docs/challenges/angular/projection.md
@@ -1,9 +1,9 @@
---
-title: Projection
+title: π’ Projection
description: angular-challenge-1/projection
---
-#1 - Easy
+> Challenge #1
## Statement
diff --git a/docs/src/content/docs/challenges/angular/router-input.md b/docs/src/content/docs/challenges/angular/router-input.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/router-input.md
+++ b/docs/src/content/docs/challenges/angular/router-input.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/scroll-cd.md b/docs/src/content/docs/challenges/angular/scroll-cd.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/scroll-cd.md
+++ b/docs/src/content/docs/challenges/angular/scroll-cd.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/angular/styling.md b/docs/src/content/docs/challenges/angular/styling.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/angular/styling.md
+++ b/docs/src/content/docs/challenges/angular/styling.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/ngrx/effect-selector.md b/docs/src/content/docs/challenges/ngrx/effect-selector.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/ngrx/effect-selector.md
+++ b/docs/src/content/docs/challenges/ngrx/effect-selector.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/ngrx/power-effect.md b/docs/src/content/docs/challenges/ngrx/power-effect.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/ngrx/power-effect.md
+++ b/docs/src/content/docs/challenges/ngrx/power-effect.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/nx/forbid-enum-rule.md b/docs/src/content/docs/challenges/nx/forbid-enum-rule.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/nx/forbid-enum-rule.md
+++ b/docs/src/content/docs/challenges/nx/forbid-enum-rule.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/nx/generator-comp.md b/docs/src/content/docs/challenges/nx/generator-comp.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/nx/generator-comp.md
+++ b/docs/src/content/docs/challenges/nx/generator-comp.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/nx/generator-lib-ext.md b/docs/src/content/docs/challenges/nx/generator-lib-ext.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/nx/generator-lib-ext.md
+++ b/docs/src/content/docs/challenges/nx/generator-lib-ext.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/rxjs/bug-chaining-operator.md b/docs/src/content/docs/challenges/rxjs/bug-chaining-operator.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/rxjs/bug-chaining-operator.md
+++ b/docs/src/content/docs/challenges/rxjs/bug-chaining-operator.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/rxjs/race-condition.md b/docs/src/content/docs/challenges/rxjs/race-condition.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/rxjs/race-condition.md
+++ b/docs/src/content/docs/challenges/rxjs/race-condition.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/checkbox.md b/docs/src/content/docs/challenges/testing/checkbox.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/checkbox.md
+++ b/docs/src/content/docs/challenges/testing/checkbox.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/harness-creation.md b/docs/src/content/docs/challenges/testing/harness-creation.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/harness-creation.md
+++ b/docs/src/content/docs/challenges/testing/harness-creation.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/harness.md b/docs/src/content/docs/challenges/testing/harness.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/harness.md
+++ b/docs/src/content/docs/challenges/testing/harness.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/input-output.md b/docs/src/content/docs/challenges/testing/input-output.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/input-output.md
+++ b/docs/src/content/docs/challenges/testing/input-output.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/modal.md b/docs/src/content/docs/challenges/testing/modal.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/modal.md
+++ b/docs/src/content/docs/challenges/testing/modal.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/nested-comp.md b/docs/src/content/docs/challenges/testing/nested-comp.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/nested-comp.md
+++ b/docs/src/content/docs/challenges/testing/nested-comp.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/real-application.md b/docs/src/content/docs/challenges/testing/real-application.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/real-application.md
+++ b/docs/src/content/docs/challenges/testing/real-application.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/testing/router.md b/docs/src/content/docs/challenges/testing/router.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/testing/router.md
+++ b/docs/src/content/docs/challenges/testing/router.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/challenges/typescript/overload-fn.md b/docs/src/content/docs/challenges/typescript/overload-fn.md
index 741cbaa..b9fbd1f 100644
--- a/docs/src/content/docs/challenges/typescript/overload-fn.md
+++ b/docs/src/content/docs/challenges/typescript/overload-fn.md
@@ -1,4 +1,4 @@
---
-title: Submit your answer
+title: TODO in progress
description: Guide to submit an answer
---
diff --git a/docs/src/content/docs/guides/getting-started.md b/docs/src/content/docs/guides/getting-started.md
index ece3d10..d6245af 100644
--- a/docs/src/content/docs/guides/getting-started.md
+++ b/docs/src/content/docs/guides/getting-started.md
@@ -3,9 +3,50 @@ title: Getting Started
description: A guide on how to get started with Angular Challenges.
---
-Guides lead a user through a specific task they want to accomplish, often with a sequence of steps.
-Writing a good guide requires thinking about what your users are trying to do.
+To get started with **Angular Challenges**, follow the step:
-## Further reading
+## Create a Github account
-- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the DiΓ‘taxis framework
+If you want to submit an answer, you will need your own Github account. Moreover it's always good to have one and it's free.
+
+## Folk the github project
+
+Go to [Angular Challenges Repository](https://github.com/tomalaforge/angular-challenges) and click on the **Fork** button in the header. This will create a copy of this repository inside your own Github page.
+
+## Clone the repository on your own machine
+
+Find a directory on your local computer, and clone this repository. Open a terminal, go to the choosen directory and tape this:
+
+```bash
+git clone https://github.com/[YOUR_GITHUB_NAME]/angular-challenges.git
+```
+
+:::note
+Your can find the url to clone on the button labeled <> Code on your **OWN INSTANCE** of the Angular Challenge repository.
+
+
+
+:::
+
+## Open the project inside your favourite IDE
+
+Open your project inside any IDE of your choice.
+
+## Install all dependancies
+
+```bash
+npm install
+```
+
+## Choose a challenge
+
+Your project is now up and running. The only thing left to do is to choose a challenge π
+
+Each challenge is composed by:
+
+- **NAME**: indicating what the challenge is about
+- **NUMBER**: order of creation. The number doesn't have any particular meaning but helps to reference it inside Github Pull Request Section.
+- **BADGE**: helps to visualize the degree of difficulty. It's totally subjectif π
+ - π’ easy
+ - π medium
+ - π΄ difficult
diff --git a/docs/src/content/docs/guides/resolve-challenge.md b/docs/src/content/docs/guides/resolve-challenge.md
new file mode 100644
index 0000000..712de6e
--- /dev/null
+++ b/docs/src/content/docs/guides/resolve-challenge.md
@@ -0,0 +1,37 @@
+---
+title: Resolve a Challenge
+description: Guide to resolve a challenge
+---
+
+In this guide, you will learn how to resolve a challenge and submit an answer to the main Github repository.
+
+## Presentation
+
+This repository is powered by [Nx](https://nx.dev/getting-started/intro). **Nx** is a monorepository allowing to store multiple application inside the same workspace. That's said, each challenges is a separate application. If you open the `apps` directory, you will found multiple directory all related to one challenge. Each directory is a complete standalone `Nx` application. To run and start with one, open your terminal and run
+
+```bash
+npx nx serve
+```
+
+:::note
+If you are not sure of your APPLICATION_NAME, open the README.md file. The `serve` command is written inside with a link to the documentation challenge.
+:::
+
+:::note
+If `nx` is installed globally on your device, you can avoid using `npx`.
+
+If you want to install `nx` globally, run
+
+```bash
+npm i -g nx
+```
+
+:::
+
+## Create a git branch
+
+Before starting implementing your own solution to resolve a challenge, create a git branch to save your work.
+
+```bash
+git checkout -b
+```
diff --git a/docs/src/content/docs/guides/submit-answer.md b/docs/src/content/docs/guides/submit-answer.md
deleted file mode 100644
index 741cbaa..0000000
--- a/docs/src/content/docs/guides/submit-answer.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: Submit your answer
-description: Guide to submit an answer
----
diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx
index a62f128..f872fa5 100644
--- a/docs/src/content/docs/index.mdx
+++ b/docs/src/content/docs/index.mdx
@@ -3,7 +3,7 @@ title: Welcome to Angular Challenges
description: Get started by resolving those challenges and becoming a better Angular FrontEnd engineer.
template: splash
hero:
- tagline: Congrats on setting up a new Starlight project!
+ tagline: Start now and become an Angular Expert!
image:
file: ../../assets/angular-challenge.webp
actions:
@@ -11,26 +11,31 @@ hero:
link: /guides/getting-started/
icon: right-arrow
variant: primary
- - text: Read the Starlight docs
- link: https://starlight.astro.build
- icon: external
+ - text: Start your first challenge immediatly
+ link: /challenges/angular/projection/
+ icon: rocket
---
import { Card, CardGrid } from '@astrojs/starlight/components';
-## Next steps
-
-
-
- Edit `src/content/docs/index.mdx` to see this page change.
+
+
+ This repository gather more than 30 challenges about Angular, Nx, Ngrx,
+ Rxjs, Ngrx about real life issues or specific feature to level up your game.
-
- Add Markdown or MDX files to `src/content/docs` to create new pages.
+
+ One goal of this repository is to break the barrier to OSS. By answering
+ challenges, you will learn how to start contributing to any other Open
+ Source Project.
-
- Edit your `sidebar` and other config in `astro.config.mjs`.
+
+ It's always hard to learn and practise a new framework. This set of
+ challenges will give your real use cases to practise what you have been
+ learning and anybody can comment or help you out. Learning alone is great,
+ but learning alongside other is way better.
-
- Learn more in [the Starlight Docs](https://starlight.astro.build/).
+
+ You have an issue, an interesing bug, an idea. Don't waste any time and
+ create your own challenges.
diff --git a/docs/src/styles/custom-css.css b/docs/src/styles/custom-css.css
new file mode 100644
index 0000000..28a114a
--- /dev/null
+++ b/docs/src/styles/custom-css.css
@@ -0,0 +1,19 @@
+:root {
+ --sl-color-black: #1b1b1d;
+ --sl-color-gray-6: #242526;
+ --sl-color-accent-high: #f10023;
+ --sl-icon-color: #fff;
+ --sl-color-text-invert: #fff;
+ --primary-color: var(--sl-color-bg-nav) !important;
+ /* --sl-color-text-invert: #212121; */
+ --cardBgColor: #242526;
+ /* --sl-font: 'IBM Plex Serif', serif; */
+}
+
+.code-btn {
+ border: 2px solid rgba(240, 246, 252, 0.1);
+ border-radius: 6px;
+ padding: 2px 8px;
+ background-color: rgb(35, 134, 54);
+ color: white;
+}