Prettify
Syntax highlighting of source code snippets in an html page using google-code-prettify.
How to use
- Apply
class="wb-prettify"
to an element on the page to load the component (once per page). - Apply
class="prettyprint"
to apre
orcode
element to apply syntax highlighting. Alternatively useclass="wb-prettify all-pre"
to apply syntax highlighting to allpre
elements on the page. - Apply
class="linenums"
to apre
orcode
element to add line numbers. Alternatively useclass="wb-prettify linenums"
to apply line numbers to all applicablepre
elements on the page. Specify the starting number by addinglinenums:#
beforelinenums
. - Add extra language support by using
class="wb-prettify lang-*"
(e.g.,class="wb-prettify lang-css"
) and applyingclass="lang-*"
to each applicablepre
orcode
element. Supported formats are below:- lang-apollo
- lang-clj
- lang-css
- lang-dart
- lang-go
- lang-hs
- lang-lisp
- lang-lua
- lang-ml
- lang-n
- lang-proto
- lang-scala
- lang-sql
- lang-tex
- lang-vb
- lang-vhdl
- lang-wiki
- lang-xq
- lang-yaml
Examples
HTML
<form action="#" method="post"> <div> <label for="data1">Form input default appearance:</label> <input name="data1" type="text" id="data1" /> </div> <div> <label for="data2">Form text area default appearance:</label> <textarea name="data2" cols="15" rows="3" id="data2"></textarea> </div> <div> <label for="data4">Form <code>select</code> default appearance:</label> <select id="data4" name="data4"> <option value="Option 1">Option 1</option> <option value="Option 2">Option 2</option> <option value="Option 3">Option 3</option> <option value="Option 4">Option 4</option> </select> </div> <fieldset> <legend>Form <code>legend</code>, <code>fieldset</code> and <code>checkbox</code> default appearance</legend> <div> <input name="checkbox" type="checkbox" id="data5" value="checkbox" /> <label for="data5">Option 1</label> <input name="checkbox" type="checkbox" id="data6" value="checkbox" /> <label for="data6">Option 2</label> <input name="checkbox" type="checkbox" id="data7" value="checkbox" /> <label for="data7">Option 3</label> <input name="checkbox" type="checkbox" id="data8" value="checkbox" /> <label for="data8">Option 4</label> </div> </fieldset> <div> <input name="submit" type="submit" id="submit" value="Submit default appearance" /> <input name="reset" type="reset" id="reset" value="Reset default appearance" /> </div> </form>
CSS (uses linenums)
#gcwu-date-mod dt,#gcwu-date-mod dd{ float:left; } #gcwu-date-mod dd{ margin:0 0 0 10px; } #gcwu-content h2,#gcwu-priorities h3{ color:#333; font-weight:400; } #gcwu-content h2,#gcwu-priorities h3{ border:none; margin-bottom:5px; font-size:1.6em; } div#gcwu-headlines ul li,div#gcwu-headlines ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
JavaScript (uses linenums:50 and linenums)
/** * Initialize the plugin. This only runs once on the DOM. * @function init */ init = function() { var cssClass, cssClasses, i, len, $pre, $elm = $( this ), modeJS = wb.getMode() + ".js", deps = [ "site!deps/prettify" + modeJS ], settings = $.extend( {}, defaults, $elm.data() ); wb.remove( selector ); // Check the element for `lang-*` syntax CSS classes cssClasses = typeof $elm[0].className === "string" ? $elm[0].className.split( " " ) : []; for ( i = 0, len = cssClasses.length; i < len; i++ ) { cssClass = cssClasses[ i ]; if ( cssClass.indexOf( "lang-" ) === 0 ) { deps.push( "site!deps/" + cssClass + modeJS ); } } // CSS class overrides of settings settings.allpre = settings.allpre || $elm.hasClass( "all-pre" ); settings.linenums = settings.linenums || $elm.hasClass( "linenums" ); // Apply global settings if ( settings.allpre || settings.linenums ) { $pre = $( "pre" ); if ( settings.allpre ) { $pre.addClass( "prettyprint" ); } if ( settings.linenums ) { $pre.filter( ".prettyprint" ).addClass( "linenums" ); } } // Load the required dependencies and prettify the code once finished Modernizr.load({ load: deps, complete: function() { wb.doc.trigger( "prettyprint.wb-prettify" ); } }); }
Before and after comparison
Before
<section id="wb-srch" class="col-lg-8 text-right"> <h2>Search</h2> <form action="#" method="post" name="cse-search-box" role="search" class="form-inline"> <div class="form-group"> <label for="wb-srch-q" class="wb-inv">Search Canada.ca</label> <input id="wb-srch-q" list="wb-srch-q-ac" class="wb-srch-q form-control" name="q" type="search" value="" size="34" maxlength="170" placeholder="Search Canada.ca"> <datalist id="wb-srch-q-ac"></datalist> </div> <div class="form-group submit"> <button type="submit" id="wb-srch-sub" class="btn btn-primary btn-small" name="wb-srch-sub"> <span class="glyphicon-search glyphicon"></span> <span class="wb-inv">Search</span> </button> </div> </form> </section>
After
<section id="wb-srch" class="col-lg-offset-4 col-md-offset-4 col-sm-offset-2 col-xs-12 col-sm-5 col-md-4"> <h2>Search</h2> <form action="#" method="post" name="cse-search-box" role="search"> <div class="form-group wb-srch-qry"> <label for="wb-srch-q" class="wb-inv">Search Canada.ca</label> <input id="wb-srch-q" list="wb-srch-q-ac" class="wb-srch-q form-control" name="q" type="search" value="" size="34" maxlength="170" placeholder="Search Canada.ca"> <datalist id="wb-srch-q-ac"></datalist> </div> <div class="form-group submit"> <button type="submit" id="wb-srch-sub" class="btn btn-primary btn-small" name="wb-srch-sub"> <span class="glyphicon-search glyphicon"></span> <span class="wb-inv">Search</span></button> </div> </form> </section>
Page details
- Date modified: