From 13b4225ae043c2606bd21a1df3b6bd3524a14541 Mon Sep 17 00:00:00 2001 From: Buddy Sandidge Date: Mon, 16 Feb 2015 13:27:44 -0800 Subject: [PATCH] Add syntax highlighter to view --- assets/app/config.js | 2 + assets/app/lib/syntax.js | 6 + assets/app/widgets/slide/template.hbs | 4 +- assets/app/widgets/slide/view.js | 9 +- assets/index.html | 1 + bower.json | 7 +- test/app/lib/syntax.js | 9 + vendor/prism/.bower.json | 35 + vendor/prism/LICENSE | 21 + vendor/prism/README.md | 22 + vendor/prism/bower.json | 26 + vendor/prism/components.js | 334 +++++++++ vendor/prism/components/prism-actionscript.js | 20 + .../components/prism-actionscript.min.js | 1 + vendor/prism/components/prism-apacheconf.js | 46 ++ .../prism/components/prism-apacheconf.min.js | 1 + vendor/prism/components/prism-applescript.js | 23 + .../prism/components/prism-applescript.min.js | 1 + vendor/prism/components/prism-aspnet.js | 49 ++ vendor/prism/components/prism-aspnet.min.js | 1 + vendor/prism/components/prism-autohotkey.js | 27 + .../prism/components/prism-autohotkey.min.js | 1 + vendor/prism/components/prism-bash.js | 24 + vendor/prism/components/prism-bash.min.js | 1 + vendor/prism/components/prism-c.js | 26 + vendor/prism/components/prism-c.min.js | 1 + vendor/prism/components/prism-clike.js | 32 + vendor/prism/components/prism-clike.min.js | 1 + vendor/prism/components/prism-coffeescript.js | 83 +++ .../components/prism-coffeescript.min.js | 1 + vendor/prism/components/prism-core.js | 426 +++++++++++ vendor/prism/components/prism-core.min.js | 1 + vendor/prism/components/prism-cpp.js | 12 + vendor/prism/components/prism-cpp.min.js | 1 + vendor/prism/components/prism-csharp.js | 6 + vendor/prism/components/prism-csharp.min.js | 1 + vendor/prism/components/prism-css-extras.js | 15 + .../prism/components/prism-css-extras.min.js | 1 + vendor/prism/components/prism-css.js | 50 ++ vendor/prism/components/prism-css.min.js | 1 + vendor/prism/components/prism-dart.js | 18 + vendor/prism/components/prism-dart.min.js | 1 + vendor/prism/components/prism-eiffel.js | 24 + vendor/prism/components/prism-eiffel.min.js | 1 + vendor/prism/components/prism-erlang.js | 35 + vendor/prism/components/prism-erlang.min.js | 1 + vendor/prism/components/prism-fortran.js | 34 + vendor/prism/components/prism-fortran.min.js | 1 + vendor/prism/components/prism-fsharp.js | 16 + vendor/prism/components/prism-fsharp.min.js | 1 + vendor/prism/components/prism-gherkin.js | 13 + vendor/prism/components/prism-gherkin.min.js | 1 + vendor/prism/components/prism-git.js | 68 ++ vendor/prism/components/prism-git.min.js | 1 + vendor/prism/components/prism-go.js | 9 + vendor/prism/components/prism-go.min.js | 1 + vendor/prism/components/prism-groovy.js | 50 ++ vendor/prism/components/prism-groovy.min.js | 1 + vendor/prism/components/prism-haml.js | 161 +++++ vendor/prism/components/prism-haml.min.js | 1 + vendor/prism/components/prism-handlebars.js | 82 +++ .../prism/components/prism-handlebars.min.js | 1 + vendor/prism/components/prism-haskell.js | 32 + vendor/prism/components/prism-haskell.min.js | 1 + vendor/prism/components/prism-http.js | 44 ++ vendor/prism/components/prism-http.min.js | 1 + vendor/prism/components/prism-ini.js | 11 + vendor/prism/components/prism-ini.min.js | 1 + vendor/prism/components/prism-jade.js | 196 +++++ vendor/prism/components/prism-jade.min.js | 1 + vendor/prism/components/prism-java.js | 8 + vendor/prism/components/prism-java.min.js | 1 + vendor/prism/components/prism-javascript.js | 28 + .../prism/components/prism-javascript.min.js | 1 + vendor/prism/components/prism-jsx.js | 22 + vendor/prism/components/prism-jsx.min.js | 1 + vendor/prism/components/prism-julia.js | 12 + vendor/prism/components/prism-julia.min.js | 1 + vendor/prism/components/prism-latex.js | 6 + vendor/prism/components/prism-latex.min.js | 1 + vendor/prism/components/prism-less.js | 60 ++ vendor/prism/components/prism-less.min.js | 1 + vendor/prism/components/prism-lolcode.js | 54 ++ vendor/prism/components/prism-lolcode.min.js | 1 + vendor/prism/components/prism-markdown.js | 122 ++++ vendor/prism/components/prism-markdown.min.js | 1 + vendor/prism/components/prism-markup.js | 41 ++ vendor/prism/components/prism-markup.min.js | 1 + vendor/prism/components/prism-matlab.js | 17 + vendor/prism/components/prism-matlab.min.js | 1 + vendor/prism/components/prism-nasm.js | 20 + vendor/prism/components/prism-nasm.min.js | 1 + vendor/prism/components/prism-nsis.js | 19 + vendor/prism/components/prism-nsis.min.js | 1 + vendor/prism/components/prism-objectivec.js | 5 + .../prism/components/prism-objectivec.min.js | 1 + vendor/prism/components/prism-pascal.js | 54 ++ vendor/prism/components/prism-pascal.min.js | 1 + vendor/prism/components/prism-perl.js | 112 +++ vendor/prism/components/prism-perl.min.js | 1 + vendor/prism/components/prism-php-extras.js | 11 + .../prism/components/prism-php-extras.min.js | 1 + vendor/prism/components/prism-php.js | 109 +++ vendor/prism/components/prism-php.min.js | 1 + vendor/prism/components/prism-powershell.js | 34 + .../prism/components/prism-powershell.min.js | 1 + vendor/prism/components/prism-python.js | 13 + vendor/prism/components/prism-python.min.js | 1 + vendor/prism/components/prism-r.js | 19 + vendor/prism/components/prism-r.min.js | 1 + vendor/prism/components/prism-rip.js | 29 + vendor/prism/components/prism-rip.min.js | 1 + vendor/prism/components/prism-ruby.js | 21 + vendor/prism/components/prism-ruby.min.js | 1 + vendor/prism/components/prism-rust.js | 53 ++ vendor/prism/components/prism-rust.min.js | 1 + vendor/prism/components/prism-scala.js | 9 + vendor/prism/components/prism-scala.min.js | 1 + vendor/prism/components/prism-scheme.js | 24 + vendor/prism/components/prism-scheme.min.js | 1 + vendor/prism/components/prism-scss.js | 36 + vendor/prism/components/prism-scss.min.js | 1 + vendor/prism/components/prism-smarty.js | 124 ++++ vendor/prism/components/prism-smarty.min.js | 1 + vendor/prism/components/prism-sql.js | 17 + vendor/prism/components/prism-sql.min.js | 1 + vendor/prism/components/prism-swift.js | 8 + vendor/prism/components/prism-swift.min.js | 1 + vendor/prism/components/prism-twig.js | 46 ++ vendor/prism/components/prism-twig.min.js | 1 + vendor/prism/components/prism-typescript.js | 3 + .../prism/components/prism-typescript.min.js | 1 + vendor/prism/examples.js | 181 +++++ vendor/prism/gulpfile.js | 48 ++ vendor/prism/package.json | 27 + .../plugins/autolinker/prism-autolinker.css | 3 + .../plugins/autolinker/prism-autolinker.js | 66 ++ .../autolinker/prism-autolinker.min.js | 1 + .../file-highlight/prism-file-highlight.js | 56 ++ .../prism-file-highlight.min.js | 1 + .../prism-highlight-keywords.js | 14 + .../prism-highlight-keywords.min.js | 1 + vendor/prism/plugins/ie8/prism-ie8.css | 3 + vendor/prism/plugins/ie8/prism-ie8.js | 42 ++ vendor/prism/plugins/ie8/prism-ie8.min.js | 1 + .../line-highlight/prism-line-highlight.css | 47 ++ .../line-highlight/prism-line-highlight.js | 109 +++ .../prism-line-highlight.min.js | 1 + .../line-numbers/prism-line-numbers.css | 40 ++ .../line-numbers/prism-line-numbers.js | 24 + .../line-numbers/prism-line-numbers.min.js | 1 + .../show-invisibles/prism-show-invisibles.css | 20 + .../show-invisibles/prism-show-invisibles.js | 16 + .../prism-show-invisibles.min.js | 1 + .../show-language/prism-show-language.css | 21 + .../show-language/prism-show-language.js | 16 + .../show-language/prism-show-language.min.css | 1 + .../show-language/prism-show-language.min.js | 1 + vendor/prism/plugins/wpd/prism-wpd.css | 11 + vendor/prism/plugins/wpd/prism-wpd.js | 163 +++++ vendor/prism/plugins/wpd/prism-wpd.min.js | 1 + vendor/prism/prism.js | 667 ++++++++++++++++++ vendor/prism/themes/prism-coy.css | 217 ++++++ vendor/prism/themes/prism-dark.css | 126 ++++ vendor/prism/themes/prism-funky.css | 115 +++ vendor/prism/themes/prism-okaidia.css | 118 ++++ vendor/prism/themes/prism-tomorrow.css | 119 ++++ vendor/prism/themes/prism-twilight.css | 199 ++++++ vendor/prism/themes/prism.css | 135 ++++ vendor/prism/vendor/promise.js | 5 + 170 files changed, 5914 insertions(+), 8 deletions(-) create mode 100644 assets/app/lib/syntax.js create mode 100644 test/app/lib/syntax.js create mode 100644 vendor/prism/.bower.json create mode 100644 vendor/prism/LICENSE create mode 100644 vendor/prism/README.md create mode 100644 vendor/prism/bower.json create mode 100644 vendor/prism/components.js create mode 100644 vendor/prism/components/prism-actionscript.js create mode 100644 vendor/prism/components/prism-actionscript.min.js create mode 100644 vendor/prism/components/prism-apacheconf.js create mode 100644 vendor/prism/components/prism-apacheconf.min.js create mode 100644 vendor/prism/components/prism-applescript.js create mode 100644 vendor/prism/components/prism-applescript.min.js create mode 100644 vendor/prism/components/prism-aspnet.js create mode 100644 vendor/prism/components/prism-aspnet.min.js create mode 100644 vendor/prism/components/prism-autohotkey.js create mode 100644 vendor/prism/components/prism-autohotkey.min.js create mode 100644 vendor/prism/components/prism-bash.js create mode 100644 vendor/prism/components/prism-bash.min.js create mode 100644 vendor/prism/components/prism-c.js create mode 100644 vendor/prism/components/prism-c.min.js create mode 100644 vendor/prism/components/prism-clike.js create mode 100644 vendor/prism/components/prism-clike.min.js create mode 100644 vendor/prism/components/prism-coffeescript.js create mode 100644 vendor/prism/components/prism-coffeescript.min.js create mode 100644 vendor/prism/components/prism-core.js create mode 100644 vendor/prism/components/prism-core.min.js create mode 100644 vendor/prism/components/prism-cpp.js create mode 100644 vendor/prism/components/prism-cpp.min.js create mode 100644 vendor/prism/components/prism-csharp.js create mode 100644 vendor/prism/components/prism-csharp.min.js create mode 100644 vendor/prism/components/prism-css-extras.js create mode 100644 vendor/prism/components/prism-css-extras.min.js create mode 100644 vendor/prism/components/prism-css.js create mode 100644 vendor/prism/components/prism-css.min.js create mode 100644 vendor/prism/components/prism-dart.js create mode 100644 vendor/prism/components/prism-dart.min.js create mode 100644 vendor/prism/components/prism-eiffel.js create mode 100644 vendor/prism/components/prism-eiffel.min.js create mode 100644 vendor/prism/components/prism-erlang.js create mode 100644 vendor/prism/components/prism-erlang.min.js create mode 100644 vendor/prism/components/prism-fortran.js create mode 100644 vendor/prism/components/prism-fortran.min.js create mode 100644 vendor/prism/components/prism-fsharp.js create mode 100644 vendor/prism/components/prism-fsharp.min.js create mode 100644 vendor/prism/components/prism-gherkin.js create mode 100644 vendor/prism/components/prism-gherkin.min.js create mode 100644 vendor/prism/components/prism-git.js create mode 100644 vendor/prism/components/prism-git.min.js create mode 100644 vendor/prism/components/prism-go.js create mode 100644 vendor/prism/components/prism-go.min.js create mode 100644 vendor/prism/components/prism-groovy.js create mode 100644 vendor/prism/components/prism-groovy.min.js create mode 100644 vendor/prism/components/prism-haml.js create mode 100644 vendor/prism/components/prism-haml.min.js create mode 100644 vendor/prism/components/prism-handlebars.js create mode 100644 vendor/prism/components/prism-handlebars.min.js create mode 100644 vendor/prism/components/prism-haskell.js create mode 100644 vendor/prism/components/prism-haskell.min.js create mode 100644 vendor/prism/components/prism-http.js create mode 100644 vendor/prism/components/prism-http.min.js create mode 100644 vendor/prism/components/prism-ini.js create mode 100644 vendor/prism/components/prism-ini.min.js create mode 100644 vendor/prism/components/prism-jade.js create mode 100644 vendor/prism/components/prism-jade.min.js create mode 100644 vendor/prism/components/prism-java.js create mode 100644 vendor/prism/components/prism-java.min.js create mode 100644 vendor/prism/components/prism-javascript.js create mode 100644 vendor/prism/components/prism-javascript.min.js create mode 100644 vendor/prism/components/prism-jsx.js create mode 100644 vendor/prism/components/prism-jsx.min.js create mode 100644 vendor/prism/components/prism-julia.js create mode 100644 vendor/prism/components/prism-julia.min.js create mode 100644 vendor/prism/components/prism-latex.js create mode 100644 vendor/prism/components/prism-latex.min.js create mode 100644 vendor/prism/components/prism-less.js create mode 100644 vendor/prism/components/prism-less.min.js create mode 100644 vendor/prism/components/prism-lolcode.js create mode 100644 vendor/prism/components/prism-lolcode.min.js create mode 100644 vendor/prism/components/prism-markdown.js create mode 100644 vendor/prism/components/prism-markdown.min.js create mode 100644 vendor/prism/components/prism-markup.js create mode 100644 vendor/prism/components/prism-markup.min.js create mode 100644 vendor/prism/components/prism-matlab.js create mode 100644 vendor/prism/components/prism-matlab.min.js create mode 100644 vendor/prism/components/prism-nasm.js create mode 100644 vendor/prism/components/prism-nasm.min.js create mode 100644 vendor/prism/components/prism-nsis.js create mode 100644 vendor/prism/components/prism-nsis.min.js create mode 100644 vendor/prism/components/prism-objectivec.js create mode 100644 vendor/prism/components/prism-objectivec.min.js create mode 100644 vendor/prism/components/prism-pascal.js create mode 100644 vendor/prism/components/prism-pascal.min.js create mode 100644 vendor/prism/components/prism-perl.js create mode 100644 vendor/prism/components/prism-perl.min.js create mode 100644 vendor/prism/components/prism-php-extras.js create mode 100644 vendor/prism/components/prism-php-extras.min.js create mode 100644 vendor/prism/components/prism-php.js create mode 100644 vendor/prism/components/prism-php.min.js create mode 100644 vendor/prism/components/prism-powershell.js create mode 100644 vendor/prism/components/prism-powershell.min.js create mode 100644 vendor/prism/components/prism-python.js create mode 100644 vendor/prism/components/prism-python.min.js create mode 100644 vendor/prism/components/prism-r.js create mode 100644 vendor/prism/components/prism-r.min.js create mode 100644 vendor/prism/components/prism-rip.js create mode 100644 vendor/prism/components/prism-rip.min.js create mode 100644 vendor/prism/components/prism-ruby.js create mode 100644 vendor/prism/components/prism-ruby.min.js create mode 100644 vendor/prism/components/prism-rust.js create mode 100644 vendor/prism/components/prism-rust.min.js create mode 100644 vendor/prism/components/prism-scala.js create mode 100644 vendor/prism/components/prism-scala.min.js create mode 100644 vendor/prism/components/prism-scheme.js create mode 100644 vendor/prism/components/prism-scheme.min.js create mode 100644 vendor/prism/components/prism-scss.js create mode 100644 vendor/prism/components/prism-scss.min.js create mode 100644 vendor/prism/components/prism-smarty.js create mode 100644 vendor/prism/components/prism-smarty.min.js create mode 100644 vendor/prism/components/prism-sql.js create mode 100644 vendor/prism/components/prism-sql.min.js create mode 100644 vendor/prism/components/prism-swift.js create mode 100644 vendor/prism/components/prism-swift.min.js create mode 100644 vendor/prism/components/prism-twig.js create mode 100644 vendor/prism/components/prism-twig.min.js create mode 100755 vendor/prism/components/prism-typescript.js create mode 100755 vendor/prism/components/prism-typescript.min.js create mode 100644 vendor/prism/examples.js create mode 100644 vendor/prism/gulpfile.js create mode 100644 vendor/prism/package.json create mode 100644 vendor/prism/plugins/autolinker/prism-autolinker.css create mode 100644 vendor/prism/plugins/autolinker/prism-autolinker.js create mode 100644 vendor/prism/plugins/autolinker/prism-autolinker.min.js create mode 100644 vendor/prism/plugins/file-highlight/prism-file-highlight.js create mode 100644 vendor/prism/plugins/file-highlight/prism-file-highlight.min.js create mode 100644 vendor/prism/plugins/highlight-keywords/prism-highlight-keywords.js create mode 100644 vendor/prism/plugins/highlight-keywords/prism-highlight-keywords.min.js create mode 100644 vendor/prism/plugins/ie8/prism-ie8.css create mode 100644 vendor/prism/plugins/ie8/prism-ie8.js create mode 100644 vendor/prism/plugins/ie8/prism-ie8.min.js create mode 100644 vendor/prism/plugins/line-highlight/prism-line-highlight.css create mode 100644 vendor/prism/plugins/line-highlight/prism-line-highlight.js create mode 100644 vendor/prism/plugins/line-highlight/prism-line-highlight.min.js create mode 100644 vendor/prism/plugins/line-numbers/prism-line-numbers.css create mode 100644 vendor/prism/plugins/line-numbers/prism-line-numbers.js create mode 100644 vendor/prism/plugins/line-numbers/prism-line-numbers.min.js create mode 100644 vendor/prism/plugins/show-invisibles/prism-show-invisibles.css create mode 100644 vendor/prism/plugins/show-invisibles/prism-show-invisibles.js create mode 100644 vendor/prism/plugins/show-invisibles/prism-show-invisibles.min.js create mode 100644 vendor/prism/plugins/show-language/prism-show-language.css create mode 100644 vendor/prism/plugins/show-language/prism-show-language.js create mode 100644 vendor/prism/plugins/show-language/prism-show-language.min.css create mode 100644 vendor/prism/plugins/show-language/prism-show-language.min.js create mode 100644 vendor/prism/plugins/wpd/prism-wpd.css create mode 100644 vendor/prism/plugins/wpd/prism-wpd.js create mode 100644 vendor/prism/plugins/wpd/prism-wpd.min.js create mode 100644 vendor/prism/prism.js create mode 100644 vendor/prism/themes/prism-coy.css create mode 100644 vendor/prism/themes/prism-dark.css create mode 100644 vendor/prism/themes/prism-funky.css create mode 100644 vendor/prism/themes/prism-okaidia.css create mode 100644 vendor/prism/themes/prism-tomorrow.css create mode 100644 vendor/prism/themes/prism-twilight.css create mode 100644 vendor/prism/themes/prism.css create mode 100644 vendor/prism/vendor/promise.js diff --git a/assets/app/config.js b/assets/app/config.js index b0ab3b8..a99675c 100644 --- a/assets/app/config.js +++ b/assets/app/config.js @@ -20,10 +20,12 @@ handlebars: prefix + '/vendor/handlebars/handlebars.runtime', jquery: prefix + '/vendor/jquery/dist/jquery', marionette: prefix + '/vendor/marionette/lib/backbone.marionette', + prism: prefix + '/vendor/prism/prism', underscore: prefix + '/vendor/underscore/underscore' }, shim: { handlebars: {exports: 'Handlebars'}, + prism: {exports: 'Prism'}, underscore: {exports: '_'} } }; diff --git a/assets/app/lib/syntax.js b/assets/app/lib/syntax.js new file mode 100644 index 0000000..3826113 --- /dev/null +++ b/assets/app/lib/syntax.js @@ -0,0 +1,6 @@ +define(['prism'], function (Prism) { + return function (text, language) { + language = language || 'javascript'; + return Prism.highlight(text, Prism.languages[language]); + }; +}); diff --git a/assets/app/widgets/slide/template.hbs b/assets/app/widgets/slide/template.hbs index 6f6dd15..ad5c206 100644 --- a/assets/app/widgets/slide/template.hbs +++ b/assets/app/widgets/slide/template.hbs @@ -1,4 +1,2 @@
-
-{{code}}
-
+
diff --git a/assets/app/widgets/slide/view.js b/assets/app/widgets/slide/view.js index a200171..53aff7a 100644 --- a/assets/app/widgets/slide/view.js +++ b/assets/app/widgets/slide/view.js @@ -2,8 +2,9 @@ define([ 'underscore', 'marionette', 'lib/markdown', + 'lib/syntax', 'widgets/slide/template' -], function AppSlideWidget(_, Marionette, markdown, template) { +], function AppSlideWidget(_, Marionette, markdown, syntax, template) { 'use strict'; var SlideView = Marionette.ItemView.extend({ @@ -11,7 +12,7 @@ define([ ui: { copy: '.copy', - code: 'pre.language-javascript' + code: '.language-javascript' }, modelEvents: { @@ -23,6 +24,10 @@ define([ if (copy) { this.ui.copy.html(markdown(copy)); } + var code = this.model.get('code'); + if (code) { + this.ui.code.html(syntax(code)); + } } }); diff --git a/assets/index.html b/assets/index.html index 393f461..bacf589 100644 --- a/assets/index.html +++ b/assets/index.html @@ -6,6 +6,7 @@ + diff --git a/bower.json b/bower.json index 1fd9dab..84b5701 100644 --- a/bower.json +++ b/bower.json @@ -17,10 +17,11 @@ "tests" ], "dependencies": { + "commonmark": "~0.17.1", + "handlebars": "~1.3.0", "marionette": "~2.3.1", "normalize-scss": "~3.0.2", - "requirejs": "~2.1.15", - "handlebars": "~1.3.0", - "commonmark": "~0.17.1" + "prism": "git@github.com:LeaVerou/prism.git#gh-pages", + "requirejs": "~2.1.15" } } diff --git a/test/app/lib/syntax.js b/test/app/lib/syntax.js new file mode 100644 index 0000000..6991432 --- /dev/null +++ b/test/app/lib/syntax.js @@ -0,0 +1,9 @@ +define(['jquery', 'lib/syntax'], function ($, syntax) { + describe('syntax', function () { + it('→ converts javascript to html', function () { + var src = 'function () {console.log("hi");}'; + var actual = syntax(src); + expect($(actual).text()).toBe(src); + }); + }); +}); diff --git a/vendor/prism/.bower.json b/vendor/prism/.bower.json new file mode 100644 index 0000000..8c17166 --- /dev/null +++ b/vendor/prism/.bower.json @@ -0,0 +1,35 @@ +{ + "name": "prism", + "main": [ + "prism.js", + "themes/prism.css" + ], + "homepage": "http://prismjs.com", + "authors": "Lea Verou", + "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", + "license": "MIT", + "ignore": [ + "**/.*", + "img", + "templates", + "CNAME", + "*.html", + "style.css", + "favicon.png", + "logo.svg", + "download.js", + "prefixfree.min.js", + "utopia.js", + "code.js" + ], + "_release": "e147458ad2", + "_resolution": { + "type": "branch", + "branch": "gh-pages", + "commit": "e147458ad2befc0cdd4072d5c0805c11496ce958" + }, + "_source": "git@github.com:LeaVerou/prism.git", + "_target": "gh-pages", + "_originalSource": "git@github.com:LeaVerou/prism.git", + "_direct": true +} \ No newline at end of file diff --git a/vendor/prism/LICENSE b/vendor/prism/LICENSE new file mode 100644 index 0000000..eab2c31 --- /dev/null +++ b/vendor/prism/LICENSE @@ -0,0 +1,21 @@ +MIT LICENSE + +Copyright (c) 2012-2013 Lea Verou + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/prism/README.md b/vendor/prism/README.md new file mode 100644 index 0000000..3c97a68 --- /dev/null +++ b/vendor/prism/README.md @@ -0,0 +1,22 @@ +# [Prism](http://prismjs.com/) + +Prism is a lightweight, robust, elegant syntax highlighting library. It's a spin-off project from [Dabblet](http://dabblet.com/). + +You can learn more on http://prismjs.com/. + +Why another syntax highlighter?: http://lea.verou.me/2012/07/introducing-prism-an-awesome-new-syntax-highlighter/#more-1841 + +## Contribute to Prism! + +Prism depends on community contributions to expand and cover a wider array of use cases. If you like it, considering giving back by sending a pull request. Here are a few tips: + +- Read the [documentation](http://prismjs.com/extending.html). Prism was designed to be extensible. +- Do not edit prism.js, it’s just the version of Prism used by the Prism website and is built automatically. Limit your changes to the unminified files in the components/ folder. The minified files are also generated automatically. +- Currently the build system building prism.js and the minified files is just a bunch of local settings in CodeKit. If someone wants to help export them to a config file, please contact me by opening an issue. +- Please follow the code conventions used in the files already. For example, I use [tabs for indentation and spaces for alignment](http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/). Opening braces are on the same line, closing braces on their own line regardless of construct. There is a space before the opening brace. etc etc. +- Please try to err towards more smaller PRs rather than few huge PRs. If a PR includes changes I want to merge and changes I don't, handling it becomes difficult. +- My time is very limited these days, so it might take a long time to review longer PRs (short ones are usually merged very quickly), especially those modifying the Prism Core. This doesn't mean your PR is rejected. +- If you contribute a new language definition, you will be responsible for handling bug reports about that language definition. Soon I plan to add usernames of project owners for themes, plugins and language definitions so this becomes more clear to users. +- If you add a new language definition, theme or plugin, you need to add it to `components.js` as well, so that it becomes available to the download build page. + +Thank you so much for contributing!! diff --git a/vendor/prism/bower.json b/vendor/prism/bower.json new file mode 100644 index 0000000..822afac --- /dev/null +++ b/vendor/prism/bower.json @@ -0,0 +1,26 @@ +{ + "name": "prism", + "version": "0.0.1", + "main": [ + "prism.js", + "themes/prism.css" + ], + "homepage": "http://prismjs.com", + "authors": "Lea Verou", + "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", + "license": "MIT", + "ignore": [ + "**/.*", + "img", + "templates", + "CNAME", + "*.html", + "style.css", + "favicon.png", + "logo.svg", + "download.js", + "prefixfree.min.js", + "utopia.js", + "code.js" + ] +} diff --git a/vendor/prism/components.js b/vendor/prism/components.js new file mode 100644 index 0000000..3b92c04 --- /dev/null +++ b/vendor/prism/components.js @@ -0,0 +1,334 @@ +var components = { + "core": { + "meta": { + "path": "components/prism-core.js", + "option": "mandatory" + }, + "core": "Core" + }, + "themes": { + "meta": { + "path": "themes/{id}.css", + "link": "index.html?theme={id}", + "exclusive": true + }, + "prism": { + "title": "Default", + "option": "default" + }, + "prism-dark": "Dark", + "prism-funky": "Funky", + "prism-okaidia": { + "title": "Okaidia", + "owner": "ocodia" + }, + "prism-twilight": { + "title": "Twilight", + "owner": "remybach" + }, + "prism-coy": { + "title": "Coy", + "owner": "tshedor" + } + }, + "languages": { + "meta": { + "path": "components/prism-{id}", + "noCSS": true, + "examplesPath": "examples/prism-{id}" + }, + "markup": { + "title": "Markup", + "option": "default" + }, + "twig": { + "title": "Twig", + "require": "markup", + "owner": "brandonkelly" + }, + "css": { + "title": "CSS", + "option": "default" + }, + "css-extras": { + "title": "CSS Extras", + "require": "css", + "owner": "milesj" + }, + "clike": { + "title": "C-like", + "option": "default" + }, + "eiffel": { + "title": "Eiffel", + "owner": "Conaclos" + }, + "javascript": { + "title": "JavaScript", + "option": "default", + "require": "clike" + }, + "java": { + "title": "Java", + "require": "clike", + "owner": "sherblot" + }, + "php": { + "title": "PHP", + "require": "clike", + "owner": "milesj" + }, + "php-extras": { + "title": "PHP Extras", + "require": "php", + "owner": "milesj" + }, + "coffeescript": { + "title": "CoffeeScript", + "require": "javascript", + "owner": "R-osey" + }, + "scss": { + "title": "Sass (Scss)", + "require": "css", + "owner": "MoOx" + }, + "bash": { + "title": "Bash", + "require": "clike", + "owner": "zeitgeist87" + }, + "c": { + "title": "C", + "require": "clike", + "owner": "zeitgeist87" + }, + "cpp": { + "title": "C++", + "require": "c", + "owner": "zeitgeist87" + }, + "python": { + "title": "Python", + "owner": "multipetros" + }, + "julia": { + "title": "julia", + "owner": "cdagnino" + }, + "sql": { + "title": "SQL", + "owner": "multipetros" + }, + "groovy": { + "title": "Groovy", + "require": "clike", + "owner": "robfletcher" + }, + "http": { + "title": "HTTP", + "owner": "danielgtaylor" + }, + "ruby": { + "title": "Ruby", + "require": "clike", + "owner": "samflores" + }, + "rip": { + "title": "Rip", + "owner": "ravinggenius" + }, + "gherkin": { + "title": "Gherkin", + "owner": "mvalipour" + }, + "csharp": { + "title": "C#", + "require": "clike", + "owner": "mvalipour" + }, + "go": { + "title": "Go", + "require": "clike", + "owner": "arnehormann" + }, + "nsis": { + "title": "NSIS", + "owner": "idleberg" + }, + "aspnet": { + "title": "ASP.NET (C#)", + "require": "markup", + "owner": "nauzilus" + }, + "scala": { + "title": "Scala", + "require": "java", + "owner": "jozic" + }, + "haskell": { + "title": "Haskell", + "owner": "bholst" + }, + "swift": { + "title": "Swift", + "require": "clike", + "owner": "chrischares" + }, + "objectivec": { + "title": "Objective-C", + "require": "c", + "owner": "uranusjr" + }, + "autohotkey": { + "title": "AutoHotkey", + "owner": "aviaryan" + }, + "ini": { + "title": "Ini", + "owner": "aviaryan" + }, + "latex": { + "title": "LaTeX", + "owner": "japborst" + }, + "apacheconf": { + "title": "Apache Configuration", + "owner": "GuiTeK" + }, + "git": { + "title": "Git", + "owner": "lgiraudel" + }, + "scheme" : { + "title": "Scheme", + "owner" : "bacchus123" + }, + "nasm": { + "title": "NASM", + "owner": "rbmj" + }, + "perl": { + "title": "Perl", + "owner": "Golmote" + }, + "handlebars": { + "title": "Handlebars", + "require": "markup", + "owner": "Golmote" + }, + "matlab": { + "title": "MATLAB", + "owner": "Golmote" + }, + "less": { + "title": "Less", + "require": "css", + "owner": "Golmote" + }, + "r": { + "title": "R", + "owner": "Golmote" + }, + "lolcode": { + "title": "LOLCODE", + "owner": "Golmote" + }, + "fortran": { + "title": "Fortran", + "owner": "Golmote" + }, + "erlang": { + "title": "Erlang", + "owner": "Golmote" + }, + "haml": { + "title": "Haml", + "require": "ruby", + "owner": "Golmote" + }, + "jade": { + "title": "Jade", + "require": "javascript", + "owner": "Golmote" + }, + "pascal": { + "title": "Pascal", + "owner": "Golmote" + }, + "applescript": { + "title": "AppleScript", + "owner": "Golmote" + }, + "rust": { + "title": "Rust", + "owner": "Golmote" + }, + "dart": { + "title": "Dart", + "require": "clike", + "owner": "Golmote" + }, + "powershell": { + "title": "PowerShell", + "owner": "nauzilus" + }, + "smarty": { + "title": "Smarty", + "require": "markup", + "owner": "Golmote" + }, + "actionscript": { + "title": "ActionScript", + "require": "javascript", + "owner": "Golmote" + }, + "markdown": { + "title": "Markdown", + "require": "markup", + "owner": "Golmote" + }, + "jsx":{ + "title": "React JSX", + "require": ["markup", "javascript"], + "owner": "vkbansal" + }, + "typescript":{ + "title": "TypeScript", + "require": "javascript", + "owner": "vkbansal" + }, + "fsharp": { + "title": "F#", + "require": "clike", + "owner": "simonreynolds7" + } + }, + "plugins": { + "meta": { + "path": "plugins/{id}/prism-{id}", + "link": "plugins/{id}/" + }, + "line-highlight": "Line Highlight", + "line-numbers": { + "title": "Line Numbers", + "owner": "kuba-kubula" + }, + "show-invisibles": "Show Invisibles", + "autolinker": "Autolinker", + "wpd": "WebPlatform Docs", + "file-highlight": { + "title": "File Highlight", + "noCSS": true + }, + "show-language": { + "title": "Show Language", + "owner": "nauzilus" + }, + "highlight-keywords": { + "title": "Highlight Keywords", + "owner": "vkbansal", + "noCSS": true + } + } +}; diff --git a/vendor/prism/components/prism-actionscript.js b/vendor/prism/components/prism-actionscript.js new file mode 100644 index 0000000..66b3f72 --- /dev/null +++ b/vendor/prism/components/prism-actionscript.js @@ -0,0 +1,20 @@ +/* TODO + Fix XML highlighting + */ + +Prism.languages.actionscript = Prism.languages.extend('javascript', { + 'keyword': /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/, + 'operator': /(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=)=?|[=~?@]/ +}); +Prism.languages.actionscript['class-name'].alias = 'function'; + +if (Prism.languages.markup) { + Prism.languages.insertBefore('actionscript', 'operator', { + 'xml': { + pattern: /(^|[^.])<[\s\S]*>(?=\s*($|[\r\n,.;\]})<]))/, + inside: { + rest: Prism.languages.markup + } + } + }); +} \ No newline at end of file diff --git a/vendor/prism/components/prism-actionscript.min.js b/vendor/prism/components/prism-actionscript.min.js new file mode 100644 index 0000000..cbe958c --- /dev/null +++ b/vendor/prism/components/prism-actionscript.min.js @@ -0,0 +1 @@ +Prism.languages.actionscript=Prism.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=)=?|[=~?@]/}),Prism.languages.actionscript["class-name"].alias="function",Prism.languages.markup&&Prism.languages.insertBefore("actionscript","operator",{xml:{pattern:/(^|[^.])<[\s\S]*>(?=\s*($|[\r\n,.;\]})<]))/,inside:{rest:Prism.languages.markup}}}); \ No newline at end of file diff --git a/vendor/prism/components/prism-apacheconf.js b/vendor/prism/components/prism-apacheconf.js new file mode 100644 index 0000000..63c4d9b --- /dev/null +++ b/vendor/prism/components/prism-apacheconf.js @@ -0,0 +1,46 @@ +Prism.languages.apacheconf = { + 'comment': /#.*/g, + 'directive-inline': { + pattern: /^\s*\b(AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/gmi, + alias: 'property' + }, + 'directive-block': { + pattern: /<\/?\b(AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/gi, + inside: { + 'directive-block': { + pattern: /^<\/?\w+/, + inside: { + 'punctuation': /^<\/?/ + }, + alias: 'tag' + }, + 'directive-block-parameter': { + pattern: /.*[^>]/, + inside: { + 'punctuation': /:/, + 'string': { + pattern: /("|').*\1/g, + inside: { + 'variable': /(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g + } + } + }, + alias: 'attr-value' + }, + 'punctuation': />/ + }, + alias: 'tag' + }, + 'directive-flags': { + pattern: /\[(\w,?)+\]/g, + alias: 'keyword' + }, + 'string': { + pattern: /("|').*\1/g, + inside: { + 'variable': /(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g + } + }, + 'variable': /(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g, + 'regex': /\^?.*\$|\^.*\$?/g +}; diff --git a/vendor/prism/components/prism-apacheconf.min.js b/vendor/prism/components/prism-apacheconf.min.js new file mode 100644 index 0000000..fc5b3b1 --- /dev/null +++ b/vendor/prism/components/prism-apacheconf.min.js @@ -0,0 +1 @@ +Prism.languages.apacheconf={comment:/#.*/g,"directive-inline":{pattern:/^\s*\b(AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/gim,alias:"property"},"directive-block":{pattern:/<\/?\b(AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/gi,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/g,inside:{variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(\w,?)+\]/g,alias:"keyword"},string:{pattern:/("|').*\1/g,inside:{variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g}},variable:/(\$|%)\{?(\w\.?(\+|\-|:)?)+\}?/g,regex:/\^?.*\$|\^.*\$?/g}; \ No newline at end of file diff --git a/vendor/prism/components/prism-applescript.js b/vendor/prism/components/prism-applescript.js new file mode 100644 index 0000000..9dd52bc --- /dev/null +++ b/vendor/prism/components/prism-applescript.js @@ -0,0 +1,23 @@ +/* TODO + Add support for nested block comments... +*/ + +Prism.languages.applescript = { + 'comment': [ + /\(\*[\w\W]*?\*\)/, + /--.+/, + /#.+/ + ], + 'string': /"(?:\\?.)*?"/, + 'operator': [ + /[&=≠≤≥*+\-\/÷^]|[<>]=?/, + /\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/ + ], + 'keyword': /\b(?:about|above|after|against|and|apart from|around|as|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out of|over|prop|property|put|ref|reference|repeat|return|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/g, + 'class': { + pattern: /\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/, + alias: 'builtin' + }, + 'number': /\b-?\d*\.?\d+([Ee]-?\d+)?\b/, + 'punctuation': /[{}():,¬«»《》]/ +}; \ No newline at end of file diff --git a/vendor/prism/components/prism-applescript.min.js b/vendor/prism/components/prism-applescript.min.js new file mode 100644 index 0000000..d93dd10 --- /dev/null +++ b/vendor/prism/components/prism-applescript.min.js @@ -0,0 +1 @@ +Prism.languages.applescript={comment:[/\(\*[\w\W]*?\*\)/,/--.+/,/#.+/],string:/"(?:\\?.)*?"/,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|and|apart from|around|as|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out of|over|prop|property|put|ref|reference|repeat|return|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/g,"class":{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},number:/\b-?\d*\.?\d+([Ee]-?\d+)?\b/,punctuation:/[{}():,¬«»《》]/}; \ No newline at end of file diff --git a/vendor/prism/components/prism-aspnet.js b/vendor/prism/components/prism-aspnet.js new file mode 100644 index 0000000..d4e72cf --- /dev/null +++ b/vendor/prism/components/prism-aspnet.js @@ -0,0 +1,49 @@ +Prism.languages.aspnet = Prism.languages.extend('markup', { + 'page-directive tag': { + pattern: /<%\s*@.*%>/gi, + inside: { + 'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master|MasterType|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/ig, + rest: Prism.languages.markup.tag.inside + } + }, + 'directive tag': { + pattern: /<%.*%>/gi, + inside: { + 'directive tag': /<%\s*?[$=%#:]{0,2}|%>/gi, + rest: Prism.languages.csharp + } + } +}); + +// match directives of attribute value foo="<% Bar %>" +Prism.languages.insertBefore('inside', 'punctuation', { + 'directive tag': Prism.languages.aspnet['directive tag'] +}, Prism.languages.aspnet.tag.inside["attr-value"]); + +Prism.languages.insertBefore('aspnet', 'comment', { + 'asp comment': /<%--[\w\W]*?--%>/g +}); + +// script runat="server" contains csharp, not javascript +Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', { + 'asp script': { + pattern: /[\w\W]*?<\/script>/ig, + inside: { + tag: { + pattern: /<\/?script\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi, + inside: Prism.languages.aspnet.tag.inside + }, + rest: Prism.languages.csharp || {} + } + } +}); + +// Hacks to fix eager tag matching finishing too early: