Index: polymer_1.0.4/bower_components/prism/components/prism-haml.js |
diff --git a/polymer_1.0.4/bower_components/prism/components/prism-haml.js b/polymer_1.0.4/bower_components/prism/components/prism-haml.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eb0b9a91389365a6a0eb3634ff05a227fed76a51 |
--- /dev/null |
+++ b/polymer_1.0.4/bower_components/prism/components/prism-haml.js |
@@ -0,0 +1,161 @@ |
+/* TODO |
+ Handle multiline code after tag |
+ %foo= some | |
+ multiline | |
+ code | |
+*/ |
+ |
+(function(Prism) { |
+ |
+ Prism.languages.haml = { |
+ // Multiline stuff should appear before the rest |
+ |
+ 'multiline-comment': [ |
+ { |
+ pattern: /((?:^|\n)([\t ]*))\/.*(\n\2[\t ]+.+)*/, |
+ lookbehind: true, |
+ alias: 'comment' |
+ }, |
+ { |
+ pattern: /((?:^|\n)([\t ]*))-#.*(\n\2[\t ]+.+)*/, |
+ lookbehind: true, |
+ alias: 'comment' |
+ } |
+ ], |
+ |
+ 'multiline-code': [ |
+ { |
+ pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(\n\2[\t ]+.*,[\t ]*)*(\n\2[\t ]+.+)/, |
+ lookbehind: true, |
+ inside: { |
+ rest: Prism.languages.ruby |
+ } |
+ }, |
+ { |
+ pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(\n\2[\t ]+.*\|[\t ]*)*/, |
+ lookbehind: true, |
+ inside: { |
+ rest: Prism.languages.ruby |
+ } |
+ } |
+ ], |
+ |
+ // See at the end of the file for known filters |
+ 'filter': { |
+ pattern: /((?:^|\n)([\t ]*)):[\w-]+(\n(?:\2[\t ]+.+|\s*?(?=\n)))+/, |
+ lookbehind: true, |
+ inside: { |
+ 'filter-name': { |
+ pattern: /^:[\w-]+/, |
+ alias: 'variable' |
+ } |
+ } |
+ }, |
+ |
+ 'markup': { |
+ pattern: /((?:^|\n)[\t ]*)<.+/, |
+ lookbehind: true, |
+ inside: { |
+ rest: Prism.languages.markup |
+ } |
+ }, |
+ 'doctype': { |
+ pattern: /((?:^|\n)[\t ]*)!!!(?: .+)?/, |
+ lookbehind: true |
+ }, |
+ 'tag': { |
+ // Allows for one nested group of braces |
+ pattern: /((?:^|\n)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/, |
+ lookbehind: true, |
+ inside: { |
+ 'attributes': [ |
+ { |
+ // Lookbehind tries to prevent interpolations for breaking it all |
+ // Allows for one nested group of braces |
+ pattern: /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/, |
+ lookbehind: true, |
+ inside: { |
+ rest: Prism.languages.ruby |
+ } |
+ }, |
+ { |
+ pattern: /\([^)]+\)/, |
+ inside: { |
+ 'attr-value': { |
+ pattern: /(=\s*)(?:"(?:\\?.)*?"|[^)\s]+)/, |
+ lookbehind: true |
+ }, |
+ 'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/, |
+ 'punctuation': /[=(),]/ |
+ } |
+ }, |
+ { |
+ pattern: /\[[^\]]+\]/, |
+ inside: { |
+ rest: Prism.languages.ruby |
+ } |
+ } |
+ ], |
+ 'punctuation': /[<>]/ |
+ } |
+ }, |
+ 'code': { |
+ pattern: /((?:^|\n)[\t ]*(?:[~-]|[&!]?=)).+/, |
+ lookbehind: true, |
+ inside: { |
+ rest: Prism.languages.ruby |
+ } |
+ }, |
+ // Interpolations in plain text |
+ 'interpolation': { |
+ pattern: /#\{[^}]+\}/, |
+ inside: { |
+ 'delimiter': { |
+ pattern: /^#\{|\}$/, |
+ alias: 'punctuation' |
+ }, |
+ rest: Prism.languages.ruby |
+ } |
+ }, |
+ 'punctuation': { |
+ pattern: /((?:^|\n)[\t ]*)[~=\-&!]/, |
+ lookbehind: true |
+ } |
+ }; |
+ |
+ var filter_pattern = '((?:^|\\n)([\\t ]*)):{{filter_name}}(\\n(?:\\2[\\t ]+.+|\\s*?(?=\\n)))+'; |
+ |
+ // Non exhaustive list of available filters and associated languages |
+ var filters = [ |
+ 'css', |
+ {filter:'coffee',language:'coffeescript'}, |
+ 'erb', |
+ 'javascript', |
+ 'less', |
+ 'markdown', |
+ 'ruby', |
+ 'scss', |
+ 'textile' |
+ ]; |
+ var all_filters = {}; |
+ for (var i = 0, l = filters.length; i < l; i++) { |
+ var filter = filters[i]; |
+ filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter; |
+ if (Prism.languages[filter.language]) { |
+ all_filters['filter-' + filter.filter] = { |
+ pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter)), |
+ lookbehind: true, |
+ inside: { |
+ 'filter-name': { |
+ pattern: /^:[\w-]+/, |
+ alias: 'variable' |
+ }, |
+ rest: Prism.languages[filter.language] |
+ } |
+ } |
+ } |
+ } |
+ |
+ Prism.languages.insertBefore('haml', 'filter', all_filters); |
+ |
+}(Prism)); |