I am hosting a Jekyll Blog on Github and write my posts with Markdown. When I am adding images, I do it the following way:
![name of the image](http://link.com/image.jpg)
This then shows the image in the text.
However, how can I tell Markdown to add a caption which is presented below or above the image?
If you don't want to use any plugins (which means you can push it to GitHub directly without generating the site first), you can create a new file named
image.html
in_includes
:And then display the image from your markdown with:
Here's the simplest (but not prettiest) solution: make a table around the whole thing. There are obviously scaling issues, and this is why I give my example with the HTML so that you can modify the image size easily. This worked for me.
You can try to use
pandoc
as your converter. Here's a jekyll plugin to implement this. Pandoc will be able to add a figure caption the same as youralt
attribute automatically.But you have to push the compiled site because github doesn't allow plugins in Github pages for security.
You can use table for this. It works fine.
Result:
The correct HTML to use for images with captions, is
<figure>
with<figcaption>
.There's no Markdown equivalent for this, so if you're only adding the occasional caption, I'd encourage you to just add that html into your Markdown document:
The Markdown spec encourages you to embed HTML in cases like this, so it will display just fine. It's also a lot simpler than messing with plugins.
If you're trying to use other Markdown-y features (like tables, asterisks, etc) to produce captions, then you're just hacking around how Markdown was intended to be used.
A slight riff on the top voted answer that I found to be a little more explicit is to use the jekyll syntax for adding a class to something and then style it that way.
So in the post you would have:
And then in your CSS file you can do something like this:
Comes out looking good!