| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 | |
| 4 <html> | |
| 5 <head> | |
| 6 <title>Javascript code prettifier</title> | |
| 7 | |
| 8 <link href="src/prettify.css" type="text/css" rel="stylesheet" /> | |
| 9 | |
| 10 <script src="src/prettify.js" type="text/javascript"></script> | |
| 11 | |
| 12 <style type="text/css"> | |
| 13 body { margin-left: .5in } | |
| 14 h1, h2, h3, h4, .footer { margin-left: -.4in; } | |
| 15 a.Extension { display: inline-block; width: 5em; height:2.5em; border: 1px
solid black; vertical-align: top; text-align: center } | |
| 16 </style> | |
| 17 </head> | |
| 18 | |
| 19 <body onload="prettyPrint()" bgcolor="white"> | |
| 20 <small style="float: right">Languages : <a href="README-zh-Hans.html">CH</a>
</small> | |
| 21 <h1>Javascript code prettifier</h1> | |
| 22 | |
| 23 <h2>Setup</h2> | |
| 24 <ol> | |
| 25 <li><a href="http://code.google.com/p/google-code-prettify/downloads/list"
>Download</a> a distribution | |
| 26 <li>Include the script tag below in your document | |
| 27 <pre class="prettyprint"> | |
| 28 >script src="https://google-code-prettify.googlecode.com/svn/loader/run_prett
ify.js></script></pre> | |
| 29 <li>See <a href="http://code.google.com/p/google-code-prettify/wiki/Gettin
gStarted">Getting Started</a> to configure that URL with options you need.</a> | |
| 30 <li>Look at the <a href="http://google-code-prettify.googlecode.com/svn/tr
unk/styles/index.html">skin gallery</a> and pick styles that suit you.</li> | |
| 31 </ol> | |
| 32 | |
| 33 <h2>Usage</h2> | |
| 34 <p>Put code snippets in | |
| 35 <tt><pre class="prettyprint">...</pre></tt> | |
| 36 or <tt><code class="prettyprint">...</code></tt> | |
| 37 and it will automatically be pretty printed. | |
| 38 | |
| 39 <table summary="code examples"> | |
| 40 <tr> | |
| 41 <th>The original | |
| 42 <th>Prettier | |
| 43 <tr> | |
| 44 <td><pre style="border: 1px solid #888;padding: 2px" | |
| 45 ><a name="voila1"></a>class Voila { | |
| 46 public: | |
| 47 // Voila | |
| 48 static const string VOILA = "Voila"; | |
| 49 | |
| 50 // will not interfere with embedded <a href="#voila1">tags</a>. | |
| 51 }</pre> | |
| 52 | |
| 53 <td><pre class="prettyprint"><a name="voila2"></a>class Voila { | |
| 54 public: | |
| 55 // Voila | |
| 56 static const string VOILA = "Voila"; | |
| 57 | |
| 58 // will not interfere with embedded <a href="#voila2">tags</a>. | |
| 59 }</pre> | |
| 60 </table> | |
| 61 | |
| 62 <h2>FAQ</h2> | |
| 63 <h3 id="langs">For which languages does it work?</h3> | |
| 64 <p>The comments in <tt>prettify.js</tt> are authoritative but the lexer | |
| 65 should work on a number of languages including C and friends, | |
| 66 Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, Makefiles, | |
| 67 and Rust. | |
| 68 It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl | |
| 69 and Ruby, but, because of commenting conventions, but doesn't work on | |
| 70 Smalltalk.</p> | |
| 71 | |
| 72 <p>Other languages are supported via extensions: | |
| 73 <div> | |
| 74 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-apollo.js">Apollo</a> | |
| 75 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-basic.js">Basic</a> | |
| 76 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-clj.js">Clojure</a> | |
| 77 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-css.js">CSS</a> | |
| 78 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-dart.js">Dart</a> | |
| 79 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-erlang.js">Erlang</a> | |
| 80 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-go.js">Go</a> | |
| 81 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-hs.js">Haskell</a> | |
| 82 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-lisp.js">Lisp, Scheme</a> | |
| 83 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-llvm.js">Llvm</a> | |
| 84 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-lua.js">Lua</a> | |
| 85 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-matlab.js">Matlab</a> | |
| 86 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-ml.js">MLs:F#, Ocaml,SML</a> | |
| 87 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-mumps.js">Mumps</a> | |
| 88 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-n.js">Nemerle</a> | |
| 89 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-pascal.js">Pascal</a> | |
| 90 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-proto.js">Protocol buffers</a> | |
| 91 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-r.js">R, S</a> | |
| 92 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-rd.js">RD</a> | |
| 93 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-scala.js">Scala</a> | |
| 94 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-sql.js">SQL</a> | |
| 95 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-tcl.js">TCL</a> | |
| 96 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-tex.js">Latek</a> | |
| 97 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-vb.js">Visual Basic</a> | |
| 98 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-vhdl.js">CHDL</a> | |
| 99 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-wiki.js">Wiki</a> | |
| 100 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-xq.js">XQ</a> | |
| 101 <a class="Extension" href="http://code.google.com/p/google-code-prettify/s
ource/browse/trunk/src/lang-yaml.js">YAML</a> | |
| 102 </div> | |
| 103 | |
| 104 <p>If you'd like to add an extension for your favorite language, please | |
| 105 look at <tt>src/lang-lisp.js</tt> and file an | |
| 106 <a href="http://code.google.com/p/google-code-prettify/issues/list" | |
| 107 >issue</a> including your language extension, and a testcase.</p> | |
| 108 | |
| 109 <h3>How do I specify the language of my code?</h3> | |
| 110 <p>You don't need to specify the language since <code>prettyprint()</code> | |
| 111 will guess. You can specify a language by specifying the language extension | |
| 112 along with the <code>prettyprint</code> class like so:</p> | |
| 113 <pre class="prettyprint lang-html" | |
| 114 ><pre class="prettyprint <b>lang-html</b>"> | |
| 115 The lang-* class specifies the language file extensions. | |
| 116 File extensions supported by default include | |
| 117 "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", | |
| 118 "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", | |
| 119 "xhtml", "xml", "xsl". | |
| 120 </pre></pre> | |
| 121 | |
| 122 <p>You may also use the | |
| 123 <a href="http://dev.w3.org/html5/spec-author-view/the-code-element.html#the-
code-element" | |
| 124 >HTML 5</a> convention of embedding a <tt>code</tt> element inside the | |
| 125 <code>PRE</code> and using <code>language-java</code> style classes. | |
| 126 E.g. <xmp class="prettyprint"><pre class="prettyprint"><code class="language
-java">...</code></pre></xmp> | |
| 127 | |
| 128 <h3>It doesn't work on <tt><obfuscated code sample></tt>?</h3> | |
| 129 <p>Yes. Prettifying obfuscated code is like putting lipstick on a pig | |
| 130 — i.e. outside the scope of this tool.</p> | |
| 131 | |
| 132 <h3>Which browsers does it work with?</h3> | |
| 133 <p>It's been tested with IE 6, Firefox 1.5 & 2, and Safari 2.0.4. | |
| 134 Look at <a href="tests/prettify_test.html">the test page</a> to see if it | |
| 135 works in your browser.</p> | |
| 136 | |
| 137 <h3>What's changed?</h3> | |
| 138 <p>See the <a href="CHANGES.html">change log</a></p> | |
| 139 | |
| 140 <h3>Why doesn't Prettyprinting of strings work on WordPress?</h3> | |
| 141 <p>Apparently wordpress does "smart quoting" which changes close quotes. | |
| 142 This causes end quotes to not match up with open quotes. | |
| 143 <p>This breaks prettifying as well as copying and pasting of code samples. | |
| 144 See | |
| 145 <a href="http://wordpress.org/support/topic/125038" | |
| 146 >WordPress's help center</a> for info on how to stop smart quoting of code | |
| 147 snippets.</p> | |
| 148 | |
| 149 <h3 id="linenums">How do I put line numbers in my code?</h3> | |
| 150 <p>You can use the <code>linenums</code> class to turn on line | |
| 151 numbering. If your code doesn't start at line number 1, you can | |
| 152 add a colon and a line number to the end of that class as in | |
| 153 <code>linenums:52</code>. | |
| 154 | |
| 155 <p>For example | |
| 156 <pre class="prettyprint"><pre class="prettyprint linenums:<b>4</b>" | |
| 157 >// This is line 4. | |
| 158 foo(); | |
| 159 bar(); | |
| 160 baz(); | |
| 161 boo(); | |
| 162 far(); | |
| 163 faz(); | |
| 164 <pre></pre> | |
| 165 produces | |
| 166 <pre class="prettyprint linenums:4" | |
| 167 >// This is line 4. | |
| 168 foo(); | |
| 169 bar(); | |
| 170 baz(); | |
| 171 boo(); | |
| 172 far(); | |
| 173 faz(); | |
| 174 </pre> | |
| 175 | |
| 176 <h3>How do I prevent a portion of markup from being marked as code?</h3> | |
| 177 <p>You can use the <code>nocode</code> class to identify a span of markup | |
| 178 that is not code. | |
| 179 <pre class="prettyprint"><pre class=prettyprint> | |
| 180 int x = foo(); /* This is a comment <span class="nocode">This is not cod
e</span> | |
| 181 Continuation of comment */ | |
| 182 int y = bar(); | |
| 183 </pre></pre> | |
| 184 produces | |
| 185 <pre class="prettyprint"> | |
| 186 int x = foo(); /* This is a comment <span class="nocode">This is not code</spa
n> | |
| 187 Continuation of comment */ | |
| 188 int y = bar(); | |
| 189 </pre> | |
| 190 | |
| 191 <p>For a more complete example see the issue22 | |
| 192 <a href="tests/prettify_test.html#issue22">testcase</a>.</p> | |
| 193 | |
| 194 <h3>I get an error message "a is not a function" or "opt_whenDone is not a f
unction"</h3> | |
| 195 <p>If you are calling <code>prettyPrint</code> via an event handler, wrap it
in a function. | |
| 196 Instead of doing | |
| 197 <blockquote> | |
| 198 <code class="prettyprint lang-js" | |
| 199 >addEventListener('load', prettyPrint, false);</code> | |
| 200 </blockquote> | |
| 201 wrap it in a closure like | |
| 202 <blockquote> | |
| 203 <code class="prettyprint lang-js" | |
| 204 >addEventListener('load', function (event) { prettyPrint() }, false);</co
de> | |
| 205 </blockquote> | |
| 206 so that the browser does not pass an event object to <code>prettyPrint</code
> which | |
| 207 will confuse it. | |
| 208 | |
| 209 <h3>How can I customize the colors and styles of my code?</h3> | |
| 210 <p> | |
| 211 Prettify adds <code><span></code> with <code>class</code>es describing | |
| 212 the kind of code. You can create CSS styles to matches these | |
| 213 classes. | |
| 214 See the | |
| 215 <a href="http://google-code-prettify.googlecode.com/svn/trunk/styles/index.h
tml"> | |
| 216 theme gallery</a> for examples. | |
| 217 </p> | |
| 218 | |
| 219 <h3>I can't add classes to my code (because it comes from Markdown, etc.)</h
3> | |
| 220 <p> | |
| 221 Instead of <code class="prettyprint"><pre class="prettyprint ..."></co
de> you can use a | |
| 222 comment or processing instructions that survives processing instructions : | |
| 223 <code><?prettify ...?></code> works as explained in | |
| 224 <a href="http://code.google.com/p/google-code-prettify/wiki/GettingStarted">
Getting Started</a></p> | |
| 225 | |
| 226 <br><br><br> | |
| 227 | |
| 228 <div class="footer"> | |
| 229 <!-- Created: Tue Oct 3 17:51:56 PDT 2006 --> | |
| 230 <!-- hhmts start -->Last modified: Mon Mar 4 14:16:04 EST 2013 <!-- hhmts end -
-> | |
| 231 </div> | |
| 232 </body> | |
| 233 </html> | |
| OLD | NEW |