1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Markdown] リンク付き画像をReference-style linkで短く表記する

Last updated at Posted at 2019-01-23
(An English translation is available here.)

はじめに

Markdownでリンク付き画像を表示すると、必要な文字列が長くなる傾向があります。
例えば、Travis CIのバッジ(Build Status)は次のようになります。

[![Build Status](https://travis-ci.org/travis-ci/travis-web.svg?branch=master)](https://travis-ci.org/travis-ci/travis-web)

(このバッジの例は、Travis CIのEmbedding Status Imagesで紹介されているものです。)

これほど長い文字列だと、例えば表の中でリンク付き画像を使いたい場合に書きづらくなってきます。

OS Status
Ubuntu Build Status
| OS     | Status |
|:------:|:------:|
| Ubuntu | [![Build Status](https://travis-ci.org/travis-ci/travis-web.svg?branch=master)](https://travis-ci.org/travis-ci/travis-web) |

上の例ではバッジは1つですが、仮に1行に2つ以上バッジを並べようとすると、列の区切りの|が一目で分からないぐらい複雑になってきます。
実際の例としては、srz-zumix/iutestのREADME.mdには、多くのバッジを載せた表があります。そのRaw contentはとても複雑です。

どうにか短くできないものでしょうか?

改善案

Reference-style linkを使うと、多少マシになります。次のようになります。

| OS     | Status |
|:------:|:------:|
| Ubuntu | [![travisci-image]][travisci-link] |

[![travisci-image]][travisci-link]と、だいぶ短くなりました。
これなら、1行に2つ3つバッジを並べても大丈夫でしょう。
画像URLとリンクURLは、別の場所に次の2行を書いておきます。

[travisci-image]: https://travis-ci.org/travis-ci/travis-web.svg?branch=master
[travisci-link]: https://travis-ci.org/travis-ci/travis-web

travisci-imagetravisci-linkは任意の文字列なので、分かりやすい名前をつけるなり、列の区切り文字|が揃うように文字数を調整するなりすれば良いと思います。

おわりに

Qiita上でこの表記法を使った表を置いておきます。この記事のURLの末尾に.mdをつけて、ソースを見てみてください。

OS Status
Ubuntu travisci-image

GitHubでもこの表記法は使えます。例としてGitHub Gistを置いておきます。このGistでRawボタンをクリックすると、実際に使っていることが分かります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?