Image
Improve image syntax in Markdown to support color scheme and size.
Settings
import { hopeTheme } from "vuepress-theme-hope";
export default hopeTheme({
markdown: {
// Enable figure
figure: true,
// Enable image lazyload
imgLazyload: true,
// Enable image mark
imgMark: true,
// Enable image size
imgSize: true,
},
});
Image Lazyload
This feature enables lazyload with native HTML5, so your browser must support loading=lazy attribute.
Image Mark
This feature allows you to mark images with #light
and #dark
suffix to display them in a specific color scheme.


Advanced
You can pass an object to markdown.imgMark
to config ID marks:
import { hopeTheme } from "vuepress-theme-hope";
export default hopeTheme({
markdown: {
imgMark: {
/** light mode only IDs */
light: ["light"],
/** dark mode only IDs */
dark: ["dark"],
},
},
});
Image Size
You can use |widthxheight
to specify the image size at the end of image alt.
Both width
and height
should be number which means size in pixels, and both of them are optional (set 0
to indicate ignore).
If you want the same behavior as Obsidian, you can set markdown.imgSize: 'strict'
in theme options, so width
and height
are both required to be set (one of them can be 0
to scale with radio according to the other).



<!-- These won't work when `strict: true` as obsidian does not support them -->



will be parsed as:
<img src="/example.png" width="200" height="300" />
<img src="/example.jpg" width="200" />
<img src="/example.bmp" height="300" />
<img src="/example.jpg" width="200" />
<img src="/example.jpg" width="200" />
<img src="/example.bmp" height="300" />
Image Size (legacy)
Tips
You shall prefer the new grammar, as it's not breaking backward compatibility.
The legacy grammar will break image rendering in environment that doesn't support it, such as GitHub.
You can use =widthxheight
to specify the image size at the end of the link when setting markdown.legacyImgSize: true
in theme options.



The above Markdown will be parsed as:
<img src="/example.png" width="200" height="300" />
<img src="/example.jpg" title="Image title" width="200" />
<img src="/example.bmp" height="300" />



The above Markdown will be parsed as:
<img src="/example.png" width="200" height="300" />
<img src="/example.jpg" title="Image title" width="200" />
<img src="/example.bmp" height="300" />
Figure
Sometimes, you may want to add a description with image and place it between contents, in this case you should use this feature to convert images to <figure>
.
If the image is standalone in a line, wrapped or not wrapped by link, it will be displayed as <figure>
and title (or alt) will be displayed as <figcaption>
.


[](http://theme-hope.vuejs.press/)

[](http://theme-hope.vuejs.press/)

Changelog
06ef8
-on55e92
-onb1230
-on22787
-on6ad69
-onb41c0
-on54c46
-on55ea3
-on757fd
-on83bff
-on16eb1
-on3a6d6
-on2a306
-onb7879
-on8174c
-onc8d60
-on6e91a
-on79ac6
-onb4289
-on2243a
-on19d23
-on23f74
-on2c32c
-on3dac6
-on2fa50
-on3c8d6
-ond48cc
-on