在使用 Hexo 時,您可能會遇到一些問題,下列的常見問題解答可能會對您有所幫助。如果您在這裡找不道解答,可以在 GitHub 或 Google Group 上詢問。
YAML 解析錯誤
JS-YAML: incomplete explicit mapping pair; a key node is missed at line 18, column 29: |
如果 YAML 字串中包含冒號(:
)的話,請加上引號。
JS-YAML: bad indentation of a mapping entry at line 18, column 31: |
請確認您使用空白進行縮排(Soft tab),並確認冒號後有加上一個空格。
您可參閱 YAML 規格 以取得更多資訊。
EMFILE 錯誤
Error: EMFILE, too many open files |
雖然 Node.js 有非阻塞 I/O,同步 I/O 的數量仍被系統所限制,在產生大量靜態檔案的時候,您可能會碰到 EMFILE 錯誤,您可試著提高同步 I/O 的限制來解決此問題。
$ ulimit -n 10000 |
Git 佈署問題
fatal: 'username.github.io' does not appear to be a git repository |
請確認您已經在電腦上 設定 git,或改用 HTTPS 儲存庫(repository)網址。
伺服器問題
Error: listen EADDRINUSE |
您可能同時開啟兩個 Hexo 伺服器,或者有其他應用程式正在佔用相同的連接埠,請試著修改 port
設定,或是在啟動 Hexo 伺服器時加上 -p
選項。
$ hexo server -p 5000 |
外掛安裝問題
npm ERR! node-waf configure build |
當您試著安裝以 C/C++ 或其他非 JavaScript 語言所撰寫的外掛時,可能會遭遇此問題,請確認您已經在電腦上安裝相對應的編譯器。
在 Jade 或 Swig 遍歷資料
Hexo 使用 Warehouse 儲存資料,它不是一般陣列所以必須先轉型才能遍歷。
{% for post in site.posts.toArray() %} |
資料沒有更新
有時資料可能沒有被更新,或是產生出的檔案與修改前的相同,您可試著清除快取並再試一次。
$ hexo clean |
脫逸(Escape)內容
Hexo 使用 Nunjucks 來解析文章(舊版本使用 Swig,兩者語法類似),內容若包含 {{ }}
或 {% %}
可能導致解析錯誤,您可以用 raw
標籤包裹來避免潛在問題發生。
{% raw %} |