摘要:?jiǎn)栴}背景使用模擬實(shí)現(xiàn)文檔,頁面和的語法差異遇到問題。文檔中的效果如下分析問題報(bào)錯(cuò)信息寫的很明確,,是不被期望的。遇到問題時(shí),解決思路可以考慮下轉(zhuǎn)義碼標(biāo)簽。
問題背景
使用hexo+css模擬實(shí)現(xiàn)weex文檔,頁面Weex 和 Vue 2.x 的語法差異遇到問題。
問題描述新建頁面,copy進(jìn)去內(nèi)容,hexo server運(yùn)行,控制臺(tái)報(bào)錯(cuò):
FATAL Something"s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html Template render error: (unknown path) [Line 17, Column 9] unexpected token: ! at Object.exports.prettifyError (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/nunjucks/src/lib.js:34:15) at Obj.extend.render (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/nunjucks/src/environment.js:469:27) at Obj.extend.renderString (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/nunjucks/src/environment.js:327:21) at /Users/weilu/Desktop/weilu/code/document/folder/node_modules/hexo/lib/extend/tag.js:66:9 at Promise._execute (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/debuggability.js:300:9) at Promise._resolveFromExecutor (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:483:18) at new Promise (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:79:10) at Tag.render (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/hexo/lib/extend/tag.js:64:10) at Object.tagFilter [as onRenderEnd] (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/hexo/lib/hexo/post.js:266:16) at /Users/weilu/Desktop/weilu/code/document/folder/node_modules/hexo/lib/hexo/render.js:65:19 at tryCatcher (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:512:31) at Promise._settlePromise (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:569:18) at Promise._settlePromise0 (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/promise.js:693:18) at Async._drainQueue (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/async.js:133:16) at Async._drainQueues (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/async.js:143:10) at Immediate.Async.drainQueues (/Users/weilu/Desktop/weilu/code/document/folder/node_modules/bluebird/js/release/async.js:17:14) at runCallback (timers.js:574:20) at tryOnImmediate (timers.js:554:5) at processImmediate [as _immediateCallback] (timers.js:533:5)定位問題
問題定位到if="{{!foo}}"這句文案。文檔中的效果如下:
分析問題:報(bào)錯(cuò)信息寫的很明確,unexpected token: !,!是不被期望的。其實(shí)這是因?yàn)槭褂昧?b>{{...}}導(dǎo)致的,在hexo中雙括號(hào)會(huì)被解析,雙括號(hào)里的內(nèi)容會(huì)被當(dāng)做變量解析。
解決問題以下是幾種可能的解決方案
網(wǎng)上找到方法說使用"可以不解析{{,其實(shí)不然,使用"后會(huì)不解析轉(zhuǎn)義后的特俗字符,例如改為
`if="{{!foo}}"` 還是會(huì)解析,會(huì)報(bào)同樣的錯(cuò)誤,所以`包裹是不能解決問題的。
還有的是說使用"""三個(gè)反引號(hào),三個(gè)"""確實(shí)可以解決解析方面的問題,但是不能解決我們這里的問題,我們看文檔可以知道,這句if="{{!foo}}"是在表格中的,而"""生成的是代碼塊,所以三個(gè)反引號(hào)是不能最終解決問題的。
轉(zhuǎn)義。一般很多類似unexpected token: ***的問題,都可以使用轉(zhuǎn)義的方法解決,關(guān)于轉(zhuǎn)義字符,可以看我上一篇文章hexo+css創(chuàng)建自己的blog(語法手冊(cè)),里面最底下有各種特殊字符對(duì)應(yīng)的轉(zhuǎn)義碼。以下是我解決問題的三個(gè)過程:
`if="{{!foo}}"` 這種方式時(shí),`根本不會(huì)把轉(zhuǎn)義過后的內(nèi)容反轉(zhuǎn)義回去,效果圖如下圖1。 圖1的效果并不是我們期望的,只是我們知道`最終在頁面展示的效果是包裹在code中的,所以我們可以用如下方式,效果如下圖2。if="{{!foo}}"
圖2中可以看出,雙引號(hào)變成了中文的,這也不是我們期望的,需要轉(zhuǎn)義一下,改為如下方式,完美解決問題,結(jié)果如圖3。if="{{!foo}}"
圖1:
圖2:
圖3:
使用hexo創(chuàng)建博客寫文章的時(shí)候,遇到的問題幾乎都是特殊字符解析方面的問題,所以應(yīng)該盡可能少寫一些特殊字符,如果實(shí)在需要,可以使用轉(zhuǎn)義碼。遇到問題時(shí),解決思路可以考慮下轉(zhuǎn)義碼+html標(biāo)簽。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/112561.html
摘要:什么是第三方評(píng)論系統(tǒng)博客或系統(tǒng),一般都是有內(nèi)容和評(píng)論兩部分組成。而且垃圾評(píng)論和過濾非法關(guān)鍵字難度較大,所以在國內(nèi)外都有第三評(píng)論系統(tǒng)。三評(píng)論系統(tǒng)實(shí)現(xiàn)預(yù)備工作創(chuàng)建。 本文只是介紹如何基于 github issues 實(shí)現(xiàn)第三方評(píng)論系統(tǒng),對(duì)于 Hexo 介紹,本文并不打算詳述,如果有童鞋之前還沒有了解 Hexo 的,可以先看一下之前文章《靜態(tài)博客框架 Hexo 入門 》,或者直接訪問 Hex...
摘要:最近在項(xiàng)目中遇到項(xiàng)目時(shí)報(bào)錯(cuò)具體報(bào)錯(cuò)如下但在安裝依賴之前,不會(huì)出現(xiàn)這個(gè)問題。問題原因無法解析的問題,所以導(dǎo)致打包失敗。 最近在項(xiàng)目中遇到vue項(xiàng)目build時(shí)報(bào)錯(cuò) ERROR in static/js/vendor.7cc64802b7814edeb429.js from UglifyJs Unexpected token: punc (() [./node_modules/iview/...
摘要:在使用的時(shí)候,很多人遇到了一個(gè)問題對(duì)于這個(gè)錯(cuò)誤,很多人似曾相識(shí),以為是配置的問題。但是號(hào)稱是零配置,是不需要配置的。如果使用全局安裝,會(huì)發(fā)現(xiàn)這個(gè)是自身的報(bào)錯(cuò)在的文件寫著所以是支持版本的。 在使用 parcel 的時(shí)候,很多人遇到了一個(gè)問題: async function bundle(main, command) { ^^^^^^^^ SyntaxError: Unexp...
摘要:配置觸發(fā)方式一般會(huì)得到這么個(gè)語雀配置配置一個(gè)倉庫的可以選擇所有更新觸發(fā)或者主動(dòng)觸發(fā),主動(dòng)觸發(fā)的意思即發(fā)布需要勾選一個(gè)選項(xiàng)才會(huì)觸發(fā)。 Hexo + Github + 語雀 + yuque-hexo +travis-ci+severless 打造全自動(dòng)持續(xù)集成個(gè)人博客,云端寫作,自動(dòng)部署,完美體驗(yàn)~ 一、Hexo+Github 的痛點(diǎn) 1.為啥要用hexo+github? 作為一個(gè)程序猿,...
摘要:配置觸發(fā)方式一般會(huì)得到這么個(gè)語雀配置配置一個(gè)倉庫的可以選擇所有更新觸發(fā)或者主動(dòng)觸發(fā),主動(dòng)觸發(fā)的意思即發(fā)布需要勾選一個(gè)選項(xiàng)才會(huì)觸發(fā)。 Hexo + Github + 語雀 + yuque-hexo +travis-ci+severless 打造全自動(dòng)持續(xù)集成個(gè)人博客,云端寫作,自動(dòng)部署,完美體驗(yàn)~ 一、Hexo+Github 的痛點(diǎn) 1.為啥要用hexo+github? 作為一個(gè)程序猿,...
閱讀 2306·2021-11-25 09:43
閱讀 2942·2019-08-30 15:52
閱讀 1893·2019-08-30 15:44
閱讀 982·2019-08-30 10:58
閱讀 762·2019-08-29 18:43
閱讀 3217·2019-08-29 18:36
閱讀 2316·2019-08-29 17:02
閱讀 1458·2019-08-29 17:01