0%

Hexo build NexT theme static blog system

Hexo, as a convenient and simple journal display program, can be used for information sharing, text display, and note taking.
Hexo is the first part of this site’s home data center plan, followed by calibre book library system, emby streaming system, sefile file management system, etc., aiming to provide a complete home data center solution.Make it a smarter home! Make it a better world!
This article is about building a static blog system using Hexo and NexT themes on debian10, and the related optimization configuration, adding some features and some troubleshooting methods.

Why use Hexo?

  • Easy to deploy, one set of pokers
  • Easy to backup, only md and config files need to be backed up
  • Compared to wordpress, typecho, emlog light and simple, pure static deployment, fast
  • NexT theme is simple and beautiful

The first list of relevant information, a certain reading ability of the partners can follow the gourd drawing, build their own wheel it

source content
https://hexo.io/zh-cn/docs hexo docs
https://github.com/nodesource/distributions node.js docs
https://theme-next.js.org/docs/ next docs
http://theme-next.iissnan.com/ theme-next.iissnan
https://blog.csdn.net/qq_34243930/article/details/109046865 Add statistics on article readership
https://blog.csdn.net/u012195214/article/details/79204088 Theme optimization customization modification guide
https://blog.csdn.net/darkbluejoli/article/details/108678705 Add Read More preview function
https://blog.csdn.net/birdfly2015/article/details/104216232 ERROR Template render error

deploy Hexo

Preparation
System Environment Debian 10
Program Dependencies Node.js Git

install Node.js v15.x:

why Node.js v15.x
 https://www.runoob.com  (2021-02-22) 

Node.js version must be at least 10.13, Node.js 12.0 and above is recommended

This demo uses the latest Node.js v15.x. To avoid some headaches, we recommend using Node.js v12.x

1
2
curl -fsSL https://deb.nodesource.com/setup_15.x | bash -
apt-get install -y nodejs
Live Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
[email protected]:~# curl -fsSL https://deb.nodesource.com/setup_15.x | bash -

## Installing the NodeSource Node.js 15.x repo...


## Populating apt-get cache...

+ apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://security.debian.org/debian-security buster/updates InRelease
Reading package lists... Done

## Installing packages required for setup: gnupg...

+ apt-get install -y gnupg > /dev/null 2>&1

## Confirming "buster" is supported...

+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_15.x/dists/buster/Release'

## Adding the NodeSource signing key to your keyring...

+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK

## Creating apt sources list file for the NodeSource Node.js 15.x repo...

+ echo 'deb https://deb.nodesource.com/node_15.x buster main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_15.x buster main' >> /etc/apt/sources.list.d/nodesource.list

## Running `apt-get update` for you...

+ apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://security.debian.org/debian-security buster/updates InRelease
Get:3 https://deb.nodesource.com/node_15.x buster InRelease [4,584 B]
Get:4 https://deb.nodesource.com/node_15.x buster/main amd64 Packages [767 B]
Fetched 5,351 B in 1s (5,575 B/s)
Reading package lists... Done

## Run `sudo apt-get install -y nodejs` to install Node.js 15.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
[email protected]:~# apt-get install -y nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2
python2-minimal python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python2-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib nodejs python python-minimal
python2 python2-minimal python2.7 python2.7-minimal
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.5 MB of archives.
After this operation, 132 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libpython2.7-minimal amd64 2.7.16-2+deb10u1 [395 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 python2.7-minimal amd64 2.7.16-2+deb10u1 [1,369 kB]
Get:3 http://deb.debian.org/debian buster/main amd64 python2-minimal amd64 2.7.16-1 [41.4 kB]
Get:4 http://deb.debian.org/debian buster/main amd64 python-minimal amd64 2.7.16-1 [21.0 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 libpython2.7-stdlib amd64 2.7.16-2+deb10u1 [1,912 kB]
Get:6 http://deb.debian.org/debian buster/main amd64 python2.7 amd64 2.7.16-2+deb10u1 [305 kB]
Get:7 http://deb.debian.org/debian buster/main amd64 libpython2-stdlib amd64 2.7.16-1 [20.8 kB]
Get:8 http://deb.debian.org/debian buster/main amd64 libpython-stdlib amd64 2.7.16-1 [20.8 kB]
Get:9 http://deb.debian.org/debian buster/main amd64 python2 amd64 2.7.16-1 [41.6 kB]
Get:10 http://deb.debian.org/debian buster/main amd64 python amd64 2.7.16-1 [22.8 kB]
Get:11 https://deb.nodesource.com/node_15.x buster/main amd64 nodejs amd64 15.9.0-1nodesource1 [25.3 MB]
Fetched 29.5 MB in 1s (23.6 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpython2.7-minimal:amd64.
(Reading database ... 19975 files and directories currently installed.)
Preparing to unpack .../0-libpython2.7-minimal_2.7.16-2+deb10u1_amd64.deb ...
Unpacking libpython2.7-minimal:amd64 (2.7.16-2+deb10u1) ...
Selecting previously unselected package python2.7-minimal.
Preparing to unpack .../1-python2.7-minimal_2.7.16-2+deb10u1_amd64.deb ...
Unpacking python2.7-minimal (2.7.16-2+deb10u1) ...
Selecting previously unselected package python2-minimal.
Preparing to unpack .../2-python2-minimal_2.7.16-1_amd64.deb ...
Unpacking python2-minimal (2.7.16-1) ...
Selecting previously unselected package python-minimal.
Preparing to unpack .../3-python-minimal_2.7.16-1_amd64.deb ...
Unpacking python-minimal (2.7.16-1) ...
Selecting previously unselected package libpython2.7-stdlib:amd64.
Preparing to unpack .../4-libpython2.7-stdlib_2.7.16-2+deb10u1_amd64.deb ...
Unpacking libpython2.7-stdlib:amd64 (2.7.16-2+deb10u1) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../5-python2.7_2.7.16-2+deb10u1_amd64.deb ...
Unpacking python2.7 (2.7.16-2+deb10u1) ...
Selecting previously unselected package libpython2-stdlib:amd64.
Preparing to unpack .../6-libpython2-stdlib_2.7.16-1_amd64.deb ...
Unpacking libpython2-stdlib:amd64 (2.7.16-1) ...
Selecting previously unselected package libpython-stdlib:amd64.
Preparing to unpack .../7-libpython-stdlib_2.7.16-1_amd64.deb ...
Unpacking libpython-stdlib:amd64 (2.7.16-1) ...
Setting up libpython2.7-minimal:amd64 (2.7.16-2+deb10u1) ...
Setting up python2.7-minimal (2.7.16-2+deb10u1) ...
Linking and byte-compiling packages for runtime python2.7...
Setting up python2-minimal (2.7.16-1) ...
Selecting previously unselected package python2.
(Reading database ... 20732 files and directories currently installed.)
Preparing to unpack .../python2_2.7.16-1_amd64.deb ...
Unpacking python2 (2.7.16-1) ...
Setting up python-minimal (2.7.16-1) ...
Selecting previously unselected package python.
(Reading database ... 20764 files and directories currently installed.)
Preparing to unpack .../python_2.7.16-1_amd64.deb ...
Unpacking python (2.7.16-1) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_15.9.0-1nodesource1_amd64.deb ...
Unpacking nodejs (15.9.0-1nodesource1) ...
Setting up nodejs (15.9.0-1nodesource1) ...
Setting up libpython2.7-stdlib:amd64 (2.7.16-2+deb10u1) ...
Setting up python2.7 (2.7.16-2+deb10u1) ...
Setting up libpython2-stdlib:amd64 (2.7.16-1) ...
Setting up python2 (2.7.16-1) ...
Setting up libpython-stdlib:amd64 (2.7.16-1) ...
Setting up python (2.7.16-1) ...
Processing triggers for mime-support (3.62) ...

install Git

1
apt-get install git-core
Live Demo
1
2
3
4
5
6
7
8
[email protected]:~# apt-get install git-core -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'git' instead of 'git-core'
git is already the newest version (1:2.20.1-2+deb10u3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

install Hexo

1
npm install -g hexo-cli
Live Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
[email protected]:~# npm install -g hexo-cli

added 66 packages, and audited 67 packages in 6s

11 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New patch version of npm available! 7.5.3 -> 7.5.4
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.5.4
npm notice Run npm install -g [email protected] to update!
npm notice

By the way, update npm

1
2
3
4
5
6
7
8
9
10
11
12
13
[email protected]:~# npm install -g [email protected]

removed 5 packages, changed 14 packages, and audited 254 packages in 4s

11 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New patch version of npm available! 7.5.3 -> 7.5.4
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.5.4
npm notice Run npm install -g [email protected] to update!
npm notice

Build a website

1
2
3
4
mkdir hexo
hexo init hexo
cd hexo
npm install
Live Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[email protected]:~# mkdir hexo
[email protected]:~# hexo init hexo
INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
INFO Install dependencies
INFO Start blogging with Hexo!
[email protected]:~# cd hexo/
[email protected]:~/hexo# npm install

added 6 packages, and audited 187 packages in 1s

15 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities

Install NexT theme

Download Theme

1
git  clone https://github.com/theme-next/hexo-theme-next themes/next
Live Demo
1
2
3
4
5
6
7
[email protected]:~/hexo# git clone https://github.com/iissnan/hexo-theme-next themes/next
Cloning into 'themes/next'...
remote: Enumerating objects: 12037, done.
remote: Total 12037 (delta 0), reused 0 (delta 0), pack-reused 12037
Receiving objects: 100% (12037/12037), 13.05 MiB | 10.20 MiB/s, done.
Resolving deltas: 100% (6964/6964), done.

Enable theme

Modify the theme configuration in the configuration file

1
vim _config.yml

Change the theme to theme: next
Modify the configuration file

Start hexo and verify the theme

Emptying the cache

1
hexo clean
Live Demo
1
2
3
4
[email protected]:~/hexo# hexo clean
INFO Validating config
INFO Deleted database.

Generate static pages

1
hexo g
Live Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
[email protected]:~/hexo# hexo g
INFO Validating config
INFO Start processing
WARN ===============================================================
WARN ========================= ATTENTION! ==========================
WARN ===============================================================
WARN NexT repository is moving here: https://github.com/theme-next
WARN ===============================================================
WARN It's rebase to v6.0.0 and future maintenance will resume there
WARN ===============================================================
INFO Files loaded in 991 ms
(node:1843) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:1843) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:1843) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
(node:1843) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(node:1843) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:1843) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
INFO Generated: archives/index.html
INFO Generated: archives/2021/02/index.html
INFO Generated: archives/2021/index.html
INFO Generated: images/algolia_logo.svg
INFO Generated: images/apple-touch-icon-next.png
INFO Generated: images/cc-by-nc-nd.svg
INFO Generated: images/avatar.gif
INFO Generated: images/cc-by-nc-sa.svg
INFO Generated: images/cc-by-nc.svg
INFO Generated: images/cc-by-nd.svg
INFO Generated: images/cc-by-sa.svg
INFO Generated: images/cc-by.svg
INFO Generated: images/cc-zero.svg
INFO Generated: images/favicon-16x16-next.png
INFO Generated: images/favicon-32x32-next.png
INFO Generated: images/loading.gif
INFO Generated: images/logo.svg
INFO Generated: images/placeholder.gif
INFO Generated: images/quote-l.svg
INFO Generated: images/quote-r.svg
INFO Generated: images/searchicon.png
INFO Generated: index.html
INFO Generated: lib/fastclick/LICENSE
INFO Generated: lib/algolia-instant-search/instantsearch.min.css
INFO Generated: lib/canvas-nest/canvas-nest.min.js
INFO Generated: lib/canvas-ribbon/canvas-ribbon.js
INFO Generated: lib/jquery_lazyload/CONTRIBUTING.html
INFO Generated: lib/needsharebutton/needsharebutton.css
INFO Generated: lib/pace/pace-theme-barber-shop.min.css
INFO Generated: lib/velocity/bower.json
INFO Generated: lib/fastclick/lib/fastclick.min.js
INFO Generated: lib/fancybox/source/helpers/jquery.fancybox-buttons.css
INFO Generated: lib/Han/dist/font/han-space.otf
INFO Generated: lib/fastclick/README.html
INFO Generated: lib/fastclick/bower.json
INFO Generated: lib/font-awesome/bower.json
INFO Generated: lib/jquery_lazyload/README.html
INFO Generated: lib/jquery_lazyload/bower.json
INFO Generated: lib/jquery_lazyload/jquery.lazyload.js
INFO Generated: lib/jquery_lazyload/jquery.scrollstop.js
INFO Generated: lib/pace/pace-theme-big-counter.min.css
INFO Generated: lib/pace/pace-theme-bounce.min.css
INFO Generated: lib/pace/pace-theme-center-atom.min.css
INFO Generated: lib/pace/pace-theme-center-circle.min.css
INFO Generated: lib/pace/pace-theme-center-radar.min.css
INFO Generated: lib/pace/pace-theme-center-simple.min.css
INFO Generated: lib/font-awesome/HELP-US-OUT.txt
INFO Generated: lib/pace/pace-theme-corner-indicator.min.css
INFO Generated: lib/pace/pace-theme-fill-left.min.css
INFO Generated: lib/pace/pace-theme-loading-bar.min.css
INFO Generated: lib/pace/pace-theme-flash.min.css
INFO Generated: lib/pace/pace-theme-mac-osx.min.css
INFO Generated: lib/pace/pace-theme-minimal.min.css
INFO Generated: lib/pace/pace.min.js
INFO Generated: lib/velocity/velocity.ui.min.js
INFO Generated: lib/fancybox/source/jquery.fancybox.css
INFO Generated: lib/fancybox/source/helpers/jquery.fancybox-buttons.js
INFO Generated: lib/fancybox/source/helpers/jquery.fancybox-media.js
INFO Generated: lib/fancybox/source/helpers/jquery.fancybox-thumbs.css
INFO Generated: lib/fancybox/source/helpers/jquery.fancybox-thumbs.js
INFO Generated: lib/three/canvas_lines.min.js
INFO Generated: lib/font-awesome/css/font-awesome.css
INFO Generated: lib/needsharebutton/needsharebutton.js
INFO Generated: lib/fancybox/source/jquery.fancybox.pack.js
INFO Generated: lib/fastclick/lib/fastclick.js
INFO Generated: lib/font-awesome/css/font-awesome.min.css
INFO Generated: lib/fancybox/source/helpers/fancybox_buttons.png
INFO Generated: 2021/02/22/hello-world/index.html
INFO Generated: js/src/schemes/pisces.js
INFO Generated: lib/ua-parser-js/dist/ua-parser.min.js
INFO Generated: css/main.css
INFO Generated: lib/needsharebutton/font-embedded.css
INFO Generated: lib/three/three-waves.min.js
INFO Generated: lib/velocity/velocity.min.js
INFO Generated: lib/velocity/velocity.ui.js
INFO Generated: lib/Han/dist/han.min.css
INFO Generated: lib/Han/dist/han.min.js
INFO Generated: lib/fancybox/source/jquery.fancybox.js
INFO Generated: lib/three/canvas_sphere.min.js
INFO Generated: js/src/affix.js
INFO Generated: lib/Han/dist/han.css
INFO Generated: lib/fancybox/source/fancybox_loading.gif
INFO Generated: lib/fancybox/source/[email protected]
INFO Generated: lib/fancybox/source/fancybox_overlay.png
INFO Generated: lib/fancybox/source/fancybox_sprite.png
INFO Generated: lib/fancybox/source/[email protected]
INFO Generated: lib/Han/dist/font/han-space.woff
INFO Generated: lib/Han/dist/font/han.woff2
INFO Generated: lib/fancybox/source/blank.gif
INFO Generated: js/src/algolia-search.js
INFO Generated: js/src/exturl.js
INFO Generated: js/src/hook-duoshuo.js
INFO Generated: js/src/bootstrap.js
INFO Generated: js/src/js.cookie.js
INFO Generated: js/src/motion.js
INFO Generated: js/src/post-details.js
INFO Generated: js/src/scroll-cookie.js
INFO Generated: js/src/scrollspy.js
INFO Generated: js/src/utils.js
INFO Generated: lib/ua-parser-js/dist/ua-parser.pack.js
INFO Generated: lib/jquery/index.js
INFO Generated: lib/Han/dist/han.js
INFO Generated: lib/font-awesome/css/font-awesome.css.map
INFO Generated: lib/Han/dist/font/han.otf
INFO Generated: lib/Han/dist/font/han.woff
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.woff
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.woff2
INFO Generated: lib/font-awesome/fonts/FontAwesome.otf
INFO Generated: 2021/02/22/deploy-hexo_next/index.html
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.eot
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.ttf
INFO Generated: lib/velocity/velocity.js
INFO Generated: lib/algolia-instant-search/instantsearch.min.js
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.svg
INFO Generated: lib/three/three.min.js
INFO 115 files generated in 2 s

About static page generation time hexo static page generation time is still very long, this has to do with the number of articles, topics, categories, tags and other factors. If the number of articles is relatively large, will wait a long time. If the number of articles is large, you will have to wait a long time. Sometimes it takes several minutes to generate, and then an error is reported and you have to start all over again. It was found that the generation process only invokes a single core of the cpu. Adjust the number of cpu cores of the machine, still only call a. hexo based on nodejs, and about the cpu utilization of nodejs, look at this

Translated with www.DeepL.com/Translator (free version)
Node.js multithreading – worker_threads first experience
Is Node.js "single-threaded"?

Start hexo

1
hexo s
Live Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
[email protected]:~/hexo# hexo s
INFO Validating config
INFO Start processing
WARN ===============================================================
WARN ========================= ATTENTION! ==========================
WARN ===============================================================
WARN NexT repository is moving here: https://github.com/theme-next
WARN ===============================================================
WARN It's rebase to v6.0.0 and future maintenance will resume there
WARN ===============================================================
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.


next theme default page

NexT home page set article preview

Preamble Text

Add a preview of the introductory text before the article body, using the

1
<!-- more -->

Split with text

NexT set text statistics function

Post Wordcount

Install the plugin hexo-word-counter in the site directory

1
2
npm install hexo-word-counter
hexo clean

In the hexo configuration file add:

1
2
3
4
5
6
7
symbols_count_time:
symbols: true
time: true
total_symbols: true
total_time: true
awl: 4
wpm: 275

Modify in the next theme configuration file:

1
2
3
4
symbols_count_time:
separated_meta: true
item_text_post: true
item_text_total: true

NexT set article reading statistics function

In the next theme configuration file change:

1
2
3
4
5
6
7
8
busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: user
total_views: true
total_views_icon: eye
post_views: true
post_views_icon: eye

hexo change default port

Find the node_modules\hexo-server\index.js file, you can change the default port value

Troubleshooting

Error accessing web page:

web report error
The reason is that hexo has removed swig after 5.0 and you need to install it manually.

 
1
npm i hexo-renderer-swig

hexo g static page generation error

Static page generation error
The reason is that there is a combination of unrecognizable symbols in the file, delete or replace the unrecognizable symbols.
>One possible reason is that there are some unrecognizable words in your file, e.g. invisible zero width characters.

About static page generation time

hexo static page generation time is still very long, this is related to the number of articles, themes, categories, tags and other factors.
If the number of articles is relatively large, it can take a long time to wait. With hundreds or thousands of articles, it can even take hours. Sometimes it takes a few minutes to generate, and then an error is reported and you have to start all over again. Before a project to tens of thousands of markdown files, this thing directly scrapped.

Similar Cases

Found that the generation process only calls a single core of the cpu. Adjusting the number of cpu cores on the machine still calls only one.
hexo is based on nodejs, and for cpu utilization in nodejs, check out this Node.js multithreading – worker_threads first experience
Is Node.js 'single-threaded'?
hexo multicore rendering
hexo multicore rendering

  • So, how to improve efficiency
    • Use hugo instead, hugo and hexo are similar in terms of use, hugo in the go language is much faster than hexo, md in the tens of thousands can still be used, but it’s not the most efficient either
    • Other static page generation programs

hexo s Report an error

1
2
3
4
5
(node:14301) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:14301) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
(node:14301) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(node:14301) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:14301) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency

node version problem, need to reduce version.
Install the node versioning module n

1
sudo npm install n -g

Reduced to version 12.14

1
sudo n 12.14

next topic content page under the Chinese directory does not jump

Edit theme profile \source\js\utils.js
On line 236 insert

1
var target = document.getElementById(decodeURI(link.getAttribute('href')).replace('#', ''));

250 rows joined

1
return target;

Comment out lines 240 and 249

1
//var target = document.getElementById(event.currentTarget.getAttribute('href').replace('#', ''));
1
//return document.getElementById(link.getAttribute('href').replace('#', ''));

Illustrations
Example of Chinese directory jump

More questions

hexo-Troubleshooting
iissnan-next-faqs
theme-next.js.org