/demo/js/highlight/README.md
Markdown | 139 lines | 97 code | 42 blank | 0 comment | 0 complexity | 86b795b8afda8af041d895b3bdd56c4f MD5 | raw file
- # Highlight.js
- Highlight.js highlights syntax in code examples on blogs, forums and,
- in fact, on any web page. 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 download package includes the file "highlight.pack.js" which is a full
- compressed version of the library intended for use in production. All
- uncompressed source files are also available, feel free to look into them!
- The script is installed by linking to a single file and making a single
- initialization call:
- ```html
- <script type="text/javascript" src="highlight.pack.js"></script>
- <script type="text/javascript">
- hljs.initHighlightingOnLoad();
- </script>
- ```
- Also you can replace TAB ('\x09') characters used for indentation in your code
- with some fixed number of spaces or with a `<span>` to give them special
- styling:
- ```html
- <script type="text/javascript">
- hljs.tabReplace = ' '; // 4 spaces
- // ... or
- hljs.tabReplace = '<span class="indent">\t</span>';
- hljs.initHighlightingOnLoad();
- </script>
- ```
- The script looks in your page for fragments `<pre><code>...</code></pre>`
- that are traditionally used to mark up code examples. Their content is
- marked up by logical pieces with defined class names.
- ### Custom initialization
- If you use different markup for code blocks you can initialize them manually
- with `highlightBlock(code, tabReplace)` function. It takes a DOM element
- containing the code to highlight and optionally a string with which to replace
- TAB characters.
- Initialization using, for example, jQuery might look like this:
- ```javascript
- $(document).ready(function() {
- $('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
- });
- ```
- If your code container relies on `<br>` tags instead of line breaks (i.e. if
- it's not `<pre>`) pass `true` into third parameter of `highlightBlock`:
- ```javascript
- $('div.code').each(function(i, e) {hljs.highlightBlock(e, null, true)});
- ```
- ### Styling
- Elements of code marked up with classes can be styled as desired:
- ```css
- .comment {
- color: gray;
- }
- .keyword {
- font-weight: bold;
- }
- .python .string {
- color: blue;
- }
- .html .atribute .value {
- color: green;
- }
- ```
- Highlight.js comes with several style themes located in "styles" directory that
- can be used directly or as a base for your own experiments.
- **Note**: provided styles work for code defined inside `<pre>` blocks. If you use
- custom markup you should modify styles accordingly.
- For full reference list of classes see [classref.txt][cr].
- [cr]: http://github.com/isagalaev/highlight.js/blob/master/classref.txt
- ## Export
- File export.html contains a little program that allows you to paste in a code
- snippet and then copy and paste the resulting HTML code generated by the
- highlighter. This is useful in situations when you can't use the script itself
- on a site.
- ## Heuristics
- Autodetection of a code's language is done using a simple heuristic:
- 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 `<code>` element:
- ```html
- <pre><code class="html">...</code></pre>
- ```
- You can use class names recommended in HTML5: "language-html",
- "language-php". Classes also can be assigned to the `<pre>` element.
- To disable highlighting of a fragment altogether use "no-highlight" class:
- ```html
- <pre><code class="no-highlight">...</code></pre>
- ```
- ## Meta
- - Version: 6.2
- - 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.