Board logo

標題: 線上程式碼語法高亮產生器 - Online syntax highlighting [打印本頁]

作者: wmh    時間: 2008-10-3 08:59     標題: 線上程式碼語法高亮產生器 - Online syntax highlighting

你可以在這邊輸入你的程式碼,選擇語法種類再按下「幫我上色」的按鈕就可以得到有色彩顯示的程式碼囉。
[jsg.example]
<link type="text/css" rel="stylesheet" href="include/jsg/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css"></link>

<textarea id="codes" rows="10" cols="80">
&lt;script type="text/javascript"&gt;
function doSomething(e) {
  var keynum;
  var keychar;
  var numcheck;
  if (window.event) {
    keynum = e.keyCode;
  } else if (e.which) {
    keynum = e.which;
  }
  keychar = String.fromCharCode(keynum);
  alert(keychar);
}
&lt;/script&gt;
</textarea><br />
<select id="brush">
  <option value="jscript">JavaScript</option>
  <option value="cpp">C++</option>
  <option value="csharp">C#</option>
  <option value="css">CSS</option>
  <option value="delphi">Delphi</option>
  <option value="xml">HTML、XML</option>
  <option value="java">Java</option>
  <option value="php">PHP</option>
  <option value="python">Python</option>
  <option value="ruby">Ruby</option>
  <option value="sql">SQL</option>
  <option value="vb">Visual Basic</option>
</select>
<input type="button" id="doHighlight" value=" 幫我上色 " />
<pre id="showcase" name="showcase" class="jscript:nocontrols"></pre>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shCore.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushCss.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushDelphi.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushJava.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushPython.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushSql.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushVb.js"></script>
<script type="text/javascript" src="include/jsg/dp.SyntaxHighlighter/Scripts/shBrushXml.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'include/javascript/dp.SyntaxHighlighter/Scripts/clipboard.swf';
//dp.SyntaxHighlighter.HighlightAll('showcase');
$j = jQuery.noConflict();
$j(function() {
  $j('#doHighlight').click(function() {
    $j('.dp-highlighter').remove();
    var codes = $j('#codes').val().replace(/>/g, '&gt;').replace(/</g, '&lt;');
    if ($j.browser.msie) {
      $j('#showcase').show();
      $j('#showcase').get(0).outerHTML = '<pre id="showcase" name="showcase" class="' + $j('#brush').val() + ':nocontrols">' + codes + '</pre>';
    } else {
      $j('#showcase').html(codes).get(0).className = $j('#brush').val() + ':nocontrols';
    }
    dp.SyntaxHighlighter.HighlightAll('showcase');
  }).trigger('click');
});
</script>
[/jsg.example]

有了程式碼高亮產生器之後,你的人生就不再是黑白了!上色後的程式碼可以複製到 Word、PowerPoint 裡面,或是任何 Google 線上的WYSIWYG 編輯器內,像是 Google Docs 或 Google Sites,從此文件內的程式碼都是漂漂亮亮的喔!
作者: wmh    時間: 2008-10-4 00:22     標題: 其他選擇

上面這一篇是透過 dp.SyntaxHighlighter 在 client 端完成語法上色的。事實上要做程式碼的語法上色有很多其他方式,如果你偏好用黑色背景來顯示的程式碼,可以試試看這一套線上工具 Online syntax highlighting,除了支持各式各樣的程式語言外,還有很多種佈景主題喔,在線上就可以幫你把程式碼轉成 HTML 的格式,試試看黑色的效果如何:

[jsg.example]
<pre style='color:#d1d1d1;background:#000000;'><span style='color:#d2cd86; '>&lt;</span>script type<span style='color:#d2cd86; '>=</span><span style='color:#02d045; '>"</span><span style='color:#00c4c4; '>text/javascript</span><span style='color:#02d045; '>"</span><span style='color:#d2cd86; '>></span>
function doSomething<span style='color:#d2cd86; '>(</span>e<span style='color:#d2cd86; '>)</span> <span style='color:#b060b0; '>{</span>
  var keynum<span style='color:#b060b0; '>;</span>
  var keychar<span style='color:#b060b0; '>;</span>
  var numcheck<span style='color:#b060b0; '>;</span>
  <span style='color:#e66170; font-weight:bold; '>if</span> <span style='color:#d2cd86; '>(</span>window<span style='color:#d2cd86; '>.</span>event<span style='color:#d2cd86; '>)</span> <span style='color:#b060b0; '>{</span>
    keynum <span style='color:#d2cd86; '>=</span> e<span style='color:#d2cd86; '>.</span>keyCode<span style='color:#b060b0; '>;</span>
  <span style='color:#b060b0; '>}</span> <span style='color:#e66170; font-weight:bold; '>else</span> <span style='color:#e66170; font-weight:bold; '>if</span> <span style='color:#d2cd86; '>(</span>e<span style='color:#d2cd86; '>.</span>which<span style='color:#d2cd86; '>)</span> <span style='color:#b060b0; '>{</span>
    keynum <span style='color:#d2cd86; '>=</span> e<span style='color:#d2cd86; '>.</span>which<span style='color:#b060b0; '>;</span>
  <span style='color:#b060b0; '>}</span>
  keychar <span style='color:#d2cd86; '>=</span> <span style='color:#e66170; font-weight:bold; '>String</span><span style='color:#d2cd86; '>.</span>fromCharCode<span style='color:#d2cd86; '>(</span>keynum<span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
  alert<span style='color:#d2cd86; '>(</span>keychar<span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
<span style='color:#b060b0; '>}</span>
<span style='color:#d2cd86; '>&lt;</span><span style='color:#d2cd86; '>/</span>script<span style='color:#d2cd86; '>></span>
</pre>
[/jsg.example]
此外,如果你熟悉 Vim,可以安裝 2html.vim 這個 plugin,就可以把程式碼給轉成 HTML 格式,詳情請參考這篇部落格文章:
Syntax highlighting on this blog using semantic tags and Vim

如果上述的工具都不合用,也有專門產生高亮語法的工具軟體,可以批次或處理大量的程式碼,只要透過 Google 搜尋一下 Syntax Highlight 相關字詞應該不難找到,希望大家都有個美麗的程式人生~




歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/)