April
22nd,
2016
使用 Markdown 來撰寫文件真的相當方便,不只可以快速地將文件結構組織起來,現在我更拿它來作筆記、寫部落格,像現在這篇文章就是使用 Github Pages 的服務,加上使用 Jekyll 工具,然後搭配 Markdown 來寫文章,基本的語法可以參考 Markdown 語法說明。
Github Flavored
然而在文章中常會放上程式碼,這時候如果有語法高亮,那就完美了!Github Flavored 就是提供這樣的功能,寫法也很簡單:
```javascript function foo() { var bar = ''; if (bar === 'Awesome'){ return true } } ```
上面這樣的寫法,透過 Github Flavored 的 highlighter-rouge 去渲染後,就會變成這樣:
function foo() {
var bar = '';
if (bar === 'Awesome'){
return true
}
}
是不是看起來更清楚了!而且 Github Flavored 支援超多種語言,參考下面的語言識別碼做設定:
Language | IDs |
---|---|
ASP | asax • ascx • ashx • asmx • asp • aspx • aspx-vb • axd • |
Assembly | a51 • asm • assembly • nasm • |
C | c • cats • h • idc • w • |
C# | c# • cs • csharp • cshtml • csx • |
C++ | c++ • cc • cp • cpp • cxx • h • h++ • hh • hpp • hxx • inl • ipp • tcc • tpp • |
F# | f# • fs • fsharp • fsi • fsx • |
Go | go • |
HTML | htm • html • html.hl • st • xht • xhtml • |
CSS | css • |
SCSS | scss • |
HTTP | http • |
Jasmin | j • jasmin • |
JavaScript | _js • bones • es6 • frag • gs • jake • javascript • js • jsb • jsfl • jsm • jss • jsx • njs • node • pac • sjs • ssjs • sublime-build • sublime-commands • sublime-completions • sublime-keymap • sublime-macro • sublime-menu • sublime-mousemap • sublime-project • sublime-settings • sublime-theme • sublime-workspace • sublime_metrics • sublime_session • xsjs • xsjslib • |
JSON | json • lock • |
Markdown | markdown • md • mkd • mkdn • mkdown • ron • |
PHP | aw • ctp • fcgi • inc • php • php3 • php4 • php5 • phpt • |
PLSQL | pkb • pks • plb • pls • plsql • sql • |
PowerShell | posh • powershell • ps1 • psd1 • psm1 • |
Shell | bash • bats • cgi • command • fcgi • ksh • sh • shell • tmux • zsh • |
SQL | cql • ddl • prc • sql • tab • udf • viw • |
Stylus | styl • stylus • |
Text | fr • text • txt • |
TypeScript | ts • typescript • |
Visual Basic | bas • cls • frm • frx • vb • vb.net • vba • vbhtml • vbnet • vbs • visual-basic • |
XML | ant • axml • ccxml • clixml • cproject • csproj • ct • dita • ditamap • ditaval • dll.config • filters • fsproj • fxml • glade • grxml • ivy • jelly • kml • launch • mm • mxml • nproj • nuspec • osm • plist • pluginspec • ps1xml • psc1 • pt • rdf • rss • scxml • srdf • storyboard • sttheme • sublime-snippet • targets • tmcommand • tml • tmlanguage • tmpreferences • tmsnippet • tmtheme • ts • ui • urdf • vbproj • vcxproj • vxml • wsdl • wsf • wxi • wxl • wxs • x3d • xacro • xaml • xib • xlf • xliff • xmi • xml • xml.dist • xsd • xul • zcml • |
YAML | reek • rviz • yaml • yml • |
Jekyll Syntax Highlighting
開頭有提到,我使用 Github Pages 加上 Jekyll,然後搭配 Markdown 來寫文章,很多時候文章會列出多種程式碼,因此程式碼的顏色樣式是提高閱讀性的重要功能,這裡我使用 Rouge 來幫我為程式碼加上顏色,他支援 183 種程式碼,幾乎會用到的程式語言都支援了,不過在 Markdown 中使用的時候,要注意他對應的程式語言分析器關鍵字,也就是 Markdown 用來標示程式碼段落所用的程式語言名稱,如下面的 javascript
這個關鍵字:
```javascript function foo() { /* 略 */} ```
在 Rouge 的 GitHub Wiki 中,有他所有支援的程式碼語言與分析器對照表,詳細請參考 List of supported languages and lexers,我把我比較可能會用的做成表格列在下方:
Language | IDs |
---|---|
C | c • |
C# | c# • cs • csharp • |
C++ | c++ • cpp • |
F# | fsharp • |
Go | go • golang • |
HTML | html • |
CSS | css • |
SCSS | scss • |
HTTP | http • |
JavaScript | javascript • js • |
JSON | json • json-doc • |
Markdown | markdown • md • mkd • |
PHP | php • php3 • php4 • php5 • |
PowerShell | posh • powershell • microsoftshell • msshell • |
Shell | bash • zsh • ksh • sh • |
SQL | sql • |
Text | plaintext • text • |
TypeScript | ts • typescript • |
Visual Basic | vb • visualbasic • |
XML | xml • |
YAML | yaml • yml • |
更多資訊請參考以下的參考資料。
參考資料: