Giter Club home page Giter Club logo

hexo-related-popular-posts's People

Contributors

lulzneko avatar sxyugao avatar tea3 avatar xaoxuu avatar yoshinorin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hexo-related-popular-posts's Issues

tag_map support

{"title":null,"path":"/null", ...} if override slug in the tag_map

Feature-Request about list.img

Hello, I found that the img obtained by hexo-related-popular-posts can only be automatically read from within the article. May I ask you to add a configuration item according to one of the front-matter How about a custom value such as headimg as the summary image of the article?

For example, in "Article 1", the header image of "Article 2" is not perfect. What we want is A, but actually B:

iShot2020-08-26下午06 02 30
iShot2020-08-26下午06 03 57

DTraceProviderBindings.node issue

I can't get this plugin to work. Here's the error message I get:

Error: The module '/usr/local/lib/node_modules/hexo-cli/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 48. This version of Node.js requires
NODE_MODULE_VERSION 51. Please try re-compiling or re-installing
the module (for instance, using npm rebuild ornpm install).

i can't run http://localhost:4000/

i follow the introduce:

and i add this :<%- popular_posts() %> to index.ejs
and then 👍

  1. Edit your theme
    First, add the following popular_posts() helper tag in template file for article. Please edit themes/(your-theme)/layout/_partial/your_template.ejs.

<%- popular_posts() %>
2. Run server
Starts a local server. By default, this is at http://localhost:4000/.

$ hexo server

however:
it'error, this is error code:
`ERROR Plugin load failed: hexo-related-popular-posts
TypeError: Cannot read property '0' of null
at F:\Learning\Hexo\node_modules.0.1.7@hexo-related-popular-posts\index.js:133:48
at F:\Learning\Hexo\node_modules.3.2.2@hexo\lib\hexo\index.js:229:12
at tryCatcher (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:510:31)
at Promise._settlePromise (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:567:18)
at Promise._settlePromise0 (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:612:10)
at Promise._settlePromises (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:691:18)
at Promise._fulfill (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:636:18)
at Promise._resolveCallback (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:431:57)
at Promise._settlePromiseFromHandler (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:522:17)
at Promise._settlePromise (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:567:18)
at Promise._settlePromise0 (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:612:10)
at Promise._settlePromises (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:691:18)
at Promise._fulfill (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\promise.js:636:18)
at F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\nodeback.js:42:21
at F:\Learning\Hexo\node_modules.4.1.10@graceful-fs\graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.
Unhandled rejection ReferenceError: F:\Learning\Hexo\themes\yilia\layout\index.ejs:3
1| <%- partial('_partial/archive', {pagination: 2, index: true}) %>
2|

3| <%- popular_posts() %>
4|

popular_posts is not defined
at eval (eval at (F:\Learning\Hexo\node_modules\hexo-renderer-ejs\node_modules\ejs\lib\ejs.js:242:14), :30:126)
at eval (eval at (F:\Learning\Hexo\node_modules\hexo-renderer-ejs\node_modules\ejs\lib\ejs.js:242:14), :30:154)
at F:\Learning\Hexo\node_modules\hexo-renderer-ejs\node_modules\ejs\lib\ejs.js:255:15
at _compiled (F:\Learning\Hexo\node_modules.3.2.2@hexo\lib\theme\view.js:127:30)
at View.render (F:\Learning\Hexo\node_modules.3.2.2@hexo\lib\theme\view.js:29:15)
at F:\Learning\Hexo\node_modules.3.2.2@hexo\lib\hexo\index.js:387:25
at tryCatcher (F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\util.js:16:23)
at F:\Learning\Hexo\node_modules.3.4.6@bluebird\js\release\method.js:15:34
at RouteStream._read (F:\Learning\Hexo\node_modules.3.2.2@hexo\lib\hexo\router.js:134:3)
at RouteStream.Readable.read (stream_readable.js:328:10)
at resume
(_stream_readable.js:718:12)
at doNTCallback2 (node.js:441:9)
at process._tickCallback (node.js:355:17)

`

in addition:
i have install this:

$ cnpm install hexo-related-popular-posts --save
√ All packages installed (use 900ms, speed 15.37kB/s, json 1(13.83kB), tarball 0B)

how can i do it?

thank you !

Security problem

There are some security problems.

Below is the dependency

Below is the problem.

CVE-2017-16026
moderate severity
Vulnerable versions: >= 2.49.0, < 2.68.0
Patched version: 2.68.0
Affected versions of request will disclose local system memory to remote systems in certain circumstances. When a multipart request is made, and the type of body is number, then a buffer of that size will be allocated and sent to the remote server as the body.

hexo-fs out of date cause fail to install on node v13

Actually the fsevents@v1 cause this problem, and the out-of-date hexo-fs depends on that cause install fail on node v13.

This might related to another plugin nunjucks which indirectly depends on fsevents@v1 which introduced in hexo@v4

Unhandled rejection TypeError [ERR_INVALID_ARG_TYPE]

Node version: v12.8.1
theme: Next

related_posts:
  enable: true
  title: Related
  display_in_home: false
  params:
    maxCount: 3

Plugin version

It‘s ok to run command hexo clean hexo g hexo s.
But when I visit the page with related-tag-posts, it will cause an error.

Unhandled rejection TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
    at validateString (internal/validators.js:112:11)
    at Object.join (path.js:375:7)
    at getElm (F:\hexo\node_modules\hexo-related-popular-posts\lib\list-json.js:371:28)
    at Object.module.exports.getList (F:\hexo\node_modules\hexo-related-popular-posts\lib\list-json.js:383:23)
    at module.exports (F:\hexo\node_modules\hexo-related-popular-posts\lib\helper-json.js:3:19)
    at Object.<anonymous> (F:\hexo\node_modules\hexo-related-popular-posts\index.js:177:40)
    at Object.eval [as tpl] (eval at precompile (F:\hexo\node_modules\swig-templates\lib\swig.js:537:13), <anonymous>:5:173)
    at compiled (F:\hexo\node_modules\swig-templates\lib\swig.js:664:18)
    at Object.eval [as tpl] (eval at precompile (F:\hexo\node_modules\swig-templates\lib\swig.js:537:13), <anonymous>:336:136)
    at compiled (F:\hexo\node_modules\swig-templates\lib\swig.js:664:18)
    at Theme._View.View._compiledSync (F:\hexo\node_modules\hexo\lib\theme\view.js:119:22)
    at Theme._View.View.View.renderSync (F:\hexo\node_modules\hexo\lib\theme\view.js:48:23)
    at Object.partial (F:\hexo\node_modules\hexo\lib\plugins\helper\partial.js:34:15)
    at Object.eval [as tpl] (eval at precompile (F:\hexo\node_modules\swig-templates\lib\swig.js:537:13), <anonymous>:142:119)
    at compiled (F:\hexo\node_modules\swig-templates\lib\swig.js:664:18)
    at Theme._View.View._compiled (F:\hexo\node_modules\hexo\lib\theme\view.js:123:48)
    at Theme._View.View.View.render (F:\hexo\node_modules\hexo\lib\theme\view.js:29:15)
    at F:\hexo\node_modules\hexo\lib\hexo\index.js:349:21
    at tryCatcher (F:\hexo\node_modules\bluebird\js\release\util.js:16:23)
    at F:\hexo\node_modules\bluebird\js\release\method.js:15:34
    at RouteStream._read (F:\hexo\node_modules\hexo\lib\hexo\router.js:123:3)
    at RouteStream.Readable.read (_stream_readable.js:481:10)
    at resume_ (_stream_readable.js:960:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)

It just happens sometimes QAQ

『Site』view count

is it any way to get page View for root (path: "/" ) or any way to get whole『Site』view count?

I am using next-theme, it is swig, how could i use your code into it?

And could you please help me to find the right swig file i need to change? Thank you.

Before you submit your issue, please tell me your environment info. Also , if you occur ERROR Plugin load failed: , please reinstall hexo and npm as follows, for example.

$ nvm install v6.10.1
$ nvm use v6.10.1
$ npm install -g npm
$ npm install -g hexo-cli
$ hexo init hexo6101
$ cd hexo6101
$ npm install
$ npm install hexo-related-popular-posts --save

Also , if you occur DTraceProviderBindings.node error , please see issue#1.
#1

For BUG

  • BUG description
  • the way to reproduce
  • log with hexo

For question

just push question

For feature request

just push feature request

Environment Info

OS version

  • OSX (please tell me version)
  • Windows (please tell me version)
  • Linux (please tell me version)

Node version(node -v)

v6.10.1

Your site _config.yml

# Hexo Configuration
...

Your theme _config.yml

# Hexo Configuration
...

Plugin version(npm ls --depth 0)

[email protected] ~/hexo-vanilla-site
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

Google analytics configuration not clear or out-of-date

Seems this plugin needs the following configuration setup in _config, while some fields seem a bit out-of-date (maybe just because I am not that familiar with the google API, but the dependency ga-analytics seems hasn't been updated for quite a while). Would that be possible to either update the dependency and configuration, or add some detailed guild on how to obtain the following fields? Thanks!

popularPosts: 
  googleAnalyticsAPI: 
    clientId:  ******. apps.googleusercontent.com            # google analytics API Service account acquired with 
    serviceEmail:  *****@developer.gserviceaccount.com      # E-mail address obtained with the google analytics API 
    key:  /hexo-project-root/path/to/google-services.pem    # With the google analytics API Path of acquired pem file 
    viewId:  12345678                                       # View ID tied with google analytics 
    dateRange:  30                                          # (Optional) Time period (days) to count PV number Default is 30 
    expiresDate:  10 

Unhandled rejection TypeError: Cannot read property 'path' of undefined

gaData[i] seems to be undefined in the following line of code:

if (gaData[i].path == post.path) {

I'm using Hexo 3.8.0, NexT 6.7.0, but this bug has been around for a quite a lot of other versions. As it doesn't impact the actual deployment, take your time to investigate, and happy new year.

Full error message
Unhandled rejection TypeError: Cannot read property 'path' of undefined
    at Promise (node_modules/hexo-related-popular-posts/lib/collector.js:205:31)
    at new Promise (<anonymous>)
    at checkUpdate (node_modules/hexo-related-popular-posts/lib/collector.js:201:12)
    at module.exports (node_modules/hexo-related-popular-posts/lib/collector.js:8:12)
    at Hexo.hexo.extend.filter.register (node_modules/hexo-related-popular-posts/index.js:168:38)
    at Hexo.tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
    at Hexo.<anonymous> (node_modules/bluebird/js/release/method.js:15:34)
    at Promise.each.filter (node_modules/hexo/lib/extend/filter.js:63:65)
    at tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
    at Object.gotValue (node_modules/bluebird/js/release/reduce.js:155:18)
    at Object.gotAccum (node_modules/bluebird/js/release/reduce.js:144:25)
    at Object.tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (node_modules/bluebird/js/release/promise.js:693:18)
    at Async._drainQueue (node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues (node_modules/bluebird/js/release/async.js:17:14)
    at processImmediate (timers.js:632:19)

Should you need any other information to help you debug this problem, please let me know.

Cannot read property 'tags' of undefined

I'm trying to use this with the Hexo Theme Phantom but this error keeps appearing.

Unhandled rejection TypeError: /Users/jackiechong/Garden/business/test/themes/phantom/layout/post.ejs:1
 >> 1| <%- partial('_partial/article-full', {item: page}) %>

/Users/jackiechong/Garden/business/test/themes/phantom/layout/_partial/article-full.ejs:22
    20| <%- item.content %>
    21|
 >> 22| <%- popular_posts() %>
    23|
    24| <!-- Tags -->
    25| <%- partial('article-tags') %>

Cannot read property 'tags' of undefined
    at Object.module.exports.getList (/Users/jackiechong/Garden/business/test/node_modules/hexo-related-popular-posts/lib/list-json.js:129:20)
    at module.exports (/Users/jackiechong/Garden/business/test/node_modules/hexo-related-popular-posts/lib/helper.js:7:31)
    at Object.<anonymous> (/Users/jackiechong/Garden/business/test/node_modules/hexo-related-popular-posts/index.js:170:32)
    at Object.wrapper [as popular_posts] (/Users/jackiechong/Garden/business/test/node_modules/lodash/lodash.js:4968:19)
    at eval (eval at compile (/Users/jackiechong/Garden/business/test/node_modules/ejs/lib/ejs.js:549:12), <anonymous>:50:17)
    at returnedFn (/Users/jackiechong/Garden/business/test/node_modules/ejs/lib/ejs.js:580:17)
    at Theme._View.View._compiledSync (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/theme/view.js:122:20)
    at Theme._View.View.View.renderSync (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/theme/view.js:50:21)
    at Object.partial (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/plugins/helper/partial.js:42:17)
    at Object.wrapper [as partial] (/Users/jackiechong/Garden/business/test/node_modules/lodash/lodash.js:4968:19)
    at eval (eval at compile (/Users/jackiechong/Garden/business/test/node_modules/ejs/lib/ejs.js:549:12), <anonymous>:9:17)
    at returnedFn (/Users/jackiechong/Garden/business/test/node_modules/ejs/lib/ejs.js:580:17)
    at Theme._View.View._compiled (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/theme/view.js:127:30)
    at Theme._View.View.View.render (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/theme/view.js:29:15)
    at /Users/jackiechong/Garden/business/test/node_modules/hexo/lib/hexo/index.js:390:25
    at tryCatcher (/Users/jackiechong/Garden/business/test/node_modules/bluebird/js/release/util.js:16:23)
    at /Users/jackiechong/Garden/business/test/node_modules/bluebird/js/release/method.js:15:34
    at RouteStream._read (/Users/jackiechong/Garden/business/test/node_modules/hexo/lib/hexo/router.js:134:3)
    at RouteStream.Readable.read (_stream_readable.js:445:10)
    at resume_ (_stream_readable.js:825:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Is there something I'm missing or am I placing it in the wrong file? Can't find anything on the error.

one problem with Next theme

I am using Next theme with your plugin and it works like a charm with your method. But the problem is the popular posts almost show up on the homepage followed with every singe post. How can I remove it? here is my blog: https://www.cnvar.cn/

@myjeshurun
I tried this plugin in the hexo-theme-next. hexo-theme-next and Swig seems to be a special case. In the new plug-in version, it have supported to hexo-theme-next. Please update this plugin and add the following code to the template.

  1. Update version
$ npm uninstall hexo-related-popular-posts --save
$ npm install hexo-related-popular-posts --save
  1. Add code

For example , Add popular_posts( {} , post ) to the following location.
https://github.com/iissnan/hexo-theme-next/blob/master/layout/_macro/post.swig#L313

...
</div>

{{ popular_posts( {} , post ) }}

{#####################}
{### END POST BODY ###}
{#####################}
...

Please tell me whether this issue can be solved .

Originally posted by @tea3 in #4 (comment)

isImageとisExcerptはfrontmatterで設定してもjsonでは取得できない

有用なプラグインありがとうございます。使わせていただいています。
ちょっと質問なんですが、popular_posts_json()が返している
{ date: '', img: '', title: 'Mentality to fight against loneliness and depression', path: '/en/lifestyle/mentality-to-fight-against-loneliness-and-depression/', excerpt: '' }
のような戻り値ですがimgとexcerptは空っぽです。
markdownファイルのfrontmatterでimgとexcerptを定義するようにしていますがここの戻り値ではゲットできないです。
どういう定義しかたでimgとexcerptが取得できるのですか?

list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually

Before you submit your issue, please tell me your environment info. Also , if you occur ERROR Plugin load failed: , please reinstall hexo and npm as follows, for example.

$ nvm install v6.10.1
$ nvm use v6.10.1
$ npm install -g npm
$ npm install -g hexo-cli
$ hexo init hexo6101
$ cd hexo6101
$ npm install
$ npm install hexo-related-popular-posts --save

Also , if you occur DTraceProviderBindings.node error , please see issue#1.
#1

For BUG

  • BUG description
  • the way to reproduce
  • log with hexo

For question

just push question

For feature request

just push feature request

Environment Info

OS version

  • OSX (please tell me version)
  • Windows (please tell me version)
  • Linux (please tell me version)

Node version(node -v)

v6.10.1

Your site _config.yml

# Hexo Configuration
...

Your theme _config.yml

# Hexo Configuration
...

Plugin version(npm ls --depth 0)

[email protected] ~/hexo-vanilla-site
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

[23:31:46.396] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.500] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.508] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.515] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.519] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.540] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined                                                                                                                [23:31:46.553] [hexo-related-popular-posts] error:  (list-json.js)The theme you are using doesn't support "post" data. P lease set the data manually. (e.g. <%- popular_posts( {} , post ) %> )                                                   For detail , please see this url.                                                                                        https://github.com/tea3/hexo-related-popular-posts/issues?utf8=%E2%9C%93&q=Cannot%20read%20property%20%27tags%27%20of%20 undefined
--


how to solve this problem?

TypeError: Cannot read property 'length' of undefined

For BUG

This plugin doesn't work after I upgrade hexo to 4.2.0

$ hexo clean && hexo g && gulp
INFO  Deleted database.
INFO  Start processing
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
TypeError: Cannot read property 'length' of undefined
    at module.exports (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\hexo-related-popular-posts\lib\cache.js:26:77)
    at Hexo.<anonymous> (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\hexo-related-popular-posts\index.js:171:34)
    at Hexo.tryCatcher (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\util.js:16:23)
    at Hexo.<anonymous> (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\method.js:15:34)
    at C:\Users\maple3142\Documents\GitHub\Blog\node_modules\hexo\lib\extend\filter.js:62:52
    at tryCatcher (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\util.js:16:23)
    at Object.gotValue (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\reduce.js:166:18)
    at Object.gotAccum (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\reduce.js:155:25)
    at Object.tryCatcher (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\promise.js:547:31)
    at Promise._settlePromise (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\promise.js:604:18)
    at Promise._settlePromiseCtx (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\promise.js:641:10)
    at _drainQueueStep (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\async.js:97:12)
    at _drainQueue (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\async.js:86:9)
    at Async._drainQueues (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (C:\Users\maple3142\Documents\GitHub\Blog\node_modules\bluebird\js\release\async.js:15:14)
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

For question

just push question

For feature request

just push feature request

Environment Info

OS version

  • Windows 10 x64 (1909)

Node version(node -v)

v12.14.0

Your site _config.yml

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: 廢文集中區
subtitle:
description: >
  maple3142 的網誌,廢文集中區。
  通常和資訊方面有關,內容主要以 javascript 為主。
author: maple3142
language:
- zh-TW
- zh-tw
- en
timezone: Asia/Taipei

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://blog.maple3142.net/
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
- js/*

# Writing
new_post_name: :title.md # File name of new posts
auto_spacing: true
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: true
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: false
  tab_replace: true
  
# Mathjax
mathjax:
  single_dollars: true
  cjk_char_width: 16
  svg: true

# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ''
  per_page: 5
  order_by: -date
  
# Category & Tag
default_category: 未分類
category_map:
tag_map:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 5
pagination_dir: page

archive_generator:
  per_page: 10
  yearly: true
  monthly: true

tag_generator:
  per_page: 10

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type:

# Search
search:
  path: search.xml
  field: all
  format: html
  limit: 10000

# Rss
feed:
  type: atom
  path: atom.xml
  limit: 20
  hub:
  content:
  content_limit: 300
  content_limit_delim: ' '

# SiteMap
sitemap:
  path: sitemap.xml

# Restful API
restful:
  site: false
  posts_size: 0
  posts_props:
    title: true
    slug: true
    date: true
    updated: true
    comments: false
    path: true
    excerpt: false
    cover: false
    content: false
    keywords: tag
    categories: true
    tags: true
  categories: true
  tags: true
  post: true
  pages: false

# Robots.txt
robotstxt:
  useragent: "*"
  disallow:
    - /js/
    - /css/
    - /lib/
    - /api/
  allow:
    - /
  sitemap: https://blog.maple3142.net/sitemap.xml

Your theme _config.yml

# ---------------------------------------------------------------
# Theme Core Configuration Settings
# See: https://theme-next.org/docs/theme-settings/
# ---------------------------------------------------------------

# If false, merge configs from `_data/next.yml` into default configuration (rewrite).
# If true, will fully override default configuration by options from `_data/next.yml` (override). Only for NexT settings.
# And if true, all config from default NexT `_config.yml` must be copied into `next.yml`. Use if you know what you are doing.
# Useful if you want to comment some options from NexT `_config.yml` by `next.yml` without editing default config.
override: false

# Console reminder if new version released.
reminder: false

# Allow to cache content generation. Introduced in NexT v6.0.0.
cache:
  enable: true

# Remove unnecessary files after hexo generate.
minify: false

# Define custom file paths.
# Create your custom files in site directory `source/_data` and uncomment needed files below.
custom_file_path:
  #head: source/_data/head.swig
  #header: source/_data/header.swig
  #sidebar: source/_data/sidebar.swig
  #postMeta: source/_data/post-meta.swig
  #postBodyEnd: source/_data/post-body-end.swig
  #footer: source/_data/footer.swig
  #bodyEnd: source/_data/body-end.swig
  #variable: source/_data/variables.styl
  #mixin: source/_data/mixins.styl
  #style: source/_data/styles.styl


# ---------------------------------------------------------------
# Site Information Settings
# See: https://theme-next.org/docs/getting-started/
# ---------------------------------------------------------------

favicon:
  small: /images/favicon-16x16-next.png
  medium: /images/favicon-32x32-next.png
  apple_touch_icon: /images/apple-touch-icon-next.png
  safari_pinned_tab: /images/logo.svg
  #android_manifest: /images/manifest.json
  #ms_browserconfig: /images/browserconfig.xml

# hexo-generator-feed required for rss support. Leave rss as blank to use site's feed link.
# Set rss to false to disable feed link. Set rss to specific value if you have burned your feed already.
rss:

footer:
  # Specify the date when the site was setup. If not defined, current year will be used.
  #since: 2015

  # Icon between year and copyright info.
  icon:
    # Icon name in Font Awesome. See: https://fontawesome.com/v4.7.0/icons/
    # `heart` is recommended with animation in red (#ff0000).
    name: user
    # If you want to animate the icon, set it to true.
    animated: false
    # Change the color of icon, using Hex Code.
    color: "#808080"

  # If not defined, `author` from Hexo `_config.yml` will be used.
  copyright:

  powered:
    # Hexo link (Powered by Hexo).
    enable: true
    # Version info of Hexo after Hexo link (vX.X.X).
    version: true

  theme:
    # Theme & scheme info link (Theme - NexT.scheme).
    enable: true
    # Version info of NexT after scheme info (vX.X.X).
    version: true

  # Beian ICP and gongan information for Chinese users. See: http://www.beian.miit.gov.cn, http://www.beian.gov.cn
  beian:
    enable: false
    icp:
    # The digit in the num of gongan beian.
    gongan_id:
    # The full num of gongan beian.
    gongan_num:
    # The icon for gongan beian. See: http://www.beian.gov.cn/portal/download
    gongan_icon_url:

# Creative Commons 4.0 International License.
# See: https://creativecommons.org/share-your-work/licensing-types-examples
# Available values of license: by | by-nc | by-nc-nd | by-nc-sa | by-nd | by-sa | zero
# You can set a language value if you prefer a translated version of CC license, e.g. deed.zh
# CC licenses are available in 39 languages, you can find the specific and correct abbreviation you need on https://creativecommons.org
creative_commons:
  license: by-nc-sa
  sidebar: false
  post: false
  language:


# ---------------------------------------------------------------
# Scheme Settings
# ---------------------------------------------------------------

# Schemes
scheme: Muse
#scheme: Mist
#scheme: Pisces
#scheme: Gemini


# ---------------------------------------------------------------
# Menu Settings
# ---------------------------------------------------------------

# Usage: `Key: /link/ || icon`
# Key is the name of menu item. If the translation for this item is available, the translated text will be loaded, otherwise the Key name will be used. Key is case-senstive.
# Value before `||` delimiter is the target link.
# Value after `||` delimiter is the name of Font Awesome icon. If icon (with or without delimiter) is not specified, question icon will be loaded.
# When running the site in a subdirectory (e.g. domain.tld/blog), remove the leading slash from link value (/archives -> archives).
# External url should start with http:// or https://
menu:
  home: / || home
  #about: /about/ || user
  #tags: /tags/ || tags
  #categories: /categories/ || th
  archives: /archives/ || archive
  #schedule: /schedule/ || calendar
  #sitemap: /sitemap.xml || sitemap
  #commonweal: /404/ || heartbeat

# Enable / Disable menu icons / item badges.
menu_settings:
  icons: true
  badges: false


# ---------------------------------------------------------------
# Sidebar Settings
# See: https://theme-next.org/docs/theme-settings/sidebar
# ---------------------------------------------------------------

sidebar:
  # Sidebar Position.
  position: left
  #position: right

  # Manual define the sidebar width. If commented, will be default for:
  # Muse | Mist: 320
  # Pisces | Gemini: 240
  #width: 300

  # Sidebar Display (only for Muse | Mist), available values:
  #  - post    expand on posts automatically. Default.
  #  - always  expand for all pages automatically.
  #  - hide    expand only when click on the sidebar toggle icon.
  #  - remove  totally remove sidebar including sidebar toggle.
  display: post

  # Sidebar offset from top menubar in pixels (only for Pisces | Gemini).
  offset: 12
  # Enable sidebar on narrow view (only for Muse | Mist).
  onmobile: false

# Sidebar Avatar
avatar:
  # In theme directory (source/images): /images/avatar.gif
  # In site directory (source/uploads): /uploads/avatar.gif
  # You can also use other linking images.
  url: #/images/avatar.gif
  # If true, the avatar would be dispalyed in circle.
  rounded: false
  # If true, the avatar would be rotated with the cursor.
  rotated: false

# Posts / Categories / Tags in sidebar.
site_state: true

# Social Links
# Usage: `Key: permalink || icon`
# Key is the link label showing to end users.
# Value before `||` delimiter is the target permalink.
# Value after `||` delimiter is the name of Font Awesome icon. If icon (with or without delimiter) is not specified, globe icon will be loaded.
social:
  #GitHub: https://github.com/yourname || github
  #E-Mail: mailto:[email protected] || envelope
  #Weibo: https://weibo.com/yourname || weibo
  #Google: https://plus.google.com/yourname || google
  #Twitter: https://twitter.com/yourname || twitter
  #FB Page: https://www.facebook.com/yourname || facebook
  #VK Group: https://vk.com/yourname || vk
  #StackOverflow: https://stackoverflow.com/yourname || stack-overflow
  #YouTube: https://youtube.com/yourname || youtube
  #Instagram: https://instagram.com/yourname || instagram
  #Skype: skype:yourname?call|chat || skype

social_icons:
  enable: true
  icons_only: false
  transition: false

# Blog rolls
links_settings:
  icon: link
  title: Links
  # Available values: block | inline
  layout: block

links:
  #Title: http://example.com

# Table Of Contents in the Sidebar
toc:
  enable: true
  # Automatically add list number to toc.
  number: true
  # If true, all words will placed on next lines if header width longer then sidebar width.
  wrap: false
  # If true, all level of TOC in a post will be displayed, rather than the activated part of it.
  expand_all: false
  # Maximum heading depth of generated toc. You can set it in one post through `toc_max_depth` in Front-matter.
  max_depth: 6

# A button to open designated chat widget in sidebar.
# Firstly, you need enable the chat service you want to activate its sidebar button.
chat:
  enable: false
  #service: chatra
  #service: tidio
  icon: comment # Icon name in Font Awesome, set false to disable icon.
  text: Chat # Button text, change it as you wish.


# ---------------------------------------------------------------
# Post Settings
# See: https://theme-next.org/docs/theme-settings/posts
# ---------------------------------------------------------------

# Automatically scroll page to section which is under <!-- more --> mark.
scroll_to_more: true

# Automatically excerpt description in homepage as preamble text.
excerpt_description: true

# Automatically excerpt (Not recommend).
# Use <!-- more --> in the post to control excerpt accurately.
auto_excerpt:
  enable: false
  length: 150

# Read more button
# If true, the read more button would be displayed in excerpt section.
read_more_btn: true

# Post meta display settings
post_meta:
  item_text: true
  created_at: true
  updated_at:
    enable: true
    another_day: true
  categories: true

# Post wordcount display settings
# Dependencies: https://github.com/theme-next/hexo-symbols-count-time
symbols_count_time:
  separated_meta: true
  item_text_post: true
  item_text_total: false
  awl: 4
  wpm: 275

# Use icon instead of the symbol # to indicate the tag at the bottom of the post
tag_icon: false

# Wechat Subscriber
wechat_subscriber:
  enable: false
  qcode: #/uploads/wechat-qcode.jpg
  #description: Subscribe to my blog by scanning my public wechat account.

# Reward (Donate)
reward_settings:
  # If true, reward would be displayed in every article by default.
  # You can show or hide reward in a specific article throuth `reward: true | false` in Front-matter.
  enable: false
  animation: false
  #comment: Donate comment here.

reward:
  #wechatpay: /images/wechatpay.png
  #alipay: /images/alipay.png
  #bitcoin: /images/bitcoin.png

# Related popular posts
# Dependencies: https://github.com/tea3/hexo-related-popular-posts
related_posts:
  enable: false
  title: # Custom header, leave empty to use the default one
  display_in_home: false
  params:
    maxCount: 5
    #PPMixingRate: 0.0
    #isDate: false
    #isImage: false
    #isExcerpt: false

# Post edit
# Dependencies: https://github.com/hexojs/hexo-deployer-git
post_edit:
  enable: false
  url: https://github.com/user-name/repo-name/tree/branch-name/subdirectory-name # Link for view source
  #url: https://github.com/user-name/repo-name/edit/branch-name/subdirectory-name # Link for fork & edit


# ---------------------------------------------------------------
# Custom Page Settings
# See: https://theme-next.org/docs/theme-settings/custom-pages
# ---------------------------------------------------------------

# Enable "cheers" for archive page.
cheers: true

# TagCloud settings for tags page.
tagcloud:
  # All values below are same as default, change them by yourself
  min: 12 # Minimun font size in px
  max: 30 # Maxium font size in px
  start: "#ccc" # Start color (hex, rgba, hsla or color keywords)
  end: "#111" # End color (hex, rgba, hsla or color keywords)
  amount: 200 # Amount of tags, change it if you have more than 200 tags

# Google Calendar
# Share your recent schedule to others via calendar page.
# API Documentation: https://developers.google.com/google-apps/calendar/v3/reference/events/list
# To get api_key: https://console.developers.google.com
# Create & manage a public Google calendar: https://support.google.com/calendar/answer/37083
calendar:
  calendar_id: <required> # Your Google account E-Mail
  api_key: <required>
  orderBy: startTime
  offsetMax: 24 # Time Range
  offsetMin: 4 # Time Range
  showDeleted: false
  singleEvents: true
  maxResults: 250


# ---------------------------------------------------------------
# Misc Theme Settings
# ---------------------------------------------------------------

# Set the text alignment in posts / pages.
text_align:
  # Available values: start | end | left | right | center | justify | justify-all | match-parent
  desktop: justify
  mobile: justify

# Reduce padding / margin indents on devices with narrow width.
mobile_layout_economy: false

# Android Chrome header panel color ($brand-bg / $headband-bg => $black-deep).
android_chrome_color: "#222"

# Hide sticky headers and color the menu bar on Safari (iOS / macOS).
safari_rainbow: false

# Optimize the display of scrollbars on webkit based browsers.
custom_scrollbar: false

# Custom Logo (Do not support scheme Mist)
custom_logo: #/uploads/custom-logo.jpg

codeblock:
  # Code Highlight theme
  # Available values: normal | night | night eighties | night blue | night bright | solarized | solarized dark | galactic
  # See: https://github.com/chriskempson/tomorrow-theme
  highlight_theme: normal
  # Add copy button on codeblock
  copy_button:
    enable: false
    # Show text copy result.
    show_result: false
    # Available values: default | flat | mac
    style:

back2top:
  enable: true
  # Back to top in sidebar.
  sidebar: false
  # Scroll percent label in b2t button.
  scrollpercent: false

# Reading progress bar
reading_progress:
  enable: false
  # Available values: top | bottom
  position: top
  color: "#37c6c0"
  height: 2px

# Bookmark Support
bookmark:
  enable: false
  # Customize the color of the bookmark.
  color: "#222"
  # If auto, save the reading progress when closing the page or clicking the bookmark-icon.
  # If manual, only save it by clicking the bookmark-icon.
  save: auto

# `Follow me on GitHub` banner in the top-right corner.
github_banner:
  enable: false
  permalink: https://github.com/yourname
  title: Follow me on GitHub


# ---------------------------------------------------------------
# Font Settings
# See: https://theme-next.org/docs/theme-settings/#Fonts-Customization
# ---------------------------------------------------------------
# Find fonts on Google Fonts (https://www.google.com/fonts)
# All fonts set here will have the following styles:
#   light | light italic | normal | normal italic | bold | bold italic
# Be aware that setting too much fonts will cause site running slowly
# ---------------------------------------------------------------
# To avoid space between header and sidebar in scheme Pisces / Gemini, Web Safe fonts are recommended for `global` (and `title`):
# Arial | Tahoma | Helvetica | Times New Roman | Courier New | Verdana | Georgia | Palatino | Garamond | Comic Sans MS | Trebuchet MS
# ---------------------------------------------------------------

font:
  # Use custom fonts families or not.
  # Depended options: `external` and `family`.
  enable: false

  # Uri of fonts host, e.g. //fonts.googleapis.com (Default).
  host:

  # Font options:
  # `external: true` will load this font family from `host` above.
  # `family: Times New Roman`. Without any quotes.
  # `size: x.x`. Use `em` as unit. Default: 1 (16px)

  # Global font settings used for all elements inside <body>.
  global:
    external: true
    family: Lato
    size:

  # Font settings for site title (.site-title).
  title:
    external: true
    family:
    size:

  # Font settings for headlines (<h1> to <h6>).
  headings:
    external: true
    family:
    size:

  # Font settings for posts (.post-body).
  posts:
    external: true
    family:

  # Font settings for <code> and code blocks.
  codes:
    external: true
    family:


# ---------------------------------------------------------------
# SEO Settings
# ---------------------------------------------------------------

# Disable Baidu transformation on mobile devices.
disable_baidu_transformation: false

# Set a canonical link tag in your hexo, you could use it for your SEO of blog.
# See: https://support.google.com/webmasters/answer/139066
# Remember to set up your URL in Hexo `_config.yml` (e.g. url: http://yourdomain.com)
canonical: true

# Change headers hierarchy on site-subtitle (will be main site description) and on all post / page titles for better SEO-optimization.
seo: false

# If true, will add site-subtitle to index page.
# Remember to set up your site-subtitle in Hexo `_config.yml` (e.g. subtitle: Subtitle)
index_with_subtitle: false

# Automatically add external URL with Base64 encrypt & decrypt.
exturl: false

# Google Webmaster tools verification.
# See: https://www.google.com/webmasters
google_site_verification:

# Bing Webmaster tools verification.
# See: https://www.bing.com/webmaster
bing_site_verification:

# Yandex Webmaster tools verification.
# See: https://webmaster.yandex.ru
yandex_site_verification:

# Baidu Webmaster tools verification.
# See: https://ziyuan.baidu.com/site
baidu_site_verification:

# Enable baidu push so that the blog will push the url to baidu automatically which is very helpful for SEO.
baidu_push: false


# ---------------------------------------------------------------
# Third Party Plugins & Services Settings
# See: https://theme-next.org/docs/third-party-services/
# You may need to install dependencies or set CDN URLs in `vendors`
# There are two different CDN providers by default:
#   - jsDelivr (cdn.jsdelivr.net), works everywhere even in China
#   - CDNJS (cdnjs.cloudflare.com), provided by cloudflare
# ---------------------------------------------------------------

# Math Formulas Render Support
math:
  enable: false

  # Default (true) will load mathjax / katex script on demand.
  # That is it only render those page which has `mathjax: true` in Front-matter.
  # If you set it to false, it will load mathjax / katex srcipt EVERY PAGE.
  per_page: true

  # hexo-renderer-pandoc (or hexo-renderer-kramed) required for full MathJax support.
  mathjax:
    enable: false
    # See: https://mhchem.github.io/MathJax-mhchem/
    mhchem: false

  # hexo-renderer-markdown-it-plus (or hexo-renderer-markdown-it with markdown-it-katex plugin) required for full Katex support.
  katex:
    enable: false
    # See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
    copy_tex: false

# Easily enable fast Ajax navigation on your website.
# Dependencies: https://github.com/theme-next/theme-next-pjax
# For moreinformation: https://github.com/MoOx/pjax
pjax: false

# FancyBox is a tool that offers a nice and elegant way to add zooming functionality for images.
# For more information: https://fancyapps.com/fancybox
fancybox: false

# A JavaScript library for zooming images like Medium.
# Do not enable both `fancybox` and `mediumzoom`.
# For more information: https://github.com/francoischalifour/medium-zoom
mediumzoom: false

# Vanilla JavaScript plugin for lazyloading images.
# For more information: https://github.com/ApoorvSaxena/lozad.js
lazyload: false

# Pangu Support
# For more information: https://github.com/vinta/pangu.js
pangu: false

# Quicklink Support
# For more information: https://github.com/GoogleChromeLabs/quicklink
quicklink:
  enable: false

  # Quicklink (quicklink.umd.js script) is loaded on demand.
  # Add `quicklink: true` in Front-matter of the page or post you need.
  # Home page and archive page can be controlled through home and archive options below.
  home: true
  archive: true

  # Default (true) will initialize quicklink after the load event fires.
  delay: true
  # Custom a time in milliseconds by which the browser must execute prefetching.
  timeout: 3000
  # Default (true) will enable fetch() or falls back to XHR.
  priority: true

  # For more flexibility you can add some patterns (RegExp, Function, or Array) to ignores.
  # See: https://github.com/GoogleChromeLabs/quicklink#custom-ignore-patterns
  ignores:


# ---------------------------------------------------------------
# Comments Settings
# See: https://theme-next.org/docs/third-party-services/comments
# ---------------------------------------------------------------

# Multiple Comment System Support
comments:
  # Available values: tabs | buttons
  style: tabs
  # Choose a comment system to be displayed by default.
  # Available values: changyan | disqus | disqusjs | facebook_comments_plugin | gitalk | livere | valine | vkontakte
  active:
  # Setting `true` means remembering the comment system selected by the visitor.
  storage: true
  # Modify texts or order for any navs, here are some examples.
  nav:
    #disqus:
    #  text: Load Disqus
    #  order: -1
    #facebook_comments_plugin:
    #  text: <i class="fa fa-facebook-official" aria-hidden="true"></i> facebook
    #gitalk:
    #  order: -2

# Disqus
disqus:
  enable: false
  shortname:
  count: true
  lazyload: false
  #post_meta_order: 0

# DisqusJS
# Alternative Disqus - Render comment component using Disqus API.
# Demo: https://suka.js.org/DisqusJS/
# For more information: https://github.com/SukkaW/DisqusJS
disqusjs:
  enable: false
  # API Endpoint of Disqus API (https://disqus.com/api/).
  # Leave api empty if you are able to connect to Disqus API.
  # Otherwise you need a reverse proxy for Disqus API.
  # For example:
  # api: https://disqus.skk.moe/disqus/
  api:
  apikey: # Register new application from https://disqus.com/api/applications/
  shortname: # See: https://disqus.com/admin/settings/general/

# Changyan
changyan:
  enable: false
  appid:
  appkey:
  #post_meta_order: 0

# Valine
# You can get your appid and appkey from https://leancloud.cn
# For more information: https://valine.js.org, https://github.com/xCss/Valine
valine:
  enable: false # When enable is set to be true, leancloud_visitors is recommended to be closed for the re-initialization problem within different leancloud adk version
  appid: # Your leancloud application appid
  appkey: # Your leancloud application appkey
  notify: false # Mail notifier. See: https://github.com/xCss/Valine/wiki
  verify: false # Verification code
  placeholder: Just go go # Comment box placeholder
  avatar: mm # Gravatar style
  guest_info: nick,mail,link # Custom comment header
  pageSize: 10 # Pagination size
  language: # Language, available values: en, zh-cn
  visitor: false # leancloud-counter-security is not supported for now. When visitor is set to be true, appid and appkey are recommended to be the same as leancloud_visitors' for counter compatibility. Article reading statistic https://valine.js.org/visitor.html
  comment_count: true # If false, comment count will only be displayed in post page, not in home page
  recordIP: false # Whether to record the commenter IP
  serverURLs: # When the custom domain name is enabled, fill it in here (it will be detected automatically by default, no need to fill in)
  #post_meta_order: 0

# LiveRe comments system
# You can get your uid from https://livere.com/insight/myCode (General web site)
livere_uid: # <your_uid>

# Gitalk
# Demo: https://gitalk.github.io
# For more information: https://github.com/gitalk/gitalk
gitalk:
  enable: false
  github_id: # GitHub repo owner
  repo: # Repository name to store issues
  client_id: # GitHub Application Client ID
  client_secret: # GitHub Application Client Secret
  admin_user: # GitHub repo owner and collaborators, only these guys can initialize gitHub issues
  distraction_free_mode: true # Facebook-like distraction free mode
  # Gitalk's display language depends on user's browser or system environment
  # If you want everyone visiting your site to see a uniform language, you can set a force language value
  # Available values: en | es-ES | fr | ru | zh-CN | zh-TW
  language:


# ---------------------------------------------------------------
# Post Widgets & Content Sharing Services
# See: https://theme-next.org/docs/third-party-services/post-widgets
# ---------------------------------------------------------------

# Facebook SDK Support
facebook_sdk:
  enable:       false
  app_id:       # <app_id>
  fb_admin:     # <user_id>
  like_button:  # true
  webmaster:    # true

# Facebook comments plugin
# This plugin depends on Facebook SDK.
# If facebook_sdk.enable is false, Facebook comments plugin is unavailable.
facebook_comments_plugin:
  enable:       false
  num_of_posts: 10    # Minimum posts num is 1
  width:        100%  # Default width is 550px
  scheme:       light # Default scheme is light (light or dark)
  #post_meta_order: 0

# VKontakte API Support
# To get your AppID visit https://vk.com/editapp?act=create
vkontakte_api:
  enable:       false
  app_id:       # <app_id>
  like:         true
  comments:     true
  num_of_posts: 10

# Star rating support to each article.
# To get your ID visit https://widgetpack.com
rating:
  enable: false
  id:     # <app_id>
  color:  fc6423

# AddThis Share. See: https://www.addthis.com
# Go to https://www.addthis.com/dashboard to customize your tools.
add_this_id:


# ---------------------------------------------------------------
# Statistics and Analytics
# See: https://theme-next.org/docs/third-party-services/statistics-and-analytics
# ---------------------------------------------------------------

# Baidu Analytics
baidu_analytics: # <app_id>

# Growingio Analytics
# Copyright 2015-2018 GrowingIO, Inc. More info available at https://www.growingio.com
growingio_analytics: # <project_id>

# Google Analytics
google_analytics:
  tracking_id: # <app_id>
  localhost_ignored: true

# CNZZ count
cnzz_siteid:

# Application Insights
# See: https://azure.microsoft.com/en-us/services/application-insights
application_insights:

# Show number of visitors to each article.
# You can visit https://leancloud.cn to get AppID and AppKey.
leancloud_visitors:
  enable: false
  app_id: # <app_id>
  app_key: # <app_key>
  # Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security
  # If you don't care about security in leancloud counter and just want to use it directly
  # (without hexo-leancloud-counter-security plugin), set `security` to `false`.
  security: true
  betterPerformance: false

# Another tool to show number of visitors to each article.
# Visit https://console.firebase.google.com/u/0/ to get apiKey and projectId.
# Visit https://firebase.google.com/docs/firestore/ to get more information about firestore.
firestore:
  enable: false
  collection: articles # Required, a string collection name to access firestore database
  apiKey: # Required
  projectId: # Required

# Show Views / Visitors of the website / page with busuanzi.
# Get more information on http://ibruce.info/2015/04/04/busuanzi
busuanzi_count:
  enable: false
  total_visitors: true
  total_visitors_icon: user
  total_views: true
  total_views_icon: eye
  post_views: true
  post_views_icon: eye

# Tencent analytics
tencent_analytics: # <app_id>

# Tencent MTA
tencent_mta: # <app_id>


# ---------------------------------------------------------------
# Search Services
# See: https://theme-next.org/docs/third-party-services/search-services
# ---------------------------------------------------------------

# Algolia Search
# For more information: https://www.algolia.com
algolia_search:
  enable: false
  hits:
    per_page: 10
  labels:
    input_placeholder: Search for Posts
    hits_empty: "We didn't find any results for the search: ${query}"
    hits_stats: "${hits} results found in ${time} ms"

# Local Search
# Dependencies: https://github.com/wzpan/hexo-generator-search
local_search:
  enable: false
  # If auto, trigger search by changing input.
  # If manual, trigger search by pressing enter key or search button.
  trigger: auto
  # Show top n results per article, show all results by setting to -1
  top_n_per_article: 1
  # Unescape html strings to the readable one.
  unescape: false
  # Preload the search data when the page loads.
  preload: false

# Swiftype Search API Key
swiftype_key:


# ---------------------------------------------------------------
# Chat Services
# See: https://theme-next.org/docs/third-party-services/chat-services
# ---------------------------------------------------------------

# Chatra Support
# See: https://chatra.io
# Dashboard: https://app.chatra.io/settings/general
chatra:
  enable: false
  async: true
  id: # Visit Dashboard to get your ChatraID
  #embed: # Unfinished experimental feature for developers. See: https://chatra.io/help/api/#injectto

# Tidio Support
# See: https://www.tidiochat.com
# Dashboard: https://www.tidiochat.com/panel/dashboard
tidio:
  enable: false
  key: # Public Key, get it from dashboard. See: https://www.tidiochat.com/panel/settings/developer


# ---------------------------------------------------------------
# Tags Settings
# See: https://theme-next.org/docs/tag-plugins/
# ---------------------------------------------------------------

# Note tag (bs-callout)
note:
  # Note tag style values:
  #  - simple    bs-callout old alert style. Default.
  #  - modern    bs-callout new (v2-v3) alert style.
  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.
  #  - disabled  disable all CSS styles import of note tag.
  style: simple
  icons: false
  border_radius: 3
  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
  # Offset also applied to label tag variables. This option can work with disabled note tag.
  light_bg_offset: 0

# Tabs tag
tabs:
  transition:
    tabs: false
    labels: true
  border_radius: 0

# PDF tag, requires two plugins: pdfObject and pdf.js
# pdfObject will try to load pdf files natively, if failed, pdf.js will be used.
# The following `cdn` setting is only for pdfObject, because cdn for pdf.js might be blocked by CORS policy.
# So, you must install the dependency of pdf.js if you want to use pdf tag and make it available to all browsers.
# See: https://github.com/theme-next/theme-next-pdf
pdf:
  enable: false
  # Default height
  height: 500px

# Mermaid tag
mermaid:
  enable: false
  # Available themes: default | dark | forest | neutral
  theme: forest


# ---------------------------------------------------------------
# Animation Settings
# ---------------------------------------------------------------

# Use velocity to animate everything.
# For more information: http://velocityjs.org
motion:
  enable: true
  async: false
  transition:
    # Transition variants:
    # fadeIn | fadeOut | flipXIn | flipXOut | flipYIn | flipYOut | flipBounceXIn | flipBounceXOut | flipBounceYIn | flipBounceYOut
    # swoopIn | swoopOut | whirlIn | whirlOut | shrinkIn | shrinkOut | expandIn | expandOut
    # bounceIn | bounceOut | bounceUpIn | bounceUpOut | bounceDownIn | bounceDownOut | bounceLeftIn | bounceLeftOut | bounceRightIn | bounceRightOut
    # slideUpIn | slideUpOut | slideDownIn | slideDownOut | slideLeftIn | slideLeftOut | slideRightIn | slideRightOut
    # slideUpBigIn | slideUpBigOut | slideDownBigIn | slideDownBigOut | slideLeftBigIn | slideLeftBigOut | slideRightBigIn | slideRightBigOut
    # perspectiveUpIn | perspectiveUpOut | perspectiveDownIn | perspectiveDownOut | perspectiveLeftIn | perspectiveLeftOut | perspectiveRightIn | perspectiveRightOut
    post_block: fadeIn
    post_header: slideDownIn
    post_body: slideDownIn
    coll_header: slideLeftIn
    # Only for Pisces | Gemini.
    sidebar: slideUpIn

# Progress bar in the top during page loading.
# Dependencies: https://github.com/theme-next/theme-next-pace
# For more information: https://github.com/HubSpot/pace
pace:
  enable: false
  # Themes list:
  # big-counter | bounce | barber-shop | center-atom | center-circle | center-radar | center-simple
  # corner-indicator | fill-left | flat-top | flash | loading-bar | mac-osx | material | minimal
  theme: minimal

# JavaScript 3D library.
# Dependencies: https://github.com/theme-next/theme-next-three
three:
  enable: false
  three_waves: false
  canvas_lines: false
  canvas_sphere: false

# Canvas-nest
# Dependencies: https://github.com/theme-next/theme-next-canvas-nest
# For more information: https://github.com/hustcc/canvas-nest.js
canvas_nest:
  enable: false
  onmobile: true # Display on mobile or not
  color: "0,0,255" # RGB values, use `,` to separate
  opacity: 0.5 # The opacity of line: 0~1
  zIndex: -1 # z-index property of the background
  count: 99 # The number of lines

# Canvas-ribbon
# Dependencies: https://github.com/theme-next/theme-next-canvas-ribbon
# For more information: https://github.com/zproo/canvas-ribbon
canvas_ribbon:
  enable: false
  size: 300 # The width of the ribbon
  alpha: 0.6 # The transparency of the ribbon
  zIndex: -1 # The display level of the ribbon


#! ---------------------------------------------------------------
#! DO NOT EDIT THE FOLLOWING SETTINGS
#! UNLESS YOU KNOW WHAT YOU ARE DOING
#! See: https://theme-next.org/docs/advanced-settings
#! ---------------------------------------------------------------

# Script Vendors. Set a CDN address for the vendor you want to customize.
# Be aware that you would better use the same version as internal ones to avoid potential problems.
# Please use the https protocol of CDN files when you enable https on your site.
vendors:
  # Internal path prefix. Please do not edit it.
  _internal: lib

  # Internal version: 3.1.0
  # Example:
  # anime: //cdn.jsdelivr.net/npm/[email protected]/lib/anime.min.js
  anime:

  # Internal version: 4.7.0
  # Example:
  # fontawesome: //cdn.jsdelivr.net/npm/font-awesome@4/css/font-awesome.min.css
  # fontawesome: //cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
  fontawesome:

  # MathJax
  # Example:
  # mathjax: //cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML
  # mathjax: //cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML
  # mhchem: //cdn.jsdelivr.net/npm/mathjax-mhchem@3
  # mhchem: //cdnjs.cloudflare.com/ajax/libs/mathjax-mhchem/3.3.0
  mathjax:
  mhchem:

  # KaTeX
  # Example:
  # katex: //cdn.jsdelivr.net/npm/katex@0/dist/katex.min.css
  # katex: //cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css
  # copy_tex_js: //cdn.jsdelivr.net/npm/katex@0/dist/contrib/copy-tex.min.js
  # copy_tex_css: //cdn.jsdelivr.net/npm/katex@0/dist/contrib/copy-tex.min.css
  katex:
  copy_tex_js:
  copy_tex_css:

  # Internal version: 0.2.8
  # Example:
  # pjax: //cdn.jsdelivr.net/gh/theme-next/theme-next-pjax@0/pjax.min.js
  pjax:

  # FancyBox
  # Example:
  # jquery: //cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js
  # fancybox: //cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js
  # fancybox_css: //cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css
  jquery:
  fancybox:
  fancybox_css:

  # Medium-zoom
  # Example:
  # mediumzoom: //cdn.jsdelivr.net/npm/medium-zoom@1/dist/medium-zoom.min.js
  mediumzoom:

  # Lazyload
  # Example:
  # lazyload: //cdn.jsdelivr.net/npm/lozad@1/dist/lozad.min.js
  # lazyload: //cdnjs.cloudflare.com/ajax/libs/lozad.js/1.9.0/lozad.min.js
  lazyload:

  # Pangu
  # Example:
  # pangu: //cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js
  # pangu: //cdnjs.cloudflare.com/ajax/libs/pangu/4.0.7/pangu.min.js
  pangu:

  # Quicklink
  # Example:
  # quicklink: //cdn.jsdelivr.net/npm/quicklink@1/dist/quicklink.umd.js
  quicklink:

  # DisqusJS
  # Example:
  # disqusjs_js: //cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js
  # disqusjs_css: //cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css
  disqusjs_js:
  disqusjs_css:

  # Valine
  # Example:
  # valine: //cdn.jsdelivr.net/npm/valine@1/dist/Valine.min.js
  # valine: //cdnjs.cloudflare.com/ajax/libs/valine/1.3.4/Valine.min.js
  valine:

  # Gitalk
  # Example:
  # gitalk_js: //cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js
  # gitalk_css: //cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css
  gitalk_js:
  gitalk_css:

  # Algolia Search
  # Example:
  # algolia_instant_js: //cdn.jsdelivr.net/npm/instantsearch.js@2/dist/instantsearch.min.js
  # algolia_instant_css: //cdn.jsdelivr.net/npm/instantsearch.js@2/dist/instantsearch.min.css
  algolia_instant_js:
  algolia_instant_css:

  # PDF
  # Example:
  # pdfobject: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js
  # pdfobject: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js
  pdfobject:

  # Mermaid
  # Example:
  # mermaid: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js
  # mermaid: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js
  mermaid:

  # Internal version: 1.2.1
  # Example:
  # velocity: //cdn.jsdelivr.net/npm/velocity-animate@1/velocity.min.js
  # velocity: //cdnjs.cloudflare.com/ajax/libs/velocity/1.2.1/velocity.min.js
  # velocity_ui: //cdn.jsdelivr.net/npm/velocity-animate@1/velocity.ui.min.js
  # velocity_ui: //cdnjs.cloudflare.com/ajax/libs/velocity/1.2.1/velocity.ui.min.js
  velocity:
  velocity_ui:

  # Internal version: 1.0.2
  # Example:
  # pace: //cdn.jsdelivr.net/npm/pace-js@1/pace.min.js
  # pace: //cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js
  # pace_css: //cdn.jsdelivr.net/npm/pace-js@1/themes/blue/pace-theme-minimal.css
  # pace_css: //cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/themes/blue/pace-theme-minimal.min.css
  pace:
  pace_css:

  # Internal version: 1.0.0
  # Example:
  # three: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@1/three.min.js
  # three_waves: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@1/three-waves.min.js
  # canvas_lines: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@1/canvas_lines.min.js
  # canvas_sphere: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@1/canvas_sphere.min.js
  three:
  three_waves:
  canvas_lines:
  canvas_sphere:

  # Internal version: 1.0.0
  # Example:
  # canvas_nest: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@1/canvas-nest.min.js
  # canvas_nest_nomobile: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@1/canvas-nest-nomobile.min.js
  canvas_nest:
  canvas_nest_nomobile:

  # Internal version: 1.0.0
  # Example:
  # canvas_ribbon: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-ribbon@1/canvas-ribbon.js
  canvas_ribbon:

# Assets
css: css
js: js
images: images

Plugin version(npm ls --depth 0)

Multiple posts could not contain a same tag (TypeError: this.localeData(...).postformat is not a function)

For BUG

  • BUG description
    For example, if I added tag "WSL" to post "CSDN-4" and "CSDN-3" at the same time, the command hexo g would fail. However, if I deleted any of them, the problem disappeared. Besides, if I set
related_posts:
  enable: false

then the problem also disappeared, so I could make sure that it is somehow related to this plugin.

  • the way to reproduce
    Keep related_posts enabled. Add a tag to both two posts. Execute hexo clean and hexo g.
  • log with hexo
    The output of hexo g:
INFO  Validating config
INFO  Start processing
INFO  Files loaded in 1.63 s
ERROR Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 19, Column 14]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\head\head-unique.swig) [Line 10, Column 23]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 3, Column 3]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\index.swig) [Line 6, Column 15]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\sub-menu.swig) [Line 2, Column 29]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\sub-menu.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 5, Column 3]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 9, Column 12]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_macro\post.swig) [Line 214, Column 16]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\post\post-related.swig)
  TypeError: this.localeData(...).postformat is not a function
    at Object._prettifyError (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\lib.js:36:11)
    at D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:561:19
    at Template.root [as rootRenderFunc] (eval at _compile (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:631:18), <anonymous>:43:3)
    at Template.render (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:550:10)
    at D:\Documents\Programming\HexoBlog\themes\next\scripts\renderer.js:32:29
    at _View._compiled (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\theme\view.js:136:50)
    at _View.render (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\theme\view.js:39:17)
    at D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\hexo\index.js:64:21
    at tryCatcher (D:\Documents\Programming\HexoBlog\node_modules\bluebird\js\release\util.js:16:23)
    at D:\Documents\Programming\HexoBlog\node_modules\bluebird\js\release\method.js:15:34
    at RouteStream._read (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\hexo\router.js:47:5)
    at RouteStream.Readable.read (_stream_readable.js:467:10)
    at resume_ (_stream_readable.js:981:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
ERROR Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 19, Column 14]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\head\head-unique.swig) [Line 10, Column 23]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 3, Column 3]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\index.swig) [Line 6, Column 15]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\sub-menu.swig) [Line 2, Column 29]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\header\sub-menu.swig)
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 5, Column 3]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\post.swig) [Line 9, Column 12]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_macro\post.swig) [Line 214, Column 16]
  Template render error: (D:\Documents\Programming\HexoBlog\themes\next\layout\_partials\post\post-related.swig)
  TypeError: this.localeData(...).postformat is not a function
    at Object._prettifyError (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\lib.js:36:11)
    at D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:561:19
    at Template.root [as rootRenderFunc] (eval at _compile (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:631:18), <anonymous>:43:3)
    at Template.render (D:\Documents\Programming\HexoBlog\node_modules\nunjucks\src\environment.js:550:10)
    at D:\Documents\Programming\HexoBlog\themes\next\scripts\renderer.js:32:29
    at _View._compiled (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\theme\view.js:136:50)
    at _View.render (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\theme\view.js:39:17)
    at D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\hexo\index.js:64:21
    at tryCatcher (D:\Documents\Programming\HexoBlog\node_modules\bluebird\js\release\util.js:16:23)
    at D:\Documents\Programming\HexoBlog\node_modules\bluebird\js\release\method.js:15:34
    at RouteStream._read (D:\Documents\Programming\HexoBlog\node_modules\hexo\lib\hexo\router.js:47:5)
    at RouteStream.Readable.read (_stream_readable.js:467:10)
    at resume_ (_stream_readable.js:981:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
INFO  Generated: posts/1944.html
INFO  Generated: posts/54448.html
INFO  Generated: atom.xml
INFO  Generated: images/algolia_logo.svg
INFO  Generated: board/index.html
INFO  Generated: search.xml
INFO  Generated: about/index.html
INFO  Generated: links/index.html
INFO  Generated: categories/CSDN/index.html
INFO  Generated: categories/index.html
INFO  Generated: tags/index.html
INFO  Generated: archives/index.html
INFO  Generated: archives/2020/index.html
INFO  Generated: tags/Adobe/index.html
INFO  Generated: tags/Adobe安装错误/index.html
INFO  Generated: tags/Visual-Studio-Installer-Error/index.html
INFO  Generated: tags/用户文件夹/index.html
INFO  Generated: tags/CLion/index.html
INFO  Generated: tags/git-clone/index.html
INFO  Generated: tags/WSL2/index.html
INFO  Generated: tags/WSL/index.html
INFO  Generated: tags/github/index.html
INFO  Generated: tags/matlab/index.html
INFO  Generated: tags/rpc-failed/index.html
INFO  Generated: tags/opentype/index.html
INFO  Generated: tags/tutorial/index.html
INFO  Generated: tags/ttf/index.html
INFO  Generated: posts/9336.html
INFO  Generated: 1f4e7.png
INFO  Generated: images/apple-touch-icon-next.png
INFO  Generated: images/cc-by-nc-nd.svg
INFO  Generated: images/cc-by-nd.svg
INFO  Generated: images/avatar.gif
INFO  Generated: images/cc-by-nc-sa.svg
INFO  Generated: images/cc-by-sa.svg
INFO  Generated: images/cc-by-nc.svg
INFO  Generated: images/favicon-16x16-next.png
INFO  Generated: images/cc-by.svg
INFO  Generated: images/cc-zero.svg
INFO  Generated: images/logo.svg
INFO  Generated: images/favicon-32x32-next.png
INFO  Generated: posts/16107.html
INFO  Generated: posts/57547.html
INFO  Generated: posts/24163.html
INFO  Generated: posts/18163.html
INFO  Generated: posts/61472.html
INFO  Generated: posts/23359.html
INFO  Generated: lib/font-awesome/webfonts/fa-regular-400.woff2
INFO  Generated: js/algolia-search.js
INFO  Generated: lib/canvas-nest/LICENSE
INFO  Generated: lib/fancybox/source/jquery.fancybox.min.css
INFO  Generated: js/schemes/muse.js
INFO  Generated: lib/fancybox/README.html
INFO  Generated: lib/velocity/velocity.ui.min.js
INFO  Generated: archives/2019/07/index.html
INFO  Generated: images/avatar.jpg
INFO  Generated: js/bookmark.js
INFO  Generated: js/motion.js
INFO  Generated: js/local-search.js
INFO  Generated: js/next-boot.js
INFO  Generated: js/schemes/pisces.js
INFO  Generated: lib/canvas-nest/README.html
INFO  Generated: lib/canvas-nest/canvas-nest-nomobile.min.js
INFO  Generated: lib/canvas-nest/canvas-nest.min.js
INFO  Generated: archives/2019/12/index.html
INFO  Generated: archives/2020/02/index.html
INFO  Generated: archives/2020/03/index.html
INFO  Generated: archives/2019/10/index.html
INFO  Generated: archives/2020/09/index.html
INFO  Generated: js/utils.js
INFO  Generated: index.html
INFO  Generated: archives/2019/index.html
INFO  Generated: lib/anime.min.js
INFO  Generated: lib/fancybox/source/jquery.fancybox.css
INFO  Generated: css/main.css
INFO  Generated: lib/fancybox/LICENSE
INFO  Generated: assets/algolia/algoliasearchLite.min.js
INFO  Generated: lib/velocity/velocity.min.js
INFO  Generated: lib/font-awesome/css/all.min.css
INFO  Generated: assets/algolia/algoliasearch.min.js
INFO  Generated: lib/font-awesome/webfonts/fa-brands-400.woff2
INFO  Generated: lib/font-awesome/webfonts/fa-solid-900.woff2
INFO  Generated: assets/algolia/algoliasearchLite.js
INFO  Generated: lib/fancybox/source/jquery.fancybox.min.js
INFO  Generated: assets/algolia/algoliasearch.js
INFO  Generated: lib/fancybox/source/jquery.fancybox.pack.js
INFO  86 files generated in 1.26 s

OS version

  • Windows (Windows 10 version 2004 Build 19041.508)

Node version(node -v)

v12.18.4

Your site _config.yml

url: https://yihuajack.github.io
root: /
permalink: posts/:abbrlink.html
abbrlink:
    alg: crc16   #算法: crc16(default) and crc32
    rep: dec     #进制: dec(default) and hex
permalink_defaults:
pretty_urls:
  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
  trailing_html: true
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
  enable: true # Open external links in new tab
  field: site # Apply to the whole site
  exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: true
  tab_replace: ''
  wrap: true
  hljs: false
prismjs:
  enable: false
  preprocess: true
  line_number: true
  tab_replace: ''
index_generator:
  path: ''
  per_page: 10
  order_by: -date
default_category: uncategorized
category_map:
tag_map:
meta_generator: true
date_format: YYYY-MM-DD
time_format: HH:mm:ss
updated_option: 'mtime'
per_page: 10
pagination_dir: page
include:
exclude:
ignore:
plugin:
- hexo-generator-feed
feed:
  type: atom
  path: atom.xml
  limit: 20
  hub:
  content:
  content_limit: 140
  content_limit_delim: ' '
  order_by: -date
  autodiscovery: true
  template:
theme: next
deploy:
  type: git
  repo:
    github: xxx
    coding: xxx
githubEmojis:
  enable: true
  className: github-emoji
  inject: true
  styles:
  customEmojis:
    e-mail: https://twemoji.maxcdn.com/v/13.0.1/72x72/1f4e7.png
algolia:
  applicationID: xxx
  apiKey: xxx
  adminApiKey: xxx
  indexName: Ayka's Blog
  chunkSize: 5000

Your theme _config.yml

scheme: Pisces
darkmode: true
menu:
  home: / || fa fa-home
  about: /about/ || fa fa-user
  tags: /tags/ || fa fa-tags
  categories: /categories/ || fa fa-th
  archives: /archives/ || fa fa-archive
  #schedule: /schedule/ || fa fa-calendar
  #sitemap: /sitemap.xml || fa fa-sitemap
  commonweal: /404/ || fa fa-heartbeat
  links: /links/ || fa fa-link
avatar:
  url: /images/avatar.jpg
  rounded: true
  rotated: true
links:
  CSDN: https://blog.csdn.net/yihuajack
related_posts:
  enable: true
  title: 相关文章 # Custom header, leave empty to use the default one
  display_in_home: false
  params:
    maxCount: 5
    #PPMixingRate: 0.0
    isDate: true
calendar:
  calendar_id: [email protected] # Your Google account E-Mail
  api_key: xxx
  orderBy: startTime
  offsetMax: 24 # Time Range
  offsetMin: 4 # Time Range
  showDeleted: false
  singleEvents: true
  maxResults: 250
github_banner:
  enable: true
  permalink: https://github.com/yihuajack
  title: Follow me on GitHub
font:
  enable: true
  global:
    external: true
    family: Lato
    size:
  title:
    external: true
    family:
    size:
  headings:
    external: true
    family:
    size:
  posts:
    external: true
    family:
  codes:
    external: true
    family: JetBrains Mono
pjax: true
fancybox: true
valine:
  enable: true
  appid: xxx
  appkey: xxx
  notify: false # Mail notifier
  verify: false # Verification code
  placeholder: Just go go # Comment box placeholder
  avatar: mm # Gravatar style
  guest_info: nick,mail,link # Custom comment header
  pageSize: 10 # Pagination size
  language: en, zh-cn # Language, available values: en, zh-cn
  visitor: true # Article reading statistic
  comment_count: true # If false, comment count will only be displayed in post page, not in home page
  recordIP: false # Whether to record the commenter IP
  serverURLs: 
rating:
  enable: true
  id: 27455    # <app_id>
  color:  fc6423
algolia_search:
  enable: true
  hits:
    per_page: 10
  labels:
    input_placeholder: Search for Posts
    hits_empty: "We didn't find any results for the search: ${query}"
    hits_stats: "${hits} results found in ${time} ms"
defaultlinks:
  - nickname: Heson     # 昵称
    avatar: https://cdn.jsdelivr.net/gh/heson525/pic@master/pic/avatar03.png    # 头像地址
    site: https://www.heson10.com #友链地址
    info: 人生在勤,不索何获
friendslinks:

Plugin version(npm ls --depth 0)

list-json.js use moment format error

I encountered some problems when using hexo-related-popular-posts:

05:41:55.845 ERROR Render HTML failed: 2020/02/22/flexbox-use-cases/index.html
TypeError: Cannot read property 'replace' of null
    at Hexo.externalLinkFilter (/Users/anran/project_my/blog/node_modules/hexo/lib/plugins/filter/after_render/external_link.js:22:15)
    at Hexo.tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Hexo.<anonymous> (/Users/anran/project_my/blog/node_modules/bluebird/js/release/method.js:15:34)
    at /Users/anran/project_my/blog/node_modules/hexo/lib/extend/filter.js:62:52
    at tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Object.gotValue (/Users/anran/project_my/blog/node_modules/bluebird/js/release/reduce.js:166:18)
    at Object.gotAccum (/Users/anran/project_my/blog/node_modules/bluebird/js/release/reduce.js:155:25)
    at Object.tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromiseCtx (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:641:10)
    at _drainQueueStep (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:97:12)
    at _drainQueue (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:439:21)

After debugging, I found that the error is in list-json.js. in the getElm function tried to add ret.date, But an error occurred during the assignment.

The test code and test log are as follows:

// /node_modules/hexo-related-popular-posts/lib/list-json.js

        if (inOptions.isDate && list.date != '') {
            console.log('\nlist.date', list.date)
            console.log('\nlist.date1', moment(moment()))
            console.log('\nlist.date2', moment(list.date))

            const formatDate = moment(list.date)
            console.log('\nformatDate', formatDate)

            // ret.date =  moment(list.date).format(config.date_format || 'YYYY-MM-DD')
        }
05:50:42.164 INFO  Hexo is running at http://localhost:9000 . Press Ctrl+C to stop.
05:50:42.240 DEBUG Database saved
05:54:18.184 DEBUG Rendering HTML post: 2020/02/22/flexbox-use-cases/index.html

getElm [Function: getElm] 5 


list.date {
  _isAMomentObject: true,
  _i: '2020-02-05T13:36:54.000Z',
  _isUTC: false,
  _pf: {
    empty: false,
    unusedTokens: [],
    unusedInput: [],
    overflow: -2,
    charsLeftOver: 0,
    nullInput: false,
    invalidEra: null,
    invalidMonth: null,
    invalidFormat: false,
    userInvalidated: false,
    iso: false,
    parsedDateParts: [],
    era: null,
    meridiem: null,
    rfc2822: false,
    weekdayMismatch: false
  },
  _locale: {
    _calendar: {
      sameDay: '[Today at] LT',
      nextDay: '[Tomorrow at] LT',
      nextWeek: 'dddd [at] LT',
      lastDay: '[Yesterday at] LT',
      lastWeek: '[Last] dddd [at] LT',
      sameElse: 'L'
    },
    _longDateFormat: {
      LTS: 'h:mm:ss A',
      LT: 'h:mm A',
      L: 'MM/DD/YYYY',
      LL: 'MMMM D, YYYY',
      LLL: 'MMMM D, YYYY h:mm A',
      LLLL: 'dddd, MMMM D, YYYY h:mm A'
    },
    _invalidDate: 'Invalid date',
    _dayOfMonthOrdinalParse: {},
    _relativeTime: {
      future: 'in %s',
      past: '%s ago',
      s: 'a few seconds',
      ss: '%d seconds',
      m: 'a minute',
      mm: '%d minutes',
      h: 'an hour',
      hh: '%d hours',
      d: 'a day',
      dd: '%d days',
      w: 'a week',
      ww: '%d weeks',
      M: 'a month',
      MM: '%d months',
      y: 'a year',
      yy: '%d years'
    },
    _months: [
      'January',   'February',
      'March',     'April',
      'May',       'June',
      'July',      'August',
      'September', 'October',
      'November',  'December'
    ],
    _monthsShort: [
      'Jan', 'Feb', 'Mar',
      'Apr', 'May', 'Jun',
      'Jul', 'Aug', 'Sep',
      'Oct', 'Nov', 'Dec'
    ],
    _week: { dow: 0, doy: 6 },
    _weekdays: [
      'Sunday',
      'Monday',
      'Tuesday',
      'Wednesday',
      'Thursday',
      'Friday',
      'Saturday'
    ],
    _weekdaysMin: [
      'Su', 'Mo',
      'Tu', 'We',
      'Th', 'Fr',
      'Sa'
    ],
    _weekdaysShort: [
      'Sun', 'Mon',
      'Tue', 'Wed',
      'Thu', 'Fri',
      'Sat'
    ],
    _meridiemParse: {},
    _eras: [ [Object], [Object] ],
    _abbr: 'en',
    _config: {
      calendar: [Object],
      longDateFormat: [Object],
      invalidDate: 'Invalid date',
      dayOfMonthOrdinalParse: {},
      relativeTime: [Object],
      months: [Array],
      monthsShort: [Array],
      week: [Object],
      weekdays: [Array],
      weekdaysMin: [Array],
      weekdaysShort: [Array],
      meridiemParse: {},
      eras: [Array],
      abbr: 'en'
    },
    _dayOfMonthOrdinalParseLenient: {}
  },
  _d: '2020-02-05T13:36:54.000Z',
  _isValid: true,
  _z: null
}

list.date1 Moment<2020-05-07T13:54:18+08:00>
05:54:18.571 ERROR Render HTML failed: 2020/02/22/flexbox-use-cases/index.html
TypeError: Cannot read property 'replace' of null
    at Hexo.externalLinkFilter (/Users/anran/project_my/blog/node_modules/hexo/lib/plugins/filter/after_render/external_link.js:22:15)
    at Hexo.tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Hexo.<anonymous> (/Users/anran/project_my/blog/node_modules/bluebird/js/release/method.js:15:34)
    at /Users/anran/project_my/blog/node_modules/hexo/lib/extend/filter.js:62:52
    at tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Object.gotValue (/Users/anran/project_my/blog/node_modules/bluebird/js/release/reduce.js:166:18)
    at Object.gotAccum (/Users/anran/project_my/blog/node_modules/bluebird/js/release/reduce.js:155:25)
    at Object.tryCatcher (/Users/anran/project_my/blog/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromiseCtx (/Users/anran/project_my/blog/node_modules/bluebird/js/release/promise.js:641:10)
    at _drainQueueStep (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:97:12)
    at _drainQueue (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/anran/project_my/blog/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:439:21)

It can be found in the log: moment caused an error while initializing list.date, which caused the subsequent formatDate log to not be output.

If I delete the code about moment (list.date), hexo will work normally.

The current configuration of hexo is as follows:

hexo: 4.2.0
hexo-cli: 3.1.0
os: Darwin 17.7.0 darwin x64
node: 12.13.1
v8: 7.7.299.13-node.16
uv: 1.33.1
zlib: 1.2.11
brotli: 1.0.7
ares: 1.15.0
modules: 72
nghttp2: 1.39.2
napi: 5
llhttp: 1.1.4
http_parser: 2.8.0
openssl: 1.1.1d
cldr: 35.1
icu: 64.2
tz: 2019c
unicode: 12.1

Can't generate url correctly when site is in a subdirectory

Description

Thanks for your plugin.

I put the hexo site in a subdirectory (you can see that in my site _config.yml below), and this plugin generated post path without subdirectory.

For example, the subdirectory name is "test". And there is a post at _post/hello.md, which url will be /test/hello/, but in this plugin, it will generate url /hello/ for this post and accessing this link will get Not Found.

Maybe add config.root to post path?

BTW, I use NEXT theme.

Environment Info

  • node: v10.9.0
  • npm: v6.2.0
  • hexo: v3.7.1
  • os: win10 x64

Site _config.yml

url: https://localhost:4000/test
root: /test/

Theme _config.yml

# Related popular posts
# Dependencies: https://github.com/tea3/hexo-related-popular-posts
related_posts:
  enable: true
  title: # custom header, leave empty to use the default one
  display_in_home: false
  params:
    maxCount: 5
    #PPMixingRate: 0.0
    #isDate: false
    #isImage: false
    #isExcerpt: false

Plugin version(npm ls --depth 0)

If you use hexo5.0 and use the related Popular Posts plug-in, you may cause errors.

I encountered some problems when using hexo-related-popular-posts:

Steps to reproduce the behavior

hexo clean
hexo g
FATAL {
  err: TypeError: Cannot read property 'length' of undefined
      at module.exports (E:\My_blog\node_modules\hexo-related-popular-posts\lib\cache.js:26:89)
      at Hexo.<anonymous> (E:\My_blog\node_modules\hexo-related-popular-posts\index.js:171:34)
      at Hexo.tryCatcher (E:\My_blog\node_modules\bluebird\js\release\util.js:16:23)
      at Hexo.<anonymous> (E:\My_blog\node_modules\bluebird\js\release\method.js:15:34)
      at E:\My_blog\node_modules\hexo\lib\extend\filter.js:67:52
      at tryCatcher (E:\My_blog\node_modules\bluebird\js\release\util.js:16:23)
      at Object.gotValue (E:\My_blog\node_modules\bluebird\js\release\reduce.js:166:18)
      at Object.gotAccum (E:\My_blog\node_modules\bluebird\js\release\reduce.js:155:25)
      at Object.tryCatcher (E:\My_blog\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (E:\My_blog\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (E:\My_blog\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromiseCtx (E:\My_blog\node_modules\bluebird\js\release\promise.js:641:10)
      at _drainQueueStep (E:\My_blog\node_modules\bluebird\js\release\async.js:97:12)
      at _drainQueue (E:\My_blog\node_modules\bluebird\js\release\async.js:86:9)
      at Async._drainQueues (E:\My_blog\node_modules\bluebird\js\release\async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (E:\My_blog\node_modules\bluebird\js\release\async.js:15:14)
      at processImmediate (internal/timers.js:456:21)
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html

Node.js and NPM Information

$ node -v && npm -v
v12.16.1
6.13.4

$ npm ls --depth 0
[email protected] E:\My_blog
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected] (github:theme-next/hexo-next-tag#095ca82d63db8e6e5231fa9a811d3d68f3d8cc88)
+-- [email protected] (github:theme-next/hexo-next-utteranc#f592272a73cb47923f25443709786942f0398a69)
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]

所有的插件版本,[email protected],主题配置文件。

# Related popular posts 相关热门贴子
# Dependencies: https://github.com/tea3/hexo-related-popular-posts
related_posts:
  enable: true
  title: # Custom header, leave empty to use the default one
  display_in_home: false
  params:
    maxCount: 5
    #PPMixingRate: 0.0
    #isDate: false
    #isImage: false
    #isExcerpt: fals

next-theme/hexo-theme-next#66

When article was modified, the page could't render again

For BUG

  • BUG description
    when this bug occured, the page was not render again, only stop Ctrl + c and rerun hexo s

  • the way to reproduce
    when use hexo s and any article was updated, what the console print as below.

  • log with hexo

Unhandled rejection TypeError: Cannot read property 'path' of undefined
    at Promise (/Users/Erasme/docs/yunsu2.github.io/node_modules/hexo-related-popular-posts/lib/collector.js:192:31)
    at new Promise (<anonymous>)
    at checkUpdate (/Users/Erasme/docs/yunsu2.github.io/node_modules/hexo-related-popular-posts/lib/collector.js:188:12)
    at module.exports (/Users/Erasme/docs/yunsu2.github.io/node_modules/hexo-related-popular-posts/lib/collector.js:8:12)
    at Hexo.hexo.extend.filter.register (/Users/Erasme/docs/yunsu2.github.io/node_modules/hexo-related-popular-posts/index.js:168:38)
    at Hexo.tryCatcher (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/util.js:16:23)
    at Hexo.<anonymous> (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/method.js:15:34)
    at /Users/Erasme/docs/yunsu2.github.io/node_modules/hexo/lib/extend/filter.js:68:35
    at tryCatcher (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/util.js:16:23)
    at Object.gotValue (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/reduce.js:155:18)
    at Object.gotAccum (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/reduce.js:144:25)
    at Object.tryCatcher (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/promise.js:693:18)
    at Async._drainQueue (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues (/Users/Erasme/docs/yunsu2.github.io/node_modules/bluebird/js/release/async.js:17:14)
    at runCallback (timers.js:756:18)
    at tryOnImmediate (timers.js:717:5)
    at processImmediate [as _immediateCallback] (timers.js:697:5)

Environment Info

OS version

  • macOS 10.13.2 (17C205)

Node version(node -v)

v9.4.0

Your site _config.yml

# Hexo Configuration
## Docs:                     https://hexo.io/docs/configuration.html
## Source:                   https://github.com/hexojs/hexo/

# Site
title:                       鲤鱼 | Erasme
subtitle:                    码农
description:                 鲤鱼 Coder Vue Java
author:                      鲤鱼 | Erasme
language:                    zh-Hans
i18n:
  type: [page, post]
  generator: [index, archive, category, tag]
timezone:                    Asia/Shanghai

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url:                         https://code.aimer.love
root:                        /
permalink:                   :month:day/:title/
permalink_defaults:
    lang:                    zh-Hans

# Directory
source_dir:                  source
public_dir:                  public
tag_dir:                     tags
archive_dir:                 archives
category_dir:                categories
code_dir:                    downloads/code
i18n_dir:                    :lang
skip_render:

# Writing
new_post_name:               :title.md # File name of new posts
default_layout:              post
titlecase:                   false # Transform title into titlecase
external_link:               false # Open external links in new tab
filename_case:               0
render_drafts:               false
post_asset_folder:           true
relative_link:               false
future:                      true
highlight:
  enable:                    true
  line_number:               true
  auto_detect:               true
  tab_replace:               true

# Category & Tag
default_category:            uncategorized
category_map:
tag_map:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format:                 YYYY-MM-DD
time_format:                 HH:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page:                    20
pagination_dir:              page

# Extensions
## Plugins:                  https://hexo.io/plugins/
## Themes:                   https://hexo.io/themes/
theme:                       yelee

feed:
  type:                      atom
  path:                      atom.xml
  limit:                     20
  hub:

# sitemap:
# path:                      sitemap.xml

baidusitemap:
    path:                    baidusitemap.xml

search:
  path:                      search.xml
  field:                     all

sequence:
  #webfont:                  https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.27/webfontloader.js
  #snap:                     https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js
  #underscore:               https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js
  #sequence:                 https://cdnjs.cloudflare.com/ajax/libs/js-sequence-diagrams/1.0.6/sequence-diagram-min.js
  # css:                     # optional, the url for css, such as hand drawn theme
  options:
    theme:                   simple
    css_class:

flowchart:
  # raphael:                 # optional, the source url of raphael.js
  # flowchart:               # optional, the source url of flowchart.js
  options:                   # options used for `drawSVG`

bilibili:
  width:                     566
  height:                    846

# hexo-tag-cloud
tag_cloud:
    textFont:                Trebuchet MS, Helvetica
    textColour:              rgb(125,165,189)
    textHeight:              24
    outlineColour:

# Hexo Beautify
beautify:
  types:
    - html
    - css
    - js
  exclude:
    - '*.min.css'
    - '*.min.js'
  html:
    'indent_inner_html':     true
    'indent_size':           2
    'indent_with_tabs':      false
    # More Options (https://github.com/beautify-web/js-beautify/blob/master/README.md)
  css:
    'indent_size':           2
    'newline_between_rules': true
    'indent_with_tabs':      false
    # More Options (https://github.com/beautify-web/js-beautify/blob/master/README.md)
  js:
    'indent_size':           2
    'indent_with_tabs':      false
    # More Options (https://github.com/beautify-web/js-beautify/blob/master/README.md)


thumbnails:
  # masks:
    # - \.jpg$
    # - \.jpeg$
    # - \.png$
    # - \.bmp$
  profiles:
    largeThumb:
      resize:
        - 400
        - 400
      blur:
        - 10
    smallThumb:
      resize:
        - 400
        - 400

markdown_it_plus:
    highlight: true
    html: true
    xhtmlOut: true
    breaks: true
    langPrefix:
    linkify: true
    typographer:
    quotes: “”‘’
    pre_class: highlight
    Katex: true
    plugins:
    # other plugins
        - plugin:
            name: markdown-it-footnote
            enable: true
        - plugin:
            name: hexo-tippy
            enable: true
# tippy:
#   theme_file: tippy-theme.css   # css file containing the theme, relative to blog root directory
#   theme_name: honeybee

lazyload:
  enable: true

# Deployment

Your theme _config.yml

# Theme Version | 当前版本
Yelee: "3.5"

# >>> Basic Setup | 基础设置 <<<

# Header | 主菜单
## About Page: `hexo new page about`
## Tags Cloud Page: `hexo new page tags`
menu:
  主页: /
  所有文章: /archives/
  日迹: /categories/journal/
  标签云: /tags/
  关于我: /about/

# Link to your avatar | 填写头像地址
avatar: /img/avatar.png

# Small icon of Your site | 站点小图标地址
favicon: /apple-touch-icon.png

# Internationalization | 主题语言
## Change Language in SITE's _config.yml | 在站点配置中切换语言
## https://hexo.io/docs/internationalization.html
Available Languages: en, zh-Hans, zh-Hant-TW, zh-Hant-HK

# Subdirectory | 子目录
## If your site' url is 'http://yoursite.com/blog', set root_url as '/blog/'
## 网站若存放在子目录,请按上面格式填写
## https://hexo.io/docs/configuration.html#URL
root_url:

# Year of Site Creation | 网站成立年份
since: 2014

# Social info. Bar | 社交信息展示
## Keep "mailto:" in Email | 设置 Email 时保留 "mailto:"
## Encrypt email 加密邮件地址 http://ctrlq.org/encode/
## RSS requires a plugin to take effect | 使用 RSS 需先安装对应插件
## https://github.com/hexojs/hexo-generator-feed

subnav:
  Email: "mailto:XXXXXX"
  新浪微博: "https://weibo.com/XXXXX"
  GitHub: "https://github.com/yunsu2"
  #V2EX: "#"
  RSS: "/atom.xml"
  知乎: "https://www.zhihu.com/people/XXXXX"
  #豆瓣: "douban"
  简书: "http://www.jianshu.com/users/XXXXX/timeline"
  #SegmentFault: ""
  #博客园: "cnblogs"
  #CSDN: ""
  Coding: "https://coding.net/u/XXXXXXX"
  网易云音乐: "http://music.163.com/#/user/home?id=XXXXX"
  #虾米音乐: "xiami"
  bilibili: "http://space.bilibili.com/XXXXXX/#!/index"
  AcFun: "http://www.acfun.tv/u/XXXXX"
  #niconico: ""
  #Quora: ""
  #Facebook: "#"
  Google: "https://plus.google.com/u/0/XXXXX"
  Twitter: "https://twitter.com/wangjia_1919"
  #LinkedIn: "#"
  QQ: "http://sighttp.qq.com/authd?IDKEY=XXXXXXX"
  微信: "weixin://contacts/profile/XXXXX"
  #PayPal: "#"
  #StackOverflow: "#"
  #CodePen: ""
  #Plunker: ""
  #Instagram: "#"
  #LOFTER: ""
  #Flickr: "#"
  #reddit: ""
  #Medium: ""
  #TiddlyWiki: ""
  #Tumblr: ""
  #_500px: ""

# >>> Conments 评论系统 <<<
# Chose ONE as your comment system and keep others disable.
# 选一个作为网站评论系统,其他保持禁用。

preload_comment: true
## false: 当点击评论条等区域时再加载评论模块
## false: load comment's section until u click/hover on the bar/icon

show_count: true
## 是否在主页文章标题旁显示评论数(多说、Disqus)
## Add comment count after article title

disqus:
  #on: true
  shortname:
  # https://help.disqus.com/customer/en/portal/articles/466208-what-s-a-shortname-
  # It is unnecessary to enable disqus here if
  # you have set "disqus_shortname" in your site's "_config.yml"

duoshuo:
  on: false
  domain: XXXXX
  # 是否开启多说评论,http://duoshuo.com/create-site/
  # 使用上面网址登陆你的多说,然后创建站点,在 domain 中填入你设定的域名前半部分
  # http://<要填的部分>.duoshuo.com (domain只填上<>里的内容,不要填整个网址)

youyan:
  on: true
  id: XXXXXX
  # 是否开启友言评论,http://www.uyan.cc/index.php
  # id 中填写你的友言用户数字ID,注册后进入后台管理即可查看
  # 友言服务在 Web 环境下运行,普通本地环境无法查看,请部署后在线上测试。


# >>> Style Customisation 样式自定义 <<<

# Background | 背景
## "5": show images form bg-1.jpg to bg-5.jpg in `/yelee/source/background/`
## "5": 显示`/yelee/source/background/`文件夹中 bg-1.jpg 到 bg-5.jpg 这5张图片
## "0": white-gray background | 淳朴灰白背景
background_image: 11

# Base Font Size | 字号调节
base_font_size: 16  #px, 16 - 24

## General Color Scheme | 主题配色方案
## 可用值 Value: yilia
color_scheme:

highlight_style:
  #on: true
  inline_code: 1  # Value: 0 - 9 可选
  code_block: 1  # Value: 0 - 4
  # Set inline_code to style highlight text
  # Chose a highlight theme for code block
  # 通过 inline_code 切换内置文本高亮样式
  # 通过 code_block 切换内置代码高亮配色主题

blockquote_style:
  #on: true
  blockquote: 2 # Value: 0 - 7 可选
  # 自定义文章「引用部分」的样式

# Headings Style | 标题风格
## 0-Yelee, 1-Yilia, 2-GitHub
heading_style: 0 # Value: 0 - 2

## List style type (ul) | 无序列表项标记样式
list_style: 0  # value: 0 - 12 可选

# 左边栏宽度 px
left_col_width: 384

# Copyright info. of post | 文末版权信息
copyright: true

# Table of contents | 文章目录
toc:
  on: true
  list_number: true # 目录序号
  max_depth: 4  # 1 - 6 (h1-h6) 目录最大级数
  nowrap: false # Keep title on same line | 目录标题不换行

# 是否开启主页及加载头像时的动画效果
# Animation in Homepage and Loading avatar
animate: true

# Load jQuery UI to style tooltips
# 工具提示框样式美化
jquery_ui: true

# Max width of right cloumn | 限制右侧内容的宽带
limit_article_width:
  on: false
  max_width: 60 # em

# >>> Small features | 小功能设置 <<<

# 是否开启边栏多标签切换
# Birdhouse button in left column
tagcloud: true

# Blogroll, Link exchange | 友情链接
friends:
  Hexo: https://hexo.io
  GitHub: https://pages.github.com/
  MOxFIVE: http://moxfive.xyz/
#friends: false

#是否开启“关于我”。
aboutme: Java WEB
#aboutme: false

# Open link in a new tab | 是否在新窗口打开链接
## `global` 0: Set separately, 1: Open all in new 2: Open all in current
## `global` 0: 分开设置, 1: 全部在新标签打开, 2: 全部在"当前"标签打开
open_in_new:
  global: 0 # 0-2
  title: false # article title in homepage 主页文章标题
  post: true # link within post/page 正文中的链接
  tags: true # 标签
  categories: true # 分类
  article_nav: false # 导航
  archives: true # 归档
  mini_archives: true # 迷你归档
  menu: false # 边栏菜单
  friends: true  # 友情链接
  socail: true # 社交图标

# Customize feed link 自定义订阅地址
rss: /atom.xml

# Update Reminder for IE6/7/8
# 针对 IE6/7/8 的升级浏览器提示
ie_updater:
  on: true
  link: //outdatedbrowser.com/
  ## http://browsehappy.com/
  ## http://outdatedbrowser.com/

# Tab Title Change | 标签页标题切换
tab_title_change:
  on: true
  left_tab_title: '(つェ⊂) 我藏好了哦~ '
  return_tab_title: '(*´∇`*) 被你发现啦~ '


# >>> Vendors | 第三方工具 & 服务 <<<

# Local Site Search | 本地站内搜索
## Insatall below plugin to take effect | 使用搜索需先安装对应插件
## https://github.com/PaicHyperionDev/hexo-generator-search
search:
  on: true
  onload: true
  ## true: get search.xml file when the page has loaded
  ## false: get the file when search box gets focus

# images viewer | 图片浏览器
## http://www.fancyapps.com/fancybox/
fancybox: true

# Display Math(LaTeX, MathML...) | 数学公式支持
## https://www.mathjax.org/
mathjax: true

# Socail Share | 是否开启分享
share:
  on: true
  baidu: true
  addthis: true
  addthis_pubid: "XXXXXXXX"
  ## Go to www.addthis.com/dashboard to get your pubid (in src of Code)
  ## and customize AddThis share buttons

# 百度、谷歌站长验证。填写 HTML 标签 content
# Site Verification for Google and Baidu. HTML label content.
baidu_site: XXXXXX
google_site:

# Fill in Google Analytics tracking ID, #e.g. UA-XXXXX-X
google_analytics:

# 百度统计 http://sitecenter.baidu.com/sc-web/
# 查看代码,填入 //hm.baidu.com/hm.js? 之后的内容
baidu_tongji: 00bd9d7f270b52b3b20810ad604f5d41

# 不蒜子网站计数设置
# http://ibruce.info/2015/04/04/busuanzi/
visit_counter:
  on: true
  site_visit: true
  page_visit: true

# GitHub Repo Widget
# https://github.com/hustcc/GitHub-Repo-Widget.js
github_widget: true

# Progress Bar | 页面加载进度条
# Demo: http://github.hubspot.com/pace/docs/welcome/
# type: barber-shop|big-counter|bounce|center-atom|center-circle|
#       center-radar|center-simple|corner-indicator|flash|flat-top|
#       loading-bar|mac-osx|minimal
# color: black|blue|green|orange|pink|purple|red|silver|white|yellow|
progressBar:
  on: true
  type: "minimal"  # Keep Quotes | 保留引号避免出错
  color: blue

github_history:
    blame: https://github.com/yunsu2/yunsu2.github.io/blame/develop/source/_posts/
    commits: https://github.com/yunsu2/yunsu2.github.io/commits/develop/source/_posts/
    raw: https://raw.githubusercontent.com/yunsu2/yunsu2.github.io/develop/source/_posts/

github_theme_url:
    yelee: https://github.com/yunsu2/hexo-theme-yelee

bgFlower:
    on: false

CDN:
  jquery: //cdn.bootcss.com/jquery/2.2.4/jquery.min.js
  require: //cdn.bootcss.com/require.js/2.2.0/require.min.js
  fontawesome: //cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css
  fancybox_js: //cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.js
  fancybox_css: //cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.css
  animate_css: //cdn.bootcss.com/animate.css/3.5.1/animate.min.css
  jquery_ui_js: //cdn.bootcss.com/jqueryui/1.10.4/jquery-ui.min.js
  jquery_ui_css: //cdn.bootcss.com/jqueryui/1.10.4/css/jquery-ui.min.css
  pace_js: //cdn.bootcss.com/pace/1.0.2/pace.min.js
  clipboard: //cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js
  mathjax: //cdn.bootcss.com/mathjax/2.6.1/MathJax.js
  scrollreveal: //cdn.bootcss.com/scrollReveal.js/3.1.4/scrollreveal.min.js

Plugin version(npm ls --depth 0)

integrity checksum failed

hi,thank you for excellent tool , but on mac ,this error occur,
npm ERR! code EINTEGRITY
npm ERR! sha1-Sqvzm8zti4rZLQB6BKJr5tqEd8k= integrity checksum failed when using sha1: wanted sha1-Sqvzm8zti4rZLQB6BKJr5tqEd8k= but got sha1-c+vhx0GvE4Ju9Bb0cV4uiAB7u8M=. (1436215 bytes)
what can i do?
debug log:
871 error code EINTEGRITY
872 error sha1-Sqvzm8zti4rZLQB6BKJr5tqEd8k= integrity checksum failed when using sha1: wanted sha1-Sqvzm8zti4rZLQB6BKJr5tqEd8k= but got sha1-c+vhx0GvE4Ju9Bb0cV4uiAB7u8M=. (1436215 bytes)
873 verbose exit [ 1, true ]

If there is no posts, the function should return empty

I want to hide the text "Related Posts" if no posts are returned.

When there is no posts matched, popular_posts( {} , page ) returns

<ul class="popular-posts"><li class="popular-posts-item"><div class="popular-posts-title"><h3><a href="/untitled/" title="" rel="bookmark"></a></h3></div></li></ul>

It makes me impossible to write if statement to judge whether there exists at least related post or not.

I think popular_posts( {} , page ) should return empty string or any value equivalent to empty if no posts are related to the current post.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.