hexo-theme-chan icon indicating copy to clipboard operation
hexo-theme-chan copied to clipboard

关于运行命令 'hexo g' 时的问题

Open HolmesZ opened this issue 6 years ago • 5 comments

2018-06-13 22-45-31 今天修改了部分源码,最后运行‘hexo clean’,再运行‘hexo g’时,出现了这些错误。于是我将未修改的源代码重新放进去,再运行‘hexo clean’,‘hexo g'时,仍然出现这些错误。求解。

HolmesZ avatar Jun 13 '18 14:06 HolmesZ

duplicated with #4

更像是 stylus 版本不对导致的,请检查 article-padding 是否定义,stylus 是否支持乘 -1 操作。这个文件是来自默认主题landscape,如果 landscape 也 build 不了就不是主题代码问题。

denjones avatar Jun 14 '18 02:06 denjones

landscape主题可以正常生成,但是切换回原生chan主题后就会出现上述错误。 ---如果把负号去掉,则会提示 2018-06-15 16-57-52

---如果只保留‘ margin: 0 article-padding ’,则会提示 2018-06-15 17-00-47

我的stylus版本是 0.54.5 nodejs版本是10.4.1 npm版本是6.1.0

HolmesZ avatar Jun 15 '18 09:06 HolmesZ

那可能是找不到这些参数的定义,请检查下 variables.styl 文件

denjones avatar Jun 20 '18 08:06 denjones

  • 我的 variables.styl 文件有这些参数的定义。

  • 谢谢提醒,我已经找到解决问题的办法,可能是 hexo 在解析 styl 文件时的顺序问题。

  • 灵感: 1、landscape主题 hexo g 后只生成一个 style.css 文件,但 chan 主题 hexo g 后却生成了很多个css文件,真正引用的只有 main.css 一个文件。 2、用stylus单独编译 main.styl 文件可以成功。 3、在 hightlight.styl 头引入 variables.styl, 再单独编译 hightlight.styl 可以成功。

  • 可能的问题: chan主题里面 hightlight.styl, main.styl, variables.styl三个文件都在同一个目录下,我认为 hexo 的stylus可能是先解析 highlight.styl 文件再解析 variables.styl ,导致 hightlight.styl 文件找不到定义。

  • 解决的办法: 1、在 hightlight.styl 里直接加上缺少的定义。 2、模仿landscape主题,将除了 main.styl 文件外的 styl 文件放进一个文件夹,我命名为 “_partial” ,保留lib文件夹的位置不变,修改 main.styl 里面相关的路径为 “_partial/xxxxxx” 。

  • 另外的问题: 有些浏览器如QQ浏览器加载网页的时候,页面中的字体先是蓝色再变成预先设定的颜色。

HolmesZ avatar Jul 09 '18 01:07 HolmesZ

Thanks. 我抽空修复下

denjones avatar Jul 09 '18 02:07 denjones