From faf2d283dd5c1e2df8760d7ece67b6436b1cc229 Mon Sep 17 00:00:00 2001 From: GauthierWebDev Date: Tue, 13 May 2025 15:56:57 +0200 Subject: [PATCH 1/8] docs(navigation): remove introductory documentation section --- app/libs/navigation.ts | 10 +-- app/pages/docs/frontend/+Page.mdx | 8 --- app/pages/docs/javascript/+Page.mdx | 71 +++++++++++++++++++++ app/pages/docs/javascript/syntaxe/+Page.mdx | 7 ++ 4 files changed, 83 insertions(+), 13 deletions(-) delete mode 100644 app/pages/docs/frontend/+Page.mdx create mode 100644 app/pages/docs/javascript/+Page.mdx create mode 100644 app/pages/docs/javascript/syntaxe/+Page.mdx diff --git a/app/libs/navigation.ts b/app/libs/navigation.ts index 8e160de..a45624c 100644 --- a/app/libs/navigation.ts +++ b/app/libs/navigation.ts @@ -104,11 +104,6 @@ export const navigation: NavigationSection[] = [ type: navigationsTypes.DOCUMENTATIONS, position: "auto", links: [ - { - title: "Introduction", - href: "/docs/frontend", - subitems: [], - }, { title: "HTML", href: "/docs/html", @@ -120,6 +115,11 @@ export const navigation: NavigationSection[] = [ { title: "Formulaires", href: "/docs/html/formulaires" }, ], }, + { + title: "JavaScript", + href: "/docs/javascript", + subitems: [{ title: "Introduction", href: "/docs/javascript" }], + }, { title: "React", href: "/docs/react", diff --git a/app/pages/docs/frontend/+Page.mdx b/app/pages/docs/frontend/+Page.mdx deleted file mode 100644 index db87694..0000000 --- a/app/pages/docs/frontend/+Page.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Introduction au Frontend : Langages et technologies" -description: -tags: [] ---- - -import Callout from "@/components/Callout"; - diff --git a/app/pages/docs/javascript/+Page.mdx b/app/pages/docs/javascript/+Page.mdx new file mode 100644 index 0000000..1672159 --- /dev/null +++ b/app/pages/docs/javascript/+Page.mdx @@ -0,0 +1,71 @@ +--- +title: Introduction à JavaScript +description: Parlons un peu de JavaScript, le langage de programmation incontournable pour le développement web. +tags: [] +--- + +import Callout from "@/components/Callout"; + +**JavaScript** est un langage de programmation populaire qui permet d'ajouter des fonctionnalités interactives aux pages web. +Contrairement au HTML qui définit la structure et le contenu d'une page, JavaScript peut manipuler ces éléments dynamiquement et créer une expérience utilisateur plus riche. + + + Dans le cadre de cette série d'articles, nous allons principalement nous concentrer sur l'environnement d'exécution du navigateur. + + Cependant, il est important de noter que JavaScript peut également être exécuté côté serveur grâce à des environnements comme **Node.js**. + + +## L'histoire de JavaScript + +JavaScript a été créé en 1995 par **Brendan Eich** alors qu'il travaillait chez Netscape _(un ancien navigateur web)_. +Il a été conçu à l'origine pour ajouter des fonctionnalités interactives aux pages web, mais il a rapidement évolué pour devenir un langage de programmation complet. + +Aujourd'hui, JavaScript est utilisé dans presque tous les sites web modernes et est devenu un standard pour le développement web. + +## Pourquoi JavaScript est-il si populaire ? + +JavaScript est devenu l'un des langages de programmation les plus populaires pour plusieurs raisons : + +- **Interactivité** : JavaScript permet d'ajouter des fonctionnalités interactives aux pages web, comme des animations, des formulaires dynamiques, etc. +- **Compatibilité** : JavaScript est pris en charge par tous les navigateurs modernes, ce qui le rend accessible à un large public. +- **Écosystème riche** : Il existe de nombreuses bibliothèques et frameworks/bibliothèques JavaScript, comme **React**, **Vue.js** et **Angular**, qui facilitent le développement d'applications web complexes. +- **Communauté active** : JavaScript a une grande communauté de développeurs qui partagent des ressources, des tutoriels et des outils pour aider les autres à apprendre et à progresser. + +Cependant, il est important de noter que JavaScript a également ses inconvénients : + +- **Typage faible** : JavaScript est un langage à typage faible, ce qui signifie que le type d'une variable n'est pas défini explicitement et peut changer au cours de l'exécution du programme. +- **Gestion asynchrone** : La nature asynchrone de JavaScript, peut rendre le code plus ddificile à comprendre et à maintenir. +- **Support pour la POO** : Bien que JavaScript prenne en charge la programmation orientée objet, il ne le fait pas de la même manière que d'autres langages comme Java ou C#. + Il utilise plutôt un modèle basé sur les prototypes, ce qui peut être déroutant pour les développeurs habitués à d'autres langages. +- **Performances** : Bien que JavaScript soit généralement rapide, il peut être moins performant que d'autres langages compilés comme C++ ou Rust pour certaines tâches intensives en calcul. + +Mais alors, est-ce que JavaScript est un bon choix pour le développement web ? +Voyons ça ensemble ! + +## Pourquoi utiliser JavaScript ? + +Déjà, il faut prendre en compte que JavaScript est **l'unique** langage de programmation qui peut être exécuté dans le navigateur. +Cela signifie que si vous voulez créer des applications web interactives, JavaScript est le langage à utiliser. + + + Il existe des langages compilés qui peuvent être utilisés pour créer des applications web, comme **TypeScript** ou **WebAssembly**. + Cependant, ces langages sont généralement transpilés en JavaScript avant d'être exécutés dans le navigateur. + + Ça signifie que même si vous utilisez un autre langage, il y a de fortes chances qu'il soit finalement converti en JavaScript pour être exécuté dans le navigateur. + + +À partir de là, le fait d'apprendre JavaScript si l'on veut devenir développeur web est un choix évident. + +## Ce qui t'attend dans cette série d'articles + +Comme dit précédemment, cette série d'articles va se concentrer sur l'environnement d'exécution du navigateur. +On va donc aborder les sujets suivants : + +- La syntaxe de base de JavaScript +- Les types de données +- La compréhension et manipulation du DOM +- Les événements +- Les fonctions et la portée +- Le principe d'asynchrone + +Chaque article de cette série sera conçu pour être facilement compréhensible, avec des exemples pratiques et une explication des concepts. \ No newline at end of file diff --git a/app/pages/docs/javascript/syntaxe/+Page.mdx b/app/pages/docs/javascript/syntaxe/+Page.mdx new file mode 100644 index 0000000..cde28fc --- /dev/null +++ b/app/pages/docs/javascript/syntaxe/+Page.mdx @@ -0,0 +1,7 @@ +--- +title: La syntaxe de base de JavaScript +description: Découvrons ensemble la syntaxe de base de JavaScript et comment il fonctionne dans le navigateur. +tags: [] +--- + +import Callout from "@/components/Callout"; -- 2.45.2 From 0982e573dba264c7081be5ce60373eb2fd806438 Mon Sep 17 00:00:00 2001 From: GauthierWebDev Date: Tue, 13 May 2025 18:18:22 +0200 Subject: [PATCH 2/8] style(Highlight): improve code readability --- app/components/Highlight.tsx | 9 +- app/components/Snippet.tsx | 2 +- app/libs/navigation.ts | 6 +- .../docs/javascript/instructions/+Page.mdx | 180 +++++++++++++++++ .../docs/javascript/instructions/tabs.tsx | 105 ++++++++++ app/pages/docs/javascript/syntaxe/+Page.mdx | 191 ++++++++++++++++++ app/pages/docs/javascript/syntaxe/tabs.tsx | 95 +++++++++ 7 files changed, 583 insertions(+), 5 deletions(-) create mode 100644 app/pages/docs/javascript/instructions/+Page.mdx create mode 100644 app/pages/docs/javascript/instructions/tabs.tsx create mode 100644 app/pages/docs/javascript/syntaxe/tabs.tsx diff --git a/app/components/Highlight.tsx b/app/components/Highlight.tsx index dc6d2a4..59c2485 100644 --- a/app/components/Highlight.tsx +++ b/app/components/Highlight.tsx @@ -34,10 +34,10 @@ export const Highlight: ParentComponent = (_props) => { const highlightedCode = createMemo(() => { const childrenString = props.children?.toString(); - if (!childrenString) return; + if (!childrenString) return ""; const grammar = Prismjs.languages[props.language]; - if (!grammar) return; + if (!grammar) return ""; const result = Prismjs.highlight(childrenString, grammar, props.language); @@ -102,7 +102,10 @@ export const Highlight: ParentComponent = (_props) => { )}