Unified · Split
| @@ -336,7 +336,7 @@ Token.stringify = function(o, language, parent) { · 335 unmodified lines | ||
| 336 | 336 | // return; |
| 337 | 337 | // } |
| 338 | 338 | |
| 339 | −// Get current script and highlight | |
| 339 | +// // Get current script and highlight | |
| 340 | 340 | // var script = document.getElementsByTagName('script'); |
| 341 | 341 | |
| 342 | 342 | // script = script[script.length - 1]; |
| @@ -349,7 +349,7 @@ Token.stringify = function(o, language, parent) { · 6 unmodified lines | ||
| 349 | 349 | // } |
| 350 | 350 | // } |
| 351 | 351 | |
| 352 | −})(); | |
| 352 | +})();; | |
| 353 | 353 | Prism.languages.markup = { |
| 354 | 354 | 'comment': /<!--[\w\W]*?-->/g, |
| 355 | 355 | 'prolog': /<\?.+?\?>/, |
| @@ -390,7 +390,7 @@ Prism.hooks.add('wrap', function(env) { · 34 unmodified lines | ||
| 390 | 390 | if (env.type === 'entity') { |
| 391 | 391 | env.attributes['title'] = env.content.replace(/&/, '&'); |
| 392 | 392 | } |
| 393 | −}); | |
| 393 | +});; | |
| 394 | 394 | Prism.languages.css = { |
| 395 | 395 | 'comment': /\/\*[\w\W]*?\*\//g, |
| 396 | 396 | 'atrule': { |
| @@ -422,22 +422,6 @@ if (Prism.languages.markup) { · 25 unmodified lines | ||
| 422 | 422 | } |
| 423 | 423 | }); |
| 424 | 424 | }; |
| 425 | −Prism.languages.css.selector = { | |
| 426 | − pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g, | |
| 427 | − inside: { | |
| 428 | − 'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g, | |
| 429 | − 'pseudo-class': /:[-\w]+(?:\(.*\))?/g, | |
| 430 | − 'class': /\.[-:\.\w]+/g, | |
| 431 | − 'id': /#[-:\.\w]+/g | |
| 432 | − } | |
| 433 | −}; | |
| 434 | − | |
| 435 | −Prism.languages.insertBefore('css', 'ignore', { | |
| 436 | − 'hexcode': /#[\da-f]{3,6}/gi, | |
| 437 | − 'entity': /\\[\da-f]{1,8}/gi, | |
| 438 | − 'number': /[\d%\.]+/g, | |
| 439 | − 'function': /(attr|calc|cross-fade|cycle|element|hsla?|image|lang|linear-gradient|matrix3d|matrix|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgba?|rotatex|rotatey|rotatez|rotate3d|rotate|scalex|scaley|scalez|scale3d|scale|skewx|skewy|skew|steps|translatex|translatey|translatez|translate3d|translate|url|var)/ig | |
| 440 | −}); | |
| 441 | 425 | Prism.languages.clike = { |
| 442 | 426 | 'comment': { |
| 443 | 427 | pattern: /(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g, |
| @@ -464,7 +448,7 @@ Prism.languages.clike = { · 20 unmodified lines | ||
| 464 | 448 | 'ignore': /&(lt|gt|amp);/gi, |
| 465 | 449 | 'punctuation': /[{}[\];(),.:]/g |
| 466 | 450 | }; |
| 467 | − | |
| 451 | +; | |
| 468 | 452 | Prism.languages.javascript = Prism.languages.extend('clike', { |
| 469 | 453 | 'keyword': /\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|throw|catch|finally|null|break|continue)\b/g, |
| 470 | 454 | 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g |
| @@ -490,8 +474,8 @@ if (Prism.languages.markup) { · 19 unmodified lines | ||
| 490 | 474 | } |
| 491 | 475 | } |
| 492 | 476 | }); |
| 493 | −}; | |
| 494 | − | |
| 477 | +} | |
| 478 | +; | |
| 495 | 479 | Prism.languages.coffeescript = Prism.languages.extend('javascript', { |
| 496 | 480 | 'block-comment': /([#]{3}\s*\r?\n(.*\s*\r*\n*)\s*?\r?\n[#]{3})/g, |
| 497 | 481 | 'comment': /(\s|^)([#]{1}[^#^\r^\n]{2,}?(\r?\n|$))/g, |
| @@ -508,3 +492,26 @@ Prism.languages.insertBefore('coffeescript', 'keyword', { · 10 unmodified lines | ||
| 508 | 492 | }, |
| 509 | 493 | 'attr-name': /[_?a-z-|A-Z-]+(\s*:)| @[_?$?a-z-|A-Z-]+(\s*)| /g |
| 510 | 494 | }); |
| 495 | +; | |
| 496 | +/** | |
| 497 | + * Original by Samuel Flores | |
| 498 | + * | |
| 499 | + * Adds the following new token classes: | |
| 500 | + * constant, builtin, variable, symbol, regex | |
| 501 | + */ | |
| 502 | +Prism.languages.ruby = Prism.languages.extend('clike', { | |
| 503 | + 'comment': /#[^\r\n]*(\r?\n|$)/g, | |
| 504 | + 'keyword': /\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/g, | |
| 505 | + 'builtin': /\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/, | |
| 506 | + 'constant': /\b[A-Z][a-zA-Z_0-9]*[?!]?\b/g | |
| 507 | +}); | |
| 508 | + | |
| 509 | +Prism.languages.insertBefore('ruby', 'keyword', { | |
| 510 | + 'regex': { | |
| 511 | + pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g, | |
| 512 | + lookbehind: true | |
| 513 | + }, | |
| 514 | + 'variable': /[@$&]+\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/g, | |
| 515 | + 'symbol': /:\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/g | |
| 516 | +}); | |
| 517 | +; | |