Answers:
如果你不希望使用任何插件(这意味着你可以把它推到GitHub上的情况下直接产生第一现场),你可以创建一个名为的新文件image.html
中_includes
:
<figure class="image">
<img src="{{ include.url }}" alt="{{ include.description }}">
<figcaption>{{ include.description }}</figcaption>
</figure>
然后使用以下命令显示来自标记的图像:
{% include image.html url="/images/my-cat.jpg" description="My cat, Robert Downey Jr." %}
site.url
变量。
<figure class="image"><img src="{{ include.url }}" alt="{{ include.description }}"><figcaption>{{ include.description }}</figcaption></figure>
include image.html
?我正在尝试类似{% for image in page.images %}
但没有成功的事情。你能帮助我吗?
我知道这是一个老问题,但我想我仍然会分享添加图像标题的方法。您将无法使用caption
或figcaption
标记,但这是不使用任何插件的简单选择。
在减价中,您可以将带有重点标签的标题包装在图片下方,而无需插入新行,如下所示:
![](path_to_image)
*image_caption*
这将生成以下HTML:
<p>
<img src="path_to_image" alt>
<em>image_caption</em>
</p>
然后,在CSS中,您可以使用以下选择器设置样式,而不会干扰em
页面上的其他标签:
img + em { }
请注意,图片和标题之间不能有空行,因为这会生成:
<p>
<img src="path_to_image" alt>
</p>
<p>
<em>image_caption</em>
</p>
您还可以使用除之外的任何其他标签em
。只要确保有一个标签,否则您将无法设置其样式。
<link href="{{ site.baseurl }}/assets/css/main.css" rel="stylesheet">
因此我仅在此文件的底部添加了自定义CSS定义: // My custom css img + em { display: block; text-align: center; } //image captions
您可以为此使用表格。工作正常。
| ![space-1.jpg](http://www.storywarren.com/wp-content/uploads/2016/09/space-1.jpg) |
|:--:|
| *Space* |
结果:
用于带标题图像的正确HTML是<figure>
与<figcaption>
。
没有Markdown等效项,因此,如果您只是添加偶尔的标题,我鼓励您只将该html添加到Markdown文档中:
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
<figure>
<img src="{{site.url}}/assets/image.jpg" alt="my alt text"/>
<figcaption>This is my caption text.</figcaption>
</figure>
Vestibulum eu vulputate magna...
Markdown规范鼓励您在这种情况下嵌入HTML,因此它将很好地显示。它也比弄乱插件要简单得多。
如果您尝试使用Markdown-y的其他功能(例如表格,星号等)来生成字幕,那么您只是在研究Markdown的预期用途。
这个问题有两种语义上正确的解决方案:
我已经尝试了几个插件来执行此操作,而我最喜欢的是jekyll-figure
。
jekyll-figure
一种安装方法jekyll-figure
是gem "jekyll-figure"
在插件组中添加到Gemfile中。
然后bundle install
从终端窗口运行。
jekyll-figure
只需将您的markdown包装在{% figure %}
和{% endfigure %}
标记中即可。
您的标题在开始{% figure %}
标签中,甚至可以使用markdown设置其样式!
例:
{% figure caption:"Le logo de **Jekyll** et son clin d'oeil à Robert Louis Stevenson" %}
![Le logo de Jekyll](/assets/images/2018-08-07-jekyll-logo.png)
{% endfigure %}
现在您的图像和标题在语义上是正确的,您可以根据需要应用CSS:
figure
(对于图片和标题)figure img
(仅适用于图片)figcaption
(仅用于字幕)您需要在文件夹中创建一个image.html
文件_includes
,并使用Markdown中的Liquid将其包括在内。
image.html
在_includes文件夹中创建文档:
<!-- _includes/image.html -->
<figure>
{% if include.url %}
<a href="{{ include.url }}">
{% endif %}
<img
{% if include.srcabs %}
src="{{ include.srcabs }}"
{% else %}
src="{{ site.baseurl }}/assets/images/{{ include.src }}"
{% endif %}
alt="{{ include.alt }}">
{% if include.url %}
</a>
{% endif %}
{% if include.caption %}
<figcaption>{{ include.caption }}</figcaption>
{% endif %}
</figure>
/assets/images
带有标题的图像:
This is [Jekyll](https://jekyllrb.com)'s logo :
{% include image.html
src="jekyll-logo.png" <!-- image filename (placed in /assets/images) -->
alt="Jekyll's logo" <!-- alt text -->
caption="This is Jekyll's logo, featuring Dr. Jekyll's serum!" <!-- Caption -->
%}
使用绝对网址的(外部)图片:(更改src=""
为srcabs=""
)
This is [Jekyll](https://jekyllrb.com)'s logo :
{% include image.html
srcabs="https://jekyllrb.com/img/logo-2x.png" <!-- absolute URL to image file -->
alt="Jekyll's logo" <!-- alt text -->
caption="This is Jekyll's logo, featuring Dr. Jekyll's serum!" <!-- Caption -->
%}
可点击的图片:(添加url=""
参数)
This is [Jekyll](https://jekyllrb.com)'s logo :
{% include image.html
src="https://jekyllrb.com/img/logo-2x.png" <!-- absolute URL to image file -->
url="https://jekyllrb.com" <!-- destination url -->
alt="Jekyll's logo" <!-- alt text -->
caption="This is Jekyll's logo, featuring Dr. Jekyll's serum!" <!-- Caption -->
%}
没有标题的图像:
This is [Jekyll](https://jekyllrb.com)'s logo :
{% include image.html
src="https://jekyllrb.com/img/logo-2x.png" <!-- absolute URL to image file -->
alt="Jekyll's logo" <!-- alt text -->
%}
现在您的图像和标题在语义上是正确的,您可以根据需要应用CSS:
figure
(对于图片和标题)figure img
(仅适用于图片)figcaption
(仅用于字幕)安德鲁的@ andrew-wei答案很好用。您还可以将一些链接在一起,具体取决于您要执行的操作。例如,这使您获得具有alt,标题和标题的图像,并在标题的不同部分使用换行符以及粗体和斜体:
img + br + strong {margin-top: 5px; margin-bottom: 7px; font-style:italic; font-size: 12px; }
img + br + strong + em {margin-top: 5px; margin-bottom: 7px; font-size: 12px; font-style:italic;}
带有以下<img>
标记:
![description](https://img.jpg "description")
***Image:*** *description*
<p align="center">
<img alt="img-name" src="/path/image-name.png" width="300">
<br>
<em>caption</em>
</p>
这是基本字幕的使用。无需使用额外的插件。
这是最简单(但不是最漂亮)的解决方案:围绕整个表创建一个表。显然存在缩放问题,这就是为什么我以HTML给出示例,以便您可以轻松修改图像大小的原因。这对我有用。
| <img src="" alt="" style="width: 400px;"/> |
| My Caption |
site_root
不接受为有效变量。渲染后,结果为src="{{ site.url_root }}...
。