Skip to content

Commit

Permalink
Merge branch 'main' into 1106-patch2
Browse files Browse the repository at this point in the history
  • Loading branch information
yanthomasdev authored Nov 6, 2024
2 parents 7b6c269 + 5397cf5 commit 830610a
Show file tree
Hide file tree
Showing 15 changed files with 373 additions and 172 deletions.
4 changes: 2 additions & 2 deletions src/content/docs/fr/basics/astro-syntax.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,9 @@ Lors de l'utilisation de balises dynamiques :

### Fragments

Astro permet d'utiliser soit `<Fragment> </Fragment>`, soit l'abréviation `<> </>`.
Astro supporte la notation `<> </>` et fournit également un composant intégré `<Fragment />`. Ce composant peut être utile pour éviter les éléments englobants lors de l'ajout de [directives `set:*`](/fr/reference/directives-reference/#sethtml) pour injecter une chaîne HTML.

Les Fragments peuvent aussi être utiles pour éviter d'utiliser des éléments conteneurs lors de l'ajout de [directives `set:*`](/fr/reference/directives-reference/#sethtml), comme dans l'exemple suivant :
L'exemple suivant reproduit le texte d'un paragraphe à l'aide du composant `<Fragment />` :

```astro title="src/components/SetHtml.astro" "Fragment"
---
Expand Down
10 changes: 0 additions & 10 deletions src/content/docs/fr/community-resources/content.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,6 @@ Consultez les cours et tutoriels suivants pour en savoir plus sur Astro.

## Recettes et guides

import RecipesNav from '~/components/RecipesNav.astro';

Découvrez des exemples guidés d'ajout de fonctionnalités à votre projet Astro.

### Recettes officielles

Les recettes officielles d'Astro sont des guides pratiques courts et ciblés qui guident le lecteur dans la réalisation d'un exemple fonctionnel d'une tâche spécifique. Les recettes sont un excellent moyen d'ajouter de nouvelles fonctionnalités ou de nouveaux comportements à votre projet Astro en suivant des instructions étape par étape !

<RecipesNav />

:::tip[Ajoutez la vôtre !]
Avez-vous publié une recette ou un guide pour travailler avec Astro ? [Modifiez cette page](https://github.com/withastro/docs/edit/main/src/content/docs/en/community-resources/content.mdx) et ajoutez votre lien en dessous dans la section appropriée !
:::
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/fr/guides/integrations-guide/markdoc.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ export default defineMarkdocConfig({
});
```

<ReadMore>Pour en savoir plus sur la configuration des feuilles de style Prism, [voir notre guide sur la coloration syntaxique](/fr/guides/markdown-content/#configuration-de-prism).</ReadMore>
<ReadMore>Pour en savoir plus sur la configuration des feuilles de style Prism, [voir notre guide sur la coloration syntaxique](/fr/guides/syntax-highlighting/#ajouter-une-feuille-de-style-prism).</ReadMore>

## Nœuds / éléments Markdoc personnalisés

Expand Down
145 changes: 21 additions & 124 deletions src/content/docs/fr/guides/markdown-content.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -318,130 +318,6 @@ export default defineConfig({
});
```

## Coloration syntaxique

Astro est livré avec un support intégré pour [Shiki](https://shiki.style/) et [Prism](https://prismjs.com/). Cela permet de mettre en évidence la syntaxe pour :

- tous les blocs de code (\`\`\`) utilisés dans un fichier Markdown ou MDX.
- dans le [composant `<Code />` intégré](/fr/guides/syntax-highlighting/#code-) (alimenté par Shiki).
- dans le composant [`<Prism />`](/fr/guides/syntax-highlighting/#prism-) (alimenté par Prism).

Shiki est activé par défaut, préconfiguré avec le thème `github-dark`. La sortie compilée sera limitée à des `styles` intégrés au HTML sans classes CSS, feuilles de style ou JS côté client supplémentaires.

### Configuration de Shiki

Shiki est notre colorateur syntaxique par défaut. Vous pouvez configurer toutes les options via l'objet `shikiConfig` comme suit :

```js title="astro.config.mjs"
import { defineConfig } from 'astro/config';

export default defineConfig({
markdown: {
shikiConfig: {
// Choisir parmi les thèmes intégrés de Shiki (ou ajouter les vôtres)
// https://shiki.style/themes
theme: 'dracula',
// Alternativement, fournir plusieurs thèmes
// Voir la note ci-dessous pour l'utilisation de deux thèmes clair/foncé
themes: {
light: 'github-light',
dark: 'github-dark',
},
// Désactiver les couleurs par défaut
// https://shiki.style/guide/dual-themes#without-default-color
// (Ajouté dans la v4.12.0)
defaultColor: false,
// Ajouter des langages personnalisés
// Note : Shiki a d'innombrables langages intégrés, y compris .astro !
// https://shiki.style/languages
langs: [],
// Ajouter des alias personnalisés pour les langues
// Associer un alias à un identifiant de langue Shiki : https://shiki.style/languages#bundled-languages
// https://shiki.style/guide/load-lang#custom-language-aliases
langAlias: {
cjs: "javascript"
},
// Activer le retour à la ligne pour éviter le défilement horizontal
wrap: true,
// Ajouter des transformateurs personnalisés : https://shiki.style/guide/transformers
// Trouver des transformateurs communs : https://shiki.style/packages/transformers
transformers: [],
},
},
});
```

:::note[Personnalisation des thèmes Shiki]
Les blocs de code Astro sont stylisés en utilisant la classe `.astro-code`. Lorsque vous suivez la documentation de Shiki (par exemple pour [personnaliser le duo de thèmes clair/obscur ou plusieurs thèmes](https://shiki.style/guide/dual-themes#query-based-dark-mode)), assurez-vous de remplacer la classe `.shiki` dans les exemples par `.astro-code`.
:::

#### Ajouter votre propre thème

Au lieu d'utiliser l'un des thèmes prédéfinis de Shiki, vous pouvez importer un thème personnalisé à partir d'un fichier local.

```js title="astro.config.mjs"
import { defineConfig } from 'astro/config';
import customTheme from './my-shiki-theme.json';

export default defineConfig({
markdown: {
shikiConfig: { theme: customTheme },
},
});
```

Nous vous conseillons également de lire [la documentation de Shiki sur les thèmes](https://shiki.style/themes) pour en savoir plus sur les thèmes, les bascules entre mode clair et mode foncé, ou le style via les variables CSS.

### Colorateur syntaxique par défaut

Si vous souhaitez utiliser `'prism'` par défaut, ou désactiver complètement la coloration syntaxique, vous pouvez utiliser l'objet de configuration `markdown.syntaxHighlighting` :

```js title="astro.config.mjs" ins={6}
import { defineConfig } from 'astro/config';

export default defineConfig({
markdown: {
// Peut être 'shiki' (par défaut), 'prism' ou false pour désactiver la mise en évidence.
syntaxHighlight: 'prism',
},
});
```

#### Configuration de Prism

Si vous choisissez d'utiliser Prism, Astro appliquera les classes CSS de Prism à la place. Notez que **vous devez apporter votre propre feuille de style CSS** pour que la coloration syntaxique apparaisse !

<Steps>
1. Choisissez une feuille de style prédéfinie parmi les [Thèmes Prism](https://github.com/PrismJS/prism-themes) disponibles.

2. Ajoutez cette feuille de style dans [le répertoire `public/` de votre projet](/fr/basics/project-structure/#public).

3. Chargez-la dans la balise `<head>` de votre page dans un [composant de mise en page](/fr/basics/layouts/) via une balise `<link>`. (Voir l'[utilisation de base de Prism](https://prismjs.com/#basic-usage).)
</Steps>

Vous pouvez également consulter la [liste des langages supportés par Prism](https://prismjs.com/#supported-languages) pour en savoir plus sur ses options et son utilisation.

## Récupérer du Markdown à distance

**Astro n'inclut pas de support intégré pour le Markdown à distance en dehors des [collections de contenu expérimentales](/fr/reference/configuration-reference/#experimentalcontentlayer)!**.

Pour récupérer directement du Markdown distant et l'afficher en HTML, vous devrez installer et configurer votre propre analyseur Markdown à partir de NPM. Celui-ci **n'héritera pas** des paramètres Markdown intégrés d'Astro que vous avez configurés.

Assurez-vous de bien comprendre ces limitations avant d'implémenter ceci dans votre projet, et envisagez de récupérer votre Markdown distant en utilisant un chargeur de collections de contenu à la place.

```astro title="src/pages/remote-example.astro"
---
// Exemple : Récupérer du Markdown à partir d'une API distante
// et l'afficher en HTML, au moment de l'exécution.
En utilisant « marked » (https://github.com/markedjs/marked)
import { marked } from 'marked';
const response = await fetch('https://raw.githubusercontent.com/wiki/adam-p/markdown-here/Markdown-Cheatsheet.md');
const markdown = await response.text();
const content = marked.parse(markdown);
---
<article set:html={content} />
```

## Pages Markdown individuelles

:::tip
Expand Down Expand Up @@ -502,3 +378,24 @@ const {frontmatter} = Astro.props;
Vous pouvez également [styliser votre Markdown](/fr/guides/styling/#style-markdown) dans votre composant de mise en page.

<ReadMore>En savoir plus sur les [Mises en page Markdown](/fr/basics/layouts/#mises-en-page-markdown).</ReadMore>

## Récupérer du Markdown à distance

**Astro n'inclut pas de support intégré pour le Markdown à distance en dehors des [collections de contenu expérimentales](/fr/reference/configuration-reference/#experimentalcontentlayer) !**

Pour récupérer directement du Markdown distant et le rendre au format HTML, vous devrez installer et configurer votre propre interpréteur de Markdown à partir de NPM. Celui-ci **n'héritera pas** des paramètres Markdown intégrés d'Astro que vous avez configurés.

Assurez-vous de bien comprendre ces limitations avant d'implémenter ceci dans votre projet, et envisagez de récupérer votre Markdown distant en utilisant un chargeur de collections de contenu à la place.

```astro title="src/pages/remote-example.astro"
---
// Exemple : Récupération du contenu Markdown depuis une API distante
// et le rendre au format HTML, au moment de l'exécution.
// En utilisant "marked" (https://github.com/markedjs/marked)
import { marked } from 'marked';
const response = await fetch('https://raw.githubusercontent.com/wiki/adam-p/markdown-here/Markdown-Cheatsheet.md');
const markdown = await response.text();
const content = marked.parse(markdown);
---
<article set:html={content} />
```
Loading

0 comments on commit 830610a

Please sign in to comment.