[Blogger] 如何在Blogger中插入程式碼?Google Code Prettify

一、前言

Blogger似乎沒有內建顯示程式碼的功能,因此就上網找了一下,發現Google Code Prettify,設定方式很簡單,網路上也有不少教學。最簡單的設定方式就是使用blogger小工具( HTML / Javascript)並貼上Code Prettify的程式碼,儲存即完成設定。使用方式則只要在文章編輯中,切換成HTML,在程式碼前後添加<pre>或是<code>標籤,而有些程式需要轉換成HTML的內碼才能顯示。

但是!最簡單的方式我試了好幾次,就是沒有成功,所以來分享第二種添加Code Prettify的方法。

二、設定

(一)方法一:使用小工具 HTML / Javascript

這個方法底下參考資料羅列了一些文章,裡面有教學,但我就是跟這個方法無緣。QQ

(二)方法二:直接編輯HTML

1. 主選單>主題>設定>編輯HTML

主選單>主題>設定

編輯HTML

2. 貼上:Code Prettify

<script src="https://cdn.jsdelivr.net/gh/google/
code-prettify@master/loader/run_prettify.js"></script>
將上方程式碼貼在HTML內,至於要貼在哪裡?Google Code Prettify中只有提到放進HTML中,在m@rcus學習筆記的文章中提到放在HTML <body> 前貼上程式碼,但我光是找<body>標籤我的眼睛都快脫窗了,我試著將程式碼貼在</body>標籤前或後,發現兩者位置是可行的,而且也很好找,因為</body>標籤一定在最後面XD。

貼上Code Prettify

二、使用

1. <pre>或<code>

可以使用<pre>或<code>在blogger文章編輯HTML模式
(1) <pre>

<pre class="prettyprint">你的程式碼</pre>

如果想要在旁邊加行數,記得class多linenyms,要寫成這樣:

<pre class="prettyprint linenums">
你的程式碼
顯示的程式碼會自動內縮
單行和偶行會有不同背景色
每五行才會有一個行數
</pre>

(2) <code>

<code class="prettyprint">你的程式碼</code>

HTML編輯模式


2. 轉換:將程式碼轉成HTML內碼

在上圖可以發現,<的HTML內碼是&lt;,而>的HTML內碼是&gt;,故有些程式碼是需要先轉換成HTML讀的懂得語言,即為HTML本身的內碼。因此在貼程式碼前,可以透過一些小工具轉換。

三、外型

預設
Code Prettify的外觀可以用CSS來改變,這裡有現成的外型主題可以選擇,一開始是Defult,而我自己是換成Desert。只要點進Gallery of themes for code prettify,並點擊喜歡的主題,如:Desert,就會打開存在GitHub的CSS程式碼。
沙漠主題
將程式碼複製下來,並貼在HTML<head>標籤內,我自己是貼在Blogger Template Style附註之下方。
/*!************************************************
 * Blogger Template Style
 * Name: Emporio
 **************************************************/
沙漠主題CSS貼上位置

沙漠主題程式碼
/* desert scheme ported from vim to google prettify */
pre.prettyprint { display: block; background-color: #333 ; border-radius: 8px}
pre .nocode { background-color: none; color: #000 }
pre .str { color: #ffa0a0 } /* string  - pink */
pre .kwd { color: #f0e68c; font-weight: bold }
pre .com { color: #87ceeb } /* comment - skyblue */
pre .typ { color: #98fb98 } /* type    - lightgreen */
pre .lit { color: #cd5c5c } /* literal - darkred */
pre .pun { color: #fff }    /* punctuation */
pre .pln { color: #fff }    /* plaintext */
pre .tag { color: #f0e68c; font-weight: bold } /* html/xml tag    - lightyellow */
pre .atn { color: #bdb76b; font-weight: bold } /* attribute name  - khaki */
pre .atv { color: #ffa0a0 } /* attribute value - pink */
pre .dec { color: #98fb98 } /* decimal         - lightgreen */

/* Specify class=linenums on a pre to get line numbering */
ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE } /* IE indents via margin-left */
li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: decimal }
/* Alternate shading for lines */
li.L1,li.L3,li.L5,li.L7,li.L9 { }

@media print {
  pre.prettyprint { background-color: none }
  pre .str, code .str { color: #060 }
  pre .kwd, code .kwd { color: #006; font-weight: bold }
  pre .com, code .com { color: #600; font-style: italic }
  pre .typ, code .typ { color: #404; font-weight: bold }
  pre .lit, code .lit { color: #044 }
  pre .pun, code .pun { color: #440 }
  pre .pln, code .pln { color: #000 }
  pre .tag, code .tag { color: #006; font-weight: bold }
  pre .atn, code .atn { color: #404 }
  pre .atv, code .atv { color: #060 }
}


四、參考資料

留言