当前位置 博文首页 > 后端码匠:hexo 异常处理

    后端码匠:hexo 异常处理

    作者:[db:作者] 时间:2021-08-31 13:15

    D:\mxz_code\my-github\blog-source>hexo s
    INFO  Validating config
    WARN  Deprecated config detected: "use_date_for_updated" is deprecated, please use "updated_option" instead. See https://hexo.io/docs/configuration for more details.
    INFO  Start processing
    FATAL {
      err: Template render error: (unknown path)
        Error: filter not found: myGenderFilter
          at Object._prettifyError (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\lib.js:36:11)
          at D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:561:19
          at Template.root [as rootRenderFunc] (eval at _compile (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:631:18), <anonymous>:35:3)
          at Template.render (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:550:10)
          at Environment.renderString (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:378:17)
          at D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\extend\tag.js:236:16
          at tryCatcher (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\util.js:16:23)
          at Function.Promise.fromNode.Promise.fromCallback (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:209:30)
          at Tag.render (D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\extend\tag.js:235:20)
          at Object.onRenderEnd (D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\hexo\post.js:297:22)
          at D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\hexo\render.js:79:21
          at tryCatcher (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\util.js:16:23)
          at Promise._settlePromiseFromHandler (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:547:31)
          at Promise._settlePromise (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:604:18)
          at Promise._settlePromise0 (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:649:10)
          at Promise._settlePromises (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:729:18)
          at _drainQueueStep (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:93:12)
          at _drainQueue (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:86:9)
          at Async._drainQueues (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:102:5)
          at Immediate.Async.drainQueues (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:15:14)
          at processImmediate (internal/timers.js:456:21) {
        cause: Template render error: (unknown path)
          Error: filter not found: myGenderFilter
            at Object._prettifyError (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\lib.js:36:11)
            at D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:561:19
            at Template.root [as rootRenderFunc] (eval at _compile (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:631:18), <anonymous>:35:3)
            at Template.render (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:550:10)
            at Environment.renderString (D:\mxz_code\my-github\blog-source\node_modules\nunjucks\src\environment.js:378:17)
            at D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\extend\tag.js:236:16
            at tryCatcher (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\util.js:16:23)
            at Function.Promise.fromNode.Promise.fromCallback (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:209:30)
            at Tag.render (D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\extend\tag.js:235:20)
            at Object.onRenderEnd (D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\hexo\post.js:297:22)
            at D:\mxz_code\my-github\blog-source\node_modules\hexo\lib\hexo\render.js:79:21
            at tryCatcher (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\util.js:16:23)
            at Promise._settlePromiseFromHandler (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:547:31)
            at Promise._settlePromise (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:604:18)
            at Promise._settlePromise0 (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:649:10)
            at Promise._settlePromises (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\promise.js:729:18)
            at _drainQueueStep (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:93:12)
            at _drainQueue (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:86:9)
            at Async._drainQueues (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:102:5)
            at Immediate.Async.drainQueues (D:\mxz_code\my-github\blog-source\node_modules\bluebird\js\release\async.js:15:14)
            at processImmediate (internal/timers.js:456:21) {
          name: 'Template render error'
        },
        isOperational: true
      }
    } Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html
    

    原因

    这类异常一般是文章中使用了大括号 { } 这个特殊字符,且没有转义导致编译不通过

    解决方案

    可以参考Markdown语法第(0)章-特殊字符 将 { } 的大括号通过
    &#123; &#125; 进行转换

    cs