jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

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

其他選擇

上面這一篇是透過 [url=http://code.google.com/p/syntaxhighlighter/]dp.SyntaxHighlighter[/url] 在 client 端完成語法上色的。事實上要做程式碼的語法上色有很多其他方式,如果你偏好用黑色背景來顯示的程式碼,可以試試看這一套線上工具 [url=http://tohtml.com/]Online syntax highlighting[/url],除了支持各式各樣的程式語言外,還有很多種佈景主題喔,在線上就可以幫你把程式碼轉成 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 格式,詳情請參考這篇部落格文章:
[url=http://o.mengue.free.fr/blog/2007/08/25/39-syntax-highlighting-on-this-blog-using-semantic-tags-and-vim]Syntax highlighting on this blog using semantic tags and Vim[/url]

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

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.