开发者

What is a tool that will syntax highlight using only HTML with class attributes?

开发者 https://www.devze.com 2022-12-19 00:45 出处:网络
I\'m looking for a command line tool (or Perl module or VIM script or whatever) that will take some input files (such as XML or JavaScript files) and format them in HTML.I specifically want my output

I'm looking for a command line tool (or Perl module or VIM script or whatever) that will take some input files (such as XML or JavaScript files) and format them in HTML. I specifically want my output not to contain stuff like <开发者_StackOverflow中文版;span style="color: red"> or <font color=red> according to a particular colour scheme, rather it should use CSS class names to mark up the different syntactic parts of the file.

For example, if I had this file as input:

function f(x) {
  return x + 1;
}

the kind of output I would like is:

<pre><span class=keyword>function</span> <span class=ident>f</span><span class=punc>{</span>
  <span class=keyword>return</span> <span class=ident>x</span> <span class=op>+</span> <span class=numliteral>1</span><span class=punc>;</span>
<span class=punc>}</span></pre>

Does anyone know of such a tool?

Something like VIM's 2html.vim script, but outputting class="" attributes with the syntax highlight group names (like "Constant", "Identifier", "Statement", etc.) would be ideal.

Thanks,

Cameron


You can feed a file into GeSHi using PHP on the command line (or cURL your own local server or some other hack)

http://qbnz.com/highlighter/geshi-doc.html#basic-usage


There is buf2html.vim. Unfortunately, it uses non-semantic class names: See http://intrepid.perlmonk.org/apropos.vim/buf2html/current/myself.html


I think this is exacly what Vim's :TOhtml does if you

:let html_use_css = 1

Original:

function f(x) {
    return x + 1;
}

output:

<pre>
<span class="Identifier">function</span> f(<span class="">x</span><span class="javaScriptParens">)</span><span class=""> </span><span class="Identifier">{</span>
  <span class="Statement">return</span><span class=""> x + </span>1<span class="">;</span>
<span class="Identifier">}</span>
</pre>
0

精彩评论

暂无评论...
验证码 换一张
取 消