用 Google 的 blogger 撰寫技術日誌並夾帶程式碼, 需要動一些手腳, 這邊記錄我的設定:
接著會希望編輯文章時遇到特別要 Highlight 程式碼的地方, 把程式碼區段給夾起來, 做到簡單易用又便於閱讀、美觀。
run_prettify.js 版本
highlight.js 版本 (推薦)
- 程式碼的保留字顏色 css 設定
- 引用文字的 css 設定
客製化「程式碼」區塊樣式
run_prettify.js 版本
把程式夾在 <pre class="prettyprint">...</pre> 或 <code class="prettyprint">...</code> 就會自動被美化。<pre><code class="prettyprint">
// Your Code
</code></pre>
其他使用方法請參考 usage。highlight.js 版本 (推薦)
<pre><code class="cs">
public ActionResult Index()
{
return View();
}
</code></pre>
其他使用方法請參考 usage。客製化「引言」區塊樣式
預設的「引用」長相實在沒什麼特色, 所以也調整一下, 純粹個人偏好喜歡「框」起來的感覺。程式筆記
只要在文頭所指示的位置, 放入以下的腳本內容, 儲存版型後重新檢視 post 文, 沒問題的話 style 就改為新版了。注意一下程式碼 style 須依賴.js 與 .css 檔案, 也請各自夾帶在 <script /> 與 <style /> 區塊中。引言 style
<style>
blockquote {
@import url(http://fonts.googleapis.com/css?family=Muli);
border: dashed 2px #ccc;
color: #26A186;
font-family: muli;
margin: 30px;
padding: 20px 30px 30px 40px;
}
</style>
程式碼 style
依據喜好, 選擇程式碼 style 的依賴。run_prettify.js 版本
<script async='async' src='//cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/>
這支 js 並不依賴 css 檔案, 所以可大膽的用非同步 async 屬性加快網頁讀取速度。highlight.js 版本 (推薦)
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css" type="text/css" media="all" />
<script src='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js'/>
<script>hljs.initHighlightingOnLoad();</script>
若選擇 highlight.js 要特別注意 css 的依賴, github 列出非常多的 .css 格式, 大家常用的是 atom-one-dark, 所以要換成別的也可以, cloudflare cdn 的 .css 網址換一下就好。選擇最適合的語言格式
根據 highlightjs 官網的整理, 支援的語言 / 腳本格式很多 (目前累計 176 languages and 79 styles), 若沒有指定 language, 其實也有預設的關鍵字 highlight 效果。
語言 / 腳本 | class name |
Access logs | accesslog |
Ada | ada |
ActionScript | actionscript, as |
Apache | apache, apacheconf |
AsciiDoc | asciidoc, adoc |
Bash | bash, sh, zsh |
C# | cs, csharp |
C++ | cpp, c, cc, h, c++, h++, hpp |
CMake | cmake, cmake.in |
CSS | css |
CoffeeScript | coffeescript, coffee, cson, iced |
Delphi | delphi, dpr, dfm, pas, pascal, freepascal,lazarus, lpr, lfm |
Diff | diff, patch |
Django | django, jinja |
Dockerfile | dockerfile, docker |
Excel | excel, xls, xlsx |
Gradle | gradle |
Groovy | groovy |
HTML, XML | xml, html, xhtml, rss, atom, xjb, xsd, xsl, plist |
HTTP | http, https |
JSON | json |
Java | java, jsp |
JavaScript | javascript, js, jsx |
Lua | lua |
Makefile | makefile, mk, mak |
Markdown | markdown, md, mkdown, mkd |
Mathematica | mathematica, mma |
Matlab | matlab |
Nginx | nginx, nginxconf |
Objective C | objectivec, mm, objc, obj-c |
OpenGL Shading Language | glsl |
PHP | php, php3, php4, php5, php6 |
Perl | perl, pl, pm |
PowerShell | powershell, ps |
R | r |
Ruby | ruby, rb, gemspec, podspec, thor, irb |
SCSS | scss |
SQL | sql |
Scala | scala |
Swift | swift |
VB.Net | vbnet, vb |
VBScript | vbscript, vbs |
Vim Script | vim |
x86 Assembly | x86asm |
XQuery | xpath, xq |
注意不是這樣使用 <pre><code class="c#">, 而是 <pre><code class="cs"> 或 <pre><code class="csharp">, 請參考上表第二欄。
Trouble Shooting
這個世界果然沒有這麼完美, 設定完後其實有一點小問題, 就是原來創建 blogger 所選擇的 template, 恰好已客製化「引言」專屬的 css, 故怎麼蓋也蓋不掉。這個時候, 請到 Blogger > Theme > Edit HTML > 搜尋 blockquote, 然後看是要刪除還是用 /* */ 給註解起來, 儲存頁面後重整, 果然就是預期的結果了。而且強烈建議儘量讓 Theme 內的 HTML 單純 (因為 global 腳本已經太多了), 若個性化的部分繼續夾雜在裡頭, 估計是不如放在 Gadget 內這麼好找。參考資料
- https://amobiz.github.io/2013/05/28/blogger-google-code-prettify-github-gist/
- https://shoutersclub.blogspot.tw/2015/03/customize-blockquote-style-in-blogger-and-wordpress.html
- http://www.stramaxon.com/2012/03/how-to-add-css-to-your-blogger-blog.html
- https://highlightjs.org/usage/
- http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html
- http://natashasnickelodeon.blogspot.tw/2012/09/how-to-create-about-me-page-in-blogger.html
Comments
Post a Comment