Markdown et alignement de l'image

Je fais un site qui publie des articles dans les numéros chaque mois. C'est simple, et je pense que l'utilisation d'un éditeur markdown (comme celui d'ADM ici dans StackOverflow) serait parfaite.

Cependant, ils ont besoin de la possibilité d'avoir des images alignées à droite dans un paragraphe donné.

Je ne vois aucun moyen de le faire avec le système actuel est-il possible?

139
demandé sur Pragyaditya Das 2008-11-01 01:43:46

13 réponses

Vous pouvez intégrer HTML dans Markdown, de sorte que vous pouvez faire quelque chose comme ceci:

<img style="float: right;" src="whatever.jpg">

Continue markdown text...
137
répondu Greg Hewgill 2015-08-17 02:59:40

De nombreux processeurs Markdown "extra" prennent en charge les attributs. Vous pouvez donc inclure un nom de classe comme ceci (PHP Markdown Extra):

![Flowers](/flowers.jpeg){.callout}

Ou, alternativement (Maruku, Kramdown, Markdown Python):

![Flowers](/flowers.jpeg){: .callout}

Ensuite, bien sûr, vous pouvez utiliser une feuille de style de la manière appropriée:

.callout {
    float: right;
}

Si le vôtre prend en charge cette syntaxe, il vous donne le meilleur des deux mondes: pas de balisage intégré, et une feuille de style suffisamment abstraite pour ne pas avoir besoin d'être modifiée par votre éditeur de contenu.

45
répondu gerwitz 2017-02-03 08:57:39

On me trouve une bonne solution dans pur Markdown avec un peu CSS3 hack :-)

![image alt >](/image-right.jpg)
![image alt <](/image-left.jpg)
![image alt <>](/center-image.jpg)

Suivez l'image flottante de code CSS3 à gauche ou à droite, lorsque l'image alt se termine par < ou >.

img[alt$=">"] {
  float:right;
}

img[alt$="<"] {
  float:left;
}

img[alt$="<>"] {
    display: block;
    max-width: 100%;
    height: auto;
    margin: auto;
    float: none!important;
}
27
répondu OzzyCzech 2016-09-21 11:12:28

L'intégration de CSS est mauvaise:

![Flowers](/flowers.jpeg)

CSS dans un autre fichier:

img[alt=Flowers] { float: right; }
23
répondu 2011-02-19 22:51:48

J'aime être super paresseux en utilisant des tables pour aligner les images avec la syntaxe verticale pipe (|). Ceci est pris en charge par certaines saveurs markdown (et est également pris en charge par le textile si cela flotte votre bateau)

| I am text to the left  | ![Flowers](/flowers.jpeg) |

Ou

| ![Flowers](/flowers.jpeg) | I am text to the right |

Pas la solution la plus flexible, mais elle est bonne pour la plupart de mes besoins simples, est facile à lire au format markdown, et vous n'avez pas besoin de vous souvenir de CSS ou de HTML brut.

17
répondu learnvst 2013-01-24 18:33:34

J'ai une alternative sur les méthodes ci-dessus qui utilisaient la balise ALT et un sélecteur CSS sur la balise alt.. au lieu de cela, ajoutez un hachage D'URL comme ceci:

D'abord votre code d'image markdown:

![my image](/img/myImage.jpg#left)
![my image](/img/myImage.jpg#right) 
![my image](/img/myImage.jpg#center)  

Notez l'url hash #center ajoutée.

Ajoutez maintenant cette règle en CSS à l'aide des sélecteurs d'attributs CSS3 pour sélectionner des images avec un certain chemin.

img[src*='#left'] { 
    float: left;
}
img[src*='#right'] { 
    float: right;
}
img[src*='#center'] { 
    display: block; 
    margin: auto; 
}

Vous devriez pouvoir utiliser un hachage d'url comme celui-ci presque comme définir un nom de classe et ce n'est pas une mauvaise utilisation de la balise ALT comme certaines personnes l'ont fait commenté pour cette solution. Il ne nécessitera pas non plus d'extensions supplémentaires. Faites-en un pour float right et left ou tout autre style que vous pourriez vouloir.

9
répondu tremor 2018-08-03 13:51:50

Encore plus propre serait de mettre juste p#given img { float: right } dans la feuille de style, ou dans le <head> et enveloppé dans style balises. Ensuite, utilisez simplement le markdown ![Alt text](/path/to/img.jpg).

8
répondu ma11hew28 2010-11-14 15:08:03
<div style="float:left;margin:0 10px 10px 0" markdown="1">
    ![book](/images/book01.jpg)
</div>

L'attribut markdown possibilité à l'intérieur markdown.

7
répondu 2009-08-04 15:18:46

Si vous l'implémentez en Python, il y a une extension {[6] } qui vous permet d'ajouter des paires clé/valeur html et des étiquettes classe/id. La syntaxe est pour ceci est:

![A picture of a cat](cat.png){: style="float:right"}

Ou, si le style intégré ne flotte pas sur votre bateau,

![A picture of a cat](cat.png){: .floatright}

Avec la feuille de style correspondante stylish.css:

.floatright {
    float: right;
    /* etc. */
}
6
répondu jameh 2013-09-27 00:36:46

J'ai aimé la réponse de learnvst d'utiliser les tables car elle est assez lisible (ce qui est l'un des buts de l'écriture Markdown).

Cependant, dans le cas de L'analyseur Markdown de GitBook, j'ai dû, en plus d'une ligne d'en-tête vide, ajouter une ligne de séparation en dessous, pour que la table soit reconnue et correctement rendue:

| - | - |
|---|---|
| I am text to the left  | ![Flowers](/flowers.jpeg) |
| ![Flowers](/flowers.jpeg) | I am text to the right |

Les lignes de séparation doivent comporter au moins trois tirets --- .

3
répondu icarito 2017-05-23 12:02:56

Comme greg a dit Vous pouvez intégrer html dans markdown.. mais l'un des points de markdown est pour éviter d'avoir d'avoir une (ou toutes) en css/html de balisage connaissance? C'est ce que je fais:

Dans mon fichier markdown, je demande simplement à tous mes éditeurs wiki d'intégrer wrap toutes les images avec quelque chose qui ressemble à ceci

'<div> // put image here  </div>`

(bien sûr.. ils donno ce que <div> signifie Mais cela ne devrait pas avoir d'importance)

Donc le fichier markdown ressemble à ce:

<div>
![optional img description][1]
</div>

[1]: /image/path

Et dans le css qui enveloppe toute la page, je peux faire ce que je veux avec la balise image:

img {
   float: right;
}

Bien sûr, vous pouvez faire plus avec le css.. (dans ce cas particulier, envelopper l'img avec div empêche tout autre texte de s'enrouler contre l'image.. ce n'est qu'un exemple) mais à mon humble avis, le point de markdown est que vous ne voulez pas que des personnes potentiellement non techniques entrent dans les tenants et les aboutissants de css/html.. c'est à vous en tant que Web-dev de faire votre css cela enveloppe la page aussi générique et propre que possible, mais là encore vos éditeurs n'ont pas besoin de savoir à ce sujet.

2
répondu abbood 2017-05-23 12:34:45

J'avais la même tâche, j'ai aligné mes images vers la droite en ajoutant ceci:

<div style="text-align: right"><img src="/default/image/sms.png" width="100" /></div>

Pour aligner votre image vers la gauche ou le centre, remplacez

<div style="text-align: right">

À

<div style="text-align: center">
<div style="text-align: left">
1
répondu Zuha Karim 2018-05-31 08:15:21

Le plus simple est d'envelopper l'image dans une balise centrale, comme ceci ...

<center>![Alt test](http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png)</center>

Tout ce qui a trait à Markdown peut être testé ici - http://daringfireball.net/projects/markdown/dingus

Sûr, <center> peut être obsolète, mais c'est simple et ça fonctionne!

-16
répondu yoyo 2011-12-13 05:58:46