westerndevs / western-devs-website

Hexo blog implementation for WesternDevs
https://www.westerndevs.com
2 stars 6 forks source link

Fix hexo generate error #136

Closed kbaley closed 8 years ago

kbaley commented 8 years ago

The error occurs in list.styl in the font-awesome folder. It doesn't affect the site but makes it harder to detect real errors.

Error details:

Error: /Users/kyle/Documents/workspace/code/western-devs-website/themes/westerndevs/source/css/font-awesome/list.styl:14:22
   10|     position relative
   11| 
   12| .{$fa-css-prefix}-li
   13|   position absolute
   14|   left -($fa-li-width)
----------------------------^
   15|   width $fa-li-width
   16|   top (2em / 14)
   17|   text-align center

TypeError: expected "undefined" to be a unit, but got ident:$fa-li-width
    at ".$fa-css-prefix-li" (/Users/kyle/Documents/workspace/code/western-devs-website/themes/westerndevs/source/css/font-awesome/list.styl:11:22)

    at Object.exports.assertType (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/utils.js:211:9)
    at Evaluator.visitUnaryOp (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:593:11)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.visitExpression (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:630:26)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.visitProperty (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:673:22)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.visitBlock (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:706:39)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.visitGroup (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:247:22)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.visitRoot (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:693:27)
    at Evaluator.Visitor.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/index.js:28:40)
    at Evaluator.visit (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:156:18)
    at Evaluator.evaluate (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/visitor/evaluator.js:233:15)
    at Renderer.render (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/node_modules/stylus/lib/renderer.js:86:26)
    at Hexo.module.exports (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo-renderer-stylus/lib/renderer.js:46:6)
    at Hexo.tryCatcher (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/util.js:26:23)
    at Hexo.ret (eval at <anonymous> (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/promisify.js:163:12), <anonymous>:13:39)
    at /Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/lib/hexo/render.js:51:21
    at tryCatcher (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._settlePromiseFromHandler (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/promise.js:507:31)
    at Promise._settlePromiseAt (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/promise.js:581:18)
    at Promise._settlePromises (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/promise.js:697:14)
    at Async._drainQueue (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/kyle/Documents/workspace/code/western-devs-website/node_modules/hexo/node_modules/bluebird/js/main/async.js:15:14)
    at processImmediate [as _immediateCallback] (timers.js:367:17)
kbaley commented 8 years ago

Reason for the error: Hexo is trying to generate a .css file for each of the .styl files in the font-awesome folder. So it tries to convert list.styl to list.css and icons.styl to icons.css. This doesn't make sense for two reasons:

  1. Each of these files in @included in font-awesome.styl. The generator will parse them individually and combine them into a single font-awesome.css file at the end. So the individual .css files are never referenced
  2. These files make reference to variables that are declared in variables.styl. When trying to parse them individually, the variables can't be resolved. Normally, that's not a problem but in the case of list.styl the minus sign causes the parser to try to take a negative of a variable that isn't defined in list.styl (although when it's included in font-awesome.styl it works fine).

The ideal solution: try to configure hexo to ignore these files during generation.