diff options
author | jaseg <git@jaseg.de> | 2021-01-24 18:44:56 +0100 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-01-24 18:44:56 +0100 |
commit | f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead (patch) | |
tree | d7b110b65e93b87fc65472559ac74e7eb961bc7c /upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js | |
download | gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.tar.gz gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.tar.bz2 gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.zip |
Initial commit
Diffstat (limited to 'upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js')
-rw-r--r-- | upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js b/upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js new file mode 100644 index 0000000..36951c9 --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Scripts/SyntaxHighlighter/src/shLegacy.js @@ -0,0 +1,157 @@ +/** + * 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. + */ +var dp = { + SyntaxHighlighter : {} +}; + +dp.SyntaxHighlighter = { + parseParams: function( + input, + showGutter, + showControls, + collapseAll, + firstLine, + showColumns + ) + { + function getValue(list, name) + { + var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'), + match = null + ; + + for (var i = 0; i < list.length; i++) + if ((match = regex.exec(list[i])) != null) + return match.value; + + return null; + }; + + function defaultValue(value, def) + { + return value != null ? value : def; + }; + + function asString(value) + { + return value != null ? value.toString() : null; + }; + + var parts = input.split(':'), + brushName = parts[0], + options = {}, + straight = { 'true' : true } + reverse = { 'true' : false }, + result = null, + defaults = SyntaxHighlighter.defaults + ; + + for (var i in parts) + options[parts[i]] = 'true'; + + showGutter = asString(defaultValue(showGutter, defaults.gutter)); + showControls = asString(defaultValue(showControls, defaults.toolbar)); + collapseAll = asString(defaultValue(collapseAll, defaults.collapse)); + showColumns = asString(defaultValue(showColumns, defaults.ruler)); + firstLine = asString(defaultValue(firstLine, defaults['first-line'])); + + return { + brush : brushName, + gutter : defaultValue(reverse[options.nogutter], showGutter), + toolbar : defaultValue(reverse[options.nocontrols], showControls), + collapse : defaultValue(straight[options.collapse], collapseAll), + // ruler : defaultValue(straight[options.showcolumns], showColumns), + 'first-line' : defaultValue(getValue(parts, 'firstline'), firstLine) + }; + }, + + HighlightAll: function( + name, + showGutter /* optional */, + showControls /* optional */, + collapseAll /* optional */, + firstLine /* optional */, + showColumns /* optional */ + ) + { + function findValue() + { + var a = arguments; + + for (var i = 0; i < a.length; i++) + { + if (a[i] === null) + continue; + + if (typeof(a[i]) == 'string' && a[i] != '') + return a[i] + ''; + + if (typeof(a[i]) == 'object' && a[i].value != '') + return a[i].value + ''; + } + + return null; + }; + + function findTagsByName(list, name, tagName) + { + var tags = document.getElementsByTagName(tagName); + + for (var i = 0; i < tags.length; i++) + if (tags[i].getAttribute('name') == name) + list.push(tags[i]); + } + + var elements = [], + highlighter = null, + registered = {}, + propertyName = 'innerHTML' + ; + + // for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name... + findTagsByName(elements, name, 'pre'); + findTagsByName(elements, name, 'textarea'); + + if (elements.length === 0) + return; + + for (var i = 0; i < elements.length; i++) + { + var element = elements[i], + params = findValue( + element.attributes['class'], element.className, + element.attributes['language'], element.language + ), + language = '' + ; + + if (params === null) + continue; + + params = dp.SyntaxHighlighter.parseParams( + params, + showGutter, + showControls, + collapseAll, + firstLine, + showColumns + ); + + SyntaxHighlighter.highlight(params, element); + } + } +}; |