hexo icon indicating copy to clipboard operation
hexo copied to clipboard

Tag Plugins post_link generate a Post not found error

Open DNACore opened this issue 2 years ago • 0 comments

Check List

Please check followings before submitting a new issue.

  • [x] I have already read Docs page & Troubleshooting page
  • [x] I have already searched existing issues and they are not help to me
  • [x] I examined error or warning messages and it's difficult to solve
  • [x] Using the latest version of Hexo (run hexo version to check)
  • [x] Node.js is higher than minimum required version

Expected behavior

{% post_link somemarkdownfile %} should generate a corrent link to the exsit markdown file.

Actual behavior

it genrated a post not found xxx link.

How to reproduce?

just write the post_link such as {% post_link somemarkdownfile %}

what's more:

I created a new hexo folder, and created a new post named test.md, and wrote {% post_link test %} in hello-world.md. run hexo g, it can genrate the correnct link. and I move test.md to subfolder/test.md, then run hexo clean && hexo g. it can't genrate the correct link, just said: post not found. I moved the test.md just below the _post folder, then it can genrate the correct link again. BUT for my original hexo folder, wherever i put the somemarkdownfile.md, it always said post not found.

Is the problem still there under "Safe mode"?

YES

Environment & Settings

Node.js & npm version(node -v && npm -v)

v18.7.0
8.17.0

Your site _config.yml (Optional)

Hexo and Plugin version(npm ls --depth 0)

[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]

Your package.json package.json

{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "build": "hexo generate",
    "clean": "hexo clean",
    "deploy": "hexo deploy",
    "server": "hexo server"
  },
  "hexo": {
    "version": "6.2.0"
  },
  "dependencies": {
    "hexo": "^6.0.0",
    "hexo-cli": "^4.3.0",
    "hexo-deployer-git": "^3.0.0",
    "hexo-generator-archive": "^1.0.0",
    "hexo-generator-category": "^1.0.0",
    "hexo-generator-index": "^2.0.0",
    "hexo-generator-sitemap": "^3.0.1",
    "hexo-generator-tag": "^1.0.0",
    "hexo-renderer-ejs": "^2.0.0",
    "hexo-renderer-marked": "^5.0.0",
    "hexo-renderer-stylus": "^2.0.1",
    "hexo-server": "^3.0.0"
  }
}

Others

I replace the post_link.js in the node_moduls/hexo/lib bla bla with the current post_link.js on the master.

it throws the error below, hope it helps

Template render error: (unknown path)
  Error: Post not found: post_link somemarkdownfile.
    at Object._prettifyError (TheHexoFolder/node_modules/nunjucks/src/lib.js:36:11)
    at TheHexoFolder/node_modules/nunjucks/src/environment.js:563:19
    at Template.root [as rootRenderFunc] (eval at _compile (TheHexoFolder/node_modules/nunjucks/src/environment.js:633:18), <anonymous>:19:3)
    at Template.render (TheHexoFolder/node_modules/nunjucks/src/environment.js:552:10)
    at Environment.renderString (TheHexoFolder/node_modules/nunjucks/src/environment.js:380:17)
    at TheHexoFolder/node_modules/hexo/lib/extend/tag.js:236:16
    at tryCatcher (TheHexoFolder/node_modules/bluebird/js/release/util.js:16:23)
    at Promise.fromNode.Promise.fromCallback (TheHexoFolder/node_modules/bluebird/js/release/promise.js:209:30)
    at Tag.render (TheHexoFolder/node_modules/hexo/lib/extend/tag.js:235:20)
    at Object.onRenderEnd (TheHexoFolder/node_modules/hexo/lib/hexo/post.js:426:22)
    at TheHexoFolder/node_modules/hexo/lib/hexo/render.js:85:21
    at tryCatcher (TheHexoFolder/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (TheHexoFolder/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (TheHexoFolder/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (TheHexoFolder/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (TheHexoFolder/node_modules/bluebird/js/release/promise.js:729:18)

DNACore avatar Aug 29 '22 15:08 DNACore