2020-07-27 17:49:39 +03:00
|
|
|
|
---
|
|
|
|
|
template: overrides/main.html
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Images
|
|
|
|
|
|
|
|
|
|
While images are first-class citizens of Markdown and part of the core syntax,
|
|
|
|
|
it can be difficult to work with them. Material for MkDocs makes working with
|
2021-10-10 13:19:14 +03:00
|
|
|
|
images more comfortable, providing styles for image alignment and image
|
|
|
|
|
captions.
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
This configuration adds the ability to align images, add captions to images
|
|
|
|
|
(rendering them as figures), and mark large images for lazy-loading. Add the
|
|
|
|
|
following lines to `mkdocs.yml`:
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
``` yaml
|
|
|
|
|
markdown_extensions:
|
|
|
|
|
- attr_list
|
2021-10-10 13:19:14 +03:00
|
|
|
|
- md_in_html
|
2020-07-27 17:49:39 +03:00
|
|
|
|
```
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
See additional configuration options:
|
|
|
|
|
|
|
|
|
|
- [Attribute Lists]
|
|
|
|
|
- [Markdown in HTML]
|
|
|
|
|
|
|
|
|
|
[Attribute Lists]: ../setup/extensions/python-markdown.md#attribute-lists
|
|
|
|
|
[Markdown in HTML]: ../setup/extensions/python-markdown.md#markdown-in-html
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
### Image alignment
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
When [Attribute Lists] is enabled, images can be aligned by adding the
|
|
|
|
|
respective alignment directions via the `align` attribute, i.e. `align=left` or
|
|
|
|
|
`align=right`:
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
=== "Left"
|
|
|
|
|
|
|
|
|
|
_Example_:
|
|
|
|
|
|
|
|
|
|
``` markdown
|
2021-03-13 16:30:29 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/eee/aaa){ align=left }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
_Result_:
|
|
|
|
|
|
2021-03-13 16:30:29 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/f5f5f5/aaaaaa&text=–%20Image%20–){ align=left width=300 }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
|
|
|
|
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
|
|
|
|
massa, nec semper lorem quam in massa.
|
|
|
|
|
|
|
|
|
|
=== "Right"
|
|
|
|
|
|
|
|
|
|
_Example_:
|
|
|
|
|
|
|
|
|
|
``` markdown
|
2021-03-13 16:30:29 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/eee/aaa){ align=right }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
_Result_:
|
|
|
|
|
|
2021-03-13 16:30:29 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/f5f5f5/aaaaaa&text=–%20Image%20–){ align=right width=300 }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
|
|
|
|
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
|
|
|
|
massa, nec semper lorem quam in massa.
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
If there's insufficient space to render the text next to the image, the image
|
|
|
|
|
will stretch to the full width of the viewport, e.g. on mobile viewports.
|
|
|
|
|
|
|
|
|
|
??? question "Why is there no centered alignment?"
|
|
|
|
|
|
|
|
|
|
The [`align`][align] attribute doesn't allow for centered alignment, which
|
|
|
|
|
is why this option is not supported by Material for MkDocs.[^1] Instead,
|
|
|
|
|
the [image captions] syntax can be used, as captions are optional.
|
|
|
|
|
|
|
|
|
|
[^1]:
|
|
|
|
|
You might also realize that the [`align`][align] attribute has been
|
|
|
|
|
deprecated as of HTML5, so why use it anyways? The main reason is
|
|
|
|
|
portability – it's still supported by all browsers and clients, and is very
|
|
|
|
|
unlikely to be completely removed, as many older websites still use it. This
|
|
|
|
|
ensures a consistent appearance when a Markdown file with these attributes
|
|
|
|
|
is viewed outside of a website generated by Material for MkDocs.
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
[align]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#deprecated_attributes
|
|
|
|
|
[image captions]: #image-captions
|
2020-08-16 10:54:08 +03:00
|
|
|
|
|
2020-07-27 17:49:39 +03:00
|
|
|
|
### Image captions
|
|
|
|
|
|
|
|
|
|
Sadly, the Markdown syntax doesn't provide native support for image captions,
|
2021-10-10 13:19:14 +03:00
|
|
|
|
but it's always possible to use HTML. Using `figure` and `figcaption`, captions
|
|
|
|
|
can be added to images.
|
2020-07-27 17:49:39 +03:00
|
|
|
|
|
|
|
|
|
_Example_:
|
|
|
|
|
|
|
|
|
|
```html
|
2021-12-11 16:30:07 +03:00
|
|
|
|
<figure markdown> <!-- (1)! -->
|
2021-12-11 17:40:13 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/){ width="300" }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
<figcaption>Image caption</figcaption>
|
|
|
|
|
</figure>
|
|
|
|
|
```
|
|
|
|
|
|
2021-10-05 00:36:31 +03:00
|
|
|
|
1. :man_raising_hand: Remember to enable the [Markdown in HTML] extension.
|
|
|
|
|
|
2020-07-27 17:49:39 +03:00
|
|
|
|
_Result_:
|
2020-09-22 19:09:39 +03:00
|
|
|
|
|
2021-10-05 00:36:31 +03:00
|
|
|
|
<figure markdown>
|
2021-12-11 17:40:13 +03:00
|
|
|
|
![Placeholder]{ width="300" }
|
2020-07-27 17:49:39 +03:00
|
|
|
|
<figcaption>Image caption</figcaption>
|
|
|
|
|
</figure>
|
2020-08-16 10:54:08 +03:00
|
|
|
|
|
2021-12-11 17:40:13 +03:00
|
|
|
|
[Placeholder]: https://dummyimage.com/600x400/f5f5f5/aaaaaa&text=–%20Image%20–
|
2021-10-05 00:36:31 +03:00
|
|
|
|
[Markdown in HTML]: ../setup/extensions/python-markdown.md#markdown-in-html
|
|
|
|
|
|
2020-08-16 10:54:08 +03:00
|
|
|
|
### Image lazy-loading
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
Modern browsers provide [native support for lazy-loading images][lazy-loading]
|
|
|
|
|
through the `loading=lazy` directive, which degrades to eager-loading in
|
2021-10-10 20:22:13 +03:00
|
|
|
|
browsers without support:
|
2020-08-16 10:54:08 +03:00
|
|
|
|
|
|
|
|
|
``` markdown
|
2021-12-11 17:40:13 +03:00
|
|
|
|
![Placeholder](https://dummyimage.com/600x400/){ loading=lazy }
|
2020-08-16 10:54:08 +03:00
|
|
|
|
```
|
|
|
|
|
|
2021-10-10 13:19:14 +03:00
|
|
|
|
[lazy-loading]: https://caniuse.com/#feat=loading-lazy-attr
|
2021-12-11 17:40:13 +03:00
|
|
|
|
|
|
|
|
|
### Light and dark mode
|
|
|
|
|
|
|
|
|
|
[:octicons-tag-24: Unreleased][Light and dark mode support] ·
|
|
|
|
|
:octicons-beaker-24: Experimental
|
|
|
|
|
|
|
|
|
|
If you added a [color palette toggle] and want to show different images for
|
|
|
|
|
light and dark color schemes, you can append a `#only-light` or `#only-dark`
|
|
|
|
|
hash fragment to the image URL:
|
|
|
|
|
|
|
|
|
|
_Example_:
|
|
|
|
|
|
|
|
|
|
``` markdown
|
|
|
|
|
![Placeholder light](https://dummyimage.com/600x400/f5f5f5/aaaaaa#only-light)
|
|
|
|
|
![Placeholder light](https://dummyimage.com/600x400/21222c/d5d7e2#only-dark)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
_Result_:
|
|
|
|
|
|
|
|
|
|
![Placeholder light]{ width="300" }
|
|
|
|
|
![Placeholder dark]{ width="300" }
|
|
|
|
|
|
|
|
|
|
[Light and dark mode support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.1.1
|
|
|
|
|
[color palette toggle]: ../setup/changing-the-colors.md#color-palette-toggle
|
|
|
|
|
[Placeholder light]: https://dummyimage.com/600x400/f5f5f5/aaaaaa&text=–%20Image%20–#only-light
|
|
|
|
|
[Placeholder dark]: https://dummyimage.com/600x400/21222c/d5d7e2&text=–%20Image%20–#only-dark
|