highlight.js
Advanced tools
Comparing version 8.0.0 to 8.1.0
@@ -18,17 +18,5 @@ var Highlight = function() { | ||
function blockText(block) { | ||
return Array.prototype.map.call(block.childNodes, function(node) { | ||
if (node.nodeType == 3) { | ||
return options.useBR ? node.nodeValue.replace(/\n/g, '') : node.nodeValue; | ||
} | ||
if (tag(node) == 'br') { | ||
return '\n'; | ||
} | ||
return blockText(node); | ||
}).join(''); | ||
} | ||
function blockLanguage(block) { | ||
var classes = (block.className + ' ' + (block.parentNode ? block.parentNode.className : '')).split(/\s+/); | ||
classes = classes.map(function(c) {return c.replace(/^language-/, '');}); | ||
classes = classes.map(function(c) {return c.replace(/^lang(uage)?-/, '');}); | ||
return classes.filter(function(c) {return getLanguage(c) || c == 'no-highlight';})[0]; | ||
@@ -173,3 +161,3 @@ } | ||
function flatten(className, str) { | ||
var flatten = function(className, str) { | ||
if (language.case_insensitive) { | ||
@@ -182,3 +170,3 @@ str = str.toLowerCase(); | ||
}); | ||
} | ||
}; | ||
@@ -198,3 +186,3 @@ if (typeof mode.keywords == 'string') { // string | ||
if (mode.beginKeywords) { | ||
mode.begin = mode.beginKeywords.split(' ').join('|'); | ||
mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b'; | ||
} | ||
@@ -236,6 +224,5 @@ if (!mode.begin) | ||
mode.contains.map(function(c) { | ||
return c.beginKeywords ? '\\.?\\b(' + c.begin + ')\\b\\.?' : c.begin; | ||
return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin; | ||
}) | ||
.concat([mode.terminator_end]) | ||
.concat([mode.illegal]) | ||
.concat([mode.terminator_end, mode.illegal]) | ||
.map(reStr) | ||
@@ -299,22 +286,21 @@ .filter(Boolean); | ||
function processKeywords() { | ||
var buffer = escape(mode_buffer); | ||
if (!top.keywords) | ||
return buffer; | ||
return escape(mode_buffer); | ||
var result = ''; | ||
var last_index = 0; | ||
top.lexemesRe.lastIndex = 0; | ||
var match = top.lexemesRe.exec(buffer); | ||
var match = top.lexemesRe.exec(mode_buffer); | ||
while (match) { | ||
result += buffer.substr(last_index, match.index - last_index); | ||
result += escape(mode_buffer.substr(last_index, match.index - last_index)); | ||
var keyword_match = keywordMatch(top, match); | ||
if (keyword_match) { | ||
relevance += keyword_match[1]; | ||
result += buildSpan(keyword_match[0], match[0]); | ||
result += buildSpan(keyword_match[0], escape(match[0])); | ||
} else { | ||
result += match[0]; | ||
result += escape(match[0]); | ||
} | ||
last_index = top.lexemesRe.lastIndex; | ||
match = top.lexemesRe.exec(buffer); | ||
match = top.lexemesRe.exec(mode_buffer); | ||
} | ||
return result + buffer.substr(last_index); | ||
return result + escape(mode_buffer.substr(last_index)); | ||
} | ||
@@ -420,3 +406,3 @@ | ||
if (current.className) { | ||
result = buildSpan(current.className, result, true); | ||
result += buildSpan(current.className, result, true); | ||
} | ||
@@ -522,3 +508,5 @@ } | ||
function highlightBlock(block) { | ||
var text = blockText(block); | ||
var text = options.useBR ? block.innerHTML | ||
.replace(/\n/g,'').replace(/<br>|<br [^>]*>/g, '\n').replace(/<[^>]*>/g,'') | ||
: block.textContent; | ||
var language = blockLanguage(block); | ||
@@ -594,2 +582,6 @@ if (language == 'no-highlight') | ||
function listLanguages() { | ||
return Object.keys(languages); | ||
} | ||
function getLanguage(name) { | ||
@@ -609,2 +601,3 @@ return languages[name] || languages[aliases[name]]; | ||
this.registerLanguage = registerLanguage; | ||
this.listLanguages = listLanguages; | ||
this.getLanguage = getLanguage; | ||
@@ -637,13 +630,19 @@ this.inherit = inherit; | ||
}; | ||
this.PHRASAL_WORDS_MODE = { | ||
begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/ | ||
}; | ||
this.C_LINE_COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '//', end: '$' | ||
begin: '//', end: '$', | ||
contains: [this.PHRASAL_WORDS_MODE] | ||
}; | ||
this.C_BLOCK_COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '/\\*', end: '\\*/' | ||
begin: '/\\*', end: '\\*/', | ||
contains: [this.PHRASAL_WORDS_MODE] | ||
}; | ||
this.HASH_COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '#', end: '$' | ||
begin: '#', end: '$', | ||
contains: [this.PHRASAL_WORDS_MODE] | ||
}; | ||
@@ -665,2 +664,15 @@ this.NUMBER_MODE = { | ||
}; | ||
this.CSS_NUMBER_MODE = { | ||
className: 'number', | ||
begin: this.NUMBER_RE + '(' + | ||
'%|em|ex|ch|rem' + | ||
'|vw|vh|vmin|vmax' + | ||
'|cm|mm|in|pt|pc|px' + | ||
'|deg|grad|rad|turn' + | ||
'|s|ms' + | ||
'|Hz|kHz' + | ||
'|dpi|dpcm|dppx' + | ||
')?', | ||
relevance: 0 | ||
}; | ||
this.REGEXP_MODE = { | ||
@@ -667,0 +679,0 @@ className: 'regexp', |
@@ -5,6 +5,11 @@ var Highlight = require('./highlight'); | ||
hljs.registerLanguage('fix', require('./languages/fix.js')); | ||
hljs.registerLanguage('nsis', require('./languages/nsis.js')); | ||
hljs.registerLanguage('haxe', require('./languages/haxe.js')); | ||
hljs.registerLanguage('erlang', require('./languages/erlang.js')); | ||
hljs.registerLanguage('cs', require('./languages/cs.js')); | ||
hljs.registerLanguage('protobuf', require('./languages/protobuf.js')); | ||
hljs.registerLanguage('vim', require('./languages/vim.js')); | ||
hljs.registerLanguage('brainfuck', require('./languages/brainfuck.js')); | ||
hljs.registerLanguage('ruby', require('./languages/ruby.js')); | ||
hljs.registerLanguage('nimrod', require('./languages/nimrod.js')); | ||
hljs.registerLanguage('rust', require('./languages/rust.js')); | ||
@@ -22,2 +27,3 @@ hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage.js')); | ||
hljs.registerLanguage('css', require('./languages/css.js')); | ||
hljs.registerLanguage('capnproto', require('./languages/capnproto.js')); | ||
hljs.registerLanguage('lisp', require('./languages/lisp.js')); | ||
@@ -27,7 +33,10 @@ hljs.registerLanguage('profile', require('./languages/profile.js')); | ||
hljs.registerLanguage('java', require('./languages/java.js')); | ||
hljs.registerLanguage('gherkin', require('./languages/gherkin.js')); | ||
hljs.registerLanguage('fsharp', require('./languages/fsharp.js')); | ||
hljs.registerLanguage('mathematica', require('./languages/mathematica.js')); | ||
hljs.registerLanguage('swift', require('./languages/swift.js')); | ||
hljs.registerLanguage('php', require('./languages/php.js')); | ||
hljs.registerLanguage('haskell', require('./languages/haskell.js')); | ||
hljs.registerLanguage('1c', require('./languages/1c.js')); | ||
hljs.registerLanguage('x86asm', require('./languages/x86asm.js')); | ||
hljs.registerLanguage('python', require('./languages/python.js')); | ||
@@ -38,4 +47,7 @@ hljs.registerLanguage('smalltalk', require('./languages/smalltalk.js')); | ||
hljs.registerLanguage('sql', require('./languages/sql.js')); | ||
hljs.registerLanguage('nix', require('./languages/nix.js')); | ||
hljs.registerLanguage('handlebars', require('./languages/handlebars.js')); | ||
hljs.registerLanguage('thrift', require('./languages/thrift.js')); | ||
hljs.registerLanguage('vala', require('./languages/vala.js')); | ||
hljs.registerLanguage('gradle', require('./languages/gradle.js')); | ||
hljs.registerLanguage('ini', require('./languages/ini.js')); | ||
@@ -68,2 +80,3 @@ hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver.js')); | ||
hljs.registerLanguage('scss', require('./languages/scss.js')); | ||
hljs.registerLanguage('monkey', require('./languages/monkey.js')); | ||
hljs.registerLanguage('applescript', require('./languages/applescript.js')); | ||
@@ -78,3 +91,5 @@ hljs.registerLanguage('lasso', require('./languages/lasso.js')); | ||
hljs.registerLanguage('clojure', require('./languages/clojure.js')); | ||
hljs.registerLanguage('elixir', require('./languages/elixir.js')); | ||
hljs.registerLanguage('typescript', require('./languages/typescript.js')); | ||
hljs.registerLanguage('go', require('./languages/go.js')); | ||
module.exports = hljs; |
@@ -12,2 +12,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['as'], | ||
keywords: { | ||
@@ -34,3 +35,3 @@ keyword: 'as break case catch class const continue default delete do dynamic each ' + | ||
className: 'class', | ||
beginKeywords: 'class interface', end: '{', | ||
beginKeywords: 'class interface', end: '{', excludeEnd: true, | ||
contains: [ | ||
@@ -49,3 +50,3 @@ { | ||
className: 'function', | ||
beginKeywords: 'function', end: '[{;]', | ||
beginKeywords: 'function', end: '[{;]', excludeEnd: true, | ||
illegal: '\\S', | ||
@@ -52,0 +53,0 @@ contains: [ |
module.exports = function(hljs) { | ||
var NUMBER = {className: 'number', begin: '[\\$%]\\d+'}; | ||
return { | ||
aliases: ['apacheconf'], | ||
case_insensitive: true, | ||
@@ -5,0 +6,0 @@ contains: [ |
@@ -11,3 +11,3 @@ module.exports = function(hljs) { | ||
className: 'comment', | ||
begin: '--', end: '$', | ||
begin: '--', end: '$' | ||
}, | ||
@@ -23,2 +23,3 @@ { | ||
return { | ||
aliases: ['osascript'], | ||
keywords: { | ||
@@ -33,3 +34,3 @@ keyword: | ||
'reference repeat returning script second set seventh since ' + | ||
'sixth some tell tenth that the then third through thru ' + | ||
'sixth some tell tenth that the|0 then third through thru ' + | ||
'timeout times to transaction try until where while whose with ' + | ||
@@ -36,0 +37,0 @@ 'without', |
module.exports = function(hljs) { | ||
return { | ||
case_insensitive: true, | ||
lexemes: '\\.?' + hljs.IDENT_RE, | ||
keywords: { | ||
@@ -26,3 +27,6 @@ keyword: | ||
'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' + | ||
'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf' | ||
'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf', | ||
preprocessor: | ||
'.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' + | ||
'.listmac .macro .nolist .org .set' | ||
}, | ||
@@ -46,6 +50,2 @@ contains: [ | ||
{className: 'preprocessor', begin: '#', end: '$'}, | ||
{ // директивы «.include» «.macro» и т.д. | ||
className: 'preprocessor', | ||
begin: '\\.[a-zA-Z]+' | ||
}, | ||
{ // подстановка в «.macro» | ||
@@ -52,0 +52,0 @@ className: 'localvars', |
@@ -21,3 +21,3 @@ module.exports = function(hljs) { | ||
className: 'class', | ||
beginKeywords: 'class interface', end: '{', | ||
beginKeywords: 'class interface', end: '{', excludeEnd: true, | ||
illegal: ':', | ||
@@ -24,0 +24,0 @@ contains: [ |
@@ -28,2 +28,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['sh', 'zsh'], | ||
lexemes: /-?[a-z\.]+/, | ||
@@ -30,0 +31,0 @@ keywords: { |
@@ -8,2 +8,3 @@ module.exports = function(hljs){ | ||
return { | ||
aliases: ['bf'], | ||
contains: [ | ||
@@ -10,0 +11,0 @@ { |
@@ -85,2 +85,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['clj'], | ||
illegal: /\S/, | ||
@@ -87,0 +88,0 @@ contains: [ |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['cmake.in'], | ||
case_insensitive: true, | ||
@@ -4,0 +5,0 @@ keywords: { |
@@ -18,3 +18,3 @@ module.exports = function(hljs) { | ||
built_in: | ||
'npm require console print module exports global window document' | ||
'npm require console print module global window document' | ||
}; | ||
@@ -81,2 +81,3 @@ var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; | ||
return { | ||
aliases: ['coffee', 'cson', 'iced'], | ||
keywords: KEYWORDS, | ||
@@ -83,0 +84,0 @@ contains: EXPRESSIONS.concat([ |
@@ -21,3 +21,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['c'], | ||
aliases: ['c', 'h', 'c++', 'h++'], | ||
keywords: CPP_KEYWORDS, | ||
@@ -42,4 +42,9 @@ illegal: '</', | ||
begin: '#', end: '$', | ||
keywords: 'if else elif endif define undef warning error line pragma', | ||
contains: [ | ||
{begin: 'include\\s*<', end: '>', illegal: '\\n'}, | ||
{ | ||
begin: 'include\\s*[<"]', end: '[>"]', | ||
keywords: 'include', | ||
illegal: '\\n' | ||
}, | ||
hljs.C_LINE_COMMENT_MODE | ||
@@ -52,4 +57,6 @@ ] | ||
keywords: CPP_KEYWORDS, | ||
relevance: 10, | ||
contains: ['self'] | ||
}, | ||
{ | ||
begin: hljs.IDENT_RE + '::' | ||
} | ||
@@ -56,0 +63,0 @@ ] |
@@ -14,3 +14,5 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['csharp'], | ||
keywords: KEYWORDS, | ||
illegal: /::/, | ||
contains: [ | ||
@@ -23,7 +25,13 @@ { | ||
className: 'xmlDocTag', | ||
begin: '///|<!--|-->' | ||
}, | ||
{ | ||
className: 'xmlDocTag', | ||
begin: '</?', end: '>' | ||
variants: [ | ||
{ | ||
begin: '///', relevance: 0 | ||
}, | ||
{ | ||
begin: '<!--|-->' | ||
}, | ||
{ | ||
begin: '</?', end: '>' | ||
} | ||
] | ||
} | ||
@@ -30,0 +38,0 @@ ] |
@@ -5,4 +5,6 @@ module.exports = function(hljs) { | ||
className: 'function', | ||
begin: IDENT_RE + '\\(', end: '\\)', | ||
contains: ['self', hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE] | ||
begin: IDENT_RE + '\\(', | ||
returnBegin: true, | ||
excludeEnd: true, | ||
end: '\\(' | ||
}; | ||
@@ -53,3 +55,3 @@ return { | ||
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, | ||
hljs.NUMBER_MODE | ||
hljs.CSS_NUMBER_MODE | ||
] | ||
@@ -84,3 +86,3 @@ } | ||
FUNCTION, | ||
hljs.NUMBER_MODE, | ||
hljs.CSS_NUMBER_MODE, | ||
hljs.QUOTE_STRING_MODE, | ||
@@ -87,0 +89,0 @@ hljs.APOS_STRING_MODE, |
@@ -18,242 +18,240 @@ module.exports = /** | ||
function(hljs) { | ||
/** | ||
* Language keywords | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_KEYWORDS = { | ||
keyword: | ||
'abstract alias align asm assert auto body break byte case cast catch class ' + | ||
'const continue debug default delete deprecated do else enum export extern final ' + | ||
'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' + | ||
'interface invariant is lazy macro mixin module new nothrow out override package ' + | ||
'pragma private protected public pure ref return scope shared static struct ' + | ||
'super switch synchronized template this throw try typedef typeid typeof union ' + | ||
'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' + | ||
'__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__', | ||
built_in: | ||
'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' + | ||
'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' + | ||
'wstring', | ||
literal: | ||
'false null true' | ||
}; | ||
/** | ||
* Language keywords | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_KEYWORDS = { | ||
keyword: | ||
'abstract alias align asm assert auto body break byte case cast catch class ' + | ||
'const continue debug default delete deprecated do else enum export extern final ' + | ||
'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' + | ||
'interface invariant is lazy macro mixin module new nothrow out override package ' + | ||
'pragma private protected public pure ref return scope shared static struct ' + | ||
'super switch synchronized template this throw try typedef typeid typeof union ' + | ||
'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' + | ||
'__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__', | ||
built_in: | ||
'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' + | ||
'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' + | ||
'wstring', | ||
literal: | ||
'false null true' | ||
}; | ||
/** | ||
* Number literal regexps | ||
* | ||
* @type {String} | ||
*/ | ||
var decimal_integer_re = '(0|[1-9][\\d_]*)', | ||
decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)', | ||
binary_integer_re = '0[bB][01_]+', | ||
hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)', | ||
hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re, | ||
/** | ||
* Number literal regexps | ||
* | ||
* @type {String} | ||
*/ | ||
var decimal_integer_re = '(0|[1-9][\\d_]*)', | ||
decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)', | ||
binary_integer_re = '0[bB][01_]+', | ||
hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)', | ||
hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re, | ||
decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')', | ||
decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' + | ||
'\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' + | ||
'\\.' + decimal_integer_re + decimal_exponent_re + '?' + | ||
')', | ||
hexadecimal_float_re = '(0[xX](' + | ||
hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+ | ||
'\\.?' + hexadecimal_digits_re + | ||
')[pP][+-]?' + decimal_integer_nosus_re + ')', | ||
decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')', | ||
decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' + | ||
'\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' + | ||
'\\.' + decimal_integer_re + decimal_exponent_re + '?' + | ||
')', | ||
hexadecimal_float_re = '(0[xX](' + | ||
hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+ | ||
'\\.?' + hexadecimal_digits_re + | ||
')[pP][+-]?' + decimal_integer_nosus_re + ')', | ||
integer_re = '(' + | ||
decimal_integer_re + '|' + | ||
binary_integer_re + '|' + | ||
hexadecimal_integer_re + | ||
')', | ||
integer_re = '(' + | ||
decimal_integer_re + '|' + | ||
binary_integer_re + '|' + | ||
hexadecimal_integer_re + | ||
')', | ||
float_re = '(' + | ||
hexadecimal_float_re + '|' + | ||
decimal_float_re + | ||
')'; | ||
float_re = '(' + | ||
hexadecimal_float_re + '|' + | ||
decimal_float_re + | ||
')'; | ||
/** | ||
* Escape sequence supported in D string and character literals | ||
* | ||
* @type {String} | ||
*/ | ||
var escape_sequence_re = '\\\\(' + | ||
'[\'"\\?\\\\abfnrtv]|' + // common escapes | ||
'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint | ||
'[0-7]{1,3}|' + // one to three octal digit ascii char code | ||
'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code | ||
'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint | ||
')|' + | ||
'&[a-zA-Z\\d]{2,};'; // named character entity | ||
/** | ||
* Escape sequence supported in D string and character literals | ||
* | ||
* @type {String} | ||
*/ | ||
var escape_sequence_re = '\\\\(' + | ||
'[\'"\\?\\\\abfnrtv]|' + // common escapes | ||
'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint | ||
'[0-7]{1,3}|' + // one to three octal digit ascii char code | ||
'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code | ||
'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint | ||
')|' + | ||
'&[a-zA-Z\\d]{2,};'; // named character entity | ||
/** | ||
* D integer number literals | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_INTEGER_MODE = { | ||
className: 'number', | ||
begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?', | ||
relevance: 0 | ||
}; | ||
/** | ||
* [D_FLOAT_MODE description] | ||
* @type {Object} | ||
*/ | ||
var D_FLOAT_MODE = { | ||
className: 'number', | ||
begin: '\\b(' + | ||
float_re + '([fF]|L|i|[fF]i|Li)?|' + | ||
integer_re + '(i|[fF]i|Li)' + | ||
')', | ||
relevance: 0 | ||
}; | ||
/** | ||
* D integer number literals | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_INTEGER_MODE = { | ||
className: 'number', | ||
begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?', | ||
relevance: 0 | ||
}; | ||
/** | ||
* D character literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_CHARACTER_MODE = { | ||
className: 'string', | ||
begin: '\'(' + escape_sequence_re + '|.)', end: '\'', | ||
illegal: '.' | ||
}; | ||
/** | ||
* [D_FLOAT_MODE description] | ||
* @type {Object} | ||
*/ | ||
var D_FLOAT_MODE = { | ||
className: 'number', | ||
begin: '\\b(' + | ||
float_re + '([fF]|L|i|[fF]i|Li)?|' + | ||
integer_re + '(i|[fF]i|Li)' + | ||
')', | ||
relevance: 0 | ||
}; | ||
/** | ||
* D string escape sequence | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ESCAPE_SEQUENCE = { | ||
begin: escape_sequence_re, | ||
relevance: 0 | ||
}; | ||
/** | ||
* D character literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_CHARACTER_MODE = { | ||
className: 'string', | ||
begin: '\'(' + escape_sequence_re + '|.)', end: '\'', | ||
illegal: '.' | ||
}; | ||
/** | ||
* D double quoted string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_STRING_MODE = { | ||
className: 'string', | ||
begin: '"', | ||
contains: [D_ESCAPE_SEQUENCE], | ||
end: '"[cwd]?' | ||
}; | ||
/** | ||
* D string escape sequence | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ESCAPE_SEQUENCE = { | ||
begin: escape_sequence_re, | ||
relevance: 0 | ||
} | ||
/** | ||
* D wysiwyg and delimited string literals | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_WYSIWYG_DELIMITED_STRING_MODE = { | ||
className: 'string', | ||
begin: '[rq]"', | ||
end: '"[cwd]?', | ||
relevance: 5 | ||
}; | ||
/** | ||
* D double quoted string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_STRING_MODE = { | ||
className: 'string', | ||
begin: '"', | ||
contains: [D_ESCAPE_SEQUENCE], | ||
end: '"[cwd]?' | ||
}; | ||
/** | ||
* D alternate wysiwyg string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ALTERNATE_WYSIWYG_STRING_MODE = { | ||
className: 'string', | ||
begin: '`', | ||
end: '`[cwd]?' | ||
}; | ||
/** | ||
* D wysiwyg and delimited string literals | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_WYSIWYG_DELIMITED_STRING_MODE = { | ||
className: 'string', | ||
begin: '[rq]"', | ||
end: '"[cwd]?', | ||
relevance: 5 | ||
}; | ||
/** | ||
* D hexadecimal string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_HEX_STRING_MODE = { | ||
className: 'string', | ||
begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?', | ||
relevance: 10 | ||
}; | ||
/** | ||
* D alternate wysiwyg string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ALTERNATE_WYSIWYG_STRING_MODE = { | ||
className: 'string', | ||
begin: '`', | ||
end: '`[cwd]?' | ||
}; | ||
/** | ||
* D delimited string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_TOKEN_STRING_MODE = { | ||
className: 'string', | ||
begin: 'q"\\{', | ||
end: '\\}"' | ||
}; | ||
/** | ||
* D hexadecimal string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_HEX_STRING_MODE = { | ||
className: 'string', | ||
begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?', | ||
relevance: 10 | ||
}; | ||
/** | ||
* Hashbang support | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_HASHBANG_MODE = { | ||
className: 'shebang', | ||
begin: '^#!', | ||
end: '$', | ||
relevance: 5 | ||
}; | ||
/** | ||
* D delimited string literal | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_TOKEN_STRING_MODE = { | ||
className: 'string', | ||
begin: 'q"\\{', | ||
end: '\\}"' | ||
}; | ||
/** | ||
* D special token sequence | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_SPECIAL_TOKEN_SEQUENCE_MODE = { | ||
className: 'preprocessor', | ||
begin: '#(line)', | ||
end: '$', | ||
relevance: 5 | ||
}; | ||
/** | ||
* Hashbang support | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_HASHBANG_MODE = { | ||
className: 'shebang', | ||
begin: '^#!', | ||
end: '$', | ||
relevance: 5 | ||
}; | ||
/** | ||
* D attributes | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ATTRIBUTE_MODE = { | ||
className: 'keyword', | ||
begin: '@[a-zA-Z_][a-zA-Z_\\d]*' | ||
}; | ||
/** | ||
* D special token sequence | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_SPECIAL_TOKEN_SEQUENCE_MODE = { | ||
className: 'preprocessor', | ||
begin: '#(line)', | ||
end: '$', | ||
relevance: 5 | ||
}; | ||
/** | ||
* D nesting comment | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_NESTING_COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '\\/\\+', | ||
contains: ['self'], | ||
end: '\\+\\/', | ||
relevance: 10 | ||
}; | ||
/** | ||
* D attributes | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_ATTRIBUTE_MODE = { | ||
className: 'keyword', | ||
begin: '@[a-zA-Z_][a-zA-Z_\\d]*' | ||
}; | ||
/** | ||
* D nesting comment | ||
* | ||
* @type {Object} | ||
*/ | ||
var D_NESTING_COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '\\/\\+', | ||
contains: ['self'], | ||
end: '\\+\\/', | ||
relevance: 10 | ||
} | ||
return { | ||
lexemes: hljs.UNDERSCORE_IDENT_RE, | ||
keywords: D_KEYWORDS, | ||
contains: [ | ||
hljs.C_LINE_COMMENT_MODE, | ||
hljs.C_BLOCK_COMMENT_MODE, | ||
D_NESTING_COMMENT_MODE, | ||
D_HEX_STRING_MODE, | ||
D_STRING_MODE, | ||
D_WYSIWYG_DELIMITED_STRING_MODE, | ||
D_ALTERNATE_WYSIWYG_STRING_MODE, | ||
D_TOKEN_STRING_MODE, | ||
D_FLOAT_MODE, | ||
D_INTEGER_MODE, | ||
D_CHARACTER_MODE, | ||
D_HASHBANG_MODE, | ||
D_SPECIAL_TOKEN_SEQUENCE_MODE, | ||
D_ATTRIBUTE_MODE | ||
] | ||
}; | ||
return { | ||
lexemes: hljs.UNDERSCORE_IDENT_RE, | ||
keywords: D_KEYWORDS, | ||
contains: [ | ||
hljs.C_LINE_COMMENT_MODE, | ||
hljs.C_BLOCK_COMMENT_MODE, | ||
D_NESTING_COMMENT_MODE, | ||
D_HEX_STRING_MODE, | ||
D_STRING_MODE, | ||
D_WYSIWYG_DELIMITED_STRING_MODE, | ||
D_ALTERNATE_WYSIWYG_STRING_MODE, | ||
D_TOKEN_STRING_MODE, | ||
D_FLOAT_MODE, | ||
D_INTEGER_MODE, | ||
D_CHARACTER_MODE, | ||
D_HASHBANG_MODE, | ||
D_SPECIAL_TOKEN_SEQUENCE_MODE, | ||
D_ATTRIBUTE_MODE | ||
] | ||
}; | ||
}; |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['patch'], | ||
contains: [ | ||
@@ -4,0 +5,0 @@ { |
@@ -21,2 +21,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['jinja'], | ||
case_insensitive: true, | ||
@@ -23,0 +24,0 @@ subLanguage: 'xml', subLanguageMode: 'continuous', |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['bat', 'cmd'], | ||
case_insensitive: true, | ||
@@ -4,0 +5,0 @@ keywords: { |
@@ -14,4 +14,3 @@ module.exports = function(hljs) { | ||
className: 'comment', | ||
begin: '%', end: '$', | ||
relevance: 0 | ||
begin: '%', end: '$' | ||
}; | ||
@@ -115,4 +114,5 @@ var NUMBER = { | ||
return { | ||
aliases: ['erl'], | ||
keywords: ERLANG_RESERVED, | ||
illegal: '(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))', | ||
illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))', | ||
contains: [ | ||
@@ -145,3 +145,3 @@ { | ||
'-import -include -include_lib -compile -define -else -endif -file -behaviour ' + | ||
'-behavior', | ||
'-behavior -spec', | ||
contains: [PARAMS] | ||
@@ -153,5 +153,6 @@ }, | ||
VAR1, VAR2, | ||
TUPLE | ||
TUPLE, | ||
{begin: /\.$/} // relevance booster | ||
] | ||
}; | ||
}; |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['fs'], | ||
keywords: | ||
@@ -11,3 +12,2 @@ 'abstract and as assert base begin class default delegate do done ' + | ||
contains: [ | ||
{ | ||
@@ -28,3 +28,3 @@ className: 'string', | ||
className: 'class', | ||
beginKeywords: 'type', end: '\\(|=|$', | ||
beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true, | ||
contains: [ | ||
@@ -47,3 +47,3 @@ hljs.UNDERSCORE_TITLE_MODE | ||
] | ||
} | ||
}; | ||
}; |
@@ -102,3 +102,3 @@ module.exports = // TODO support filter tags like :javascript, support inline HTML | ||
] | ||
}, | ||
} | ||
] | ||
@@ -105,0 +105,0 @@ } |
module.exports = function(hljs) { | ||
var EXPRESSION_KEYWORDS = 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'; | ||
return { | ||
aliases: ['hbs', 'html.hbs', 'html.handlebars'], | ||
case_insensitive: true, | ||
@@ -5,0 +6,0 @@ subLanguage: 'xml', subLanguageMode: 'continuous', |
@@ -49,2 +49,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['hs'], | ||
keywords: | ||
@@ -51,0 +52,0 @@ 'let in if then else case of where do module import hiding ' + |
@@ -8,2 +8,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['jsp'], | ||
keywords: KEYWORDS, | ||
@@ -30,4 +31,4 @@ illegal: /<\//, | ||
className: 'class', | ||
beginKeywords: 'class interface', endsWithParent: true, | ||
illegal: /[:"<>]/, | ||
beginKeywords: 'class interface', endsWithParent: true, excludeEnd: true, | ||
illegal: /[:"\[\]]/, | ||
contains: [ | ||
@@ -34,0 +35,0 @@ { |
@@ -17,3 +17,4 @@ module.exports = function(hljs) { | ||
'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' + | ||
'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require' | ||
'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' + | ||
'module console window document' | ||
}, | ||
@@ -48,3 +49,3 @@ contains: [ | ||
className: 'function', | ||
beginKeywords: 'function', end: /\{/, | ||
beginKeywords: 'function', end: /\{/, excludeEnd: true, | ||
contains: [ | ||
@@ -51,0 +52,0 @@ hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}), |
@@ -45,3 +45,3 @@ module.exports = function(hljs) { | ||
returnEnd: true, | ||
contains: [ HTML_COMMENT ] | ||
contains: [HTML_COMMENT] | ||
} | ||
@@ -61,3 +61,4 @@ }; | ||
className: 'javadoc', | ||
begin: '/\\*\\*!', end: '\\*/' | ||
begin: '/\\*\\*!', end: '\\*/', | ||
contains: [hljs.PHRASAL_WORDS_MODE] | ||
}, | ||
@@ -91,3 +92,11 @@ hljs.C_BLOCK_COMMENT_MODE, | ||
className: 'attribute', | ||
begin: '\\.\\.\\.|-' + hljs.UNDERSCORE_IDENT_RE | ||
variants: [ | ||
{ | ||
begin: '-' + hljs.UNDERSCORE_IDENT_RE, | ||
relevance: 0 | ||
}, | ||
{ | ||
begin: '(\\.\\.\\.)' | ||
} | ||
] | ||
}, | ||
@@ -99,3 +108,3 @@ { | ||
begin: '->\\s*', | ||
contains: [ LASSO_DATAMEMBER ] | ||
contains: [LASSO_DATAMEMBER] | ||
}, | ||
@@ -112,3 +121,3 @@ { | ||
relevance: 0, | ||
contains: [ LASSO_DATAMEMBER ] | ||
contains: [LASSO_DATAMEMBER] | ||
}, | ||
@@ -139,3 +148,3 @@ { | ||
relevance: 0, | ||
contains: [ HTML_COMMENT ] | ||
contains: [HTML_COMMENT] | ||
} | ||
@@ -161,3 +170,3 @@ }, | ||
returnEnd: true, | ||
contains: [ HTML_COMMENT ] | ||
contains: [HTML_COMMENT] | ||
} | ||
@@ -164,0 +173,0 @@ }, |
@@ -44,10 +44,14 @@ module.exports = function(hljs) { | ||
{ | ||
begin: '[\'`]\\(', end: '\\)', | ||
begin: '[\'`]\\(', end: '\\)' | ||
}, | ||
{ | ||
begin: '\\(quote ', end: '\\)', | ||
keywords: {title: 'quote'}, | ||
keywords: {title: 'quote'} | ||
} | ||
] | ||
}; | ||
var QUOTED_ATOM = { | ||
className: 'quoted', | ||
begin: '\'' + LISP_IDENT_RE | ||
}; | ||
var LIST = { | ||
@@ -62,3 +66,3 @@ className: 'list', | ||
LIST.contains = [{className: 'title', begin: LISP_IDENT_RE}, BODY]; | ||
BODY.contains = [QUOTED, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD]; | ||
BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD]; | ||
@@ -74,2 +78,3 @@ return { | ||
QUOTED, | ||
QUOTED_ATOM, | ||
LIST | ||
@@ -76,0 +81,0 @@ ] |
@@ -12,6 +12,6 @@ module.exports = function(hljs) { | ||
{ | ||
begin: '--', | ||
begin: '--' | ||
}, | ||
{ | ||
begin: '[^:]//', | ||
begin: '[^:]//' | ||
} | ||
@@ -18,0 +18,0 @@ ] |
@@ -52,3 +52,3 @@ module.exports = function(hljs) { | ||
contains: [LONG_BRACKETS], | ||
relevance: 10 | ||
relevance: 5 | ||
} | ||
@@ -55,0 +55,0 @@ ]) |
@@ -6,4 +6,5 @@ module.exports = function(hljs) { | ||
contains: [hljs.BACKSLASH_ESCAPE] | ||
} | ||
}; | ||
return { | ||
aliases: ['mk', 'mak'], | ||
contains: [ | ||
@@ -22,3 +23,3 @@ hljs.HASH_COMMENT_MODE, | ||
VARIABLE | ||
], | ||
] | ||
} | ||
@@ -25,0 +26,0 @@ } |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['md', 'mkdown', 'mkd'], | ||
contains: [ | ||
@@ -78,3 +79,3 @@ // highlight headers | ||
begin: '\\]\\[', end: '\\]', | ||
excludeBegin: true, excludeEnd: true, | ||
excludeBegin: true, excludeEnd: true | ||
} | ||
@@ -81,0 +82,0 @@ ], |
module.exports = function(hljs) { | ||
var COMMON_CONTAINS = [ | ||
@@ -63,5 +62,9 @@ hljs.C_NUMBER_MODE, | ||
className: 'cell', | ||
begin: '\\{', end: '\\}\'*[\\.\']*', | ||
begin: '\\{', | ||
contains: COMMON_CONTAINS, | ||
illegal: /:/ | ||
illegal: /:/, | ||
variants: [ | ||
{end: /\}'[\.']*/}, | ||
{end: /\}/, relevance: 0} | ||
] | ||
}, | ||
@@ -68,0 +71,0 @@ { |
@@ -63,2 +63,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['nginxconf'], | ||
contains: [ | ||
@@ -69,3 +70,7 @@ hljs.HASH_COMMENT_MODE, | ||
contains: [ | ||
hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {starts: DEFAULT}) | ||
{ | ||
className: 'title', | ||
begin: hljs.UNDERSCORE_IDENT_RE, | ||
starts: DEFAULT | ||
} | ||
], | ||
@@ -72,0 +77,0 @@ relevance: 0 |
@@ -8,6 +8,7 @@ module.exports = function(hljs) { | ||
'signed typename this switch continue wchar_t inline readonly assign ' + | ||
'self synchronized id ' + | ||
'nonatomic super unichar IBOutlet IBAction strong weak ' + | ||
'readwrite self @synchronized id typeof ' + | ||
'nonatomic super unichar IBOutlet IBAction strong weak copy ' + | ||
'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' + | ||
'@private @protected @public @try @property @end @throw @catch @finally ' + | ||
'@synthesize @dynamic @selector @optional @required', | ||
'@autoreleasepool @synthesize @dynamic @selector @optional @required', | ||
literal: | ||
@@ -17,2 +18,3 @@ 'false true FALSE TRUE nil YES NO NULL', | ||
'NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView ' + | ||
'NSView NSViewController NSWindow NSWindowController NSSet NSUUID NSIndexSet ' + | ||
'UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread ' + | ||
@@ -34,2 +36,3 @@ 'UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool ' + | ||
return { | ||
aliases: ['m', 'mm', 'objc', 'obj-c'], | ||
keywords: OBJC_KEYWORDS, lexemes: LEXEMES, | ||
@@ -44,32 +47,31 @@ illegal: '</', | ||
className: 'string', | ||
begin: '\'', | ||
end: '[^\\\\]\'', | ||
illegal: '[^\\\\][^\']' | ||
variants: [ | ||
{ | ||
begin: '@"', end: '"', | ||
illegal: '\\n', | ||
contains: [hljs.BACKSLASH_ESCAPE] | ||
}, | ||
{ | ||
begin: '\'', end: '[^\\\\]\'', | ||
illegal: '[^\\\\][^\']' | ||
} | ||
] | ||
}, | ||
{ | ||
className: 'preprocessor', | ||
begin: '#import', | ||
begin: '#', | ||
end: '$', | ||
contains: [ | ||
{ | ||
className: 'title', | ||
begin: '\"', | ||
end: '\"' | ||
}, | ||
{ | ||
className: 'title', | ||
begin: '<', | ||
end: '>' | ||
} | ||
{ | ||
className: 'title', | ||
variants: [ | ||
{ begin: '\"', end: '\"' }, | ||
{ begin: '<', end: '>' } | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
className: 'preprocessor', | ||
begin: '#', | ||
end: '$' | ||
}, | ||
{ | ||
className: 'class', | ||
begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', | ||
begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true, | ||
keywords: CLASS_KEYWORDS, lexemes: LEXEMES, | ||
@@ -76,0 +78,0 @@ contains: [ |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['ml'], | ||
keywords: { | ||
@@ -12,3 +13,3 @@ keyword: | ||
'bool char float int list unit array exn option int32 int64 nativeint ' + | ||
'format4 format6 lazy_t in_channel out_channel string', | ||
'format4 format6 lazy_t in_channel out_channel string' | ||
}, | ||
@@ -28,3 +29,3 @@ illegal: /\/\//, | ||
className: 'class', | ||
beginKeywords: 'type', end: '\\(|=|$', | ||
beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true, | ||
contains: [ | ||
@@ -31,0 +32,0 @@ hljs.UNDERSCORE_TITLE_MODE |
module.exports = function(hljs) { | ||
var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+ | ||
'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+ | ||
'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited'+ | ||
' inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+ | ||
'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+ | ||
'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+ | ||
'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+ | ||
'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained'; | ||
'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+ | ||
'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+ | ||
'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+ | ||
'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+ | ||
'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+ | ||
'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained'; | ||
var CURLY_COMMENT = { | ||
@@ -11,0 +11,0 @@ className: 'comment', |
@@ -34,4 +34,4 @@ module.exports = function(hljs) { | ||
{begin: /\$\d/}, | ||
{begin: /[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/}, | ||
{begin: /[\$\%\@\*][^\s\w{]/, relevance: 0} | ||
{begin: /[\$\%\@](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/}, | ||
{begin: /[\$\%\@][^\s\w{]/, relevance: 0} | ||
] | ||
@@ -43,3 +43,3 @@ }; | ||
relevance: 5 | ||
} | ||
}; | ||
var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR]; | ||
@@ -146,2 +146,3 @@ var PERL_DEFAULT_CONTAINS = [ | ||
return { | ||
aliases: ['pl'], | ||
keywords: PERL_KEYWORDS, | ||
@@ -148,0 +149,0 @@ contains: PERL_DEFAULT_CONTAINS |
module.exports = function(hljs) { | ||
var VARIABLE = { | ||
className: 'variable', begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' | ||
className: 'variable', begin: '(\\$|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' | ||
}; | ||
@@ -24,2 +24,3 @@ var PREPROCESSOR = { | ||
return { | ||
aliases: ['php3', 'php4', 'php5', 'php6'], | ||
case_insensitive: true, | ||
@@ -63,3 +64,3 @@ keywords: | ||
className: 'function', | ||
beginKeywords: 'function', end: /[;{]/, | ||
beginKeywords: 'function', end: /[;{]/, excludeEnd: true, | ||
illegal: '\\$|\\[|%', | ||
@@ -83,3 +84,3 @@ contains: [ | ||
className: 'class', | ||
beginKeywords: 'class interface', end: '{', | ||
beginKeywords: 'class interface', end: '{', excludeEnd: true, | ||
illegal: /[:\(\$"]/, | ||
@@ -86,0 +87,0 @@ contains: [ |
module.exports = function(hljs) { | ||
var PROMPT = { | ||
className: 'prompt', begin: /^(>>>|\.\.\.) / | ||
} | ||
}; | ||
var STRING = { | ||
@@ -28,6 +28,6 @@ className: 'string', | ||
{ | ||
begin: /(b|br)'/, end: /'/, | ||
begin: /(b|br)'/, end: /'/ | ||
}, | ||
{ | ||
begin: /(b|br)"/, end: /"/, | ||
begin: /(b|br)"/, end: /"/ | ||
}, | ||
@@ -45,3 +45,3 @@ hljs.APOS_STRING_MODE, | ||
] | ||
} | ||
}; | ||
var PARAMS = { | ||
@@ -59,2 +59,3 @@ className: 'params', | ||
return { | ||
aliases: ['py', 'gyp'], | ||
keywords: { | ||
@@ -61,0 +62,0 @@ keyword: |
@@ -11,2 +11,6 @@ module.exports = function(hljs) { | ||
}; | ||
var IRB_OBJECT = { | ||
className: 'value', | ||
begin: '#<', end: '>' | ||
}; | ||
var COMMENT = { | ||
@@ -43,23 +47,8 @@ className: 'comment', | ||
{begin: '%[qw]?{', end: '}'}, | ||
{begin: '%[qw]?<', end: '>'}, | ||
{begin: '%[qw]?/', end: '/'}, | ||
{begin: '%[qw]?%', end: '%'}, | ||
{begin: '%[qw]?-', end: '-'}, | ||
{begin: '%[qw]?\\|', end: '\\|'}, | ||
{ | ||
begin: '%[qw]?<', end: '>', | ||
relevance: 10 | ||
}, | ||
{ | ||
begin: '%[qw]?/', end: '/', | ||
relevance: 10 | ||
}, | ||
{ | ||
begin: '%[qw]?%', end: '%', | ||
relevance: 10 | ||
}, | ||
{ | ||
begin: '%[qw]?-', end: '-', | ||
relevance: 10 | ||
}, | ||
{ | ||
begin: '%[qw]?\\|', end: '\\|', | ||
relevance: 10 | ||
}, | ||
{ | ||
// \B in the beginning suppresses recognition of ?-sequences where ? | ||
@@ -79,2 +68,3 @@ // is the last character of a preceding identifier, as in: `func?4` | ||
STRING, | ||
IRB_OBJECT, | ||
COMMENT, | ||
@@ -136,2 +126,3 @@ { | ||
contains: [ | ||
IRB_OBJECT, | ||
COMMENT, | ||
@@ -156,7 +147,43 @@ { | ||
PARAMS.contains = RUBY_DEFAULT_CONTAINS; | ||
var IRB_DEFAULT = [ | ||
{ | ||
relevance: 1, | ||
className: 'output', | ||
begin: '^\\s*=> ', end: "$", | ||
returnBegin: true, | ||
contains: [ | ||
{ | ||
className: 'status', | ||
begin: '^\\s*=>' | ||
}, | ||
{ | ||
begin: ' ', end: '$', | ||
contains: RUBY_DEFAULT_CONTAINS | ||
} | ||
] | ||
}, | ||
{ | ||
relevance: 1, | ||
className: 'input', | ||
begin: '^[^ ][^=>]*>+ ', end: "$", | ||
returnBegin: true, | ||
contains: [ | ||
{ | ||
className: 'prompt', | ||
begin: '^[^ ][^=>]*>+' | ||
}, | ||
{ | ||
begin: ' ', end: '$', | ||
contains: RUBY_DEFAULT_CONTAINS | ||
} | ||
] | ||
} | ||
]; | ||
return { | ||
aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'], | ||
keywords: RUBY_KEYWORDS, | ||
contains: RUBY_DEFAULT_CONTAINS | ||
contains: IRB_DEFAULT.concat(RUBY_DEFAULT_CONTAINS) | ||
}; | ||
}; |
module.exports = function(hljs) { | ||
var NUMBER = { | ||
className: 'number', | ||
begin: '\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)', | ||
relevance: 0 | ||
}; | ||
var KEYWORDS = | ||
'assert bool break char check claim comm const cont copy dir do drop ' + | ||
'else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 ' + | ||
'if impl int let log loop match mod move mut priv pub pure ref return ' + | ||
'self static str struct task true trait type u16 u32 u64 u8 uint unsafe ' + | ||
'use vec while'; | ||
return { | ||
keywords: KEYWORDS, | ||
aliases: ['rs'], | ||
keywords: | ||
'alignof as be box break const continue crate do else enum extern ' + | ||
'false fn for if impl in let loop match mod mut offsetof once priv ' + | ||
'proc pub pure ref return self sizeof static struct super trait true ' + | ||
'type typeof unsafe unsized use virtual while yield ' + | ||
'int i8 i16 i32 i64 ' + | ||
'uint u8 u32 u64 ' + | ||
'float f32 f64 ' + | ||
'str char bool', | ||
illegal: '</', | ||
@@ -20,7 +18,21 @@ contains: [ | ||
hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}), | ||
hljs.APOS_STRING_MODE, | ||
NUMBER, | ||
{ | ||
className: 'string', | ||
begin: /r(#*)".*?"\1(?!#)/ | ||
}, | ||
{ | ||
className: 'string', | ||
begin: /'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ | ||
}, | ||
{ | ||
begin: /'[a-zA-Z_][a-zA-Z0-9_]*/ | ||
}, | ||
{ | ||
className: 'number', | ||
begin: '\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)', | ||
relevance: 0 | ||
}, | ||
{ | ||
className: 'function', | ||
beginKeywords: 'fn', end: '(\\(|<)', | ||
beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true, | ||
contains: [hljs.UNDERSCORE_TITLE_MODE] | ||
@@ -41,2 +53,8 @@ }, | ||
illegal: '\\S' | ||
}, | ||
{ | ||
begin: hljs.IDENT_RE + '::' | ||
}, | ||
{ | ||
begin: '->' | ||
} | ||
@@ -43,0 +61,0 @@ ] |
@@ -10,2 +10,6 @@ module.exports = function(hljs) { | ||
}; | ||
var SYMBOL = { | ||
className: 'symbol', | ||
begin: '\'\\w[\\w\\d_]*(?!\')' | ||
}; | ||
return { | ||
@@ -27,6 +31,8 @@ keywords: | ||
hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, | ||
STRING, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, | ||
STRING, hljs.QUOTE_STRING_MODE, | ||
SYMBOL, | ||
{ | ||
className: 'class', | ||
begin: '((case )?class |object |trait )', end: '({|$)', // beginKeywords won't work because a single "case" shouldn't start this mode | ||
begin: '((case )?class |object |trait )', // beginKeywords won't work because a single "case" shouldn't start this mode | ||
end: '({|$)', excludeEnd: true, | ||
illegal: ':', | ||
@@ -44,3 +50,3 @@ keywords: 'case class trait object', | ||
contains: [ | ||
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, STRING, | ||
hljs.QUOTE_STRING_MODE, STRING, | ||
ANNOTATION | ||
@@ -47,0 +53,0 @@ ] |
@@ -13,2 +13,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['sci'], | ||
keywords: { | ||
@@ -37,4 +38,4 @@ keyword: 'abort break case clear catch continue do elseif else endfunction end for function'+ | ||
begin: '\\(', end: '\\)' | ||
}, | ||
], | ||
} | ||
] | ||
}, | ||
@@ -41,0 +42,0 @@ { |
module.exports = function(hljs) { | ||
var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*'; | ||
var VARIABLE = { | ||
className: 'variable', | ||
begin: '(\\$' + IDENT_RE + ')\\b' | ||
}; | ||
var FUNCTION = { | ||
className: 'function', | ||
begin: IDENT_RE + '\\(', end: '\\)', | ||
contains: ['self', hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE] | ||
begin: IDENT_RE + '\\(', | ||
returnBegin: true, | ||
excludeEnd: true, | ||
end: '\\(' | ||
}; | ||
@@ -22,3 +28,3 @@ var HEXCOLOR = { | ||
HEXCOLOR, | ||
hljs.NUMBER_MODE, | ||
hljs.CSS_NUMBER_MODE, | ||
hljs.QUOTE_STRING_MODE, | ||
@@ -39,8 +45,4 @@ hljs.APOS_STRING_MODE, | ||
hljs.C_BLOCK_COMMENT_MODE, | ||
FUNCTION, | ||
{ | ||
className: 'function', | ||
begin: IDENT_RE + '\\(', end: '\\)', | ||
contains: ['self', hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE] | ||
}, | ||
{ | ||
className: 'id', begin: '\\#[A-Za-z0-9_-]+', | ||
@@ -71,2 +73,3 @@ relevance: 0 | ||
}, | ||
VARIABLE, | ||
{ | ||
@@ -85,4 +88,6 @@ className: 'attribute', | ||
contains: [ | ||
FUNCTION, | ||
VARIABLE, | ||
HEXCOLOR, | ||
hljs.NUMBER_MODE, | ||
hljs.CSS_NUMBER_MODE, | ||
hljs.QUOTE_STRING_MODE, | ||
@@ -101,6 +106,7 @@ hljs.APOS_STRING_MODE, | ||
FUNCTION, | ||
VARIABLE, | ||
hljs.QUOTE_STRING_MODE, | ||
hljs.APOS_STRING_MODE, | ||
HEXCOLOR, | ||
hljs.NUMBER_MODE, | ||
hljs.CSS_NUMBER_MODE, | ||
{ | ||
@@ -107,0 +113,0 @@ className: 'preprocessor', |
@@ -12,2 +12,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['st'], | ||
keywords: 'self super nil true false thisContext', // only 6 | ||
@@ -14,0 +15,0 @@ contains: [ |
module.exports = function(hljs) { | ||
var COMMENT_MODE = { | ||
className: 'comment', | ||
begin: '--', end: '$' | ||
}; | ||
return { | ||
@@ -8,27 +12,66 @@ case_insensitive: true, | ||
className: 'operator', | ||
begin: '\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)', // negative look-ahead here is specifically to prevent stomping on SmallTalk | ||
end: ';', endsWithParent: true, | ||
beginKeywords: | ||
'begin end start commit rollback savepoint lock alter create drop rename call '+ | ||
'delete do handler insert load replace select truncate update set show pragma grant '+ | ||
'merge describe use explain help declare prepare execute deallocate savepoint release '+ | ||
'unlock purge reset change stop analyze cache flush optimize repair kill '+ | ||
'install uninstall checksum restore check backup', | ||
end: /;/, endsWithParent: true, | ||
keywords: { | ||
keyword: 'all partial global month current_timestamp using go revoke smallint ' + | ||
'indicator end-exec disconnect zone with character assertion to add current_user ' + | ||
'usage input local alter match collate real then rollback get read timestamp ' + | ||
'session_user not integer bit unique day minute desc insert execute like ilike|2 ' + | ||
'level decimal drop continue isolation found where constraints domain right ' + | ||
'national some module transaction relative second connect escape close system_user ' + | ||
'for deferred section cast current sqlstate allocate intersect deallocate numeric ' + | ||
'public preserve full goto initially asc no key output collation group by union ' + | ||
'session both last language constraint column of space foreign deferrable prior ' + | ||
'connection unknown action commit view or first into float year primary cascaded ' + | ||
'except restrict set references names table outer open select size are rows from ' + | ||
'prepare distinct leading create only next inner authorization schema ' + | ||
'corresponding option declare precision immediate else timezone_minute external ' + | ||
'varying translation true case exception join hour default double scroll value ' + | ||
'cursor descriptor values dec fetch procedure delete and false int is describe ' + | ||
'char as at in varchar null trailing any absolute current_time end grant ' + | ||
'privileges when cross check write current_date pad begin temporary exec time ' + | ||
'update catalog user sql date on identity timezone_hour natural whenever interval ' + | ||
'work order cascade diagnostics nchar having left call do handler load replace ' + | ||
'truncate start lock show pragma exists number trigger if before after each row ' + | ||
'merge matched database', | ||
aggregate: 'count sum min max avg' | ||
keyword: | ||
'abs absolute acos action add adddate addtime aes_decrypt aes_encrypt after aggregate all allocate alter ' + | ||
'analyze and any are as asc ascii asin assertion at atan atan2 atn2 authorization authors avg backup ' + | ||
'before begin benchmark between bin binlog bit_and bit_count bit_length bit_or bit_xor both by ' + | ||
'cache call cascade cascaded case cast catalog ceil ceiling chain change changed char_length ' + | ||
'character_length charindex charset check checksum checksum_agg choose close coalesce ' + | ||
'coercibility collate collation collationproperty column columns columns_updated commit compress concat ' + | ||
'concat_ws concurrent connect connection connection_id consistent constraint constraints continue ' + | ||
'contributors conv convert convert_tz corresponding cos cot count count_big crc32 create cross cume_dist ' + | ||
'curdate current current_date current_time current_timestamp current_user cursor curtime data database ' + | ||
'databases datalength date_add date_format date_sub dateadd datediff datefromparts datename ' + | ||
'datepart datetime2fromparts datetimeoffsetfromparts day dayname dayofmonth dayofweek dayofyear ' + | ||
'deallocate declare decode default deferrable deferred degrees delayed delete des_decrypt ' + | ||
'des_encrypt des_key_file desc describe descriptor diagnostics difference disconnect distinct ' + | ||
'distinctrow div do domain double drop dumpfile each else elt enclosed encode encrypt end end-exec ' + | ||
'engine engines eomonth errors escape escaped event eventdata events except exception exec execute ' + | ||
'exists exp explain export_set extended external extract fast fetch field fields find_in_set ' + | ||
'first first_value floor flush for force foreign format found found_rows from from_base64 ' + | ||
'from_days from_unixtime full function get get_format get_lock getdate getutcdate global go goto grant ' + | ||
'grants greatest group group_concat grouping grouping_id gtid_subset gtid_subtract handler having help ' + | ||
'hex high_priority hosts hour ident_current ident_incr ident_seed identified identity if ifnull ignore ' + | ||
'iif ilike immediate in index indicator inet6_aton inet6_ntoa inet_aton inet_ntoa infile initially inner ' + | ||
'innodb input insert install instr intersect into is is_free_lock is_ipv4 ' + | ||
'is_ipv4_compat is_ipv4_mapped is_not is_not_null is_used_lock isdate isnull isolation join key kill ' + | ||
'language last last_day last_insert_id last_value lcase lead leading least leaves left len lenght level ' + | ||
'like limit lines ln load load_file local localtime localtimestamp locate lock log log10 log2 logfile ' + | ||
'logs low_priority lower lpad ltrim make_set makedate maketime master master_pos_wait match matched max ' + | ||
'md5 medium merge microsecond mid min minute mod mode module month monthname mutex name_const names ' + | ||
'national natural nchar next no no_write_to_binlog not now nullif nvarchar oct ' + | ||
'octet_length of old_password on only open optimize option optionally or ord order outer outfile output ' + | ||
'pad parse partial partition password patindex percent_rank percentile_cont percentile_disc period_add ' + | ||
'period_diff pi plugin position pow power pragma precision prepare preserve primary prior privileges ' + | ||
'procedure procedure_analyze processlist profile profiles public publishingservername purge quarter ' + | ||
'query quick quote quotename radians rand read references regexp relative relaylog release ' + | ||
'release_lock rename repair repeat replace replicate reset restore restrict return returns reverse ' + | ||
'revoke right rlike rollback rollup round row row_count rows rpad rtrim savepoint schema scroll ' + | ||
'sec_to_time second section select serializable server session session_user set sha sha1 sha2 share ' + | ||
'show sign sin size slave sleep smalldatetimefromparts snapshot some soname soundex ' + | ||
'sounds_like space sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache ' + | ||
'sql_small_result sql_variant_property sqlstate sqrt square start starting status std ' + | ||
'stddev stddev_pop stddev_samp stdev stdevp stop str str_to_date straight_join strcmp string stuff ' + | ||
'subdate substr substring subtime subtring_index sum switchoffset sysdate sysdatetime sysdatetimeoffset ' + | ||
'system_user sysutcdatetime table tables tablespace tan temporary terminated tertiary_weights then time ' + | ||
'time_format time_to_sec timediff timefromparts timestamp timestampadd timestampdiff timezone_hour ' + | ||
'timezone_minute to to_base64 to_days to_seconds todatetimeoffset trailing transaction translation ' + | ||
'trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse ucase uncompress ' + | ||
'uncompressed_length unhex unicode uninstall union unique unix_timestamp unknown unlock update upgrade ' + | ||
'upped upper usage use user user_resources using utc_date utc_time utc_timestamp uuid uuid_short ' + | ||
'validate_password_strength value values var var_pop var_samp variables variance varp ' + | ||
'version view warnings week weekday weekofyear weight_string when whenever where with work write xml ' + | ||
'xor year yearweek zon', | ||
literal: | ||
'true false null', | ||
built_in: | ||
'array bigint binary bit blob boolean char character date dec decimal float int integer interval number ' + | ||
'numeric real serial smallint varchar varying int8 serial8 text' | ||
}, | ||
@@ -51,12 +94,11 @@ contains: [ | ||
}, | ||
hljs.C_NUMBER_MODE | ||
hljs.C_NUMBER_MODE, | ||
hljs.C_BLOCK_COMMENT_MODE, | ||
COMMENT_MODE | ||
] | ||
}, | ||
hljs.C_BLOCK_COMMENT_MODE, | ||
{ | ||
className: 'comment', | ||
begin: '--', end: '$' | ||
} | ||
COMMENT_MODE | ||
] | ||
}; | ||
}; |
@@ -26,3 +26,3 @@ module.exports = function(hljs) { | ||
className: 'class', | ||
beginKeywords: 'class interface delegate namespace', end: '{', | ||
beginKeywords: 'class interface delegate namespace', end: '{', excludeEnd: true, | ||
illegal: '[^,:\\n\\s\\.]', | ||
@@ -29,0 +29,0 @@ contains: [ |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['vb'], | ||
case_insensitive: true, | ||
@@ -38,3 +39,3 @@ keywords: { | ||
begin: '</?', end: '>' | ||
}, | ||
} | ||
] | ||
@@ -47,5 +48,5 @@ }, | ||
keywords: 'if else elseif end region externalsource' | ||
}, | ||
} | ||
] | ||
}; | ||
}; |
module.exports = function(hljs) { | ||
return { | ||
aliases: ['vbs'], | ||
case_insensitive: true, | ||
@@ -4,0 +5,0 @@ keywords: { |
@@ -35,3 +35,3 @@ module.exports = function(hljs) { | ||
return { | ||
aliases: ['html'], | ||
aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'], | ||
case_insensitive: true, | ||
@@ -38,0 +38,0 @@ contains: [ |
120
package.json
{ | ||
"engines": { | ||
"node": "*" | ||
}, | ||
"description": "Syntax highlighting with language autodetection.", | ||
"keywords": [ | ||
"highlight", | ||
"syntax" | ||
], | ||
"main": "./lib/index.js", | ||
"version": "8.1.0", | ||
"homepage": "http://highlightjs.org/", | ||
"description": "Syntax highlighting with language autodetection.", | ||
"bugs": { | ||
"url": "https://github.com/isagalaev/highlight.js/issues" | ||
}, | ||
"contributors": [ | ||
@@ -360,3 +360,3 @@ { | ||
{ | ||
"email": "jan@idleberg.com", | ||
"email": "git@idleberg.com", | ||
"name": "Jan T. Sott" | ||
@@ -375,9 +375,84 @@ }, | ||
"name": "Ilya Vassilevsky" | ||
}, | ||
{ | ||
"email": "josh@isotope11.com", | ||
"name": "Josh Adams" | ||
}, | ||
{ | ||
"email": "daniel.tao@gmail.com", | ||
"name": "Dan Tao" | ||
}, | ||
{ | ||
"email": "hello@jenius.me", | ||
"name": "Jeff Escalante" | ||
}, | ||
{ | ||
"email": "yangjvn@126.com", | ||
"name": "Jun Yang" | ||
}, | ||
{ | ||
"email": "info@neor.ru", | ||
"name": "Nikolay Lisienko" | ||
}, | ||
{ | ||
"email": "post@auge8472.de", | ||
"name": "Heiko August" | ||
}, | ||
{ | ||
"email": "domen@dev.si", | ||
"name": "Domen Kožar" | ||
}, | ||
{ | ||
"email": "travis.a.odom@gmail.com", | ||
"name": "Travis Odom" | ||
}, | ||
{ | ||
"email": "innocenat@gmail.com", | ||
"name": "innocenat" | ||
}, | ||
{ | ||
"email": "devolonter@gmail.com", | ||
"name": "Arthur Bikmullin" | ||
}, | ||
{ | ||
"email": "phi@ruby-reactive.org", | ||
"name": "Pascal Hurni" | ||
}, | ||
{ | ||
"email": "romanshmatov@gmail.com", | ||
"name": "Roman Shmatov" | ||
}, | ||
{ | ||
"email": "nic@letolab.com", | ||
"name": "Nic West" | ||
}, | ||
{ | ||
"email": "panu.horsmalahti@iki.fi", | ||
"name": "Panu Horsmalahti" | ||
}, | ||
{ | ||
"email": "tamas.flaviu@gmail.com", | ||
"name": "Flaviu Tamas" | ||
}, | ||
{ | ||
"email": "mee.damian@gmail.com", | ||
"name": "Damian Mee" | ||
}, | ||
{ | ||
"email": "ikasoki@gmail.com", | ||
"name": "Christopher Kaster" | ||
}, | ||
{ | ||
"email": "chris@eidhof.nl", | ||
"name": "Chris Eidhof" | ||
}, | ||
{ | ||
"email": "natecook@gmail.com", | ||
"name": "Nate Cook" | ||
}, | ||
{ | ||
"email": "matt@diephouse.com", | ||
"name": "Matt Diephouse" | ||
} | ||
], | ||
"author": { | ||
"email": "maniac@softwaremaniacs.org", | ||
"name": "Ivan Sagalaev" | ||
}, | ||
"version": "8.0.0", | ||
"licenses": [ | ||
@@ -389,13 +464,18 @@ { | ||
], | ||
"name": "highlight.js", | ||
"main": "./lib/index.js", | ||
"scripts": {}, | ||
"keywords": [ | ||
"highlight", | ||
"syntax" | ||
], | ||
"author": { | ||
"email": "maniac@softwaremaniacs.org", | ||
"name": "Ivan Sagalaev" | ||
}, | ||
"repository": { | ||
"url": "git://github.com/isagalaev/highlight.js.git", | ||
"type": "git" | ||
}, | ||
"scripts": {}, | ||
"name": "highlight.js", | ||
"bugs": { | ||
"url": "https://github.com/isagalaev/highlight.js/issues" | ||
}, | ||
"engines": { | ||
"node": "*" | ||
} | ||
} |
180
README.md
# 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. | ||
Highlight.js is a syntax highlighter written in JavaScript. It works in the | ||
browser as well as on the server. It works with pretty much any markup, | ||
doesn't depend on any framework and has automatic language detection. | ||
Autodetection can be fine tuned when it fails by itself (see "Heuristics"). | ||
## Getting Started | ||
## Basic usage | ||
The bare minimum for using highlight.js on a web page is linking to the library | ||
along with one of the styles and calling [`initHighlightingOnLoad`][1]: | ||
Link the library and a stylesheet from your page and hook highlighting to | ||
the page load event: | ||
```html | ||
<link rel="stylesheet" href="styles/default.css"> | ||
<script src="highlight.pack.js"></script> | ||
<link rel="stylesheet" href="/path/to/styles/default.css"> | ||
<script src="/path/to/highlight.pack.js"></script> | ||
<script>hljs.initHighlightingOnLoad();</script> | ||
``` | ||
This will highlight all code on the page marked up as `<pre><code> .. </code></pre>`. | ||
If you use different markup or need to apply highlighting dynamically, read | ||
"Custom initialization" below. | ||
This will find and highlight code inside of `<pre><code>` tags trying to detect | ||
the language automatically. If automatic detection doesn't work for you, you can | ||
specify the language in the class attribute: | ||
- You can download your own customized version of "highlight.pack.js" or | ||
use the hosted one as described on the download page: | ||
<http://highlightjs.org/download/> | ||
- Style themes are available in the download package or as hosted files. | ||
To create a custom style for your site see the class reference in the file | ||
[CSS classes reference][cr] from the downloaded package. | ||
[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html | ||
## node.js | ||
Highlight.js can be used under node.js. The package with all supported languages is | ||
installable from NPM: | ||
npm install highlight.js | ||
Alternatively, you can build it from the source with only languages you need: | ||
python3 tools/build.py -tnode lang1 lang2 .. | ||
Using the library: | ||
```javascript | ||
var hljs = require('highlight.js'); | ||
// If you know the language | ||
hljs.highlight(lang, code).value; | ||
// Automatic language detection | ||
hljs.highlightAuto(code).value; | ||
```html | ||
<pre><code class="html">...</code></pre> | ||
``` | ||
The list of supported language classes is available in the [class reference][8]. | ||
Classes can also be prefixed with either `language-` or `lang-`. | ||
## AMD | ||
To disable highlighting altogether use the `no-highlight` class: | ||
Highlight.js can be used with an AMD loader. You will need to build it from | ||
source in order to do so: | ||
```bash | ||
$ python3 tools/build.py -tamd lang1 lang2 .. | ||
``` | ||
Which will generate a `build/highlight.pack.js` which will load as an AMD | ||
module with support for the built languages and can be used like so: | ||
```javascript | ||
require(["highlight.js/build/highlight.pack"], function(hljs){ | ||
// If you know the language | ||
hljs.highlight(lang, code).value; | ||
// Automatic language detection | ||
hljs.highlightAuto(code).value; | ||
}); | ||
``` | ||
## Tab replacement | ||
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.configure({tabReplace: ' '}); // 4 spaces | ||
// ... or | ||
hljs.configure({tabReplace: '<span class="indent">\t</span>'}); | ||
hljs.initHighlightingOnLoad(); | ||
</script> | ||
<pre><code class="no-highlight">...</code></pre> | ||
``` | ||
## Custom initialization | ||
## Custom Initialization | ||
If you use different markup for code blocks you can initialize them manually | ||
with `highlightBlock(code)` function. It takes a DOM element containing the | ||
code to highlight and optionally a string with which to replace TAB | ||
characters. | ||
When you need a bit more control over the initialization of | ||
highlight.js, you can use the [`highlightBlock`][2] and [`configure`][3] | ||
functions. This allows you to control *what* to highlight and *when*. | ||
Initialization using, for example, jQuery might look like this: | ||
Here's an equivalent way to calling [`initHighlightingOnLoad`][1] using jQuery: | ||
```javascript | ||
$(document).ready(function() { | ||
$('pre code').each(function(i, e) {hljs.highlightBlock(e)}); | ||
}); | ||
$('pre code').each(function(i, block) { | ||
hljs.highlightBlock(block); | ||
}); | ||
};) | ||
``` | ||
You can use `highlightBlock` to highlight blocks dynamically inserted into | ||
the page. Just make sure you don't do it twice for already highlighted | ||
blocks. | ||
You can use any tags instead of `<pre><code>` to mark up your code. If you don't | ||
use a container that preserve line breaks you will need to configure | ||
highlight.js to use the `<br>` tag: | ||
If your code container relies on `<br>` tags instead of line breaks (i.e. if | ||
it's not `<pre>`) set the `useBR` option to `true`: | ||
```javascript | ||
hljs.configure({useBR: true}); | ||
$('div.code').each(function(i, e) {hljs.highlightBlock(e)}); | ||
$('div.code').each(function(i, block) { | ||
hljs.highlightBlock(block); | ||
}); | ||
``` | ||
For other options refer to the documentation for [`configure`][3]. | ||
## 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. | ||
## Getting the Library | ||
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: | ||
You can get highlight.js as a hosted or custom-build browser script or as a | ||
server module. Head over to the [download page][4] for all the options. | ||
```html | ||
<pre><code class="html">...</code></pre> | ||
``` | ||
Note, that the library is not supposed to work straight from the source on | ||
GitHub, it requires building. If none of the pre-packaged options work for you | ||
refer to the [building documentation][5]. | ||
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: | ||
## License | ||
```html | ||
<pre><code class="no-highlight">...</code></pre> | ||
``` | ||
Highlight.js is released under the BSD License. See [LICENSE][10] file for | ||
details. | ||
## Export | ||
## Links | ||
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. | ||
The official site for the library is at <http://highlightjs.org/>. | ||
Further in-depth documentation for the API and other topics is at | ||
<http://highlightjs.readthedocs.org/>. | ||
## Meta | ||
Authors and contributors are listed in the [AUTHORS.en.txt][9] file. | ||
- Version: 8.0 | ||
- URL: http://highlightjs.org/ | ||
For the license terms see LICENSE files. | ||
For authors and contributors see AUTHORS.en.txt file. | ||
[1]: http://highlightjs.readthedocs.org/en/latest/api.html#inithighlightingonload | ||
[2]: http://highlightjs.readthedocs.org/en/latest/api.html#highlightblock-block | ||
[3]: http://highlightjs.readthedocs.org/en/latest/api.html#configure-options | ||
[4]: http://highlightjs.org/download/ | ||
[5]: http://highlightjs.readthedocs.org/en/latest/building-testing.html | ||
[8]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html | ||
[9]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt | ||
[10]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
428793
102
7323
0
100