Currently, it is not smooth to update NexT theme from pulling or downloading new releases. It is quite often running into conflict status when updating NexT theme via git pull
, or need to merge configurations manually when upgrading to new releases.
At present, NexT encourages users to store some options in site's /_config.yml
and other options in theme's /themes/next/_config.yml
. This approach is applicable, but has some drawbacks:
In order to resolve this issue, NexT provides the following two solutions.
With this way, all your configurations locate in main Hexo config file (/_config.yml
), you don't need to touch /themes/next/_config.yml
or create any new files. But you must preserve double spaces indents within theme_config
option.
If there are any new options in new releases, you just need to copy those options from /themes/next/_config.yml
, paste into /_config.yml
and set their values to whatever you want.
/source/_data/next.yml
file does not exist (delete it if exists)./themes/next/_config.yml
into /_config.yml
, then\
2.1. Move all this settings to the right with two spaces (in Visual Studio Code: select all strings, CTRL + ]).\
2.2. Add theme_config:
parameter above all this settings.With this way, you can put all your configurations into one place (/source/_data/next.yml
), you don't need to touch /themes/next/_config.yml
.
But option may not accurately procces all hexo external libraries with their additional options (for example, hexo-server
module options may be readed only in default hexo config).
If there are any new options in new releases, you just need to copy those options from /themes/next/_config.yml
, paste into /source/_data/next.yml
and set their values to whatever you want.
This method relies on Hexo Data files. Because Data files is introduced in Hexo 3, so you need upgrade Hexo to 3.0 (or above) to use this feature.
next.yml
in site's /source/_data
directory (create _data
directory if it does not exist).And after that steps there are 2 variants, need to choose only one of them and resume next steps.
Variant 1: override: false
(default):
override
option in default NexT config, it must set on false
.\
In next.yml
it must not be defined or set on false
too./_config.yml
and theme's /themes/next/_config.yml
into /source/_data/next.yml
.Variant 2: override: true
:
next.yml
set override
option on true
./themes/next/_config.yml
into /source/_data/next.yml
./_config.yml
need to define theme: next
option (and if needed, source_dir: source
).hexo clean && hexo g -d && hexo s
).