docs: traduction complète de la documentation Slidev en français#142
docs: traduction complète de la documentation Slidev en français#142ArthurDanjou wants to merge 10 commits intomainfrom
Conversation
ArthurDanjou
commented
Apr 30, 2026
- Translation of all .md files (guide/, features/, custom/, builtin/, resources/)
- Translation of descriptions in the YAML frontmatter
- Translation of comments in code blocks
- Translation of .vitepress/ configuration files
- Preservation of all links, anchors, components and technical URLs
- Traduction de tous les fichiers .md (guide/, features/, custom/, builtin/, resources/) - Traduction des descriptions dans le frontmatter YAML - Traduction des commentaires dans les blocs de code - Traduction des fichiers de configuration .vitepress/ - Préservation de tous les liens, ancres, composants et URLs techniques
There was a problem hiding this comment.
Pull request overview
Cette PR vise à finaliser la traduction française de la documentation Slidev et à mettre à jour l’infrastructure docs (thème VitePress, CSS utilities, pages ressources/fonctionnalités) pour s’aligner sur la nouvelle documentation.
Changes:
- Migration du styling de WindiCSS vers UnoCSS (nouvelle config
uno.config.ts, intégration Uno dans le thème VitePress). - Refonte/ajout de pages docs (nouvelle section “Fonctionnalités”, nouvelles pages “thèmes/addons/ressources”, suppression d’anciennes pages legacy).
- Mise à jour de la config VitePress/Vite/Netlify et des composants du thème (Link cards/inline, galleries, layout).
Reviewed changes
Copilot reviewed 186 out of 194 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| windi.config.ts | Suppression de l’ancienne configuration WindiCSS. |
| vite.config.ts | Mise à jour des plugins (UnoCSS, llms.txt, group-icons) et auto-components. |
| uno.config.ts | Ajout de la configuration UnoCSS (presets, shortcuts, theme colors). |
| tsconfig.json | Ajustements TS (moduleResolution bundler, réorganisation options). |
| themes/write-a-theme.md | Suppression d’une ancienne page “thèmes” (legacy). |
| themes/use.md | Suppression d’une ancienne page “utiliser un thème” (legacy). |
| themes/gallery.md | Suppression de l’ancienne galerie de thèmes (legacy). |
| showcases.md | Suppression de l’ancienne page showcases (legacy). |
| resources/theme-gallery.md | Nouvelle page ressource pour galerie de thèmes basée sur composant. |
| resources/showcases.md | Nouvelle page ressource pour showcases. |
| resources/learning.md | Traduction/actualisation des ressources d’apprentissage. |
| resources/covers.md | Ajustements de la page couvertures (URL cover.sli.dev, texte FR). |
| resources/addon-gallery.md | Nouvelle page ressource pour galerie d’addons basée sur composant. |
| package.json | Refonte des métadonnées + MAJ dépendances (VitePress/Uno/Shiki/etc). |
| netlify.toml | Simplification commande build + MAJ redirect /new. |
| index.md | Passage à un layout home via composant <LandingPage />. |
| guide/write-theme.md | Nouvelle page “Écrire des thèmes” (nouveau contenu/structure). |
| guide/write-layout.md | Nouvelle page “Écrire des mises en page”. |
| guide/write-addon.md | Nouvelle page “Écrire des addons”. |
| guide/work-with-ai.md | Nouvelle page “Travailler avec l’IA”. |
| guide/theme-addon.md | Nouvelle page “Thèmes et addons”. |
| guide/layout.md | Nouvelle page “Mise en page des diapositives”. |
| guide/component.md | Nouvelle page “Composants dans les diapositives”. |
| features/zoom-slide.md | Nouvelle page fonctionnalité zoom. |
| features/twoslash.md | Nouvelle page fonctionnalité TwoSlash. |
| features/transform-component.md | Nouvelle page fonctionnalité Transform. |
| features/timer.md | Nouvelle page fonctionnalité timer. |
| features/slot-sugar.md | Nouvelle page fonctionnalité slot sugar. |
| features/slide-scope-style.md | Nouvelle page fonctionnalité styles scopés. |
| features/slide-hook.md | Nouvelle page fonctionnalité hooks de slides. |
| features/side-editor.md | Nouvelle page fonctionnalité éditeur intégré. |
| features/shiki-magic-move.md | Nouvelle page fonctionnalité Shiki Magic Move. |
| features/seo-meta.md | Nouvelle page fonctionnalité SEO meta. |
| features/rough-marker.md | Nouvelle page fonctionnalité Rough Notation. |
| features/remote-access.md | Nouvelle page fonctionnalité accès distant. |
| features/recording.md | Nouvelle page fonctionnalité enregistrement. |
| features/prettier-plugin.md | Nouvelle page fonctionnalité plugin Prettier. |
| features/plantuml.md | Nouvelle page fonctionnalité PlantUML. |
| features/og-image.md | Nouvelle page fonctionnalité OG image. |
| features/notes-auto-ruby.md | Nouvelle page fonctionnalité notes auto ruby. |
| features/monaco-write.md | Nouvelle page fonctionnalité monaco-write. |
| features/monaco-run.md | Nouvelle page fonctionnalité monaco-run. |
| features/monaco-editor.md | Nouvelle page fonctionnalité monaco editor. |
| features/mermaid.md | Nouvelle page fonctionnalité Mermaid. |
| features/line-highlighting.md | Nouvelle page fonctionnalité surlignage de lignes. |
| features/latex.md | Nouvelle page fonctionnalité LaTeX. |
| features/index.md | Ajout de la page index “Fonctionnalités” avec recherche/filtrage. |
| features/index.data.ts | Ajout du loader VitePress pour indexer les features. |
| features/importing-slides.md | Nouvelle page fonctionnalité import slides. |
| features/import-snippet.md | Nouvelle page fonctionnalité import snippet. |
| features/icons.md | Nouvelle page fonctionnalité icônes. |
| features/global-layers.md | Nouvelle page fonctionnalité couches globales. |
| features/frontmatter-merging.md | Nouvelle page fonctionnalité fusion frontmatter. |
| features/eject-theme.md | Nouvelle page fonctionnalité eject theme. |
| features/drawing.md | Nouvelle page fonctionnalité drawing. |
| features/draggable.md | Nouvelle page fonctionnalité draggable. |
| features/direction-variant.md | Nouvelle page fonctionnalité variants navigation. |
| features/comark.md | Nouvelle page fonctionnalité Comark. |
| features/code-block-max-height.md | Nouvelle page fonctionnalité max height code blocks. |
| features/code-block-line-numbers.md | Nouvelle page fonctionnalité line numbers. |
| features/click-marker.md | Nouvelle page fonctionnalité click markers notes. |
| features/canvas-size.md | Nouvelle page fonctionnalité canvas size. |
| features/bundle-remote-assets.md | Nouvelle page fonctionnalité remote assets. |
| features/build-with-pdf.md | Nouvelle page fonctionnalité build avec PDF. |
| features/block-frontmatter.md | Nouvelle page fonctionnalité frontmatter en bloc. |
| eslint.config.js | Ajout config ESLint (antfu). |
| custom/config-vue.md | Traduction/MAJ doc configuration Vue + twoslash. |
| custom/config-vite.md | Traduction/MAJ doc configuration Vite/plugins + warning. |
| custom/config-unocss.md | Ajout doc “Configurer UnoCSS”. |
| custom/config-transformers.md | Ajout/MAJ doc transformers + exemple twoslash. |
| custom/config-shortcuts.md | MAJ doc raccourcis + structure/sections. |
| custom/config-routes.md | Ajout doc routes. |
| custom/config-mermaid.md | MAJ doc Mermaid + ajout section theming. |
| custom/config-mermaid-renderer.md | Ajout doc renderer Mermaid tiers. |
| custom/config-katex.md | MAJ doc KaTeX. |
| custom/config-highlighter.md | Ajout doc Shiki (et note Prism supprimé). |
| custom/config-fonts.md | Ajout doc fonts. |
| custom/config-context-menu.md | Ajout doc context menu. |
| custom/config-code-runners.md | Ajout doc code runners (sécurité/sanitization mentionnée). |
| builtin/cli.md | Ajout doc CLI (FR). |
| addons/write-an-addon.md | Suppression de l’ancienne page addon (legacy). |
| addons/use.md | Suppression de l’ancienne page use addon (legacy). |
| TRANSLATIONS.md | Suppression du guide legacy de traduction. |
| README.md | Mise à jour du tableau des traductions (FR non barré). |
| .vitepress/utils.ts | Ajout util resolveLink pour LinkInline/LinkCard. |
| .vitepress/theme/utils.ts | Suppression d’utilitaires legacy du thème. |
| .vitepress/theme/support/sideBar.ts | Suppression support sidebar legacy. |
| .vitepress/theme/styles/sidebar-links.css | Suppression CSS legacy sidebar. |
| .vitepress/theme/styles/custom.css | Ajout styles utilitaires (kbd, icon-btn, etc). |
| .vitepress/theme/styles/custom-blocks.css | Suppression CSS legacy custom blocks. |
| .vitepress/theme/styles/code.css | Suppression CSS legacy Prism. |
| .vitepress/theme/index.ts | Bascule vers thème VitePress default + TwoSlash + UnoCSS. |
| .vitepress/theme/config.ts | Suppression types/config legacy du thème. |
| .vitepress/theme/composables/versions.ts | Suppression export versions legacy. |
| .vitepress/theme/composables/url.ts | Suppression composable URL legacy. |
| .vitepress/theme/composables/sideBar.ts | Suppression composable sidebar legacy. |
| .vitepress/theme/composables/repo.ts | Suppression composable repo legacy. |
| .vitepress/theme/composables/nextAndPrevLinks.ts | Suppression next/prev links legacy. |
| .vitepress/theme/composables/navLink.ts | Suppression nav link legacy. |
| .vitepress/theme/composables/nav.ts | Suppression locale nav legacy. |
| .vitepress/theme/composables/editLink.ts | Suppression edit link legacy. |
| .vitepress/theme/composables/dark.ts | Ajustement formatage export isDark. |
| .vitepress/theme/composables/activeSidebarLink.ts | Suppression active sidebar legacy. |
| .vitepress/theme/components/icons/Sun.vue | Suppression icône legacy. |
| .vitepress/theme/components/icons/README.md | Suppression README icons legacy. |
| .vitepress/theme/components/icons/OutboundLink.vue | Suppression icône outbound legacy. |
| .vitepress/theme/components/icons/Moon.vue | Suppression icône legacy. |
| .vitepress/theme/components/icons/ArrowRight.vue | Suppression icône legacy. |
| .vitepress/theme/components/icons/ArrowLeft.vue | Suppression icône legacy. |
| .vitepress/theme/components/demo/DemoEditor.vue | Suppression composant demo editor legacy. |
| .vitepress/theme/components/WorkingInProgress.vue | Suppression bannière WIP legacy. |
| .vitepress/theme/components/ToggleSideBarButton.vue | Suppression bouton sidebar legacy. |
| .vitepress/theme/components/ThemeInfo.vue | Ajustements UI/props (lazy img, ratio, liens, interval). |
| .vitepress/theme/components/ThemeGallery.vue | Fix typo official et ordre imports. |
| .vitepress/theme/components/TheTweet.vue | Ajustements sécurité/types twttr + icons UnoCSS. |
| .vitepress/theme/components/SlideContainer.vue | Ajout conteneur de slide avec scaling 16:9. |
| .vitepress/theme/components/SideBarLinks.vue | Suppression sidebar links legacy. |
| .vitepress/theme/components/SideBarLink.ts | Suppression sidebar link renderer legacy. |
| .vitepress/theme/components/SideBar.vue | Suppression sidebar legacy. |
| .vitepress/theme/components/ShowCases.vue | Ajustement style v-for spacing. |
| .vitepress/theme/components/ShowCaseInfo.vue | Refactor UI card showcases (icons UnoCSS, layout). |
| .vitepress/theme/components/SeeAlso.vue | Ajout composant “Voir aussi” basé sur LinkCard. |
| .vitepress/theme/components/PageFooter.vue | Suppression footer legacy. |
| .vitepress/theme/components/Page.vue | Suppression page wrapper legacy. |
| .vitepress/theme/components/Note.vue | Suppression note legacy. |
| .vitepress/theme/components/NextAndPrevLinks.vue | Suppression next/prev links legacy. |
| .vitepress/theme/components/NavLinks.vue | Suppression nav links legacy. |
| .vitepress/theme/components/NavLink.vue | Suppression nav link legacy. |
| .vitepress/theme/components/NavDropdownLinkItem.vue | Suppression dropdown legacy. |
| .vitepress/theme/components/NavDropdownLink.vue | Suppression dropdown legacy. |
| .vitepress/theme/components/NavBarTitle.vue | Suppression navbar title legacy. |
| .vitepress/theme/components/NavBar.vue | Suppression navbar legacy. |
| .vitepress/theme/components/LinkInline.vue | Ajout lien inline avec tooltip (resolveLink). |
| .vitepress/theme/components/LinkCard.vue | Ajout carte de lien (resolveLink). |
| .vitepress/theme/components/Layout.vue | Ajout layout qui étend le thème default + tags/since sidebar. |
| .vitepress/theme/components/LandingPage.vue | Ajout landing page FR (CTA + demo). |
| .vitepress/theme/components/FeaturesOverview.vue | Ajout grille d’affichage des features. |
| .vitepress/theme/components/FeaturesAnimationInner.vue | Ajout animation features (marquee-like). |
| .vitepress/theme/components/FeaturesAnimation.vue | Ajout wrapper animation features. |
| .vitepress/theme/components/FeatureTag.vue | Ajout composant tag cliquable (couleurs hash). |
| .vitepress/theme/components/Environment.vue | Extension support env both + traduction/UX. |
| .vitepress/theme/components/DemoSlide.vue | Ajustements ratio + styles shadow/dark. |
| .vitepress/theme/components/DemoEditor.vue | Ajout nouveau demo editor (remplace legacy). |
| .vitepress/theme/components/DemoContainer.vue | Suppression demo container legacy. |
| .vitepress/theme/components/DarkModeSwitch.vue | Suppression switch legacy. |
| .vitepress/theme/components/BooleanDisplay.vue | Suppression boolean display legacy. |
| .vitepress/theme/components/AddonInfo.vue | Ajout carte addon (nouvelle UI). |
| .vitepress/theme/components/AddonGallery.vue | Ajout galerie addons (community/official). |
| .vitepress/theme/NotFound.vue | Suppression 404 legacy. |
| .vitepress/theme/Layout.vue | Suppression layout legacy + bannière deprecation. |
| .vitepress/scripts/prepare.js | Suppression script de copie @slidev dans .vitepress. |
| .vitepress/pages.ts | Ajout liste structurée des pages (Guide/BuiltIn/Resources). |
| .vitepress/customizations.ts | Ajout liste des pages “custom”. |
| .npmrc | Suppression config pnpm legacy. |
| .gitignore | Ajustement ignore (cache VitePress). |
| .github/ISSUE_TEMPLATE/config.yml | Suppression template issue legacy. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "devDependencies": { | ||
| "@iconify/json": "^2.1.76", | ||
| "@slidev/client": "^0.34.3", | ||
| "@slidev/parser": "^0.34.3", | ||
| "@slidev/theme-default": "^0.21.2", | ||
| "@slidev/types": "^0.34.3", | ||
| "@types/fs-extra": "^9.0.13", | ||
| "@types/node": "^18.0.3", | ||
| "fs-extra": "^10.1.0", | ||
| "markdown-it": "^13.0.1", | ||
| "typescript": "^4.7.4", | ||
| "unplugin-icons": "^0.14.7", | ||
| "unplugin-vue-components": "^0.21.1", | ||
| "vite-plugin-inspect": "^0.5.1", | ||
| "vite-plugin-windicss": "^1.8.6", | ||
| "vitepress": "^0.22.4", | ||
| "windicss": "^3.5.6" | ||
| }, | ||
| "dependencies": { | ||
| "@antfu/utils": "^0.5.2", | ||
| "@vueuse/core": "^8.9.2", | ||
| "typeit": "^7.0.4" | ||
| }, | ||
| "pnpm": { | ||
| "overrides": { | ||
| "vue-demi": "0.9.1" | ||
| } | ||
| }, | ||
| "packageManager": "pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e" | ||
| } | ||
| "@antfu/utils": "^9.3.0", | ||
| "@iconify-json/carbon": "^1.2.18", | ||
| "@iconify-json/codicon": "^1.2.39", | ||
| "@iconify-json/mdi": "^1.2.3", | ||
| "@iconify-json/twemoji": "^1.2.5", | ||
| "@iconify-json/uil": "^1.2.3", | ||
| "@iconify-json/uim": "^1.2.3", | ||
| "@iconify-json/vscode-icons": "^1.2.39", | ||
| "@shikijs/vitepress-twoslash": "^3.21.0", | ||
| "@slidev/client": "latest", | ||
| "@slidev/parser": "latest", | ||
| "@slidev/theme-default": "latest", | ||
| "@slidev/types": "latest", | ||
| "@types/node": "^25.0.7", | ||
| "@unocss/reset": "^66.5.12", | ||
| "@vueuse/core": "^14.1.0", | ||
| "fast-glob": "^3.3.3", | ||
| "gray-matter": "^4.0.3", | ||
| "markdown-it": "^14.1.0", | ||
| "shiki": "^3.21.0", | ||
| "typeit": "8.1.0", | ||
| "typescript": "^5.9.3", | ||
| "unocss": "^66.5.12", | ||
| "unplugin-icons": "^22.5.0", | ||
| "unplugin-vue-components": "^30.0.0", | ||
| "vite-plugin-inspect": "^11.3.3", | ||
| "vitepress": "^2.0.0-alpha.15", | ||
| "vitepress-plugin-group-icons": "^1.6.5", | ||
| "vitepress-plugin-llms": "^1.10.0", | ||
| "vue": "^3.5.26" |
There was a problem hiding this comment.
Les composants importent floating-vue (Tooltip/Dropdown) mais la dépendance n’apparaît pas dans devDependencies. Ajouter floating-vue (et ses peer deps éventuels) pour éviter un échec d’installation/build.
| export function resolveLink(link: string): { | ||
| kind: 'external' | 'features' | 'guide' | ||
| url: string | ||
| title?: string | ||
| tags?: string[] | ||
| descripton?: string | ||
| } { |
There was a problem hiding this comment.
La propriété descripton semble être une faute de frappe (manque un i). Renommer en description dans le type de retour et les objets retournés pour éviter de propager une API interne mal orthographiée.
| <FeatureTag v-for="tag in resolved.tags" :key="tag" :tag :noclick="resolved.kind !== 'features'" text-xs /> | ||
| </div> | ||
| <div op75 text-sm> | ||
| {{ resolved.descripton }} | ||
| </div> |
There was a problem hiding this comment.
Ce composant consomme resolved.descripton (typo). Après renommage côté resolveLink, mettre à jour ici pour utiliser la propriété correcte.
| result[name] = { | ||
| name, | ||
| title, | ||
| link: `/features/${name}.html`, | ||
| description: md.frontmatter.description ?? '', |
There was a problem hiding this comment.
Avec cleanUrls: true dans VitePress, les liens internes devraient en général éviter le suffixe .html. Ici link: "/features/${name}.html" risque d’être incohérent avec le reste du routing (/guide/..., /features/...). Ajuster pour générer des URLs clean.
| [build] | ||
| publish = ".vitepress/dist" | ||
| command = "npx pnpm i --store=node_modules/.pnpm-store && npx pnpm run build" | ||
| publish = ".vitepress/dist" | ||
| command = "pnpm run build" |
There was a problem hiding this comment.
La commande Netlify utilise pnpm run build, mais le repo ne déclare pas de packageManager dans package.json. Selon l’environnement Netlify, pnpm peut ne pas être disponible. Envisager d’ajouter "packageManager": "pnpm@..." (ou d’utiliser corepack/une commande compatible).
| </div> | ||
| </div> | ||
| <div class="description"> | ||
| {{ resolved.descripton }} | ||
| </div> |
There was a problem hiding this comment.
Ce composant consomme resolved.descripton (typo). Après renommage côté resolveLink, mettre à jour ici pour utiliser la propriété correcte.
| <a :href="addon.link || addon.repo" class="block flex flex-col !decoration-none !text-unset !cursor-unset !hover:bg-gray-400/10 p-2 rounded-lg transition-all"> | ||
| <div class="flex flex-wrap"> | ||
| <a :href="addon.link || addon.repo" class="font-bold text-lg !text-$vp-c-text-1 !decoration-none"> | ||
| {{ addon.name }} | ||
| </a> |
There was a problem hiding this comment.
Balises <a> imbriquées (<a> à la ligne 10 qui contient un autre <a> à la ligne 12) : HTML invalide + problèmes d’accessibilité/clic. Remplacer le conteneur externe par un <div> cliquable, ou transformer le lien interne en <span>/<div> stylé.
| import { slidebars } from '.vitepress/config' | ||
| import UnoCSS from 'unocss/vite' |
There was a problem hiding this comment.
L’import '.vitepress/config' n’est pas un specifier relatif valide en ESM (il manque ./) et risque de casser le build (module introuvable). Utiliser le même chemin que l’import config juste en dessous (p.ex. ./.vitepress/config).
| import llmstxt from 'vitepress-plugin-llms' | ||
| import config from './.vitepress/config' | ||
|
|
||
| const IS_ROOT_ENGLISH_DOC = config.locales?.root.label.includes('English') || false |
There was a problem hiding this comment.
Accès potentiellement non sûr: config.locales?.root.label ne protège pas root/label. Utiliser un chaînage optionnel complet (p.ex. config.locales?.root?.label?.includes(...) ?? false) pour éviter un crash si la structure change.
| import { useUrlSearchParams } from '@vueuse/core' | ||
| import { computed, toRef, ref } from 'vue' | ||
| import { withBase } from 'vitepress' | ||
| import { data as features } from './index.data' | ||
|
|
||
| const query = useUrlSearchParams('hash-params', { removeFalsyValues: true }) | ||
| const search = toRef(query, 'search') as Ref<string | null> | ||
| const tags = toRef(query, 'tags') as Ref<string | null> |
There was a problem hiding this comment.
Ref est utilisé dans les assertions de type mais n’est pas importé depuis vue, ce qui casse le type-check TS. Importer type Ref (et supprimer ref de l’import si non utilisé ici).