{"id":16216728,"url":"https://github.com/skyost/mescoursdemaths","last_synced_at":"2025-06-13T06:09:38.807Z","repository":{"id":37413779,"uuid":"496801751","full_name":"Skyost/MesCoursDeMaths","owner":"Skyost","description":"Petit site web où je mets tous mes cours à disposition ainsi que les ressources qui y sont liées.","archived":false,"fork":false,"pushed_at":"2024-02-09T20:42:52.000Z","size":60786,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-02T04:09:22.734Z","etag":null,"topics":["french","latex","math","nuxt","nuxtjs","vercel","vue","vuejs","web"],"latest_commit_sha":null,"homepage":"http://mes-cours-de-maths.fr/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skyost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Skyost","patreon":null,"open_collective":null,"ko_fi":"Skyost","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["paypal.me/Skyost"]}},"created_at":"2022-05-26T23:31:07.000Z","updated_at":"2024-05-29T23:26:45.608Z","dependencies_parsed_at":"2023-10-05T03:59:24.140Z","dependency_job_id":"d451abe7-c813-4700-a12a-c7f0c6c3ee16","html_url":"https://github.com/Skyost/MesCoursDeMaths","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skyost%2FMesCoursDeMaths","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skyost%2FMesCoursDeMaths/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skyost%2FMesCoursDeMaths/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skyost%2FMesCoursDeMaths/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skyost","download_url":"https://codeload.github.com/Skyost/MesCoursDeMaths/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247744282,"owners_count":20988781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["french","latex","math","nuxt","nuxtjs","vercel","vue","vuejs","web"],"created_at":"2024-10-10T11:21:56.964Z","updated_at":"2025-04-07T22:44:23.492Z","avatar_url":"https://github.com/Skyost.png","language":"Vue","funding_links":["https://github.com/sponsors/Skyost","https://ko-fi.com/Skyost","paypal.me/Skyost"],"categories":[],"sub_categories":[],"readme":"# Mes cours de maths\n\nBienvenue sur la page Github du site web [Mes cours de maths](https://mes-cours-de-maths.fr) !\nIl s'agit d'un petit site web où je dépose tous mes cours de mathématiques ainsi que les ressources\nqui y sont liées.\n\nCe site est totalement open-source : vous pouvez tout à fait en exécuter une instance personnelle.\nPour cela, suivez le guide ci-dessous.\n\n## Installation\n\nIl est totalement possible pour vous de cloner le projet pour l'utiliser vous aussi !\nPour cela, suivez le guide ci-dessous. Attention, des connaissances en NodeJS (notamment) sont requises.\n\n### Création d'applications et de jetons\n\nSur Github, il va falloir créer une application OAUTH. Pour cela, rendez-vous sur\n[ce lien](https://github.com/settings/applications/new).\n\n* Dans `Application name`, mettez ce que vous souhaitez.\n* Dans `Homepage URL`, mettez l'URL de votre site web.\n* Dans `Authorization callback URL`, mettez l'URL de votre [API hébergée sur Vercel](#création-dun-projet-vercel).\n  Se référer à [https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps#redirect-urls](ce lien)\n  pour le dernier champ.\n\nPar la suite, notez votre `Client ID` quelque-part et générez un nouveau `Client secret`. Copiez-le aussi\net ne le perdez surtout pas. Nous en aurons également besoin plus tard.\n\n### Cloner le projet\n\nIl vous suffit de [cliquer ici](https://github.com/Skyost/MesCoursDeMaths/fork) pour cloner le projet.\nCela créera un nouveau dépôt sur Github où vous pourrez [configurer](#configuration) votre nouveau site web.\n\nDans les paramètres de votre dépôt Github, il va falloir créer deux secrets :\n* `CLIENT_SECRET`, qui doit contenir votre `Client secret`.\n* `PERSONAL_ACCESS_TOKEN`, qui contient votre `Personal access token` créé précédemment.\n  Cette étape est requise uniquement si vous utilisez un dépôt séparé pour héberger vos données.\n\n### Configuration\n\nPour configurer le site web (nom, dépôt Github, répertoire des cours, etc.), il vous faut modifier le\nfichier `site/authentication.ts`. Indiquez votre `Client ID` dans le champ `clientId`\n(j'ai personnellement choisi de le laisser dans la variable d'environnement `CLIENT_ID`, mais c'est à vous de voir).\n\nPour modifier le contenu de la page d'accueil, il faut éditer le fichier `pages/index.vue`.\nUne façon plus rapide (et intuitive...) de modifier les pages sera sûrement ajoutée à l'avenir.\n\nVous pouvez également modifier la plupart des paramètres dans le fichier `site/content.js`. Ceci vous permettra\nde personnaliser les fichiers à compiler en PDF, à transformer en markdown, où se situent les images, etc.\nLe fichier `site/levels.ts` contient les différents niveaux disponibles. Chacun d'eux doit posséder un sous-dossier\ndans votre répertoire LaTeX.\n\n### Création d'un dépôt de données\n\nCette étape est optionnelle : vous pouvez parfaitement vous servir du même dépôt que le site web\npour y stocker vos données LaTeX. Pour cela, dans `site/meta.js`, laissez `dataRepository` à la même valeur que `repository`.\n\nSi vous souhaitez utiliser un dépôt séparé (par exemple, afin de garder les sources LaTeX privées ; ou tout\nsimplement pour séparer le contenu de sa présentation), créez-en un sur Github et indiquez sa valeur dans\n`dataRepository`. Celui-ci doit contenir le `lessonsDirectory`.\n\nSi votre dépôt est privé, nous allons devoir créer un `Personal access token`. Pour cela rendez-vous sur\n[ce lien](https://github.com/settings/tokens/new). Nommez-le comme vous souhaitez et cochez la case `repo`.\nNotez quelque-part le jeton que vous obtenez.\n\n### Structure des fichiers LaTeX\n\nVos fichiers LaTeX peuvent être structurés comme vous le souhaitez, du moment qu'ils sont interprétables\npar [KaTeX](https://katex.org). Ceux-ci doivent tout de même définir deux environnements :\n\n* `doctitle` qui doit correspondre au titre de votre document.\n* `docnumber` qui peut correspondre à un numéro de chapitre par exemple.\n\nAfin d'être compilables par [Pandoc](https://pandoc.org), vous pouvez créer un fichier `pandoc.tex`,\nà placer dans le `lessonsDirectory`. Voici par exemple le contenu du mien :\n\n```tex\n% Ceci me permet de remplacer ma commande \\cours dans mes fichiers LaTeX.\n\\providecommand{\\cours}[3]{%\n\t\\begin{doctitle}%\n\t\t#2%\n\t\\end{doctitle}%\n}\n\n% Et ceci me permet de remplacer ma commande \\chapitrenumero dans mes fichiers LaTeX.\n\\providecommand{\\chapitrenumero}[1]{%\n\t\\begin{docnumber}%\n\t\t#1%\n\t\\end{docnumber}%\n}\n```\n\n### Création d'un projet Vercel\n\nAfin que l'accès enseignant soit fonctionnel, nous avons encore besoin de créer un projet sur [Vercel](https://vercel.com/).\nInscrivez-vous si ce n'est pas déjà fait et créez un nouveau projet à partir du dépôt Github cloné.\n\nUne fois créé, nous allons devoir ajouter deux variables d'environnements (dans les paramètres du projet Vercel) :\n\n* `GITHUB_CLIENT_SECRET`, qui contient votre `Client secret`.\n* `ENCRYPTION_KEY`, qui contient 32 caractères générés de manière aléatoire (majuscules, minuscules et chiffres uniquement).\n\nDans les paramètres généraux, inscrivez `npx nuxi dev ../` en commande de développement et `vercel/` en répertoire racine.\nLe domaine spécifié dans _Domains_ doit correspondre avec l'`apiUrl` du fichier `site/meta.js`.\n\nEnfin, [pour éviter des builds inutiles](https://www.codejam.info/2021/09/vercel-without-preview-deployments.html),\nécrivez par exemple \n\n```shell\nif [[ \"$VERCEL_GIT_COMMIT_REF\" == \"master\" ]] ; then echo \"✅ Ref is 'master'. The build can proceed !\"; exit 1; else echo \"🛑 Ref is not 'master'. Cancelling build...\"; exit 0; fi\n```\n\ndans la section _Ignored Build Step_ de l'onglet _Git_.\n\nN'oubliez pas de modifier également le fichier `vercel/index.html`.\n\n## Tests locaux\n\nPour tester localement votre site web, une commande suffit : `npm run vercel`. Il vous faut également\ncréer un fichier `.env` contenant toutes variables d'environnement listées [précédemment](#création-dun-projet-vercel).\n\nSi vous souhaitez tester le site en local avec toutes les fonctionnalités, il faudra également adapter les variables\nd'environnement ajoutées sur Vercel (en spécifiant bien lesquelles doivent être utilisées en production, et lesquelles\ndoivent l'être en développement).\n\nIl faut également ajouter une variable d'environnement de développement intitulée `DEBUG_MODE` et contenant la valeur `true`.\n\nVoici un aperçu des mes variables d'environnement :\n\n![Variables d'environnement](https://user-images.githubusercontent.com/3882599/172180030-ad6c6f70-094b-49a8-88fd-69328c6fdb60.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyost%2Fmescoursdemaths","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyost%2Fmescoursdemaths","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyost%2Fmescoursdemaths/lists"}