It looks like the internal figure shortcode does not allow HTML in the caption attribute. Is that a bug or a feature?
{{< figure src="/2018/03/wider-den-darts/darts-1000x667.jpg" caption="Terrorist an Zielscheibe - Photo by <a href="https://unsplash.com/photos/8AiDiLLGmJs">Clem Onojeghuo</a>" width="930" height="620" >}}
prints the shortcode unrendered
{{< figure src="/2018/03/wider-den-darts/darts-1000x667.jpg" caption="Terrorist an Zielscheibe - Photo by Clem Onojeghuo" width="930" height="620" >}}
prints out as expected…
(note: html is allowed in the caption tag in HTML5)
This is a known issue (the issue talks about Markdown emphasis chars not rendered, but the same applies to HTML too):
Hello,
It is often a necessity to allow emphasis in figure captions, especially for technical blogs, where you would use `code` markup...
Enhancement
My workaround is to use my custom figure
shortcode that does what I want:
Render markdown/HTML in figure captions.
With the above custom shortcode, this works:
{{< figure src="/images/magit-log-buffer-file.png" caption="Figure 1: Terrorist an Zielscheibe - Photo by <a href=\"https://unsplash.com/photos/8AiDiLLGmJs\">Clem Onojeghuo</a>" >}}
Note that I use \"
instead of "
inside the double quotes for caption
property.
How about trying to wrap the href in single quotes?
Like so:
caption="Terrorist an Zielscheibe - Photo by <a href='https://unsplash.com/photos/8AiDiLLGmJs'>Clem Onojeghuo</a>"
For your specific case though, the figure
shortcode has attr
and attrlink
parameters too, which you can use as:
{{< figure src="/2018/03/wider-den-darts/darts-1000x667.jpg" caption="Terrorist an Zielscheibe" attr="Photo by Clem Onojeghuo" attrlink="https://unsplash.com/photos/8AiDiLLGmJs" width="930" height="620" >}}
2 Likes
Yes! Great! I’ll add the dash via CSS between caption and attribution. I was writing my own custom shortcode that has the caption between opening and closing shortcode tags when you posted this This is way better.
That printed out the HTML in the caption. \"
and \'
both result in captiontext with <tag bla="fasel">text</tag>
being printed, which is expected in Go.