J'héberge un blog Jekyll sur Github et j'écris mes articles avec Markdown. Lorsque j'ajoute des images, je le fais de la manière suivante:
![name of the image](http://link.com/image.jpg)
Cela montre alors l'image dans le texte.
Cependant, comment puis-je dire à Markdown d'ajouter une légende qui est présentée ci-dessous ou au-dessus de l'image?
site_root
n'est pas acceptée comme variable valide. Une fois rendu, il se termine parsrc="{{ site.url_root }}...
.site.url
variable.<figure class="image"><img src="{{ include.url }}" alt="{{ include.description }}"><figcaption>{{ include.description }}</figcaption></figure>
include image.html
? J'essaye avec quelque chose comme{% for image in page.images %}
mais sans succès. Pouvez-vous m'aider?Je sais que c'est une vieille question, mais j'ai pensé que je partagerais toujours ma méthode d'ajout de légendes d'image. Vous ne pourrez pas utiliser les balises
caption
oufigcaption
, mais ce serait une alternative simple sans utiliser de plugins.Dans votre démarque, vous pouvez envelopper votre légende avec la balise de mise en évidence et la placer directement sous l'image sans insérer une nouvelle ligne comme ceci:
Cela générerait le code HTML suivant:
Ensuite, dans votre CSS, vous pouvez le styliser à l'aide du sélecteur suivant sans interférer avec les autres
em
balises de la page:Notez que vous ne devez pas avoir de ligne vide entre l'image et la légende car cela générerait à la place:
Vous pouvez également utiliser la balise de votre choix autre que
em
. Assurez-vous simplement qu'il y a une balise, sinon vous ne pourrez pas la styliser.la source
<link href="{{ site.baseurl }}/assets/css/main.css" rel="stylesheet">
, je viens donc d'ajouter ma définition CSS personnalisée au bas de ce fichier:// My custom css img + em { display: block; text-align: center; } //image captions
Vous pouvez utiliser la table pour cela. Ça fonctionne bien.
Résultat:
la source
Le code HTML correct à utiliser pour les images avec des légendes est
<figure>
avec<figcaption>
.Il n'y a pas d'équivalent Markdown pour cela, donc si vous n'ajoutez qu'une légende occasionnelle, je vous encourage à simplement ajouter ce code HTML dans votre document Markdown:
La spécification Markdown vous encourage à incorporer du HTML dans des cas comme celui-ci, donc il s'affichera très bien. C'est aussi beaucoup plus simple que de jouer avec des plugins.
Si vous essayez d'utiliser d'autres fonctionnalités de Markdown-y (comme des tableaux, des astérisques, etc.) pour produire des légendes, vous ne faites que pirater la façon dont Markdown était censé être utilisé.
la source
Un léger riff sur la réponse votée en haut que j'ai trouvé un peu plus explicite est d'utiliser la syntaxe jekyll pour ajouter une classe à quelque chose, puis le styliser de cette façon.
Donc, dans le post, vous auriez:
Et puis dans votre fichier CSS, vous pouvez faire quelque chose comme ceci:
Sort bien!
la source
Il existe deux solutions sémantiquement correctes à cette question:
1. Utilisation d'un plugin
J'ai essayé quelques plugins pour faire cela et mon préféré est
jekyll-figure
.1.1. Installer
jekyll-figure
Une façon d'installer
jekyll-figure
est d'ajoutergem "jekyll-figure"
à votre Gemfile dans votre groupe de plugins.Ensuite, exécutez à
bundle install
partir de la fenêtre de votre terminal.1.2. Utilisation
jekyll-figure
Enveloppez simplement votre démarque
{% figure %}
et vos{% endfigure %}
balises.Votre légende va dans la
{% figure %}
balise d' ouverture , et vous pouvez même la styliser avec Markdown!Exemple:
1.3. Donnez du style
Maintenant que vos images et légendes sont sémantiquement correctes, vous pouvez appliquer le CSS comme vous le souhaitez:
figure
(pour l'image et la légende)figure img
(pour l'image uniquement)figcaption
(pour la légende seulement)2. Création d'une inclusion personnalisée
Vous devrez créer un
image.html
fichier dans votre_includes
dossier et l' inclure à l'aide de Liquid dans Markdown .2.1. Créer _includes / image.html
Créez le
image.html
document dans votre dossier _includes:2.2. Dans Markdown, incluez une image à l'aide de Liquid
Une image
/assets/images
avec une légende:Une image (externe) utilisant une URL absolue: (remplacer
src=""
parsrcabs=""
)Une image cliquable: (ajouter un
url=""
argument)Une image sans légende:
2.3. Donnez du style
Maintenant que vos images et légendes sont sémantiquement correctes, vous pouvez appliquer le CSS comme vous le souhaitez:
figure
(pour l'image et la légende)figure img
(pour l'image uniquement)figcaption
(pour la légende seulement)la source
Vous pouvez essayer de l'utiliser
pandoc
comme convertisseur. Voici un plugin jekyll pour implémenter cela. Pandoc pourra ajouteralt
automatiquement une légende de figure identique à votre attribut.Mais vous devez pousser le site compilé car github n'autorise pas les plugins dans les pages Github pour des raisons de sécurité.
la source
La réponse d'Andrew @ andrew-wei fonctionne très bien. Vous pouvez également en enchaîner quelques-uns, en fonction de ce que vous essayez de faire. Ceci, par exemple, vous donne une image avec alt, titre et légende avec un saut de ligne et gras et italique dans différentes parties de la légende:
Avec la
<img>
démarque suivante :la source
C'est l'utilisation de base des légendes. Pas nécessaire d'utiliser un plugin supplémentaire.
la source
Voici la solution la plus simple (mais pas la plus jolie): faire une table autour du tout. Il y a évidemment des problèmes de mise à l'échelle, et c'est pourquoi je donne mon exemple avec le HTML afin que vous puissiez facilement modifier la taille de l'image. Cela a fonctionné pour moi.
la source