hexojs / hexo

A fast, simple & powerful blog framework, powered by Node.js.
https://hexo.io
MIT License
39.57k stars 4.86k forks source link

Curly brackets parse error? #5571

Open berrylium0078 opened 2 weeks ago

berrylium0078 commented 2 weeks ago

Check List

Expected behavior

---
title: Hello World
---

123

`{#}`

234

`{{x}}`

Should look like

123

{#}

234

{{x}}

Actual behavior

屏幕截图_20241103_180328

How to reproduce?

just

hexo init blog
cd blog

and edit source/_posts/hello-world.md

then

hexo s

Is the problem still there under Safe mode?

Yes!

Your Node.js & npm version

v23.1.0
10.9.0

Your Hexo and Plugin version

(node:24317) ExperimentalWarning: CommonJS module /usr/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /usr/lib/node_modules/npm/node_modules/supports-color/index.js using require().
Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
hexo-site@0.0.0 /home/netro/Documents/blog
├── hexo-generator-archive@2.0.0
├── hexo-generator-category@2.0.0
├── hexo-generator-index@4.0.0
├── hexo-generator-tag@2.0.0
├── hexo-renderer-ejs@2.0.0
├── hexo-renderer-marked@6.3.0
├── hexo-renderer-stylus@3.0.1
├── hexo-server@3.0.0
├── hexo-theme-landscape@1.0.0
└── hexo@7.3.0

Your 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": "7.3.0"
  },
  "dependencies": {
    "hexo": "^7.3.0",
    "hexo-deployer-git": "^4.0.0",
    "hexo-generator-archive": "^2.0.0",
    "hexo-generator-category": "^2.0.0",
    "hexo-generator-index": "^4.0.0",
    "hexo-generator-tag": "^2.0.0",
    "hexo-renderer-ejs": "^2.0.0",
    "hexo-renderer-markdown-it-plus": "^1.0.6",
    "hexo-renderer-stylus": "^3.0.1",
    "hexo-server": "^3.0.0",
    "hexo-theme-landscape": "^1.0.0",
    "hexo-theme-redefine": "^2.7.3",
    "katex": "^0.16.11",
    "markdown-it": "^14.1.0",
    "markdown-it-attrs": "^4.2.0",
    "markdown-it-imsize": "^2.0.1",
    "markdown-it-mathjax3": "^4.3.2",
    "markdown-it-task-lists": "^2.1.1",
    "markdown-it-toc": "^1.1.0"
  }
}

Your site's _config.yml (Optional)

No response

Others

Changing the second line to { #} would fix the problem. What a weird bug!

p.s. I encountered this bug when trying to use mathjax \def and a note block in the same file.

For example:

$\def\sqr#1{#1^2}$

{% note danger %}
danger note
{% endnote %}

Adding a space between the { and # also works in this scenario.

uiolee commented 2 weeks ago

I am sorry that #5395 failed to completely solve this problem

uiolee commented 2 weeks ago

Similar to #5301, {# is considered a comment in nunjucks and is discarded.

https://github.com/hexojs/hexo/issues/5301#issuecomment-1735550123