---
title: "Pambda.fr: Page web créée à partir d'un fichier markdown"
author: 'Joseph Lucas'
date: '2022-15-03'
description: "Page web créée à partir d'un fichier markdown. Cette page montre comment du markdown peut être traduit en html via un générateur de site statique basé sur pandoc."
keywords: 'Pambda, Pambda.fr, pandoc, markdown, html, website'
include-before: |
  <h1>Exemple de mise en forme d'un fichier markdown</h1>
  <blockquote><p>Cette page web a été calculée à partir d'un fichier markdown. Le <a href="https://input.pambda.fr/Documentation/markdown-formatting.md">fichier source</a> montre la syntaxe basique du format markdown et certaines variations permises par pandoc.</p></blockquote>
toc: true
toc-depth: 2
toc-title: 'Table des Matières (optionnelle)'
header-includes: |
  <script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_SVG"></script>
  <meta property="og:title" content="Pambda.fr: Page web créée à partir d'un fichier markdown" />
  <meta property="og:type" content="website" />
  <meta property="og:description" content="Page web créée à partir d'un fichier markdown. Cette page montre comment du markdown peut être traduit en html via un générateur de site statique basé sur pandoc." />
  <meta property="og:url" content="https://pambda.fr/markdown-formatting.html" />
  <meta property="og:image" content="https://pambda.fr/index/logo-social-networks.png" />
  <meta property="og:image:type" content="image/png" />
  <meta property="og:image:width" content="1200" />
  <meta property="og:image:height" content="630" />
  <meta property="og:image:alt" content="Pambda" />
  <meta property="og:locale" content="en_US" />
  <meta name="twitter:card" content="summary\_large\_image">
...


## Mise en forme des caractères

Vous pouvez utiliser de nombreuses mises en formes de caractères : 

- *italique*
- **gras**
- [souligné]{.underline}
- expo^sant^ 
- ind~ice~
- mot ~~barré~~

Vous pouvez insérer des smileys :smile:

### Liens

#### Liens vers d'autres pages de votre site

Vous pouvez insérer des liens vers d'autres pages de votre site en utilisant des chemins relatifs, à partir du dossier courant de ce fichier-ci, jusqu'au fichier cible : p. ex [un lien vers le manuel](./manual.md) ou [un lien vers la page "À propos"](../about.md).
Ainsi, dans vos fichiers markdown, les liens sont également valides et ils vous permettent de vous déplacer entre vos fichiers grâce à votre éditeur de texte.

#### Liens vers l'extérieur

Vous pouvez insérer des liens vers des pages internet externes, p. ex. [www.google.com](https://www.google.com/).
Pour cela, veillez à bien commencer l'URL avec le protocole (http:// ou https://) : p. ex. *http://www.google.com/*.

Vous pouvez écrire des emails et des numéros de téléphone :

[john@doe.com](mailto:john@doe.com)\
[(+33).6.12.34.56.78](tel:+33612345678)

#### Liens vers une section d'une page web

Vous pouvez insérer un lien vers une section d'une page web en utilisant `votrepage.html#la-section`.
Par exemple, voici [un lien vers la section nommée "Mise en forme des caractères"](markdown-formatting.html#mise-en-forme-des-caract%C3%A8res), de cette page.

> Voici plusieurs solutions pour trouver le lien vers une section :
> (i) Récupérer le lien grâce à l'affichage automatique des liens d'ancrage. Sur les sites générés avec notre service un lien d'ancrage devient, généralement, visible lorsque vous bougez votre souris devant le titre d'une section.
>
> ![Lien d'ancrage](markdown-formatting/anchor_link.png "Lien d'ancrage"){style="width:6rem"}
>
> Faites ensuite un clic droit sur l'ancre et copiez le lien correspondant.
> (ii) Une deuxième solution est d'utiliser le lien d'une table des matières.
> (iii) Une dernière solution est d'inspecter le code source de la page que vous ciblez, à la recherche d'un éventuel identifiant ("id") de la cible.

Notez bien qu'il est nécessaire :

- que `la-section` soit en lettres minuscules, avec des traits d'unions (`-`) entre les mots.
- de supprimer les backslash (`\`) et les apostrophes (`'`)
- que les lettres accentuées soient renseignées en suivant l'encodage pour url utf8.

> ["é" sera écrit `%C3%A9`](https://outils-javascript.aliasdmc.fr/encodage-caracteres-accentues/encode-caractere-00E9-html-css-js-autre.html) dans le lien du fichier markdown.

### Couleurs

Vous pouvez utiliser des couleurs avec [l'attribut de style CSS "color"](https://developer.mozilla.org/en-US/docs/Web/CSS/color) :
p. ex., [voici]{style="color:red;"} du [texte]{style="color:green;"} [coloré]{style="color:#0000ff;"}.
Utilisez [ce service en ligne](https://www.w3schools.com/colors/colors_names.asp) pour prévisualiser les couleurs CSS disponibles et trouver leurs noms.
Le format hexadécimal est aussi possible, p. ex. [\#0000ff]{style="color:#0000ff;"}.

## Mise en forme des paragraphes

### Nouvelle ligne et nouveau paragraphe

Un paragraphe est un ensemble de lignes qui se finit dès la première ligne vide.
Si vous voulez faire un retour à la ligne au sein d'un paragraphe, finissez la ligne avec un backslash **"\\"**\
Après une ligne vide, c'est un nouveau paragraphe.

### Alignement des paragraphes

::: {style="text-align:left"}
Par défaut, tous les paragraphes sont alignés à gauche. Mais vous pouvez aussi forcer cet alignement vous-même, en utilisant le style de paragraphe `text-align:left`.
:::

::: {style="text-align:center"}
Un paragraphe centré avec le style de paragraphe `text-align:center`.\
Cette ligne appartient aussi au paragraphe centré. 
Elle est donc centrée également.
:::

::: {style="text-align:justify"}
Voici un paragraphe justifié, avec le style `text-align:justify`, qui tente au mieux de répartir les mots horizontalement entre les deux bordures du texte. Malheureusement, parfois, cet alignement génère de grands écarts entre les mots d’une même ligne.
:::

::: {style="text-align:right"}
Et un paragraphe aligné à droite avec le style `text-align:right`.
:::

### Notes

> Vous pouvez écrire des notes

### Listes

Liste à puces,

- premier point
- 2^ème^ point
- ...

liste numérotée,

1. A
2. B
3. C

et liste de définitions

Premier élément
:   description

Deuxième
:   autre description

## Mise en page

### Colonnes

Vous pouvez insérer du texte en colonnes

:::::::::::::: {style="display:flex"}
::: {style="flex: 1 1 50%;padding:0.5rem"}
Première colonne

Qui nostrud occaecat excepteur enim incididunt anim sit officia laboris aliquip qui aute. Tempor ad labore aute sunt occaecat occaecat sit veniam consequat proident velit Lorem eiusmod non. Quis adipisicing cillum officia laboris mollit aute labore.
:::
::: {style="flex: 1 1 50%;padding:0.5rem"}
et deuxième colonne

Officia est do dolore quis nulla ut in duis officia ea ea. Lorem dolore elit proident dolor exercitation veniam excepteur ex incididunt ex. Culpa anim pariatur incididunt ad adipisicing deserunt officia quis consequat exercitation minim. Labore Lorem irure do quis aute occaecat anim eu dolore.
:::
::::::::::::::

### Séparateurs horizontaux

Vous pouvez insérer des séparateurs horizontaux

---------------------

## Insertions de médias

### Étapes pour l'insertion d'un nouveau média

Quand vous voulez insérer un nouveau média (p. ex. une image) dans une page :

1. Créez un dossier à côté de votre fichier
2. Renommez ce dossier et donnez-lui le nom de votre fichier.

> Par exemple, si votre fichier markdown s'appelle _i_love_pandas.md_, dans ce cas renommez le dossier en _i_love_pandas_.

3. Mettez votre média dans le dossier : p. ex. `panda.png`.
4. Dans le fichier markdown, insérez l'image avec `Une description de l'image](i_love_pandas/panda.png "Un texte qui s'affiche lorsque le curseur survole l'image"){ width=25% }`

### Images

#### Images bitmap

Vous pouvez insérer des images standard ([bitmap ou matricielles](https://fr.wikipedia.org/wiki/Image_matricielle)) en png ou jp(e)g

![Un panda qui fait la sieste](markdown-formatting/image.jpeg "Petit panda"){ width=25% }

et contrôler la taille de l'image à partir du fichier markdown.

![Un panda qui fait la sieste](markdown-formatting/image.jpeg "Grand panda"){ width=50% }

#### Images vectorielles

Vous pouvez insérer des [images vectorielles](https://fr.wikipedia.org/wiki/Image_vectorielle) et contrôler leurs tailles

![De l'art vectoriel](markdown-formatting/art.svg "De l'art vectoriel"){width=min(20em,50%)}

> Pour les images vectorielles, vous devez obligatoirement spécifier une taille.

#### Images animées

Vous pouvez insérer des images animées (GIF) et contrôler leurs tailles

![Un panda animé](markdown-formatting/animated-panda.gif "Un panda animé"){ width=5em }

### Tableaux

Vous pouvez insérer des tableaux

Cellules          de tableau        bien alignées
----------  ---------------------  --------------
col 1 est     alignée à gauche           A  
col 2 est       centrée                      B  
col 3 est     alignée à droite           C

### Équations mathématiques

Vous pouvez insérer des formules mathématiques avec [la syntaxe Latex](https://en.wikipedia.org/wiki/LaTeX) : p. ex. $x^2 + y^2 = z^2$.

Ainsi que des blocs d'équations

$$
x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
$$

### Html brut

Les possibilités de mise en pages sont infinies étant donné que vous pouvez même écrire directement en html dans vos fichiers ! 

#### Exemple de bloc html complexe

Vous pouvez définir des colonnes, insérer une image (animée ou non) à partir d'une URL et contrôler finement sa position.

```{=html}
<div style="display:flex;text-align:center;">
  <div style="flex: 1 1 50%;align-self: center;">
    Vous pouvez<br>
    faire<br>
    ce que vous voulez<br>
    en html brut<br>
    <a href="https://www.animatedimages.org/cat-pandas-345.htm">
      <img src="https://www.animatedimages.org/data/media/345/animated-panda-image-0011.gif" border="0" alt="Un panda qui danse" style="width:5em" title="Un panda qui danse"/>
    </a>
  </div>
  <div style="--aspect-ratio:16/9;margin:auto;width:100%;flex: 1 1 50%;">
    <img src="markdown-formatting/image.jpeg" alt="un panda qui fait la sieste" title="un panda qui fait la sieste">
  </div>
</div>
```

#### Pdf

Vous pouvez inclure des pdf

```{=html}
<div style="--aspect-ratio:10/6;width:50%;margin:auto;">
  <object style="width:100%;" type="application/pdf" data="markdown-formatting/simple.pdf#zoom=0&scrollbar=0&toolbar=0&navpanes=0">
      <p>Ce navigateur ne supporte pas les PDFs. Veuillez <a href="https://input.pambda.fr/Documentation/markdown-formatting/simple.pdf">télécharger le PDF</a> pour le voir.</p>
  </object>
</div>
```

ou insérer un <a href="https://input.pambda.fr/Documentation/markdown-formatting/simple.pdf">lien</a> pour télécharger le fichier pdf.

#### Audio

Vous pouvez jouer des sons à partir d'un fichier mp3 uploadé

```{=html}
<div style="display:flex; justify-content:center;">
    <audio controls src="markdown-formatting/music.mp3">Your browser does not support the audio element.</audio>
</div>
```

#### Video

Vous pouvez afficher des vidéos à partir d'un fichier vidéo uploadé. Soit en utilisant l'encodage WebM (flower.webm) ...
<!-- from https://developer.mozilla.org/fr/docs/Web/HTML/Element/video -->
```{=html}
<div style="display:flex; justify-content:center;">
  <video controls="" style="width:50%">
    <source src="markdown-formatting/flower.webm" type="video/webm">
    Sorry, your browser doesn't support embedded videos.
  </video>
</div>
```

... soit à partir d'un encodage MPEG-4 (beach.mp4)
<!-- from https://filesamples.com/ -->
```{=html}
<div style="display:flex; justify-content:center;">
  <video controls="" style="width:50%">
    <source src="markdown-formatting/beach.mp4" type="video/mp4">
    Sorry, your browser doesn't support embedded videos.
  </video>
</div>
```

#### iframes

Vous pouvez insérer des iframes et contrôler facilement leurs dimensions grâce à un rapport de forme (aspect-ratio).

##### Vidéos youtube


```{=html}
<div style="--aspect-ratio:16/9;width:50%;margin:auto;">
  <iframe src="https://www.youtube.com/embed/nR9eU_tVbxE"></iframe>
</div>
```

##### Google calendars

```{=html}
<div style="--aspect-ratio:16/9;width:75%;margin:auto;">
  <iframe src="https://calendar.google.com/calendar/embed?height=600&amp;wkst=1&amp;bgcolor=%23ffffff&amp;ctz=Europe%2FParis&amp;src=NXA4aTdybWM4amk0cWl0NmsyYWw2dTN1N3MzcGlxOXVAaW1wb3J0LmNhbGVuZGFyLmdvb2dsZS5jb20&amp;src=ZnIuZnJlbmNoI2hvbGlkYXlAZ3JvdXAudi5jYWxlbmRhci5nb29nbGUuY29t&amp;color=%237CB342&amp;color=%230B8043" style="border:solid 1px #777;" frameborder="0" scrolling="no"></iframe>
</div>
```

##### Google maps

```{=html}
<div style="--aspect-ratio:16/9;width:75%;margin:auto;">
  <iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d10732.596044520616!2d-3.37393523808054!3d47.73976344539741!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48105e56aa6609ed%3A0xa93367770ccde4ea!2s56100%20Lorient!5e0!3m2!1sen!2sfr!4v1587928272400!5m2!1sen!2sfr" frameborder="0" style="border:0;" allowfullscreen="" aria-hidden="false" tabindex="0"></iframe>
</div>
```

## Métadonnées de vos pages internet

Le fichier de format markdown vous permet de spécifier les méta-données de la page web correspondante, p. ex. le _titre_ de la page web.
Pour cela, écrivez les méta-données dans le header de votre fichier markdown, au tout début du fichier, comme ceci :

```markdown
---
title: "Pambda.fr: Exemple de mise en forme d'un fichier markdown"
author: 'Joseph Lucas'
date: '2020-11-10'
description: "Exemple de mise en forme d'un fichier markdown pour créer une page internet"
keywords: 'Pambda, Pambda.fr, pandoc, markdown, html, website'
header-includes: |
  <meta property="og:type" content="website" />
  <meta property="og:description" content="Pambda.fr: Exemple de mise en forme d'un fichier markdown" />
  <meta property="og:url" content="https://pambda.fr/markdown-formatting.html" />
  <meta property="og:image" content="https://pambda.fr/index/logo-social-networks.png" />
  <meta property="og:image:type" content="image/png" />
  <meta property="og:image:width" content="1200" />
  <meta property="og:image:height" content="630" />
  <meta property="og:image:alt" content="Pambda" />
  <meta property="og:locale" content="en_US" />
  <meta name="twitter:card" content="summary\_large\_image">
...
```
> Attention, si vous utilisez des apostrophes (`'`) dans les champs de valeurs, écrivez les valeurs entre des guillemets (`"`) plutôt qu'entre des apostrophes.

Éditez les valeurs à droite des "`:`" avec les valeurs que vous souhaitez.

Les méta-données ne sont pas nécessaires, mais elles ont les utilités suivantes :
Le _titre_ est affiché dans l'_onglet_ de la page de votre navigateur internet.
Le titre, la _description_ et les _keywords_ (mots clefs) aident les moteurs de recherche (comme Google) à indexer votre page.
Pour plus d'informations à propos des valeurs du champ "header-includes" allez voir [The Essential Meta Tags for Social Media](https://css-tricks.com/essential-meta-tags-social-media/).

## Table des matières

Si vous voulez une table des matières, ajoutez ceci au bloc de meta-données

```markdown
toc: true
toc-title: 'Titre de votre table des matières'
toc-depth: 2
```

## La barre de navigation

Pour la barre de navigation, le fichier `.navbar.md`, utilisez une liste à puces comme celle-ci :

```markdown
- `<a>Lang</a>`{=html}
  - [English](https://pambda.com)
  - [Français](https://pambda.fr)
- [Accueil](index.html)
- [Services](services.html)
- `<a>Documentation</a>`{=html}
  - [Manuel](Documentation/manual.md)
  - [FAQ](Documentation/faq.md)
- [Blog](blog.html)
- [À propos](about.html)
- [Contact](contact.html)
```
