Вход Регистрация
Файл: tyde/www/web/js/src/shLegacy.js
Строк: 151
<?php
/**
 * 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);
        }
    }
};
?>
Онлайн: 2
Реклама