Octopress程式碼高亮問題(Windows10)
layout: post
title: "Octopress程式碼高亮問題(Windows10)"
date: 2016-04-30 00:57:01 +0800
comments: true
categories: [octopress]
首先我要用祭出一段程式碼。。
<?php
for($i=0;i<100;i++){
echo "Octopress 的程式碼高亮真的真的有坑!!!"
}
?>
之前在寫部落格的時候就有發現,我的用markdown語法寫出來的程式碼好像是和別人的不一樣。後來發現是我的程式碼沒有用高亮。人家也是一個有追求的PHPer(尷尬臉)。我就查markdown語法啊。
語法是這樣給我說的
markdown 語法實現程式碼高亮有兩種方法
1 ```[language] [title] [url] [link text]
code snippet
```
2 {\% codeblock [title] [lang:language] [url] [link text] \%}
code snippet
{\% endcodeblock \%}
唉,原來這麼簡單。改程式碼走起->rake generate ->reke deploy
去看看我可愛的帶顏色的程式碼呢。
!!!!!
為什麼我的部落格一片空白了!!!
然後我去度娘,去google。。
終於找到跟我一樣懵逼的小夥伴戳過去同情他
按照這個小夥伴的思路我開始裝Python
我裝的是Python2.7.11 選擇 Windows x86-64 MSI installer下載。然後一直下一步安裝。
安裝完成後新增環境變數
這個部落格可以參考
滑鼠右擊我的電腦,選擇屬性,再選擇高階系統設定,右下角有一個環境變數,點進去
找到path項,選擇編輯,把你的Python安裝路徑(如:C:\Python27)輸入進去,注意要用一個 ; 符號與前面的路徑分開,再點確定就可以了。完事後可以執行cmd,輸入python,如下顯示就是成功了
這個時候突然發現了另一篇博文
這個博文看起來要簡單點傳送門
按照下一篇博文的方法
<pre class="prettyprint linenums">
安裝Python
安裝Python,也是一路next就可以,部落格的程式碼高亮用到了Python的Pygments模組,在Python中安裝第三方庫需要使用easy_install,在下面地址下載跟Python相對應的安裝程式安裝後就可以使用easy_install了。
https://pypi.python.org/pypi/setuptools
easy_install會安裝在Python安裝目錄的Scripts目錄中,例如我的Python目錄是C:\Python27,所以需要將C:\Python27\Scripts目錄加入到環境變數中才能在命令提示符中使用easy_install命令。
在命令提示符中輸入如下命令就可以安裝Pygments了。
easy_install pygments
</pre>
https://pypi.python.org/pypi/setuptools去找到Windows (simplified)又懵逼了。它給了一段程式碼需要自己編譯執行ez_setup.py新建文字文件將網頁上的程式碼全部貼上下來,儲存重新命名為ez_setup.py
<pre class="prettyprint linenums">
Win+R
cmd
進到你剛剛儲存的那檔案的路徑
python ez_setup.py //安裝easy_install
等到安裝完成過後
將C:\Python27\Scripts目錄加入到環境變數中前面的C:\Python27\和你之前新增的Python的環境變數一樣
easy_install pygments
等到這一步完成後,基本就算大工告成了
</pre>
如果你還是出現相同問題的話,那請找網管重啟機器。
<?php
echo"不出意外的話你的問題也應該解決了。\n"
echo"你看我是不是一段有顏色的程式碼啊!";
?>
後記
在解決上述問題的過程中,瞭解到另一種程式碼高亮的方法
使用google-code-prettify可以用來很方便地對網頁中的程式程式碼進行高亮顯示,從而在視覺上使得網頁上的程式碼看得比較舒服,這對網站站長來說是很重要的。
有兩種方法來啟用google-code-prettify,下面簡要介紹一下步驟。
方法一
(1) 從https://code.google.com/p/google-code-prettify/downloads/list中下載或者從http://www.colafile.com/file/145953 中打包下載pretty.css以及pretty.js,並儲存到本地伺服器的相應目錄中來引用
(2) 引用pretty.css以及pretty.js,然後在網頁中引用,引用方法為
<link href="你儲存的目錄/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="你儲存的目錄/prettify.js"></script>
(3)
<body>標籤改為<body onload="prettyPrint()">
(4) 將原始碼用標籤
<pre class="prettyprint linenums">這是你的程式碼</pre>
包含起來,例如
<pre class="prettyprint linenums">
#include "x.h"
main(){
print("hello world!");
}
</pre>
相應的顯示效果為:
[圖片上傳失敗...(image-42e25b-1532593418840)]
方法二
(1) 到網址 https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js 中或者從http://www.colafile.com/file/145957 下載run_prettify.js檔案
(2) 引用run_prettify.js檔案,方法為
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
或者
<script src="你儲存的目錄/run_prettify.js"></script>
(3) 將原始碼用標籤
<pre class="prettyprint">這是你的程式碼</pre>
包含起來,例如
<pre class="prettyprint">
#include "x.h"
main(){
print("hello world!");
}
</pre>
相應的顯示效果為:
[圖片上傳失敗...(image-5b54d2-1532593418840)]
如果你有更高的使用要求,可以到https://code.google.com/p/google-code-prettify/wiki/GettingStarted這個網頁中看更高階的使用方法
5/17/2016 8:28:40 PM 更新
設定顯示行號
<pre class="prettyprint linenums">
1、刪掉prettify裡的這兩個樣式。
li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
2、替換以下內容,已經存在的替換,不存在的新增。
pre.prettyprint {
padding: 8px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
.prettyprint.linenums {
-webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
-moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
}
/* Specify class=linenums on a pre to get line numbering /
ol.linenums {
margin: 0 0 0 33px; / IE indents via margin-left */
}
ol.linenums li {
padding-left: 12px;
color: #bebec5;
line-height: 18px;
text-shadow: 0 1px 0 #fff;
}
3、在pre標籤裡面一定不能有br/標籤,要換行直接回車.
</pre>
但是
這種方法在使用過程中,當是PHP程式碼時:如
<pre class="prettyprint linenums">
<?php
echo "test!";
?>
</pre>
這樣在實際的顯示過程中只有塊黑色的程式碼塊,程式碼並沒解析出來。
改成如下格式就能正常實現程式碼高亮效果。
<pre class="prettyprint php">
//去掉了PHP的開始和結束符
echo "test!";
</pre>
我沒有去具體研究這個原理,不過我推測是因為PHP的開始副 <? 和pre的開始結束符產生了混亂不能正確匹配,從而導致解析失敗。
相關文章
- hexo程式碼高亮Hexo
- Eclipse解決JavaScript等支援問題(沒有高亮,沒有程式碼提示)EclipseJavaScript
- 測試程式碼高亮
- 如何實現程式碼高亮
- 程式碼高亮網站收集網站
- django-ckeditor 程式碼高亮Django
- 修改VS的程式碼高亮顏色
- WebStorem 支援微信小程式 wepy 程式碼高亮WebREM微信小程式
- Atom 微信小程式檔案程式碼高亮微信小程式
- Jquery實現的高亮效果程式碼分享jQuery
- 做元件庫使程式碼高亮的方法元件
- 程式碼高亮WordPress外掛:Pure-HighlightjsJS
- 程式碼設計問題
- Comi - 小程式 markdown 渲染和程式碼高亮解決方案
- 織夢DedeCms程式碼高亮怎麼實現
- pycharm程式碼不高亮顯示怎麼辦PyCharm
- 當前文字框高亮效果程式碼例項
- CodeReview常見程式碼問題View
- 微信小程式實現全域性搜尋程式碼高亮微信小程式
- 嘿,我造了個程式碼高亮的外掛
- 關於kindeditor插入程式碼問題
- 使用 SonarQube 追蹤程式碼問題
- 在Vue中使用highlight.js高亮顯示程式碼VueJS
- 少編碼多思考:程式碼越多 問題越多
- visual studio IDE 17.10版本 摺疊區域高亮問題IDE
- ts程式碼提示很慢問題解決
- webstorm 無法編輯程式碼問題WebORM
- Vue使用中遇到的程式碼問題Vue
- 低程式碼和無程式碼開發的 4 個安全問題
- [提問交流]修改過程式碼不能立即生效的問題
- 幽默:除錯程式碼問題的最佳方法除錯
- [譯] Go 程式碼評審常見問題Go
- 提出問題,解答問題!這才是理解程式碼設計的正確方法
- 第 09 篇:讓部落格支援 Markdown 語法和程式碼高亮
- 【程式異常記錄】01 --- python編碼問題Python
- pytorch 程式碼出現 ‘segmentation fault (core dump)’ 問題PyTorchSegmentation
- TexStudio拷貝程式碼保留縮排的問題
- 關於公司程式碼許可權的問題