A Hexo plugin to allow adding featured images with featured_image
in front-matter and using it in post and/or have it output in the content.json if used together with hexo-generator-json-content.
thumbnail
is also supported, and works the same as featured_image
.
For example:
CoolPost.md
---
title: Cool post
featured_image: my_img.png
thumbnail: my_img_thumbnail.png
---
What a cool blog I have!
By using the Hexo Front Featured Image plugin, you can specify a post's featured image in its front matter.
The absolute path to my_img.png
will be available through page.featured_image
in your templates.
For example:
article.ejs
...
<% if (page.featured_image){ %>
<img src="<%- page.featured_image %>">
<% } %>
...
npm install --save hexo-featured-image
or yarn add hexo-featured-image
This plugin will make automatically make page.featured_image
available in your templates when you run hexo server
or hexo generate
.
If you are using hexo-generator-json-content, it will automatically add the featured_image
property to content.json
when you run hexo generate
and when you exit hexo server
.
For this plugin to work correctly, you must set url
to your URL in _config.yml
. For example, if you are working locally using the default url (http://0.0.0.0:4000/), set it like this:
_config.yml
...
# URL
url: http://0.0.0.0:4000/
...
or enable absolute_path_reference
in the options.
This plugin works without configuration if you are using absolute or relative URI's, post asset folders, or you are storing your images in source/images
.
If you are not using post asset folders, and you prefer to store your images somewhere else than in source/images
, you must specify image_dir
in _config.yml
to wherever you store your images. To set your image directory to source/assets
, you would set image_dir: assets
in _config.yml
. Example:
_config.yml
...
# Directory
source_dir: source
public_dir: public
...
image_dir: assets
...
This plugin plays nicely with hexo-generator-json-content, and will output the absolute path of featured_image
to content.json
if featured_image
has been set to true
in the jsonContent
configuration part of _config.yml
like so:
...
jsonContent: {
...
posts: {
...
featured_image: true
thumbnail: true # if you want thumbnail to be added as well
}
}
Add or modify the following section to your root _config.yml
file
featured_image:
absolute_path_reference: true
- absolute_path_reference: Make your featured_image URL relative to the root of the website (i.e. they will not contain
url
)- default: false