Вход Регистрация
Файл: usr/plugins/highlight_code/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 
0< list.lengthi++) 
                if ((
match regex.exec(list[i])) != null)
                    return 
match.value;
            
            return 
null;
        };
        
        function 
defaultValue(valuedef)
        {
            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(showGutterdefaults.gutter));
        
showControls asString(defaultValue(showControlsdefaults.toolbar));
        
collapseAll asString(defaultValue(collapseAlldefaults.collapse)); 
        
showColumns asString(defaultValue(showColumnsdefaults.ruler));
        
firstLine asString(defaultValue(firstLinedefaults['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 
arguments;
            
            for (var 
0a.lengthi++) 
            {
                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, nametagName)
        {
            var 
tags document.getElementsByTagName(tagName);
            
            for (var 
0tags.lengthi++) 
                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(elementsname'pre');
        
findTagsByName(elementsname'textarea');

        if (
elements.length === 0)
            return;
        
        for (var 
0elements.lengthi++)
        {
            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(paramselement);
        }
    }
};
?>
Онлайн: 2
Реклама