From b445f81aaf4a6737c9cd8087ad270f2a8ef9545c Mon Sep 17 00:00:00 2001 From: thomas Date: Tue, 19 Sep 2023 13:11:36 +0200 Subject: [PATCH] feat(docs): writing getting started and answering a challenge --- docs/astro.config.mjs | 624 +++++++++--------- docs/package-lock.json | 6 + docs/package.json | 1 + docs/src/assets/header-github.png | Bin 0 -> 10391 bytes .../angular-performance/default-onpush.md | 2 +- .../challenges/angular/achor-scrolling.md | 2 +- .../content/docs/challenges/angular/bug-cd.md | 2 +- .../angular/context-outlet-typed.md | 2 +- .../content/docs/challenges/angular/crud.md | 2 +- .../docs/challenges/angular/decoupling.md | 2 +- .../src/content/docs/challenges/angular/di.md | 2 +- .../angular/directive-enhancement.md | 2 +- .../challenges/angular/interop-rxjs-signal.md | 2 +- .../angular/module-to-standalone.md | 2 +- .../docs/challenges/angular/permissions.md | 2 +- .../docs/challenges/angular/pipe-pure.md | 2 +- .../docs/challenges/angular/pipe-utility.md | 2 +- .../docs/challenges/angular/pipe-wrapFn.md | 2 +- .../docs/challenges/angular/projection.md | 4 +- .../docs/challenges/angular/router-input.md | 2 +- .../docs/challenges/angular/scroll-cd.md | 2 +- .../docs/challenges/angular/styling.md | 2 +- .../docs/challenges/ngrx/effect-selector.md | 2 +- .../docs/challenges/ngrx/power-effect.md | 2 +- .../docs/challenges/nx/forbid-enum-rule.md | 2 +- .../docs/challenges/nx/generator-comp.md | 2 +- .../docs/challenges/nx/generator-lib-ext.md | 2 +- .../challenges/rxjs/bug-chaining-operator.md | 2 +- .../docs/challenges/rxjs/race-condition.md | 2 +- .../docs/challenges/testing/checkbox.md | 2 +- .../challenges/testing/harness-creation.md | 2 +- .../docs/challenges/testing/harness.md | 2 +- .../docs/challenges/testing/input-output.md | 2 +- .../content/docs/challenges/testing/modal.md | 2 +- .../docs/challenges/testing/nested-comp.md | 2 +- .../challenges/testing/real-application.md | 2 +- .../content/docs/challenges/testing/router.md | 2 +- .../docs/challenges/typescript/overload-fn.md | 2 +- .../content/docs/guides/getting-started.md | 49 +- .../content/docs/guides/resolve-challenge.md | 37 ++ docs/src/content/docs/guides/submit-answer.md | 4 - docs/src/content/docs/index.mdx | 35 +- docs/src/styles/custom-css.css | 19 + 43 files changed, 478 insertions(+), 367 deletions(-) create mode 100644 docs/src/assets/header-github.png create mode 100644 docs/src/content/docs/guides/resolve-challenge.md delete mode 100644 docs/src/content/docs/guides/submit-answer.md create mode 100644 docs/src/styles/custom-css.css 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 0000000000000000000000000000000000000000..08da88dca9305a5d0bd4e6f3b2742e3edf960c9e GIT binary patch literal 10391 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 literal 0 HcmV?d00001 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. + +![Header of github workpspace](../../../assets/header-github.png) + +::: + +## 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; +}