Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(611)

Unified Diff: polymer_1.0.4/bower_components/prism/components/prism-handlebars.js

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: polymer_1.0.4/bower_components/prism/components/prism-handlebars.js
diff --git a/polymer_1.0.4/bower_components/prism/components/prism-handlebars.js b/polymer_1.0.4/bower_components/prism/components/prism-handlebars.js
new file mode 100644
index 0000000000000000000000000000000000000000..315494050009028c9f45f34488cd280c1e0a37cd
--- /dev/null
+++ b/polymer_1.0.4/bower_components/prism/components/prism-handlebars.js
@@ -0,0 +1,82 @@
+(function(Prism) {
+
+ var handlebars_pattern = /\{\{\{[\w\W]+?\}\}\}|\{\{[\w\W]+?\}\}/g;
+
+ Prism.languages.handlebars = Prism.languages.extend('markup', {
+ 'handlebars': {
+ pattern: handlebars_pattern,
+ inside: {
+ 'delimiter': {
+ pattern: /^\{\{\{?|\}\}\}?$/i,
+ alias: 'punctuation'
+ },
+ 'string': /(["'])(\\?.)+?\1/,
+ 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,
+ 'boolean': /\b(true|false)\b/,
+ 'block': {
+ pattern: /^(\s*~?\s*)[#\/]\w+/i,
+ lookbehind: true,
+ alias: 'keyword'
+ },
+ 'brackets': {
+ pattern: /\[[^\]]+\]/,
+ inside: {
+ punctuation: /\[|\]/,
+ variable: /[\w\W]+/
+ }
+ },
+ 'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,
+ 'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/
+ }
+ }
+ });
+
+ // Comments are inserted at top so that they can
+ // surround markup
+ Prism.languages.insertBefore('handlebars', 'tag', {
+ 'handlebars-comment': {
+ pattern: /\{\{![\w\W]*?\}\}/,
+ alias: ['handlebars','comment']
+ }
+ });
+
+ // Tokenize all inline Handlebars expressions that are wrapped in {{ }} or {{{ }}}
+ // This allows for easy Handlebars + markup highlighting
+ Prism.hooks.add('before-highlight', function(env) {
+ if (env.language !== 'handlebars') {
+ return;
+ }
+
+ env.tokenStack = [];
+
+ env.backupCode = env.code;
+ env.code = env.code.replace(handlebars_pattern, function(match) {
+ env.tokenStack.push(match);
+
+ return '___HANDLEBARS' + env.tokenStack.length + '___';
+ });
+ });
+
+ // Restore env.code for other plugins (e.g. line-numbers)
+ Prism.hooks.add('before-insert', function(env) {
+ if (env.language === 'handlebars') {
+ env.code = env.backupCode;
+ delete env.backupCode;
+ }
+ });
+
+ // Re-insert the tokens after highlighting
+ // and highlight them with defined grammar
+ Prism.hooks.add('after-highlight', function(env) {
+ if (env.language !== 'handlebars') {
+ return;
+ }
+
+ for (var i = 0, t; t = env.tokenStack[i]; i++) {
+ env.highlightedCode = env.highlightedCode.replace('___HANDLEBARS' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'handlebars'));
+ }
+
+ env.element.innerHTML = env.highlightedCode;
+ });
+
+}(Prism));

Powered by Google App Engine
This is Rietveld 408576698