# Highlight.js Highlight.js highlights syntax in code examples on blogs, forums and in fact on any web pages. It's very easy to use because it works automatically: finds blocks of code, detects a language, highlights it. Autodetection can be fine tuned when it fails by itself (see "Heuristics"). ## Installation and usage The script is installed by linking to a single file and making a single initialization call: Autodetection can work a bit slow if it includes too many languages and code blocks are large. To speed up highlighting in this case you can pass to the initialization function only those languages that you actually use on your pages: When called this way highlight.js will dynamically load appropriate language files and thus will also weigh less than with the default set that includes all languages implemented. Then the script looks in your page for fragments `
...
`
that are used traditionally to mark up code examples. Their content is
marked up by logical pieces with defined class names. The classes are
used to actually style the code elements:
.comment {
color: gray;
}
.keyword {
font-weight: bold;
}
.python .string {
color: blue;
}
.html .atribute .value {
color: green;
}
You can use included sample.css as a starting point for you own style.
A full list of available classes is below ("Languages").
### WordPress plugin
Generally installing highlight.js in a [WordPress][wp] blog is no different
than for any other web page. However it can also be installed as a plugin.
This is useful if your blog is located on a shared hosting and you don't
have a permission to edit template and style files. Or it may be more convenient
to you this way.
To install the plugin copy the whole directory with highlight.js to the
WordPress plugins directory. After this you can activate and deactivate it
from the Plugins panel. There is also a page "highlight.js" under the Options
menu where you can set a list of languages and style rules. Insanely convenient :-)
[wp]: http://wordpress.org/
## Export
File export.html contains a little program that shows and allows to copy and paste
an HTML code generated by the highlighter for any code snippet. This can be useful
in situations when one can't use the script itself on a site.
## Languages
This is a full list of available classes corresponding to languages'
syntactic structures.
Python:
keyword keyword
number number
string string (of any type)
comment comment
decorator @-decorator for functions
function function header "def some_name(...):"
class class header "class SomeName(...):"
title name of a function or a class inside a header
params everything inside parentheses in a function's or class' header
Ruby:
keyword keyword
string string
subst in-string substitution (#{...})
comment comment
function function header "def some_name(...):"
class class header "class SomeName(...):"
title name of a function or a class inside a header
symbol symbol
Perl:
keyword keyword
comment comment
number number
string string
regexp regular expression
sub subroutine header (from "sub" till "{")
variable variable starting with "$", "%", "@"
operator operator
pod plain old doc
PHP:
keyword keyword
number number
string string (of any type)
comment comment
phpdoc phpdoc params in comments
variable variable starting with "$"
XML:
tag any tag from "<" till ">"
comment comment
pi processing instruction ()
cdata CDATA section
attribute attribute
value attribute's value
HTML:
keyword HTML tag
tag any tag from "<" till ">"
comment comment
doctype declaration
attribute tag's attribute with or without value
value attribute's value
CSS:
keyword HTML tag when in selectors, CSS keyword when in rules
id #some_name in selectors
class .some_name in selectors
attr_selector attribute selector (square brackets in a[href^=http://])
comment comment
rules everything from "{" till "}"
value property's value inside a rule, from ":" till ";" or
till the end of rule block
Django:
keyword HTML tag in HTML, default tags and default filters in templates
tag any tag from "<" till ">"
comment comment
doctype declaration
attribute tag's attribute with or withou value
value attribute's value
template_tag template tag {% .. %}
variable template variable {{ .. }}
template_comment template comment, both {# .. #} and {% comment %}
filter filter from "|" till the next filter or the end of tag
argument filter argument
Javascript:
keyword keyword
comment comment
number number
literal special literal: "true", "false" and "null"
string string
regexp regular expression
function header of a function
title name of a function inside a header
params everything inside parentheses in a function's header
VBScript:
keyword keyword
number number
string string
comment comment
built_in built-in function
Delphi:
keyword keyword
comment comment (of any type)
number number
string string
function header of a function, procedure, constructor and destructor
title name of a function, procedure, constructor or destructor
inside a header
params everything inside parentheses in a function's header
class class' body from "= class" till "end;"
Java:
keyword keyword
number number
string string
comment commment
annotaion annotation
javadoc javadoc comment
class class header from "class" till "{"
title class name inside a header
params everything in parentheses inside a class header
inheritance keywords "extends" and "implements" inside class header
C++:
keyword keyword
number number
string string and character
comment comment
preprocessor preprocessor directive
RenderMan (RSL):
keyword keyword
number number
string string
comment comment
preprocessor preprocessor directive
shader sahder keywords
shading shading keywords
built_in built-in function
RenderMan (RIB):
keyword keyword
number number
string string
comment comment
commands command
SQL:
keyword keyword (mostly SQL'92 and SQL'99)
number number
string string (of any type: "..", '..', `..`)
comment comment
aggregate aggregate function
Smalltalk:
keyword keyword
number number
string string
comment commment
symbol symbol
array array
class name of a class
char char
localvars block of local variables
Axapta:
keyword keyword
number number
string string
comment commment
class class header from "class" till "{"
title class name inside a header
params everything in parentheses inside a class header
inheritance keywords "extends" and "implements" inside class header
preprocessor preprocessor directive
1C:
keyword keyword
number number
string string
comment commment
function header of function or procudure
title function name inside a header
params everything in parentheses inside a function header
preprocessor preprocessor directive
## Heuristics
Autodetection of a code's language is done with a simple heuristics:
the program tries to highlight a fragment with all available languages and
counts all syntactic structures that it finds along the way. The language
with greatest count wins.
This means that in short fragments the probability of an error is high
(and it really happens sometimes). In this cases you can set the fragment's
language explicitly by assigning a class to the `` element:
...
To disable highlighting of a fragment altogether use "no-highlight" class:
...
## Contacts
Version: 3.5
URL: http://softwaremaniacs.org/soft/highlight/en/
Author: Ivan Sagalaev (Maniac@SoftwareManiacs.Org)
For the license terms see LICENSE files.
For the list of contributors see AUTHORS.en.txt file.