233 votes

Markdown et alignement des images

Je suis en train de créer un site qui publie des articles par numéro chaque mois. C'est simple, et je pense que l'utilisation d'un éditeur Markdown (comme le ADM un ici dans Stack Overflow) serait parfait.

Cependant, ils ont besoin de la possibilité d'aligner les images à droite dans un paragraphe donné. .

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

0 votes

Notez que, selon la plateforme, vous pouvez ajouter des filtres au format markdown. Il est donc possible d'ajouter une syntaxe qui spécifie l'alignement.

4 votes

Pourquoi ne pas simplement poser la question sans le "j'aide un ami avec un site à but non lucratif qui publie des articles dans des numéros chaque mois" ?

14 votes

@JGallardo Parce que je voulais qu'il soit clair que je n'avais pas le contrôle total du système, ni la possibilité d'acheter un quelconque type de solution. Je reconnais que j'aurais pu formuler la question différemment.

242voto

Greg Hewgill Points 356191

Vous pouvez intégrer du HTML dans le format Markdown, ce qui vous permet de faire quelque chose comme ceci :

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

Continue markdown text...

45 votes

Nettoyer et standardiser en supprimant le superflu. div et en ajoutant une barre oblique de fermeture à l'adresse img respectivement, c'est-à-dire `<img style="float:right" src="whatever.jpg" />

0 votes

Au lieu de div Je préfère utiliser span pour l'indentation en ligne. Pour un centrage complet des paragraphes div est bon, ou même simple p .

26 votes

Cela fonctionne mieux avec certains interprètes aseptisés comme celui de GitHub : <img align="right" src="whatever.jpg" />

91voto

OzzyCzech Points 1509

J'ai trouvé une solution intéressante dans Markdown pur avec un peu Piratage de CSS 3 :-)

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

Suivez le code CSS 3 flotter l'image à gauche ou à droite, lorsque le image alt se termine par < o > .

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

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

img[alt$="><"] {
  display: block;
  max-width: 100%;
  height: auto;
  margin: auto;
  float: none!important;
}

1 votes

Où le CSS doit-il être placé dans le répertoire MkDocs ? @YannDuran

2 votes

@IvanHuang assurez-vous juste que vous ajoutez une extra.css conformément à la documentation de MkDocs, et placez les css dans ce fichier.

60voto

gerwitz Points 191

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

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

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

![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 la vôtre prend en charge cette syntaxe, elle vous offre le meilleur des deux mondes : pas de balisage intégré et une feuille de style suffisamment abstraite pour ne pas devoir être modifiée par votre éditeur de contenu.

0 votes

Au moment où vous écrivez tout cela : ! Fleurs { : .callout} vous auriez aussi bien pu écrire <img src="/flowers.jpeg" class="callout"/>

1 votes

Je suis d'accord, mais Markdown est souvent choisi pour les utilisateurs qui ne sont pas *ML-littéraires, il n'y a donc aucune raison de préférer HTML à toute autre syntaxe arbitraire.

4 votes

("Aucune raison" est bien sûr une simplification excessive. Il existe de nombreuses raisons UX pour lesquelles vous pourriez vouloir que vos éditeurs se rapprochent ou s'éloignent du rendu HTML final. Ou encore, vous pourriez avoir une aversion pour l'introduction d'une dépendance au HTML dans votre contenu, si vous avez choisi Markdown pour abstraire la technique de rendu).

50voto

tremor Points 658

J'ai une alternative aux méthodes ci-dessus qui utilisent la balise ALT et un sélecteur CSS sur la balise alt... À la place, 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'ajout du hash URL #center.

Ajoutez maintenant cette règle dans CSS en utilisant les sélecteurs d'attributs de CSS 3 pour sélectionner les images avec un certain chemin.

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

Vous devriez être en mesure d'utiliser un hachage d'URL de cette manière, presque comme si vous définissiez un nom de classe, et il ne s'agit pas d'une utilisation abusive de la balise ALT comme certaines personnes l'ont fait remarquer pour cette solution. Cela ne nécessite pas non plus d'extensions supplémentaires. Faites-en une pour le flottement à droite et à gauche, ainsi que pour tout autre style que vous souhaitez.

1 votes

Exactement ce que je recherchais. Vous êtes un sauveur de vie. Une chose que je voudrais ajouter, c'est "h1 h2{ clear : both }" pour que le titre suivant commence sur une nouvelle ligne (sans chevauchement avec l'image).

0 votes

Cela ressemble à ce que je cherche mais... comment faire un CSS ? et comment l'appeler en Markdown ?

0 votes

C'est aussi une excellente solution comme la mienne :)

28voto

learnvst Points 5159

J'aime être super paresseux en utilisant des tableaux pour aligner les images avec le tuyau vertical ( | ). Cette syntaxe est prise en charge par certaines versions de Markdown (et également par la syntaxe Textile si cela vous convient) :

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

o

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

Ce n'est pas la solution la plus flexible, mais elle répond à la plupart de mes besoins simples, elle est facile à lire au format markdown et vous n'avez pas besoin de vous souvenir des CSS ou du HTML brut.

2 votes

J'aime ce style, très démarqué. Dommage qu'il ne fonctionne pas sur github (pas encore en tout cas.)

4 votes

Je viens d'essayer cette syntaxe sur GitHub et elle semble fonctionner maintenant.

10 votes

C'est un hack intéressant, mais il utilise mal les tableaux pour la mise en page. Bienvenue en 1999.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X