Markdown Jekyllで画像キャプションを使用する


149

私はGithubでJekyllブログをホストしており、Markdownで投稿を書いています。画像を追加するときは、次のようにします。

![name of the image](http://link.com/image.jpg)

これにより、テキスト内の画像が表示されます。

ただし、画像の下または上に表示されるキャプションを追加するようにMarkdownに指示するにはどうすればよいですか?

回答:


115

あなたは(あなたが最初のサイトを生成せずに、直接の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." %}

1
それはいい考えです!ただし、site_root有効な変数としては受け入れられません。レンダリングされると、になりsrc="{{ site.url_root }}...ます。
orschiro 2013年

2
ああ、そうですね、それはOctopressで追加された変数です。私はそれを編集したので、サンプルコードは画像への相対URLを使用するだけです。
IQAndreas 2013年

3
Jekyllにsite.url変数が含まれるようになりました。
ロイティンカー

20
より良いマークアップは次のようになります<figure class="image"><img src="{{ include.url }}" alt="{{ include.description }}"><figcaption>{{ include.description }}</figcaption></figure>
エドムンド

詳細情報が必要です…を繰り返さなくても、複数の画像を配置できinclude image.htmlます。私はのようなもので試しています{% for image in page.images %}が、成功しません。手伝って頂けますか?
edmundo 2015

287

これは古い質問であることは承知していますが、画像のキャプションを追加する方法を共有したいと思いました。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。タグがあることを確認してください。そうしないと、スタイルを設定できません。


3
驚くばかり!愚かなジェキル構文を覚える必要はありません:)
Corstian Boerman、2015

2
私はこれの大ファンです
Alex Williams

ありがとうございました!それを探していました
Michal Gruca

1
こんにちは!CSSパーツをどこにどのように配置すればよいのか、私にはよくわかりません。
ChriiSchee

2
@ChriiScheeメインCSSファイルに配置するか、独自のCSSファイルを作成してデフォルトのレイアウトにリンクすることができます。例えば、あるmain.cssファイルへの私のデフォルトのレイアウトのリンクは、<link href="{{ site.baseurl }}/assets/css/main.css" rel="stylesheet">私は、このファイルの一番下に私のカスタムCSS定義を追加して: // My custom css img + em { display: block; text-align: center; } //image captions
月Zavrel

94

これにはテーブルを使用できます。正常に動作します。

| ![space-1.jpg](http://www.storywarren.com/wp-content/uploads/2016/09/space-1.jpg) | 
|:--:| 
| *Space* |

結果:

ここに画像の説明を入力してください


8
この答えが最善です。純粋なマークダウンを使用して、必要なものを取得します。ありがとう!
カダムパリフ

一種のオフトピックですが、これはJupyter Notebooksでも機能します。
paulochf

幅が100%から狭くなりました。どうすれば拡大できますか?
Abhay Hegde

50

キャプション付きの画像に使用する正しいHTMLは<figure>with<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の使用方法をハッキングしているだけです。


5
この回答が注目されなかったことは残念です-私は本当にそれが最も簡単で最も意味的に正しいと思います。私は特に、テーブルを使用したフォーマットを提案するすべての回答に困惑しています。;-)
sudo make install

同意する。ただし、Bitbucketではまだサポートされていないようです。落とし穴。
Boriel 2017年

@Andrewが提供する巧妙でシンプルな答えが好きですが、明示的で、適切なHTMLタグを使用し、あまり多くの入力を必要としないため、この答えを使用する必要があります。
Seanba 2018

1
おかげで、私はjekyllに不慣れで、markdownがhtmlで使用できることを知りませんでした。
サンボキム

6

私がもう少し明示的であることがわかった上位投票の回答のわずかな違いは、クラスを何かに追加するためにjekyll構文を使用し、それをそのようにスタイル設定することです。

したがって、投稿では次のようになります。

![My image](/images/my-image.png)

{:.image-caption}
*The caption for my image*

そして、CSSファイルで次のようなことができます。

.image-caption {
  text-align: center;
  font-size: .8rem;
  color: light-grey;

格好良く出てきます!


4

この質問には2つの意味的に正しい解決策があります。

  1. プラグインを使用する
  2. カスタムインクルードの作成

1.プラグインを使用する

これを行うプラグインをいくつか試しましたが、私のお気に入りはjekyll-figureです。

1.1。インストールjekyll-figure

インストールする1つの方法は、プラグイングループのGemfileにjekyll-figure追加するgem "jekyll-figure"ことです。

次にbundle install、ターミナルウィンドウから実行します。

1.2。使用するjekyll-figure

マークダウンを{% figure %}{% endfigure %}タグでラップするだけです。

キャプションは開始{% figure %}タグに含まれ、マークダウンでスタイルを設定することもできます!

例:

{% 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 %}

1.3。スタイルを整える

画像とキャプションが意味的に正しいので、必要に応じてCSSを適用できます。

  • figure (画像とキャプションの両方)
  • figure img (画像のみ)
  • figcaption (キャプションのみ)

2.カスタムインクルードを作成する

フォルダ内ファイル作成し、image.html_includesMarkdownのLiquidを使用してそれを含める必要があります

2.1。_includes / image.htmlを作成する

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>

2.2。Markdownで、Liquidを使用して画像を含める

/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 -->
%}

絶対URLを使用して(外部の)画像(変化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 -->
%}

2.3。スタイルを整える

画像とキャプションが意味的に正しいので、必要に応じてCSSを適用できます。

  • figure (画像とキャプションの両方)
  • figure img (画像のみ)
  • figcaption (キャプションのみ)

1
完全を期すために、jekyll-figureを使用する場合は、_config.ymlのプラグインにjekyll-figureを追加する必要があります
Aleix Sanchis

3

あなたはpandocあなたのコンバーターとして使用することを試みることができます。これを実装するためのjekyllプラグイン次に示します。Pandocは、alt属性と同じ図のキャプションを自動的に追加できます。

ただし、githubではセキュリティのためにGithubページでプラグインを使用できないため、コンパイル済みのサイトをプッシュする必要があります。


ありがとう。では、マークダウンだけではキャプションを作成できないのですか?
orschiro 2013年

使用しているコンバーターに依存すると思いますが、markdown標準ではキャプションの追加をサポートしていません。
Chongxu Ren 2013

3

Andrewの@ andrew-weiの回答はうまくいきます。何をしようとしているかに応じて、いくつかを一緒にチェーンすることもできます。たとえば、次のようにすると、alt、title、キャプションが改行され、キャプションのさまざまな部分に太字と斜体が表示されます。

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*

1
<p align="center">
  <img alt="img-name" src="/path/image-name.png" width="300">
  <br>
    <em>caption</em>
</p>

これがキャプションの基本的な使用法です。追加のプラグインを使用する必要はありません。


0

これが最も簡単な(ただし、かわいそうではない)解決策です。全体をまとめた表を作成します。スケーリングの問題が明らかにあるので、画像サイズを簡単に変更できるように、HTMLの例を示します。これでうまくいきました。

| <img src="" alt="" style="width: 400px;"/> |
| My Caption |
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.