From 90b0b97e22fce2f84835af4e31eaadaee12d7fd7 Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Sat, 4 Aug 2012 21:47:22 +0200 Subject: [PATCH] Adds text file preview and highlighting. --- README.md | 2 + makefile.js | 2 +- src/_h5ai/config.js | 20 ++ .../inc/{preview.less => preview-img.less} | 36 +- src/_h5ai/css/inc/preview-txt.less | 127 +++++++ src/_h5ai/css/lib/sh/shCore.less | 226 ++++++++++++ src/_h5ai/css/lib/sh/shCoreDefault.less | 328 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreDjango.less | 331 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreEclipse.less | 339 ++++++++++++++++++ src/_h5ai/css/lib/sh/shCoreEmacs.less | 324 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreFadeToGrey.less | 328 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreMDUltra.less | 324 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreMidnight.less | 324 +++++++++++++++++ src/_h5ai/css/lib/sh/shCoreRDark.less | 324 +++++++++++++++++ src/_h5ai/css/lib/sh/shThemeDefault.less | 117 ++++++ src/_h5ai/css/lib/sh/shThemeDjango.less | 120 +++++++ src/_h5ai/css/lib/sh/shThemeEclipse.less | 128 +++++++ src/_h5ai/css/lib/sh/shThemeEmacs.less | 113 ++++++ src/_h5ai/css/lib/sh/shThemeFadeToGrey.less | 117 ++++++ src/_h5ai/css/lib/sh/shThemeMDUltra.less | 113 ++++++ src/_h5ai/css/lib/sh/shThemeMidnight.less | 113 ++++++ src/_h5ai/css/lib/sh/shThemeRDark.less | 113 ++++++ src/_h5ai/css/styles.less | 5 +- src/_h5ai/images/preview/image.png | Bin 589 -> 0 bytes src/_h5ai/images/preview/raw.png | Bin 0 -> 597 bytes src/_h5ai/js/inc/ext/preview-img.js | 108 +++--- src/_h5ai/js/inc/ext/preview-txt.js | 198 ++++++++++ src/_h5ai/js/inc/main.js | 4 +- src/_h5ai/js/lib/sh/shAutoloader.js | 17 + src/_h5ai/js/lib/sh/shBrushAS3.js | 59 +++ src/_h5ai/js/lib/sh/shBrushAppleScript.js | 75 ++++ src/_h5ai/js/lib/sh/shBrushBash.js | 59 +++ src/_h5ai/js/lib/sh/shBrushCSharp.js | 65 ++++ src/_h5ai/js/lib/sh/shBrushColdFusion.js | 100 ++++++ src/_h5ai/js/lib/sh/shBrushCpp.js | 97 +++++ src/_h5ai/js/lib/sh/shBrushCss.js | 91 +++++ src/_h5ai/js/lib/sh/shBrushDelphi.js | 55 +++ src/_h5ai/js/lib/sh/shBrushDiff.js | 41 +++ src/_h5ai/js/lib/sh/shBrushErlang.js | 52 +++ src/_h5ai/js/lib/sh/shBrushGroovy.js | 67 ++++ src/_h5ai/js/lib/sh/shBrushJScript.js | 52 +++ src/_h5ai/js/lib/sh/shBrushJava.js | 57 +++ src/_h5ai/js/lib/sh/shBrushJavaFX.js | 58 +++ src/_h5ai/js/lib/sh/shBrushPerl.js | 72 ++++ src/_h5ai/js/lib/sh/shBrushPhp.js | 88 +++++ src/_h5ai/js/lib/sh/shBrushPlain.js | 33 ++ src/_h5ai/js/lib/sh/shBrushPowerShell.js | 74 ++++ src/_h5ai/js/lib/sh/shBrushPython.js | 64 ++++ src/_h5ai/js/lib/sh/shBrushRuby.js | 55 +++ src/_h5ai/js/lib/sh/shBrushSass.js | 94 +++++ src/_h5ai/js/lib/sh/shBrushScala.js | 51 +++ src/_h5ai/js/lib/sh/shBrushSql.js | 66 ++++ src/_h5ai/js/lib/sh/shBrushVb.js | 56 +++ src/_h5ai/js/lib/sh/shBrushXml.js | 69 ++++ src/_h5ai/js/lib/sh/shCore.js | 17 + src/_h5ai/js/lib/sh/shLegacy.js | 17 + src/_h5ai/js/scripts.js | 17 + 57 files changed, 5924 insertions(+), 78 deletions(-) rename src/_h5ai/css/inc/{preview.less => preview-img.less} (81%) create mode 100644 src/_h5ai/css/inc/preview-txt.less create mode 100644 src/_h5ai/css/lib/sh/shCore.less create mode 100644 src/_h5ai/css/lib/sh/shCoreDefault.less create mode 100644 src/_h5ai/css/lib/sh/shCoreDjango.less create mode 100644 src/_h5ai/css/lib/sh/shCoreEclipse.less create mode 100644 src/_h5ai/css/lib/sh/shCoreEmacs.less create mode 100644 src/_h5ai/css/lib/sh/shCoreFadeToGrey.less create mode 100644 src/_h5ai/css/lib/sh/shCoreMDUltra.less create mode 100644 src/_h5ai/css/lib/sh/shCoreMidnight.less create mode 100644 src/_h5ai/css/lib/sh/shCoreRDark.less create mode 100644 src/_h5ai/css/lib/sh/shThemeDefault.less create mode 100644 src/_h5ai/css/lib/sh/shThemeDjango.less create mode 100644 src/_h5ai/css/lib/sh/shThemeEclipse.less create mode 100644 src/_h5ai/css/lib/sh/shThemeEmacs.less create mode 100644 src/_h5ai/css/lib/sh/shThemeFadeToGrey.less create mode 100755 src/_h5ai/css/lib/sh/shThemeMDUltra.less create mode 100644 src/_h5ai/css/lib/sh/shThemeMidnight.less create mode 100644 src/_h5ai/css/lib/sh/shThemeRDark.less delete mode 100644 src/_h5ai/images/preview/image.png create mode 100644 src/_h5ai/images/preview/raw.png create mode 100644 src/_h5ai/js/inc/ext/preview-txt.js create mode 100644 src/_h5ai/js/lib/sh/shAutoloader.js create mode 100644 src/_h5ai/js/lib/sh/shBrushAS3.js create mode 100644 src/_h5ai/js/lib/sh/shBrushAppleScript.js create mode 100644 src/_h5ai/js/lib/sh/shBrushBash.js create mode 100644 src/_h5ai/js/lib/sh/shBrushCSharp.js create mode 100644 src/_h5ai/js/lib/sh/shBrushColdFusion.js create mode 100644 src/_h5ai/js/lib/sh/shBrushCpp.js create mode 100644 src/_h5ai/js/lib/sh/shBrushCss.js create mode 100644 src/_h5ai/js/lib/sh/shBrushDelphi.js create mode 100644 src/_h5ai/js/lib/sh/shBrushDiff.js create mode 100644 src/_h5ai/js/lib/sh/shBrushErlang.js create mode 100644 src/_h5ai/js/lib/sh/shBrushGroovy.js create mode 100644 src/_h5ai/js/lib/sh/shBrushJScript.js create mode 100644 src/_h5ai/js/lib/sh/shBrushJava.js create mode 100644 src/_h5ai/js/lib/sh/shBrushJavaFX.js create mode 100644 src/_h5ai/js/lib/sh/shBrushPerl.js create mode 100644 src/_h5ai/js/lib/sh/shBrushPhp.js create mode 100644 src/_h5ai/js/lib/sh/shBrushPlain.js create mode 100644 src/_h5ai/js/lib/sh/shBrushPowerShell.js create mode 100644 src/_h5ai/js/lib/sh/shBrushPython.js create mode 100644 src/_h5ai/js/lib/sh/shBrushRuby.js create mode 100644 src/_h5ai/js/lib/sh/shBrushSass.js create mode 100644 src/_h5ai/js/lib/sh/shBrushScala.js create mode 100644 src/_h5ai/js/lib/sh/shBrushSql.js create mode 100644 src/_h5ai/js/lib/sh/shBrushVb.js create mode 100644 src/_h5ai/js/lib/sh/shBrushXml.js create mode 100644 src/_h5ai/js/lib/sh/shCore.js create mode 100644 src/_h5ai/js/lib/sh/shLegacy.js diff --git a/README.md b/README.md index 6d906196..382a410a 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ It profits from these great projects: [Modernizr](http://www.modernizr.com) (MIT/BSD), [modulejs](http://larsjung.de/modulejs/) (MIT), [Moment.js](http://momentjs.com) (MIT), +[SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (MIT/GPL), [Underscore.js](http://underscorejs.org) (MIT) @@ -37,6 +38,7 @@ It profits from these great projects: * adds Google Analytics support (async) * improves filter (now ignorecase, now only checks if chars in right order) * adds keyboard support to image preview (space, enter, backspace, left, right, up, down, f, esc) +* adds text file preview and highlighting with [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (keys: left, right, esc) * changes language code `gr` to `el` * adds localization for filter placeholder * adds `hu` translation by [Rodolffo](http://github.com/Rodolffo) diff --git a/makefile.js b/makefile.js index d90f48be..eff91e22 100644 --- a/makefile.js +++ b/makefile.js @@ -7,7 +7,7 @@ var path = require('path'), moment = require('moment'); -var version = '0.21-dev-34', +var version = '0.21-dev-37', root = path.resolve(__dirname), src = path.join(root, 'src'), diff --git a/src/_h5ai/config.js b/src/_h5ai/config.js index 88e0efe3..cb7e6962 100644 --- a/src/_h5ai/config.js +++ b/src/_h5ai/config.js @@ -178,6 +178,26 @@ var H5AI_CONFIG = { "types": ["bmp", "gif", "ico", "image", "jpg", "png", "tiff"] }, + /* + * Show text file preview on click. + * "types" maps file types to SyntaxHighligher brushes. + * + * For available brushes see http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/ + */ + "preview-txt": { + "enabled": true, + "types": { + "authors": "plain", + "copying": "plain", + "css": "css", + "install": "plain", + "readme": "plain", + "script": "shell", + "text": "plain", + "js": "js" + } + }, + /* * Show QRCodes on hovering files. */ diff --git a/src/_h5ai/css/inc/preview.less b/src/_h5ai/css/inc/preview-img.less similarity index 81% rename from src/_h5ai/css/inc/preview.less rename to src/_h5ai/css/inc/preview-img.less index 76c0a198..ce670329 100644 --- a/src/_h5ai/css/inc/preview.less +++ b/src/_h5ai/css/inc/preview-img.less @@ -1,5 +1,5 @@ -#preview-overlay { +#pv-img-overlay { display: none; position: fixed; left: 0; @@ -8,43 +8,40 @@ bottom: 0; z-index: 100; - background-color: #111; + // background-color: #111; + background-color: rgba(0,0,0,0.9); text-align: center; } -#preview-content { +#pv-img-content { position: fixed; - #preview-img { - max-width: 100%; - max-height: 100%; - } - #preview-mov { - max-width: 100%; - max-height: 100%; - } } -#preview-close { +#pv-img-image { + max-width: 100%; + max-height: 100%; +} + +#pv-img-close { position: fixed; width: 100%; height: 100%; cursor: pointer; } -#preview-prev { +#pv-img-prev { position: fixed; cursor: pointer; } -#preview-next { +#pv-img-next { position: fixed; cursor: pointer; } - -#preview-buttons, #preview-topbuttons { +#pv-img-buttons, #pv-img-topbuttons { list-style: none; list-style-image: none; margin: 0; @@ -101,9 +98,7 @@ } } - - -#preview-topbar { +#pv-img-topbar { position: fixed; z-index: 5; width: 100%; @@ -113,8 +108,7 @@ border-bottom: 1px solid rgb(27,27,27); } - -#preview-bottombar { +#pv-img-bottombar { position: fixed; z-index: 5; width: 100%; diff --git a/src/_h5ai/css/inc/preview-txt.less b/src/_h5ai/css/inc/preview-txt.less new file mode 100644 index 00000000..381f190b --- /dev/null +++ b/src/_h5ai/css/inc/preview-txt.less @@ -0,0 +1,127 @@ + +#pv-txt-overlay { + display: none; + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; + z-index: 100; + + background-color: rgba(0,0,0,0.9); + + text-align: center; +} + +#pv-txt-content { + max-width: 960px; + margin: 0 auto; + padding: 10px; + background-color: #fff; + border: 2px solid rgba(0,0,0,0.5); + text-align: left; + overflow: auto; + position: relative; +} + +#pv-txt-text { + .syntaxhighlighter { + overflow: visible !important; + } +} + +#pv-txt-close { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + cursor: pointer; +} + +#pv-txt-prev { + position: fixed; + cursor: pointer; +} + +#pv-txt-next { + position: fixed; + cursor: pointer; +} + +#pv-txt-buttons, #pv-txt-topbuttons { + list-style: none; + list-style-image: none; + margin: 0; + padding: 0; + + img { + position: relative; + top: -2px; + width: 16px; + height: 16px; + } + img + span, img + input { + margin-left: 6px; + } + input { + background-color: rgba(255,255,255,0.1); + border: none; + color: #ccc; + } + + .bar-label { + display: block; + color: #ccc; + height: 30px; + line-height: 30px; + padding: 0 10px; + opacity: 0.7; + .transition(all 0.2s ease-in-out); + } + + .bar-highlight { + background-color: rgba(255,255,255,0.1); + opacity: 1.0; + } + + @bar-sep-border: 1px solid rgba(255,255,255,0.05); + + .bar-button { + .bar-label; + cursor: pointer; + &:hover, &.hover { + .bar-highlight; + } + } + + .bar-left { + float: left; + border-right: @bar-sep-border; + } + + .bar-right { + float: right; + border-left: @bar-sep-border; + } +} + +#pv-txt-topbar { + position: fixed; + z-index: 5; + width: 100%; + left: 0; + top: 0; + .vert-gradient(rgb(37,37,37), rgb(24,24,24)); + border-bottom: 1px solid rgb(27,27,27); +} + +#pv-txt-bottombar { + position: fixed; + z-index: 5; + width: 100%; + left: 0; + bottom: 0; + .vert-gradient(rgb(27,27,27), rgb(14,14,14)); + border-top: 1px solid rgb(45,45,45); +} diff --git a/src/_h5ai/css/lib/sh/shCore.less b/src/_h5ai/css/lib/sh/shCore.less new file mode 100644 index 00000000..34f6864a --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCore.less @@ -0,0 +1,226 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreDefault.less b/src/_h5ai/css/lib/sh/shCoreDefault.less new file mode 100644 index 00000000..08f9e10e --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreDefault.less @@ -0,0 +1,328 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreDjango.less b/src/_h5ai/css/lib/sh/shCoreDjango.less new file mode 100644 index 00000000..1db1f70c --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreDjango.less @@ -0,0 +1,331 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #233729 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: #f8f8f8 !important; +} +.syntaxhighlighter .gutter { + color: #497958 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #41a83e !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #41a83e !important; + color: #0a2b1d !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #96dd3b !important; + background: black !important; + border: 1px solid #41a83e !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #96dd3b !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: white !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #41a83e !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #ffe862 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #f8f8f8 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #336442 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #9df39f !important; +} +.syntaxhighlighter .keyword { + color: #96dd3b !important; +} +.syntaxhighlighter .preprocessor { + color: #91bb9e !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #96dd3b !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #eb939a !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #91bb9e !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #edef7d !important; +} + +.syntaxhighlighter .comments { + font-style: italic !important; +} +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreEclipse.less b/src/_h5ai/css/lib/sh/shCoreEclipse.less new file mode 100644 index 00000000..a45de9fd --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreEclipse.less @@ -0,0 +1,339 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #c3defe !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #787878 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #d4d0c8 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #d4d0c8 !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #3f5fbf !important; + background: white !important; + border: 1px solid #d4d0c8 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #3f5fbf !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #aa7700 !important; +} +.syntaxhighlighter .toolbar { + color: #a0a0a0 !important; + background: #d4d0c8 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #a0a0a0 !important; +} +.syntaxhighlighter .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #3f5fbf !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #2a00ff !important; +} +.syntaxhighlighter .keyword { + color: #7f0055 !important; +} +.syntaxhighlighter .preprocessor { + color: #646464 !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #7f0055 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} +.syntaxhighlighter .xml .keyword { + color: #3f7f7f !important; + font-weight: normal !important; +} +.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a { + color: #7f007f !important; +} +.syntaxhighlighter .xml .string { + font-style: italic !important; + color: #2a00ff !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreEmacs.less b/src/_h5ai/css/lib/sh/shCoreEmacs.less new file mode 100644 index 00000000..706c77a0 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreEmacs.less @@ -0,0 +1,324 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: black !important; +} +.syntaxhighlighter .line.alt1 { + background-color: black !important; +} +.syntaxhighlighter .line.alt2 { + background-color: black !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #2a3133 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: #d3d3d3 !important; +} +.syntaxhighlighter .gutter { + color: #d3d3d3 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #990000 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #990000 !important; + color: black !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #ebdb8d !important; + background: black !important; + border: 1px solid #990000 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #ebdb8d !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #ff7d27 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #990000 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #9ccff4 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #d3d3d3 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #ff7d27 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #ff9e7b !important; +} +.syntaxhighlighter .keyword { + color: aqua !important; +} +.syntaxhighlighter .preprocessor { + color: #aec4de !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #81cef9 !important; +} +.syntaxhighlighter .constants { + color: #ff9e7b !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: aqua !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #ebdb8d !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff7d27 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #aec4de !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreFadeToGrey.less b/src/_h5ai/css/lib/sh/shCoreFadeToGrey.less new file mode 100644 index 00000000..6101eba5 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreFadeToGrey.less @@ -0,0 +1,328 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: #121212 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #121212 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #121212 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #2c2c29 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: white !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #3185b9 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #3185b9 !important; + color: #121212 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #3185b9 !important; + background: black !important; + border: 1px solid #3185b9 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #3185b9 !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #d01d33 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #3185b9 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #96daff !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: white !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #696854 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #e3e658 !important; +} +.syntaxhighlighter .keyword { + color: #d01d33 !important; +} +.syntaxhighlighter .preprocessor { + color: #435a5f !important; +} +.syntaxhighlighter .variable { + color: #898989 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #aaaaaa !important; +} +.syntaxhighlighter .constants { + color: #96daff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #d01d33 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #ffc074 !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #4a8cdb !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #96daff !important; +} + +.syntaxhighlighter .functions { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreMDUltra.less b/src/_h5ai/css/lib/sh/shCoreMDUltra.less new file mode 100644 index 00000000..2923ce73 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreMDUltra.less @@ -0,0 +1,324 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: #222222 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #222222 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #222222 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #253e5a !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: lime !important; +} +.syntaxhighlighter .gutter { + color: #38566f !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #222222 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #428bdd !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #428bdd !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: lime !important; +} +.syntaxhighlighter .toolbar { + color: #aaaaff !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #aaaaff !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #9ccff4 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: lime !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #428bdd !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: lime !important; +} +.syntaxhighlighter .keyword { + color: #aaaaff !important; +} +.syntaxhighlighter .preprocessor { + color: #8aa6c1 !important; +} +.syntaxhighlighter .variable { + color: aqua !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ff8000 !important; +} +.syntaxhighlighter .constants { + color: yellow !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #aaaaff !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: red !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: yellow !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreMidnight.less b/src/_h5ai/css/lib/sh/shCoreMidnight.less new file mode 100644 index 00000000..e3733eed --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreMidnight.less @@ -0,0 +1,324 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #253e5a !important; +} +.syntaxhighlighter .line.highlighted.number { + color: #38566f !important; +} +.syntaxhighlighter table caption { + color: #d1edff !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #0f192a !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #428bdd !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #428bdd !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #1dc116 !important; +} +.syntaxhighlighter .toolbar { + color: #d1edff !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #d1edff !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #8aa6c1 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #d1edff !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #428bdd !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #1dc116 !important; +} +.syntaxhighlighter .keyword { + color: #b43d3d !important; +} +.syntaxhighlighter .preprocessor { + color: #8aa6c1 !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #b43d3d !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #f8bb00 !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: white !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/lib/sh/shCoreRDark.less b/src/_h5ai/css/lib/sh/shCoreRDark.less new file mode 100644 index 00000000..d0936838 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shCoreRDark.less @@ -0,0 +1,324 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} + +.syntaxhighlighter { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #323e41 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: #b9bdb6 !important; +} +.syntaxhighlighter table caption { + color: #b9bdb6 !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #1b2426 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #5ba1cf !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #5ba1cf !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #5ce638 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #e0e8ff !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #b9bdb6 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #878a85 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #5ce638 !important; +} +.syntaxhighlighter .keyword { + color: #5ba1cf !important; +} +.syntaxhighlighter .preprocessor { + color: #435a5f !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #5ba1cf !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #e0e8ff !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: white !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeDefault.less b/src/_h5ai/css/lib/sh/shThemeDefault.less new file mode 100644 index 00000000..13654117 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeDefault.less @@ -0,0 +1,117 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeDjango.less b/src/_h5ai/css/lib/sh/shThemeDjango.less new file mode 100644 index 00000000..d8b43134 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeDjango.less @@ -0,0 +1,120 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #0a2b1d !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #233729 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: #f8f8f8 !important; +} +.syntaxhighlighter .gutter { + color: #497958 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #41a83e !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #41a83e !important; + color: #0a2b1d !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #96dd3b !important; + background: black !important; + border: 1px solid #41a83e !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #96dd3b !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: white !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #41a83e !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #ffe862 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #f8f8f8 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #336442 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #9df39f !important; +} +.syntaxhighlighter .keyword { + color: #96dd3b !important; +} +.syntaxhighlighter .preprocessor { + color: #91bb9e !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #96dd3b !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #eb939a !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #91bb9e !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #edef7d !important; +} + +.syntaxhighlighter .comments { + font-style: italic !important; +} +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeEclipse.less b/src/_h5ai/css/lib/sh/shThemeEclipse.less new file mode 100644 index 00000000..77377d95 --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeEclipse.less @@ -0,0 +1,128 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #c3defe !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #787878 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #d4d0c8 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #d4d0c8 !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #3f5fbf !important; + background: white !important; + border: 1px solid #d4d0c8 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #3f5fbf !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #aa7700 !important; +} +.syntaxhighlighter .toolbar { + color: #a0a0a0 !important; + background: #d4d0c8 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #a0a0a0 !important; +} +.syntaxhighlighter .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #3f5fbf !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #2a00ff !important; +} +.syntaxhighlighter .keyword { + color: #7f0055 !important; +} +.syntaxhighlighter .preprocessor { + color: #646464 !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #7f0055 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} +.syntaxhighlighter .xml .keyword { + color: #3f7f7f !important; + font-weight: normal !important; +} +.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a { + color: #7f007f !important; +} +.syntaxhighlighter .xml .string { + font-style: italic !important; + color: #2a00ff !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeEmacs.less b/src/_h5ai/css/lib/sh/shThemeEmacs.less new file mode 100644 index 00000000..dae5053f --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeEmacs.less @@ -0,0 +1,113 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: black !important; +} +.syntaxhighlighter .line.alt1 { + background-color: black !important; +} +.syntaxhighlighter .line.alt2 { + background-color: black !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #2a3133 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: #d3d3d3 !important; +} +.syntaxhighlighter .gutter { + color: #d3d3d3 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #990000 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #990000 !important; + color: black !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #ebdb8d !important; + background: black !important; + border: 1px solid #990000 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #ebdb8d !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #ff7d27 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #990000 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #9ccff4 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #d3d3d3 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #ff7d27 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #ff9e7b !important; +} +.syntaxhighlighter .keyword { + color: aqua !important; +} +.syntaxhighlighter .preprocessor { + color: #aec4de !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #81cef9 !important; +} +.syntaxhighlighter .constants { + color: #ff9e7b !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: aqua !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #ebdb8d !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff7d27 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #aec4de !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeFadeToGrey.less b/src/_h5ai/css/lib/sh/shThemeFadeToGrey.less new file mode 100644 index 00000000..8fbd871f --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeFadeToGrey.less @@ -0,0 +1,117 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: #121212 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #121212 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #121212 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #2c2c29 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: white !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #3185b9 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #3185b9 !important; + color: #121212 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #3185b9 !important; + background: black !important; + border: 1px solid #3185b9 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #3185b9 !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #d01d33 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #3185b9 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #96daff !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: white !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #696854 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #e3e658 !important; +} +.syntaxhighlighter .keyword { + color: #d01d33 !important; +} +.syntaxhighlighter .preprocessor { + color: #435a5f !important; +} +.syntaxhighlighter .variable { + color: #898989 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #aaaaaa !important; +} +.syntaxhighlighter .constants { + color: #96daff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #d01d33 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #ffc074 !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #4a8cdb !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #96daff !important; +} + +.syntaxhighlighter .functions { + font-weight: bold !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeMDUltra.less b/src/_h5ai/css/lib/sh/shThemeMDUltra.less new file mode 100755 index 00000000..f4db39cd --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeMDUltra.less @@ -0,0 +1,113 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: #222222 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #222222 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #222222 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #253e5a !important; +} +.syntaxhighlighter .line.highlighted.number { + color: white !important; +} +.syntaxhighlighter table caption { + color: lime !important; +} +.syntaxhighlighter .gutter { + color: #38566f !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #222222 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #428bdd !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #428bdd !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: lime !important; +} +.syntaxhighlighter .toolbar { + color: #aaaaff !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #aaaaff !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #9ccff4 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: lime !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #428bdd !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: lime !important; +} +.syntaxhighlighter .keyword { + color: #aaaaff !important; +} +.syntaxhighlighter .preprocessor { + color: #8aa6c1 !important; +} +.syntaxhighlighter .variable { + color: aqua !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ff8000 !important; +} +.syntaxhighlighter .constants { + color: yellow !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #aaaaff !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: red !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: yellow !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeMidnight.less b/src/_h5ai/css/lib/sh/shThemeMidnight.less new file mode 100644 index 00000000..c49563cc --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeMidnight.less @@ -0,0 +1,113 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #0f192a !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #253e5a !important; +} +.syntaxhighlighter .line.highlighted.number { + color: #38566f !important; +} +.syntaxhighlighter table caption { + color: #d1edff !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #0f192a !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #428bdd !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #428bdd !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #1dc116 !important; +} +.syntaxhighlighter .toolbar { + color: #d1edff !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: #d1edff !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #8aa6c1 !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #d1edff !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #428bdd !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #1dc116 !important; +} +.syntaxhighlighter .keyword { + color: #b43d3d !important; +} +.syntaxhighlighter .preprocessor { + color: #8aa6c1 !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #f7e741 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #b43d3d !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #f8bb00 !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: white !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/lib/sh/shThemeRDark.less b/src/_h5ai/css/lib/sh/shThemeRDark.less new file mode 100644 index 00000000..6305a10e --- /dev/null +++ b/src/_h5ai/css/lib/sh/shThemeRDark.less @@ -0,0 +1,113 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.alt1 { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #1b2426 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #323e41 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: #b9bdb6 !important; +} +.syntaxhighlighter table caption { + color: #b9bdb6 !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #435a5f !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #435a5f !important; + color: #1b2426 !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: #5ba1cf !important; + background: black !important; + border: 1px solid #435a5f !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: #5ba1cf !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: #5ce638 !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #435a5f !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: #e0e8ff !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: #b9bdb6 !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #878a85 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: #5ce638 !important; +} +.syntaxhighlighter .keyword { + color: #5ba1cf !important; +} +.syntaxhighlighter .preprocessor { + color: #435a5f !important; +} +.syntaxhighlighter .variable { + color: #ffaa3e !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ffaa3e !important; +} +.syntaxhighlighter .constants { + color: #e0e8ff !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #5ba1cf !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: #e0e8ff !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: white !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: #ffaa3e !important; +} diff --git a/src/_h5ai/css/styles.less b/src/_h5ai/css/styles.less index 1f0da274..39281b71 100644 --- a/src/_h5ai/css/styles.less +++ b/src/_h5ai/css/styles.less @@ -1,6 +1,8 @@ @import "lib/h5bp-norm"; @import "lib/mixins"; +@import "lib/sh/shCore"; +@import "lib/sh/shThemeDefault"; html { overflow-y: auto; } ::-moz-selection { background: #68A9FF; color: #fff; text-shadow: none; } @@ -29,7 +31,8 @@ body { @import "inc/context"; @import "inc/apache-autoindex-table"; -@import "inc/preview"; +@import "inc/preview-img"; +@import "inc/preview-txt"; @import "inc/responsive"; diff --git a/src/_h5ai/images/preview/image.png b/src/_h5ai/images/preview/image.png deleted file mode 100644 index 5b4ad3093424b844d90a31fd57a80df3caaf640e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T01T*S>q^* z@@{g2IF57Lwmr0MdsxhQo_E=7HlKT*cNxcVZm^#LNs<6C7z~DnVT=H_+kDtG8jUN{ zG~cXND^{!3<{yJNj&U4k*lxE+Kp(&`jJ-oC%QCL7udnVJss>yHK_I{f;NdP;A)agOxlwQ~{d0 zt~;*litD$(Fpfy!aMcG#PUtd&yzPNzebWdL-$-4W0ik@aD{Dt_l%3rbahcf0W8 bU1EU0xPdfL3wRt)00000NkvXXu0mjf{$%{} diff --git a/src/_h5ai/images/preview/raw.png b/src/_h5ai/images/preview/raw.png new file mode 100644 index 0000000000000000000000000000000000000000..cde6412eb92c4322cf8fe6b5a39bfc3dc38edd82 GIT binary patch literal 597 zcmV-b0;>IqP)?9t#qY}5?cucP3Wfe z6|#`oxbiVX=t4ptKqwX(3Q_1H#nOelLE^@OQWzwN3l}=I&Xm(dqL>+>J#gS$KJGdH zf4ElxkASDZ6Cgw|{s6bYPZ3$~;T&0(b-7q9T*q<5pNqx9wJhrrI1&;3set3@bo#}0 z-LQxRx+|s7b^UiN7JDTk-~3zyLd)ecEF$D`x%akhdmETYB(!d~d%j+;!$3$W^>XL# zOhj%p0M~T^uxt#&wv;AwLd)I1{k*6?X7}hv6u%?`(EFJ2}(VyR;%yIzrS5jI-QnA zqw)QJ8fd_qY&QG4QmMSvb^WpHy1(l6`o~_c_c`!6_T|0RlT<2oQLEK{q*AF1-~>?r jRN%J*oB~%OVgdXGJ~Ibe${bk*00000NkvXXu0mjfbr=Uo literal 0 HcmV?d00001 diff --git a/src/_h5ai/js/inc/ext/preview-img.js b/src/_h5ai/js/inc/ext/preview-img.js index 0a877f82..98d6c3d2 100644 --- a/src/_h5ai/js/inc/ext/preview-img.js +++ b/src/_h5ai/js/inc/ext/preview-img.js @@ -8,24 +8,24 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', settings = _.extend({}, defaults, allsettings['preview-img']), - template = '
' + - '
' + - '' + + template = '
' + + '
' + + '' + '
' + - '
' + - '
' + - '
' + - '
' + - '
    ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + - '
  • ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
      ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + '
    ' + '
    ' + '
    ', @@ -39,8 +39,8 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', adjustSize = function () { var rect = $(window).fracs('viewport'), - $container = $('#preview-content'), - $img = $('#preview-img'), + $container = $('#pv-img-content'), + $img = $('#pv-img-image'), margin = isFullscreen ? 0 : 20, barheight = isFullscreen ? 0 : 31; @@ -62,15 +62,15 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', if (!rect) { return; } - rect = rect.relativeTo($('#preview-overlay').fracs('rect')); + rect = rect.relativeTo($('#pv-img-overlay').fracs('rect')); - $('#preview-prev').css({ + $('#pv-img-prev').css({ left: rect.left, top: rect.top, width: rect.width / 2, height: rect.height }); - $('#preview-next').css({ + $('#pv-img-next').css({ left: rect.left + rect.width / 2, top: rect.top, width: rect.width / 2, @@ -106,8 +106,8 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', currentIdx = (idx + currentEntries.length) % currentEntries.length; - var $container = $('#preview-content'), - $img = $('#preview-img'), + var $container = $('#pv-img-content'), + $img = $('#pv-img-image'), src = currentEntries[currentIdx].absHref, spinnerTimeout = setTimeout(function () { @@ -129,14 +129,14 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', $img.attr('src', src).fadeIn(200); - // small timeout, so $img is visible + // small timeout, so $img is visible and therefor $img.width is available setTimeout(function () { adjustSize(); - $('#preview-bar-percent').text('' + (100 * $img.width() / width).toFixed(0) + '%'); - $('#preview-bar-label').text(currentEntries[currentIdx].label); - $('#preview-bar-size').text('' + width + 'x' + height); - $('#preview-bar-idx').text('' + (currentIdx + 1) + ' / ' + currentEntries.length); - $('#preview-bar-original').find('a').attr('href', currentEntries[currentIdx].absHref); + $('#pv-img-bar-percent').text('' + (100 * $img.width() / width).toFixed(0) + '%'); + $('#pv-img-bar-label').text(currentEntries[currentIdx].label); + $('#pv-img-bar-size').text('' + width + 'x' + height); + $('#pv-img-bar-idx').text('' + (currentIdx + 1) + ' / ' + currentEntries.length); + $('#pv-img-bar-original').find('a').attr('href', currentEntries[currentIdx].absHref); }, 1); }); @@ -146,7 +146,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', onEnter = function (entries, idx) { $(window).on('keydown', onKeydown); - $('#preview-overlay').stop(true, true).fadeIn(200); + $('#pv-img-overlay').stop(true, true).fadeIn(200); currentEntries = entries; onIndexChange(idx); @@ -165,7 +165,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', onExit = function () { $(window).off('keydown', onKeydown); - $('#preview-overlay').stop(true, true).fadeOut(200); + $('#pv-img-overlay').stop(true, true).fadeOut(200); }, onFullscreen = function () { @@ -176,11 +176,11 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', adjustSize(); if (isFullscreen) { - $('#preview-bar-fullscreen').find('img').attr('src', resource.image('preview/no-fullscreen')); - $('#preview-bottombar').fadeOut(400); + $('#pv-img-bar-fullscreen').find('img').attr('src', resource.image('preview/no-fullscreen')); + $('#pv-img-bottombar').fadeOut(400); } else { - $('#preview-bar-fullscreen').find('img').attr('src', resource.image('preview/fullscreen')); - $('#preview-bottombar').fadeIn(200); + $('#pv-img-bar-fullscreen').find('img').attr('src', resource.image('preview/fullscreen')); + $('#pv-img-bottombar').fadeIn(200); } }, @@ -226,38 +226,38 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', }); $(template).appendTo('body'); - $('#preview-bar-prev, #preview-prev').on('click', onPrevious); - $('#preview-bar-next, #preview-next').on('click', onNext); - $('#preview-bar-close, #preview-close').on('click', onExit); - $('#preview-bar-fullscreen').on('click', onFullscreen); - $('#preview-overlay').on('keydown', onKeydown); + $('#pv-img-bar-prev, #pv-img-prev').on('click', onPrevious); + $('#pv-img-bar-next, #pv-img-next').on('click', onNext); + $('#pv-img-bar-close, #pv-img-close').on('click', onExit); + $('#pv-img-bar-fullscreen').on('click', onFullscreen); + $('#pv-img-overlay').on('keydown', onKeydown); - $('#preview-prev') + $('#pv-img-prev') .on('mouseenter', function () { - $('#preview-bar-prev').addClass('hover'); + $('#pv-img-bar-prev').addClass('hover'); }) .on('mouseleave', function () { - $('#preview-bar-prev').removeClass('hover'); + $('#pv-img-bar-prev').removeClass('hover'); }); - $('#preview-next') + $('#pv-img-next') .on('mouseenter', function () { - $('#preview-bar-next').addClass('hover'); + $('#pv-img-bar-next').addClass('hover'); }) .on('mouseleave', function () { - $('#preview-bar-next').removeClass('hover'); + $('#pv-img-bar-next').removeClass('hover'); }); - $('#preview-close') + $('#pv-img-close') .on('mouseenter', function () { - $('#preview-bar-close').addClass('hover'); + $('#pv-img-bar-close').addClass('hover'); }) .on('mouseleave', function () { - $('#preview-bar-close').removeClass('hover'); + $('#pv-img-bar-close').removeClass('hover'); }); - $('#preview-overlay') + $('#pv-img-overlay') .on('click mousedown mousemove keydown keypress', function (event) { event.stopPropagation(); @@ -265,12 +265,12 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', .on('mousemove', function (event) { if (isFullscreen) { - var rect = $('#preview-overlay').fracs('rect'); + var rect = $('#pv-img-overlay').fracs('rect'); if (rect.bottom - event.pageY < 64) { - $('#preview-bottombar').fadeIn(200); + $('#pv-img-bottombar').fadeIn(200); } else { - $('#preview-bottombar').fadeOut(400); + $('#pv-img-bottombar').fadeOut(400); } } }); diff --git a/src/_h5ai/js/inc/ext/preview-txt.js b/src/_h5ai/js/inc/ext/preview-txt.js new file mode 100644 index 00000000..803065ee --- /dev/null +++ b/src/_h5ai/js/inc/ext/preview-txt.js @@ -0,0 +1,198 @@ + +modulejs.define('ext/preview-txt', ['_', '$', 'sh', 'core/settings', 'core/resource', 'core/store', 'core/entry'], function (_, $, SH, allsettings, resource, store, entry) { + + var defaults = { + enabled: false, + types: { + text: 'plain', + js: 'js' + } + }, + + settings = _.extend({}, defaults, allsettings['preview-txt']), + + template = '
    ' + + '
    ' + + '
    ' + + '
    ' +
    +						'
    ' + + '
    ' + + '
      ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    • ' + + '
    ' + + '
    ' + + '
    ', + + templateText = '
    ',
    +
    +		currentEntries = [],
    +		currentIdx = 0,
    +
    +		adjustSize = function () {
    +
    +			var rect = $(window).fracs('viewport'),
    +				$container = $('#pv-txt-content'),
    +				margin = 20,
    +				barheight = 31;
    +
    +			$container.css({
    +				width: rect.width - 2 * margin,
    +				height: rect.height - 2 * margin - barheight - 32,
    +				left: margin,
    +				top: margin
    +			});
    +		},
    +
    +		preloadText = function (absHref, callback) {
    +
    +			$.ajax({
    +				url: absHref,
    +				dataType: 'text',
    +				success: function (content) {
    +
    +					callback(content);
    +					// setTimeout(function () { callback(content); }, 1000); // for testing
    +				},
    +				error: function (jqXHR, textStatus, errorThrown) {
    +
    +					callback('[ajax error] ' + textStatus);
    +				}
    +			});
    +		},
    +
    +		onIndexChange = function (idx) {
    +
    +			currentIdx = (idx + currentEntries.length) % currentEntries.length;
    +
    +			var $container = $('#pv-txt-content'),
    +				$text = $('#pv-txt-text'),
    +				current = currentEntries[currentIdx],
    +				spinnerTimeout = setTimeout(function () {
    +
    +					$container.spin({
    +						length: 12,
    +						width: 4,
    +						radius: 24,
    +						color: '#ccc',
    +						shadow: true
    +					});
    +				}, 200);
    +
    +			preloadText(current.absHref, function (content) {
    +
    +				clearTimeout(spinnerTimeout);
    +				$container.spin(false);
    +
    +				$text.fadeOut(100, function () {
    +
    +					var $nText = $(templateText).hide().addClass('toolbar: false; brush:').addClass(settings.types[current.type] || 'plain').text(content);
    +
    +					$text.replaceWith($nText);
    +					SH.highlight({}, $nText[0]);
    +					$nText.fadeIn(200);
    +
    +					adjustSize();
    +					$('#pv-txt-bar-label').text(current.label);
    +					$('#pv-txt-bar-size').text('' + current.size + ' bytes');
    +					$('#pv-txt-bar-idx').text('' + (currentIdx + 1) + ' / ' + currentEntries.length);
    +					$('#pv-txt-bar-original').find('a').attr('href', current.absHref);
    +				});
    +			});
    +		},
    +
    +		onEnter = function (entries, idx) {
    +
    +			$(window).on('keydown', onKeydown);
    +			$('#pv-txt-overlay').stop(true, true).fadeIn(200);
    +
    +			currentEntries = entries;
    +			onIndexChange(idx);
    +		},
    +
    +		onNext = function () {
    +
    +			onIndexChange(currentIdx + 1);
    +		},
    +
    +		onPrevious = function () {
    +
    +			onIndexChange(currentIdx - 1);
    +		},
    +
    +		onExit = function () {
    +
    +			$(window).off('keydown', onKeydown);
    +			$('#pv-txt-overlay').stop(true, true).fadeOut(200);
    +		},
    +
    +		onKeydown = function (event) {
    +
    +			var key = event.which;
    +
    +			if (key === 27) { // esc
    +				onExit();
    +			} else if (key === 37) { // left
    +				onPrevious();
    +			} else if (key === 39) { // right
    +				onNext();
    +			}
    +		},
    +
    +		initEntry = function (entries, entry, idx) {
    +
    +			if (entry.$extended) {
    +				entry.$extended.find('a').on('click', function (event) {
    +
    +					event.preventDefault();
    +					onEnter(entries, idx);
    +				});
    +			}
    +		},
    +
    +		init = function (entry) {
    +
    +			if (!settings.enabled) {
    +				return;
    +			}
    +
    +			var imageEntries = _.filter(entry.content, function (entry) {
    +
    +				return _.indexOf(_.keys(settings.types), entry.type) >= 0;
    +			});
    +			_.each(imageEntries, function (e, idx) {
    +
    +				initEntry(imageEntries, e, idx);
    +			});
    +
    +			$(template).appendTo('body');
    +			$('#pv-txt-bar-prev').on('click', onPrevious);
    +			$('#pv-txt-bar-next').on('click', onNext);
    +			$('#pv-txt-bar-close, #pv-txt-close').on('click', onExit);
    +			$('#pv-txt-overlay').on('keydown', onKeydown);
    +
    +			$('#pv-txt-close')
    +				.on('mouseenter', function () {
    +					$('#pv-txt-bar-close').addClass('hover');
    +				})
    +				.on('mouseleave', function () {
    +					$('#pv-txt-bar-close').removeClass('hover');
    +				});
    +
    +
    +			$('#pv-txt-overlay')
    +				.on('click mousedown mousemove keydown keypress', function (event) {
    +
    +					event.stopPropagation();
    +				});
    +
    +			$(window).on('resize load', adjustSize);
    +		};
    +
    +	init(entry);
    +});
    diff --git a/src/_h5ai/js/inc/main.js b/src/_h5ai/js/inc/main.js
    index e656c598..1b5e5195 100644
    --- a/src/_h5ai/js/inc/main.js
    +++ b/src/_h5ai/js/inc/main.js
    @@ -33,6 +33,7 @@
     	// @include "ext/link-hover-states.js"
     	// @include "ext/mode.js"
     	// @include "ext/preview-img.js"
    +	// @include "ext/preview-txt.js"
     	// @include "ext/qrcode.js"
     	// @include "ext/select.js"
     	// @include "ext/sort.js"
    @@ -46,7 +47,7 @@
     
     
     	$(function () {
    -		/*global H5AI_CONFIG, amplify, Base64, jQuery, Modernizr, moment, _ */
    +		/*global H5AI_CONFIG, amplify, Base64, jQuery, Modernizr, moment, SyntaxHighlighter, _ */
     
     		// Register predefined globals on doc ready, so the script order inside
     		// the document doesn't matter. `jQuery`, `moment` and `underscore` are
    @@ -58,6 +59,7 @@
     		modulejs.define('$', function () { return jQuery; });
     		modulejs.define('modernizr', Modernizr);
     		modulejs.define('moment', function () { return moment; });
    +		modulejs.define('sh', SyntaxHighlighter);
     		modulejs.define('_', function () { return _; });
     
     		modulejs.require($('body').attr('id'));
    diff --git a/src/_h5ai/js/lib/sh/shAutoloader.js b/src/_h5ai/js/lib/sh/shAutoloader.js
    new file mode 100644
    index 00000000..4e29bdde
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shAutoloader.js
    @@ -0,0 +1,17 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d|<|≥|>=|≤|<=|\*|\+|-|\/|÷|\^)/g,
    +			    css: 'color2' },
    +
    +			{ regex: /\b(?:and|as|div|mod|not|or|return(?!\s&)(ing)?|equals|(is(n't| not)? )?equal( to)?|does(n't| not) equal|(is(n't| not)? )?(greater|less) than( or equal( to)?)?|(comes|does(n't| not) come) (after|before)|is(n't| not)?( in)? (back|front) of|is(n't| not)? behind|is(n't| not)?( (in|contained by))?|does(n't| not) contain|contain(s)?|(start|begin|end)(s)? with|((but|end) )?(consider|ignor)ing|prop(erty)?|(a )?ref(erence)?( to)?|repeat (until|while|with)|((end|exit) )?repeat|((else|end) )?if|else|(end )?(script|tell|try)|(on )?error|(put )?into|(of )?(it|me)|its|my|with (timeout( of)?|transaction)|end (timeout|transaction))\b/g,
    +			    css: 'keyword' },
    +
    +			{ regex: /\b\d+(st|nd|rd|th)\b/g, // ordinals
    +			    css: 'keyword' },
    +
    +			{ regex: /\b(?:about|above|against|around|at|below|beneath|beside|between|by|(apart|aside) from|(instead|out) of|into|on(to)?|over|since|thr(ough|u)|under)\b/g,
    +			    css: 'color3' },
    +
    +			{ regex: /\b(?:adding folder items to|after receiving|choose( ((remote )?application|color|folder|from list|URL))?|clipboard info|set the clipboard to|(the )?clipboard|entire contents|display(ing| (alert|dialog|mode))?|document( (edited|file|nib name))?|file( (name|type))?|(info )?for|giving up after|(name )?extension|quoted form|return(ed)?|second(?! item)(s)?|list (disks|folder)|text item(s| delimiters)?|(Unicode )?text|(disk )?item(s)?|((current|list) )?view|((container|key) )?window|with (data|icon( (caution|note|stop))?|parameter(s)?|prompt|properties|seed|title)|case|diacriticals|hyphens|numeric strings|punctuation|white space|folder creation|application(s( folder)?| (processes|scripts position|support))?|((desktop )?(pictures )?|(documents|downloads|favorites|home|keychain|library|movies|music|public|scripts|sites|system|users|utilities|workflows) )folder|desktop|Folder Action scripts|font(s| panel)?|help|internet plugins|modem scripts|(system )?preferences|printer descriptions|scripting (additions|components)|shared (documents|libraries)|startup (disk|items)|temporary items|trash|on server|in AppleTalk zone|((as|long|short) )?user name|user (ID|locale)|(with )?password|in (bundle( with identifier)?|directory)|(close|open for) access|read|write( permission)?|(g|s)et eof|using( delimiters)?|starting at|default (answer|button|color|country code|entr(y|ies)|identifiers|items|name|location|script editor)|hidden( answer)?|open(ed| (location|untitled))?|error (handling|reporting)|(do( shell)?|load|run|store) script|administrator privileges|altering line endings|get volume settings|(alert|boot|input|mount|output|set) volume|output muted|(fax|random )?number|round(ing)?|up|down|toward zero|to nearest|as taught in school|system (attribute|info)|((AppleScript( Studio)?|system) )?version|(home )?directory|(IPv4|primary Ethernet) address|CPU (type|speed)|physical memory|time (stamp|to GMT)|replacing|ASCII (character|number)|localized string|from table|offset|summarize|beep|delay|say|(empty|multiple) selections allowed|(of|preferred) type|invisibles|showing( package contents)?|editable URL|(File|FTP|News|Media|Web) [Ss]ervers|Telnet hosts|Directory services|Remote applications|waiting until completion|saving( (in|to))?|path (for|to( (((current|frontmost) )?application|resource))?)|POSIX (file|path)|(background|RGB) color|(OK|cancel) button name|cancel button|button(s)?|cubic ((centi)?met(re|er)s|yards|feet|inches)|square ((kilo)?met(re|er)s|miles|yards|feet)|(centi|kilo)?met(re|er)s|miles|yards|feet|inches|lit(re|er)s|gallons|quarts|(kilo)?grams|ounces|pounds|degrees (Celsius|Fahrenheit|Kelvin)|print( (dialog|settings))?|clos(e(able)?|ing)|(de)?miniaturized|miniaturizable|zoom(ed|able)|attribute run|action (method|property|title)|phone|email|((start|end)ing|home) page|((birth|creation|current|custom|modification) )?date|((((phonetic )?(first|last|middle))|computer|host|maiden|related) |nick)?name|aim|icq|jabber|msn|yahoo|address(es)?|save addressbook|should enable action|city|country( code)?|formatte(r|d address)|(palette )?label|state|street|zip|AIM [Hh]andle(s)?|my card|select(ion| all)?|unsaved|(alpha )?value|entr(y|ies)|group|(ICQ|Jabber|MSN) handle|person|people|company|department|icon image|job title|note|organization|suffix|vcard|url|copies|collating|pages (across|down)|request print time|target( printer)?|((GUI Scripting|Script menu) )?enabled|show Computer scripts|(de)?activated|awake from nib|became (key|main)|call method|of (class|object)|center|clicked toolbar item|closed|for document|exposed|(can )?hide|idle|keyboard (down|up)|event( (number|type))?|launch(ed)?|load (image|movie|nib|sound)|owner|log|mouse (down|dragged|entered|exited|moved|up)|move|column|localization|resource|script|register|drag (info|types)|resigned (active|key|main)|resiz(e(d)?|able)|right mouse (down|dragged|up)|scroll wheel|(at )?index|should (close|open( untitled)?|quit( after last window closed)?|zoom)|((proposed|screen) )?bounds|show(n)?|behind|in front of|size (mode|to fit)|update(d| toolbar item)?|was (hidden|miniaturized)|will (become active|close|finish launching|hide|miniaturize|move|open|quit|(resign )?active|((maximum|minimum|proposed) )?size|show|zoom)|bundle|data source|movie|pasteboard|sound|tool(bar| tip)|(color|open|save) panel|coordinate system|frontmost|main( (bundle|menu|window))?|((services|(excluded from )?windows) )?menu|((executable|frameworks|resource|scripts|shared (frameworks|support)) )?path|(selected item )?identifier|data|content(s| view)?|character(s)?|click count|(command|control|option|shift) key down|context|delta (x|y|z)|key( code)?|location|pressure|unmodified characters|types|(first )?responder|playing|(allowed|selectable) identifiers|allows customization|(auto saves )?configuration|visible|image( name)?|menu form representation|tag|user(-| )defaults|associated file name|(auto|needs) display|current field editor|floating|has (resize indicator|shadow)|hides when deactivated|level|minimized (image|title)|opaque|position|release when closed|sheet|title(d)?)\b/g,
    +			    css: 'color3' },
    +
    +			{ regex: new RegExp(this.getKeywords(specials), 'gm'), css: 'color3' },
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' },
    +			{ regex: new RegExp(this.getKeywords(ordinals), 'gm'), css: 'keyword' }
    +		];
    +	};
    +
    +	Brush.prototype = new SyntaxHighlighter.Highlighter();
    +	Brush.aliases = ['applescript'];
    +
    +	SyntaxHighlighter.brushes.AppleScript = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushBash.js b/src/_h5ai/js/lib/sh/shBrushBash.js
    new file mode 100644
    index 00000000..8c296969
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushBash.js
    @@ -0,0 +1,59 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'if fi then elif else for do done until while break continue case function return in eq ne ge le';
    +		var commands =  'alias apropos awk basename bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot' +
    +						'cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df ' +
    +						'diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval ' +
    +						'exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format ' +
    +						'free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig ' +
    +						'import install join kill less let ln local locate logname logout look lpc lpr lprint ' +
    +						'lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools ' +
    +						'mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap ' +
    +						'printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice ' +
    +						'remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown ' +
    +						'sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time ' +
    +						'times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias ' +
    +						'uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir ' +
    +						'vi watch wc whereis which who whoami Wget xargs yes'
    +						;
    +
    +		this.regexList = [
    +			{ regex: /^#!.*$/gm,											css: 'preprocessor bold' },
    +			{ regex: /\/[\w-\/]+/gm,										css: 'plain' },
    +			{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,		css: 'comments' },		// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,			css: 'string' },		// double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,			css: 'string' },		// single quoted strings
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),			css: 'keyword' },		// keywords
    +			{ regex: new RegExp(this.getKeywords(commands), 'gm'),			css: 'functions' }		// commands
    +			];
    +	}
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['bash', 'shell'];
    +
    +	SyntaxHighlighter.brushes.Bash = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushCSharp.js b/src/_h5ai/js/lib/sh/shBrushCSharp.js
    new file mode 100644
    index 00000000..079214ef
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushCSharp.js
    @@ -0,0 +1,65 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'abstract as base bool break byte case catch char checked class const ' +
    +						'continue decimal default delegate do double else enum event explicit ' +
    +						'extern false finally fixed float for foreach get goto if implicit in int ' +
    +						'interface internal is lock long namespace new null object operator out ' +
    +						'override params private protected public readonly ref return sbyte sealed set ' +
    +						'short sizeof stackalloc static string struct switch this throw true try ' +
    +						'typeof uint ulong unchecked unsafe ushort using virtual void while';
    +
    +		function fixComments(match, regexInfo)
    +		{
    +			var css = (match[0].indexOf("///") == 0)
    +				? 'color1'
    +				: 'comments'
    +				;
    +			
    +			return [new SyntaxHighlighter.Match(match[0], match.index, css)];
    +		}
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	func : fixComments },		// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
    +			{ regex: /@"(?:[^"]|"")*"/g,								css: 'string' },			// @-quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// strings
    +			{ regex: /^\s*#.*/gm,										css: 'preprocessor' },		// preprocessor tags like #region and #endregion
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },			// c# keyword
    +			{ regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g,	css: 'keyword' },			// contextual keyword: 'partial'
    +			{ regex: /\byield(?=\s+(?:return|break)\b)/g,				css: 'keyword' }			// contextual keyword: 'yield'
    +			];
    +		
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['c#', 'c-sharp', 'csharp'];
    +
    +	SyntaxHighlighter.brushes.CSharp = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    +
    diff --git a/src/_h5ai/js/lib/sh/shBrushColdFusion.js b/src/_h5ai/js/lib/sh/shBrushColdFusion.js
    new file mode 100644
    index 00000000..627dbb9b
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushColdFusion.js
    @@ -0,0 +1,100 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Jen
    +		// http://www.jensbits.com/2009/05/14/coldfusion-brush-for-syntaxhighlighter-plus
    +	
    +		var funcs	=	'Abs ACos AddSOAPRequestHeader AddSOAPResponseHeader AjaxLink AjaxOnLoad ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ' + 
    +						'ArrayInsertAt ArrayIsDefined ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArraySet ArraySort ArraySum ArraySwap ArrayToList ' + 
    +						'Asc ASin Atn BinaryDecode BinaryEncode BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor ' + 
    +						'Ceiling CharsetDecode CharsetEncode Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject ' + 
    +						'CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert ' + 
    +						'DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue ' + 
    +						'Decrypt DecryptBinary DeleteClientVariable DeserializeJSON DirectoryExists DollarFormat DotNetToCFType Duplicate Encrypt ' + 
    +						'EncryptBinary Evaluate Exp ExpandPath FileClose FileCopy FileDelete FileExists FileIsEOF FileMove FileOpen FileRead ' + 
    +						'FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute FileSetLastModified FileWrite Find FindNoCase FindOneOf ' + 
    +						'FirstDayOfMonth Fix FormatBaseN GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList GetBaseTemplatePath ' + 
    +						'GetClientVariablesList GetComponentMetaData GetContextRoot GetCurrentTemplatePath GetDirectoryFromPath GetEncoding ' + 
    +						'GetException GetFileFromPath GetFileInfo GetFunctionList GetGatewayHelper GetHttpRequestData GetHttpTimeString ' + 
    +						'GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetLocaleDisplayName GetLocalHostIP GetMetaData GetMetricData ' + 
    +						'GetPageContext GetPrinterInfo GetProfileSections GetProfileString GetReadableImageFormats GetSOAPRequest GetSOAPRequestHeader ' + 
    +						'GetSOAPResponse GetSOAPResponseHeader GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken ' + 
    +						'GetUserRoles GetWriteableImageFormats Hash Hour HTMLCodeFormat HTMLEditFormat IIf ImageAddBorder ImageBlur ImageClearRect ' + 
    +						'ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect ImageDrawCubicCurve ImageDrawLine ImageDrawLines ImageDrawOval ' + 
    +						'ImageDrawPoint ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob ImageGetBufferedImage ' + 
    +						'ImageGetEXIFTag ImageGetHeight ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay ImagePaste ' + 
    +						'ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit ImageSetAntialiasing ImageSetBackgroundColor ' + 
    +						'ImageSetDrawingColor ImageSetDrawingStroke ImageSetDrawingTransparency ImageSharpen ImageShear ImageShearDrawingAxis ImageTranslate ' + 
    +						'ImageTranslateDrawingAxis ImageWrite ImageWriteBase64 ImageXORDrawingMode IncrementValue InputBaseN Insert Int IsArray IsBinary ' + 
    +						'IsBoolean IsCustomFunction IsDate IsDDX IsDebugMode IsDefined IsImage IsImageFile IsInstanceOf IsJSON IsLeapYear IsLocalHost ' + 
    +						'IsNumeric IsNumericDate IsObject IsPDFFile IsPDFObject IsQuery IsSimpleValue IsSOAPRequest IsStruct IsUserInAnyRole IsUserInRole ' + 
    +						'IsUserLoggedIn IsValid IsWDDX IsXML IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot JavaCast JSStringFormat LCase Left Len ' + 
    +						'ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt ' + 
    +						'ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log ' + 
    +						'Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime ' + 
    +						'LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParseDateTime ' + 
    +						'Pi PrecisionEvaluate PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryConvertForGrid QueryNew QuerySetCell QuotedValueList Rand ' + 
    +						'Randomize RandRange REFind REFindNoCase ReleaseComObject REMatch REMatchNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase ' + 
    +						'REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SendGatewayMessage SerializeJSON SetEncoding SetLocale SetProfileString ' + 
    +						'SetVariable Sgn Sin Sleep SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind ' + 
    +						'StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructKeyList StructNew ' + 
    +						'StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase URLDecode URLEncodedFormat URLSessionFormat Val ' + 
    +						'ValueList VerifyClient Week Wrap Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform ' + 
    +						'XmlValidate Year YesNoFormat';
    +
    +		var keywords =	'cfabort cfajaximport cfajaxproxy cfapplet cfapplication cfargument cfassociate cfbreak cfcache cfcalendar ' + 
    +						'cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection cfcomponent cfcontent cfcookie cfdbinfo ' + 
    +						'cfdefaultcase cfdirectory cfdiv cfdocument cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror ' + 
    +						'cfexchangecalendar cfexchangeconnection cfexchangecontact cfexchangefilter cfexchangemail cfexchangetask ' + 
    +						'cfexecute cfexit cffeed cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid cfgridcolumn ' + 
    +						'cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif cfimage cfimport cfinclude cfindex ' + 
    +						'cfinput cfinsert cfinterface cfinvoke cfinvokeargument cflayout cflayoutarea cfldap cflocation cflock cflog ' + 
    +						'cflogin cfloginuser cflogout cfloop cfmail cfmailparam cfmailpart cfmenu cfmenuitem cfmodule cfNTauthenticate ' + 
    +						'cfobject cfobjectcache cfoutput cfparam cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod cfpop ' + 
    +						'cfpresentation cfpresentationslide cfpresenter cfprint cfprocessingdirective cfprocparam cfprocresult ' + 
    +						'cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow cfreturn cfsavecontent cfschedule ' + 
    +						'cfscript cfsearch cfselect cfset cfsetting cfsilent cfslider cfsprydataset cfstoredproc cfswitch cftable ' + 
    +						'cftextarea cfthread cfthrow cftimer cftooltip cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx ' + 
    +						'cfwindow cfxml cfzip cfzipparam';
    +
    +		var operators =	'all and any between cross in join like not null or outer some';
    +
    +		this.regexList = [
    +			{ regex: new RegExp('--(.*)$', 'gm'),						css: 'comments' },  // one line and multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.xmlComments,			css: 'comments' },    // single quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },    // double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },    // single quoted strings
    +			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' }, // functions
    +			{ regex: new RegExp(this.getKeywords(operators), 'gmi'),	css: 'color1' },    // operators and such
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),		css: 'keyword' }    // keyword
    +			];
    +	}
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['coldfusion','cf'];
    +	
    +	SyntaxHighlighter.brushes.ColdFusion = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushCpp.js b/src/_h5ai/js/lib/sh/shBrushCpp.js
    new file mode 100644
    index 00000000..9f70d3ae
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushCpp.js
    @@ -0,0 +1,97 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Copyright 2006 Shin, YoungJin
    +	
    +		var datatypes =	'ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR ' +
    +						'DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH ' +
    +						'HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP ' +
    +						'HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY ' +
    +						'HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT ' +
    +						'HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE ' +
    +						'LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE LPCOLORREF ' +
    +						'LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR LPTSTR ' +
    +						'LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR PCWSTR ' +
    +						'PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY PINT ' +
    +						'PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 POINTER_32 ' +
    +						'POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR PUHALF_PTR ' +
    +						'PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 PULONG64 ' +
    +						'PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK SERVICE_STATUS_HANDLE SHORT ' +
    +						'SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 ULONG ' +
    +						'ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM WPARAM WPARAM ' +
    +						'char bool short int __int32 __int64 __int8 __int16 long float double __wchar_t ' +
    +						'clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception _EXCEPTION_POINTERS ' +
    +						'FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t __finddata64_t ' +
    +						'__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t ' +
    +						'jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler ' +
    +						'sig_atomic_t size_t _stat __stat64 _stati64 terminate_function ' +
    +						'time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf ' +
    +						'va_list wchar_t wctrans_t wctype_t wint_t signed';
    +
    +		var keywords =	'break case catch class const __finally __exception __try ' +
    +						'const_cast continue private public protected __declspec ' +
    +						'default delete deprecated dllexport dllimport do dynamic_cast ' +
    +						'else enum explicit extern if for friend goto inline ' +
    +						'mutable naked namespace new noinline noreturn nothrow ' +
    +						'register reinterpret_cast return selectany ' +
    +						'sizeof static static_cast struct switch template this ' +
    +						'thread throw true false try typedef typeid typename union ' +
    +						'using uuid virtual void volatile whcar_t while';
    +					
    +		var functions =	'assert isalnum isalpha iscntrl isdigit isgraph islower isprint' +
    +						'ispunct isspace isupper isxdigit tolower toupper errno localeconv ' +
    +						'setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod ' +
    +						'frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf ' +
    +						'longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start ' +
    +						'clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen ' +
    +						'fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell ' +
    +						'fwrite getc getchar gets perror printf putc putchar puts remove ' +
    +						'rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam ' +
    +						'ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol ' +
    +						'bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs ' +
    +						'mbtowc qsort rand realloc srand strtod strtol strtoul system ' +
    +						'wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr ' +
    +						'strcmp strcoll strcpy strcspn strerror strlen strncat strncmp ' +
    +						'strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime ' +
    +						'clock ctime difftime gmtime localtime mktime strftime time';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// strings
    +			{ regex: /^ *#.*/gm,										css: 'preprocessor' },
    +			{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'color1 bold' },
    +			{ regex: new RegExp(this.getKeywords(functions), 'gm'),		css: 'functions bold' },
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword bold' }
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['cpp', 'c'];
    +
    +	SyntaxHighlighter.brushes.Cpp = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushCss.js b/src/_h5ai/js/lib/sh/shBrushCss.js
    new file mode 100644
    index 00000000..4297a9a6
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushCss.js
    @@ -0,0 +1,91 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		function getKeywordsCSS(str)
    +		{
    +			return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
    +		};
    +	
    +		function getValuesCSS(str)
    +		{
    +			return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
    +		};
    +
    +		var keywords =	'ascent azimuth background-attachment background-color background-image background-position ' +
    +						'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
    +						'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
    +						'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
    +						'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
    +						'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
    +						'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
    +						'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
    +						'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
    +						'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
    +						'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
    +						'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
    +						'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
    +						'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';
    +
    +		var values =	'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
    +						'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
    +						'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double '+
    +						'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
    +						'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
    +						'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
    +						'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
    +						'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
    +						'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
    +						'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
    +						'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
    +						'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
    +						'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
    +						'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
    +
    +		var fonts =		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
    +	
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },	// multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },	// double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },	// single quoted strings
    +			{ regex: /\#[a-fA-F0-9]{3,6}/g,								css: 'value' },		// html colors
    +			{ regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g,				css: 'value' },		// sizes
    +			{ regex: /!important/g,										css: 'color3' },	// !important
    +			{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'),		css: 'keyword' },	// keywords
    +			{ regex: new RegExp(getValuesCSS(values), 'g'),				css: 'value' },		// values
    +			{ regex: new RegExp(this.getKeywords(fonts), 'g'),			css: 'color1' }		// fonts
    +			];
    +
    +		this.forHtmlScript({ 
    +			left: /(<|<)\s*style.*?(>|>)/gi, 
    +			right: /(<|<)\/\s*style\s*(>|>)/gi 
    +			});
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['css'];
    +
    +	SyntaxHighlighter.brushes.CSS = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushDelphi.js b/src/_h5ai/js/lib/sh/shBrushDelphi.js
    new file mode 100644
    index 00000000..e1060d44
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushDelphi.js
    @@ -0,0 +1,55 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' +
    +						'case char class comp const constructor currency destructor div do double ' +
    +						'downto else end except exports extended false file finalization finally ' +
    +						'for function goto if implementation in inherited int64 initialization ' +
    +						'integer interface is label library longint longword mod nil not object ' +
    +						'of on or packed pansichar pansistring pchar pcurrency pdatetime pextended ' +
    +						'pint64 pointer private procedure program property pshortstring pstring ' +
    +						'pvariant pwidechar pwidestring protected public published raise real real48 ' +
    +						'record repeat set shl shortint shortstring shr single smallint string then ' +
    +						'threadvar to true try type unit until uses val var varirnt while widechar ' +
    +						'widestring with word write writeln xor';
    +
    +		this.regexList = [
    +			{ regex: /\(\*[\s\S]*?\*\)/gm,								css: 'comments' },  	// multiline comments (* *)
    +			{ regex: /{(?!\$)[\s\S]*?}/gm,								css: 'comments' },  	// multiline comments { }
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },  	// one line
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// strings
    +			{ regex: /\{\$[a-zA-Z]+ .+\}/g,								css: 'color1' },		// compiler Directives and Region tags
    +			{ regex: /\b[\d\.]+\b/g,									css: 'value' },			// numbers 12345
    +			{ regex: /\$[a-zA-Z0-9]+\b/g,								css: 'value' },			// numbers $F5D3
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),		css: 'keyword' }		// keyword
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['delphi', 'pascal', 'pas'];
    +
    +	SyntaxHighlighter.brushes.Delphi = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushDiff.js b/src/_h5ai/js/lib/sh/shBrushDiff.js
    new file mode 100644
    index 00000000..e9b14fc5
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushDiff.js
    @@ -0,0 +1,41 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		this.regexList = [
    +			{ regex: /^\+\+\+.*$/gm,		css: 'color2' },
    +			{ regex: /^\-\-\-.*$/gm,		css: 'color2' },
    +			{ regex: /^\s.*$/gm,			css: 'color1' },
    +			{ regex: /^@@.*@@$/gm,			css: 'variable' },
    +			{ regex: /^\+[^\+]{1}.*$/gm,	css: 'string' },
    +			{ regex: /^\-[^\-]{1}.*$/gm,	css: 'comments' }
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['diff', 'patch'];
    +
    +	SyntaxHighlighter.brushes.Diff = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushErlang.js b/src/_h5ai/js/lib/sh/shBrushErlang.js
    new file mode 100644
    index 00000000..6ba7d9da
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushErlang.js
    @@ -0,0 +1,52 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Jean-Lou Dupont
    +		// http://jldupont.blogspot.com/2009/06/erlang-syntax-highlighter.html  
    +
    +		// According to: http://erlang.org/doc/reference_manual/introduction.html#1.5
    +		var keywords = 'after and andalso band begin bnot bor bsl bsr bxor '+
    +			'case catch cond div end fun if let not of or orelse '+
    +			'query receive rem try when xor'+
    +			// additional
    +			' module export import define';
    +
    +		this.regexList = [
    +			{ regex: new RegExp("[A-Z][A-Za-z0-9_]+", 'g'), 			css: 'constants' },
    +			{ regex: new RegExp("\\%.+", 'gm'), 						css: 'comments' },
    +			{ regex: new RegExp("\\?[A-Za-z0-9_]+", 'g'), 				css: 'preprocessor' },
    +			{ regex: new RegExp("[a-z0-9_]+:[a-z0-9_]+", 'g'), 			css: 'functions' },
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },
    +			{ regex: new RegExp(this.getKeywords(keywords),	'gm'),		css: 'keyword' }
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['erl', 'erlang'];
    +
    +	SyntaxHighlighter.brushes.Erland = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushGroovy.js b/src/_h5ai/js/lib/sh/shBrushGroovy.js
    new file mode 100644
    index 00000000..6ec5c185
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushGroovy.js
    @@ -0,0 +1,67 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Andres Almiray
    +		// http://jroller.com/aalmiray/entry/nice_source_code_syntax_highlighter
    +
    +		var keywords =	'as assert break case catch class continue def default do else extends finally ' +
    +						'if in implements import instanceof interface new package property return switch ' +
    +						'throw throws try while public protected private static';
    +		var types    =  'void boolean byte char short int long float double';
    +		var constants = 'null';
    +		var methods   = 'allProperties count get size '+
    +						'collect each eachProperty eachPropertyName eachWithIndex find findAll ' +
    +						'findIndexOf grep inject max min reverseEach sort ' +
    +						'asImmutable asSynchronized flatten intersect join pop reverse subMap toList ' +
    +						'padRight padLeft contains eachMatch toCharacter toLong toUrl tokenize ' +
    +						'eachFile eachFileRecurse eachB yte eachLine readBytes readLine getText ' +
    +						'splitEachLine withReader append encodeBase64 decodeBase64 filterLine ' +
    +						'transformChar transformLine withOutputStream withPrintWriter withStream ' +
    +						'withStreams withWriter withWriterAppend write writeLine '+
    +						'dump inspect invokeMethod print println step times upto use waitForOrKill '+
    +						'getText';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,				css: 'comments' },		// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,					css: 'comments' },		// multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,					css: 'string' },		// strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,					css: 'string' },		// strings
    +			{ regex: /""".*"""/g,													css: 'string' },		// GStrings
    +			{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'value' },			// numbers
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),					css: 'keyword' },		// goovy keyword
    +			{ regex: new RegExp(this.getKeywords(types), 'gm'),						css: 'color1' },		// goovy/java type
    +			{ regex: new RegExp(this.getKeywords(constants), 'gm'),					css: 'constants' },		// constants
    +			{ regex: new RegExp(this.getKeywords(methods), 'gm'),					css: 'functions' }		// methods
    +			];
    +
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	}
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['groovy'];
    +
    +	SyntaxHighlighter.brushes.Groovy = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushJScript.js b/src/_h5ai/js/lib/sh/shBrushJScript.js
    new file mode 100644
    index 00000000..ff98daba
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushJScript.js
    @@ -0,0 +1,52 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'break case catch continue ' +
    +						'default delete do else false  ' +
    +						'for function if in instanceof ' +
    +						'new null return super switch ' +
    +						'this throw true try typeof var while with'
    +						;
    +
    +		var r = SyntaxHighlighter.regexLib;
    +		
    +		this.regexList = [
    +			{ regex: r.multiLineDoubleQuotedString,					css: 'string' },			// double quoted strings
    +			{ regex: r.multiLineSingleQuotedString,					css: 'string' },			// single quoted strings
    +			{ regex: r.singleLineCComments,							css: 'comments' },			// one line comments
    +			{ regex: r.multiLineCComments,							css: 'comments' },			// multiline comments
    +			{ regex: /\s*#.*/gm,									css: 'preprocessor' },		// preprocessor tags like #region and #endregion
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// keywords
    +			];
    +	
    +		this.forHtmlScript(r.scriptScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['js', 'jscript', 'javascript'];
    +
    +	SyntaxHighlighter.brushes.JScript = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushJava.js b/src/_h5ai/js/lib/sh/shBrushJava.js
    new file mode 100644
    index 00000000..d692fd63
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushJava.js
    @@ -0,0 +1,57 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'abstract assert boolean break byte case catch char class const ' +
    +						'continue default do double else enum extends ' +
    +						'false final finally float for goto if implements import ' +
    +						'instanceof int interface long native new null ' +
    +						'package private protected public return ' +
    +						'short static strictfp super switch synchronized this throw throws true ' +
    +						'transient try void volatile while';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },		// one line comments
    +			{ regex: /\/\*([^\*][\s\S]*)?\*\//gm,						css: 'comments' },	 	// multiline comments
    +			{ regex: /\/\*(?!\*\/)\*[\s\S]*?\*\//gm,					css: 'preprocessor' },	// documentation comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// strings
    +			{ regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi,				css: 'value' },			// numbers
    +			{ regex: /(?!\@interface\b)\@[\$\w]+\b/g,					css: 'color1' },		// annotation @anno
    +			{ regex: /\@interface\b/g,									css: 'color2' },		// @interface keyword
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }		// java keyword
    +			];
    +
    +		this.forHtmlScript({
    +			left	: /(<|<)%[@!=]?/g, 
    +			right	: /%(>|>)/g 
    +		});
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['java'];
    +
    +	SyntaxHighlighter.brushes.Java = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushJavaFX.js b/src/_h5ai/js/lib/sh/shBrushJavaFX.js
    new file mode 100644
    index 00000000..1a150a6a
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushJavaFX.js
    @@ -0,0 +1,58 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Patrick Webster
    +		// http://patrickwebster.blogspot.com/2009/04/javafx-brush-for-syntaxhighlighter.html
    +		var datatypes =	'Boolean Byte Character Double Duration '
    +						+ 'Float Integer Long Number Short String Void'
    +						;
    +
    +		var keywords = 'abstract after and as assert at before bind bound break catch class '
    +						+ 'continue def delete else exclusive extends false finally first for from '
    +						+ 'function if import in indexof init insert instanceof into inverse last '
    +						+ 'lazy mixin mod nativearray new not null on or override package postinit '
    +						+ 'protected public public-init public-read replace return reverse sizeof '
    +						+ 'step super then this throw true try tween typeof var where while with '
    +						+ 'attribute let private readonly static trigger'
    +						;
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },
    +			{ regex: /(-?\.?)(\b(\d*\.?\d+|\d+\.?\d*)(e[+-]?\d+)?|0x[a-f\d]+)\b\.?/gi, css: 'color2' },	// numbers
    +			{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'variable' },	// datatypes
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }
    +		];
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['jfx', 'javafx'];
    +
    +	SyntaxHighlighter.brushes.JavaFX = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushPerl.js b/src/_h5ai/js/lib/sh/shBrushPerl.js
    new file mode 100644
    index 00000000..d94a2e0e
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushPerl.js
    @@ -0,0 +1,72 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by David Simmons-Duffin and Marty Kube
    +	
    +		var funcs = 
    +			'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + 
    +			'chroot close closedir connect cos crypt defined delete each endgrent ' + 
    +			'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + 
    +			'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + 
    +			'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + 
    +			'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + 
    +			'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + 
    +			'getservbyname getservbyport getservent getsockname getsockopt glob ' + 
    +			'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + 
    +			'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + 
    +			'oct open opendir ord pack pipe pop pos print printf prototype push ' + 
    +			'quotemeta rand read readdir readline readlink readpipe recv rename ' + 
    +			'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + 
    +			'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + 
    +			'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + 
    +			'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + 
    +			'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + 
    +			'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + 
    +			'undef unlink unpack unshift utime values vec wait waitpid warn write';
    +    
    +		var keywords =  
    +			'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' +
    +			'for foreach goto if import last local my next no our package redo ref ' + 
    +			'require return sub tie tied unless untie until use wantarray while';
    +    
    +		this.regexList = [
    +			{ regex: new RegExp('#[^!].*$', 'gm'),					css: 'comments' },
    +			{ regex: new RegExp('^\\s*#!.*$', 'gm'),				css: 'preprocessor' }, // shebang
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,	css: 'string' },
    +			{ regex: new RegExp('(\\$|@|%)\\w+', 'g'),				css: 'variable' },
    +			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),	css: 'functions' },
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }
    +		    ];
    +
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
    +	}
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases		= ['perl', 'Perl', 'pl'];
    +
    +	SyntaxHighlighter.brushes.Perl = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushPhp.js b/src/_h5ai/js/lib/sh/shBrushPhp.js
    new file mode 100644
    index 00000000..95e6e432
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushPhp.js
    @@ -0,0 +1,88 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var funcs	=	'abs acos acosh addcslashes addslashes ' +
    +						'array_change_key_case array_chunk array_combine array_count_values array_diff '+
    +						'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+
    +						'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+
    +						'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+
    +						'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+
    +						'array_push array_rand array_reduce array_reverse array_search array_shift '+
    +						'array_slice array_splice array_sum array_udiff array_udiff_assoc '+
    +						'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
    +						'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+
    +						'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+
    +						'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+
    +						'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+
    +						'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+
    +						'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+
    +						'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+
    +						'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+
    +						'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+
    +						'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+
    +						'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+
    +						'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+
    +						'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+
    +						'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+
    +						'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+
    +						'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+
    +						'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+
    +						'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+
    +						'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+
    +						'parse_ini_file parse_str parse_url passthru pathinfo print readlink realpath rewind rewinddir rmdir '+
    +						'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+
    +						'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+
    +						'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+
    +						'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+
    +						'strtoupper strtr strval substr substr_compare';
    +
    +		var keywords =	'abstract and array as break case catch cfunction class clone const continue declare default die do ' +
    +						'else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach ' +
    +						'function include include_once global goto if implements interface instanceof namespace new ' +
    +						'old_function or private protected public return require require_once static switch ' +
    +						'throw try use var while xor ';
    +		
    +		var constants	= '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
    +			{ regex: /\$\w+/g,											css: 'variable' },			// variables
    +			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// common functions
    +			{ regex: new RegExp(this.getKeywords(constants), 'gmi'),	css: 'constants' },			// constants
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
    +			];
    +
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['php'];
    +
    +	SyntaxHighlighter.brushes.Php = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushPlain.js b/src/_h5ai/js/lib/sh/shBrushPlain.js
    new file mode 100644
    index 00000000..9f7d9e90
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushPlain.js
    @@ -0,0 +1,33 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['text', 'plain'];
    +
    +	SyntaxHighlighter.brushes.Plain = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushPowerShell.js b/src/_h5ai/js/lib/sh/shBrushPowerShell.js
    new file mode 100644
    index 00000000..0be17529
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushPowerShell.js
    @@ -0,0 +1,74 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributes by B.v.Zanten, Getronics
    +		// http://confluence.atlassian.com/display/CONFEXT/New+Code+Macro
    +
    +		var keywords = 'Add-Content Add-History Add-Member Add-PSSnapin Clear(-Content)? Clear-Item ' +
    +					'Clear-ItemProperty Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ' +
    +					'ConvertTo-Html ConvertTo-SecureString Copy(-Item)? Copy-ItemProperty Export-Alias ' +
    +					'Export-Clixml Export-Console Export-Csv ForEach(-Object)? Format-Custom Format-List ' +
    +					'Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command ' +
    +					'Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy ' +
    +					'Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member ' +
    +					'Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service ' +
    +					'Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object ' +
    +					'Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item ' +
    +					'Join-Path Measure-Command Measure-Object Move(-Item)? Move-ItemProperty New-Alias ' +
    +					'New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan ' +
    +					'New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location ' +
    +					'Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin ' +
    +					'Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service ' +
    +					'Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content ' +
    +					'Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug ' +
    +					'Set-Service Set-TraceSource Set(-Variable)? Sort-Object Split-Path Start-Service ' +
    +					'Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service ' +
    +					'Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where(-Object)? ' +
    +					'Write-Debug Write-Error Write(-Host)? Write-Output Write-Progress Write-Verbose Write-Warning';
    +		var alias = 'ac asnp clc cli clp clv cpi cpp cvpa diff epal epcsv fc fl ' +
    +					'ft fw gal gc gci gcm gdr ghy gi gl gm gp gps group gsv ' +
    +					'gsnp gu gv gwmi iex ihy ii ipal ipcsv mi mp nal ndr ni nv oh rdr ' +
    +					'ri rni rnp rp rsnp rv rvpa sal sasv sc select si sl sleep sort sp ' +
    +					'spps spsv sv tee cat cd cp h history kill lp ls ' +
    +					'mount mv popd ps pushd pwd r rm rmdir echo cls chdir del dir ' +
    +					'erase rd ren type % \\?';
    +
    +		this.regexList = [
    +			{ regex: /#.*$/gm,										css: 'comments' },  // one line comments
    +			{ regex: /\$[a-zA-Z0-9]+\b/g,							css: 'value'   },   // variables $Computer1
    +			{ regex: /\-[a-zA-Z]+\b/g,								css: 'keyword' },   // Operators    -not  -and  -eq
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },    // strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,	css: 'string' },    // strings
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),	css: 'keyword' },
    +			{ regex: new RegExp(this.getKeywords(alias), 'gmi'),	css: 'keyword' }
    +		];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['powershell', 'ps'];
    +
    +	SyntaxHighlighter.brushes.PowerShell = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushPython.js b/src/_h5ai/js/lib/sh/shBrushPython.js
    new file mode 100644
    index 00000000..ce774629
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushPython.js
    @@ -0,0 +1,64 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Gheorghe Milas and Ahmad Sherif
    +	
    +		var keywords =  'and assert break class continue def del elif else ' +
    +						'except exec finally for from global if import in is ' +
    +						'lambda not or pass print raise return try yield while';
    +
    +		var funcs = '__import__ abs all any apply basestring bin bool buffer callable ' +
    +					'chr classmethod cmp coerce compile complex delattr dict dir ' +
    +					'divmod enumerate eval execfile file filter float format frozenset ' +
    +					'getattr globals hasattr hash help hex id input int intern ' +
    +					'isinstance issubclass iter len list locals long map max min next ' +
    +					'object oct open ord pow print property range raw_input reduce ' +
    +					'reload repr reversed round set setattr slice sorted staticmethod ' +
    +					'str sum super tuple type type unichr unicode vars xrange zip';
    +
    +		var special =  'None True False self cls class_';
    +
    +		this.regexList = [
    +				{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' },
    +				{ regex: /^\s*@\w+/gm, 										css: 'decorator' },
    +				{ regex: /(['\"]{3})([^\1])*?\1/gm, 						css: 'comments' },
    +				{ regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm, 					css: 'string' },
    +				{ regex: /'(?!')(?:\.|(\\\')|[^\''\n])*'/gm, 				css: 'string' },
    +				{ regex: /\+|\-|\*|\/|\%|=|==/gm, 							css: 'keyword' },
    +				{ regex: /\b\d+\.?\w*/g, 									css: 'value' },
    +				{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },
    +				{ regex: new RegExp(this.getKeywords(keywords), 'gm'), 		css: 'keyword' },
    +				{ regex: new RegExp(this.getKeywords(special), 'gm'), 		css: 'color1' }
    +				];
    +			
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['py', 'python'];
    +
    +	SyntaxHighlighter.brushes.Python = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushRuby.js b/src/_h5ai/js/lib/sh/shBrushRuby.js
    new file mode 100644
    index 00000000..ff82130a
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushRuby.js
    @@ -0,0 +1,55 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Erik Peterson.
    +	
    +		var keywords =	'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 rescue retry return ' +
    +						'self super then throw true undef unless until when while yield';
    +
    +		var builtins =	'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';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,	css: 'comments' },		// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// single quoted strings
    +			{ regex: /\b[A-Z0-9_]+\b/g,									css: 'constants' },		// constants
    +			{ regex: /:[a-z][A-Za-z0-9_]*/g,							css: 'color2' },		// symbols
    +			{ regex: /(\$|@@|@)\w+/g,									css: 'variable bold' },	// $global, @instance, and @@class variables
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },		// keywords
    +			{ regex: new RegExp(this.getKeywords(builtins), 'gm'),		css: 'color1' }			// builtins
    +			];
    +
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['ruby', 'rails', 'ror', 'rb'];
    +
    +	SyntaxHighlighter.brushes.Ruby = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushSass.js b/src/_h5ai/js/lib/sh/shBrushSass.js
    new file mode 100644
    index 00000000..aa04da09
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushSass.js
    @@ -0,0 +1,94 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		function getKeywordsCSS(str)
    +		{
    +			return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
    +		};
    +	
    +		function getValuesCSS(str)
    +		{
    +			return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
    +		};
    +
    +		var keywords =	'ascent azimuth background-attachment background-color background-image background-position ' +
    +						'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
    +						'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
    +						'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
    +						'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
    +						'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
    +						'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
    +						'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
    +						'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
    +						'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
    +						'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
    +						'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
    +						'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
    +						'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';
    +		
    +		var values =	'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
    +						'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
    +						'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero digits disc dotted double '+
    +						'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
    +						'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
    +						'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
    +						'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
    +						'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
    +						'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
    +						'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
    +						'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
    +						'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
    +						'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
    +						'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
    +		
    +		var fonts =		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
    +		
    +		var statements		= '!important !default';
    +		var preprocessor	= '@import @extend @debug @warn @if @for @while @mixin @include';
    +		
    +		var r = SyntaxHighlighter.regexLib;
    +		
    +		this.regexList = [
    +			{ regex: r.multiLineCComments,								css: 'comments' },		// multiline comments
    +			{ regex: r.singleLineCComments,								css: 'comments' },		// singleline comments
    +			{ regex: r.doubleQuotedString,								css: 'string' },		// double quoted strings
    +			{ regex: r.singleQuotedString,								css: 'string' },		// single quoted strings
    +			{ regex: /\#[a-fA-F0-9]{3,6}/g,								css: 'value' },			// html colors
    +			{ regex: /\b(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)\b/g,			css: 'value' },			// sizes
    +			{ regex: /\$\w+/g,											css: 'variable' },		// variables
    +			{ regex: new RegExp(this.getKeywords(statements), 'g'),		css: 'color3' },		// statements
    +			{ regex: new RegExp(this.getKeywords(preprocessor), 'g'),	css: 'preprocessor' },	// preprocessor
    +			{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'),		css: 'keyword' },		// keywords
    +			{ regex: new RegExp(getValuesCSS(values), 'g'),				css: 'value' },			// values
    +			{ regex: new RegExp(this.getKeywords(fonts), 'g'),			css: 'color1' }			// fonts
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['sass', 'scss'];
    +
    +	SyntaxHighlighter.brushes.Sass = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushScala.js b/src/_h5ai/js/lib/sh/shBrushScala.js
    new file mode 100644
    index 00000000..4b0b6f04
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushScala.js
    @@ -0,0 +1,51 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		// Contributed by Yegor Jbanov and David Bernard.
    +	
    +		var keywords =	'val sealed case def true trait implicit forSome import match object null finally super ' +
    +						'override try lazy for var catch throw type extends class while with new final yield abstract ' +
    +						'else do if return protected private this package false';
    +
    +		var keyops =	'[_:=><%#@]+';
    +
    +		this.regexList = [
    +			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,			css: 'comments' },	// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,				css: 'comments' },	// multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },	// multi-line strings
    +			{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,    css: 'string' },	// double-quoted string
    +			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,				css: 'string' },	// strings
    +			{ regex: /0x[a-f0-9]+|\d+(\.\d+)?/gi,								css: 'value' },		// numbers
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),				css: 'keyword' },	// keywords
    +			{ regex: new RegExp(keyops, 'gm'),									css: 'keyword' }	// scala keyword
    +			];
    +	}
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['scala'];
    +
    +	SyntaxHighlighter.brushes.Scala = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushSql.js b/src/_h5ai/js/lib/sh/shBrushSql.js
    new file mode 100644
    index 00000000..5c2cd880
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushSql.js
    @@ -0,0 +1,66 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var funcs	=	'abs avg case cast coalesce convert count current_timestamp ' +
    +						'current_user day isnull left lower month nullif replace right ' +
    +						'session_user space substring sum system_user upper user year';
    +
    +		var keywords =	'absolute action add after alter as asc at authorization begin bigint ' +
    +						'binary bit by cascade char character check checkpoint close collate ' +
    +						'column commit committed connect connection constraint contains continue ' +
    +						'create cube current current_date current_time cursor database date ' +
    +						'deallocate dec decimal declare default delete desc distinct double drop ' +
    +						'dynamic else end end-exec escape except exec execute false fetch first ' +
    +						'float for force foreign forward free from full function global goto grant ' +
    +						'group grouping having hour ignore index inner insensitive insert instead ' +
    +						'int integer intersect into is isolation key last level load local max min ' +
    +						'minute modify move name national nchar next no numeric of off on only ' +
    +						'open option order out output partial password precision prepare primary ' +
    +						'prior privileges procedure public read real references relative repeatable ' +
    +						'restrict return returns revoke rollback rollup rows rule schema scroll ' +
    +						'second section select sequence serializable set size smallint static ' +
    +						'statistics table temp temporary then time timestamp to top transaction ' +
    +						'translation trigger true truncate uncommitted union unique update values ' +
    +						'varchar varying view when where with work';
    +
    +		var operators =	'all and any between cross in join like not null or outer some';
    +
    +		this.regexList = [
    +			{ regex: /--(.*)$/gm,												css: 'comments' },			// one line and multiline comments
    +			{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,	css: 'string' },			// double quoted strings
    +			{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },			// single quoted strings
    +			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),				css: 'color2' },			// functions
    +			{ regex: new RegExp(this.getKeywords(operators), 'gmi'),			css: 'color1' },			// operators and such
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),				css: 'keyword' }			// keyword
    +			];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['sql'];
    +
    +	SyntaxHighlighter.brushes.Sql = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    +
    diff --git a/src/_h5ai/js/lib/sh/shBrushVb.js b/src/_h5ai/js/lib/sh/shBrushVb.js
    new file mode 100644
    index 00000000..be845dc0
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushVb.js
    @@ -0,0 +1,56 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		var keywords =	'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' +
    +						'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' +
    +						'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' +
    +						'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' +
    +						'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' +
    +						'Function Get GetType GoSub GoTo Handles If Implements Imports In ' +
    +						'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' +
    +						'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' +
    +						'NotInheritable NotOverridable Object On Option Optional Or OrElse ' +
    +						'Overloads Overridable Overrides ParamArray Preserve Private Property ' +
    +						'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' +
    +						'Return Select Set Shadows Shared Short Single Static Step Stop String ' +
    +						'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' +
    +						'Variant When While With WithEvents WriteOnly Xor';
    +
    +		this.regexList = [
    +			{ regex: /'.*$/gm,										css: 'comments' },			// one line comments
    +			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },			// strings
    +			{ regex: /^\s*#.*$/gm,									css: 'preprocessor' },		// preprocessor tags like #region and #endregion
    +			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// vb keyword
    +			];
    +
    +		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['vb', 'vbnet'];
    +
    +	SyntaxHighlighter.brushes.Vb = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shBrushXml.js b/src/_h5ai/js/lib/sh/shBrushXml.js
    new file mode 100644
    index 00000000..69d9fd0b
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shBrushXml.js
    @@ -0,0 +1,69 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +;(function()
    +{
    +	// CommonJS
    +	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
    +
    +	function Brush()
    +	{
    +		function process(match, regexInfo)
    +		{
    +			var constructor = SyntaxHighlighter.Match,
    +				code = match[0],
    +				tag = new XRegExp('(<|<)[\\s\\/\\?]*(?[:\\w-\\.]+)', 'xg').exec(code),
    +				result = []
    +				;
    +		
    +			if (match.attributes != null) 
    +			{
    +				var attributes,
    +					regex = new XRegExp('(? [\\w:\\-\\.]+)' +
    +										'\\s*=\\s*' +
    +										'(? ".*?"|\'.*?\'|\\w+)',
    +										'xg');
    +
    +				while ((attributes = regex.exec(code)) != null) 
    +				{
    +					result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
    +					result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
    +				}
    +			}
    +
    +			if (tag != null)
    +				result.push(
    +					new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
    +				);
    +
    +			return result;
    +		}
    +	
    +		this.regexList = [
    +			{ regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'),			css: 'color2' },	// 
    +			{ regex: SyntaxHighlighter.regexLib.xmlComments,												css: 'comments' },	// 
    +			{ regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process }
    +		];
    +	};
    +
    +	Brush.prototype	= new SyntaxHighlighter.Highlighter();
    +	Brush.aliases	= ['xml', 'xhtml', 'xslt', 'html'];
    +
    +	SyntaxHighlighter.brushes.Xml = Brush;
    +
    +	// CommonJS
    +	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
    +})();
    diff --git a/src/_h5ai/js/lib/sh/shCore.js b/src/_h5ai/js/lib/sh/shCore.js
    new file mode 100644
    index 00000000..b47b6454
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shCore.js
    @@ -0,0 +1,17 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a-1},3d:6(g){e+=g}};c1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;be.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;dd.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a\'+c+""});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+="                    ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.Pb.P)H 1;Y I(a.Lb.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'\'+c+""+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v<3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;">1v3v 3.0.76 (72 73 3x)1Z://3u.2w/1v70 17 6U 71.6T 6X-3x 6Y 6D.6t 61 60 J 1k, 5Z 5R 5V <2R/>5U 5T 5S!\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'\',d=e.16.2x,h=d.2X,g=0;g";H c},2o:6(a,b,c){H\'<2W>\'+c+""},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;md)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P\'+c+""},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i\'+j+"":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"":"")+\'<2d 1g="17">\'+b+""},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{}))
    diff --git a/src/_h5ai/js/lib/sh/shLegacy.js b/src/_h5ai/js/lib/sh/shLegacy.js
    new file mode 100644
    index 00000000..6d9fd4d1
    --- /dev/null
    +++ b/src/_h5ai/js/lib/sh/shLegacy.js
    @@ -0,0 +1,17 @@
    +/**
    + * SyntaxHighlighter
    + * http://alexgorbatchev.com/SyntaxHighlighter
    + *
    + * SyntaxHighlighter is donationware. If you are using it, please donate.
    + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
    + *
    + * @version
    + * 3.0.83 (July 02 2010)
    + * 
    + * @copyright
    + * Copyright (C) 2004-2010 Alex Gorbatchev.
    + *
    + * @license
    + * Dual licensed under the MIT and GPL licenses.
    + */
    +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3 u={8:{}};u.8={A:4(c,k,l,m,n,o){4 d(a,b){2 a!=1?a:b}4 f(a){2 a!=1?a.E():1}c=c.I(":");3 g=c[0],e={};t={"r":K};M=1;5=8.5;9(3 j R c)e[c[j]]="r";k=f(d(k,5.C));l=f(d(l,5.D));m=f(d(m,5.s));o=f(d(o,5.Q));n=f(d(n,5["x-y"]));2{P:g,C:d(t[e.O],k),D:d(t[e.N],l),s:d({"r":r}[e.s],m),"x-y":d(4(a,b){9(3 h=T S("^"+b+"\\\\[(?\\\\w+)\\\\]$","U"),i=1,p=0;p