mirror of
https://github.com/silverstripe/silverstripe-docsviewer
synced 2024-10-22 09:05:56 +00:00
ENHANCEMENT Added custom "SS" brush for syntax highlighting (needs work)
This commit is contained in:
parent
135415c2e3
commit
2c67fb7650
@ -65,6 +65,7 @@ class DocumentationViewer extends Controller {
|
|||||||
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushJScript.js');
|
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushJScript.js');
|
||||||
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushPHP.js');
|
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushPHP.js');
|
||||||
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushXML.js');
|
Requirements::javascript('sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushXML.js');
|
||||||
|
Requirements::javascript('sapphiredocs/javascript/shBrushSS.js');
|
||||||
Requirements::combine_files(
|
Requirements::combine_files(
|
||||||
'syntaxhighlighter.js',
|
'syntaxhighlighter.js',
|
||||||
array(
|
array(
|
||||||
@ -72,6 +73,7 @@ class DocumentationViewer extends Controller {
|
|||||||
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushJScript.js',
|
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushJScript.js',
|
||||||
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushPHP.js',
|
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushPHP.js',
|
||||||
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushXML.js'
|
'sapphiredocs/thirdparty/syntaxhighlighter/scripts/shBrushXML.js'
|
||||||
|
'sapphiredocs/javascript/shBrushSS.js'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
76
javascript/shBrushSS.js
vendored
Normal file
76
javascript/shBrushSS.js
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* Modified from shBrushXML.js by SilverStripe Ltd.
|
||||||
|
*/
|
||||||
|
;(function()
|
||||||
|
{
|
||||||
|
// CommonJS
|
||||||
|
typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
|
||||||
|
|
||||||
|
function Brush()
|
||||||
|
{
|
||||||
|
var keywords = "control if end_if else elseif end_control";
|
||||||
|
|
||||||
|
function process(match, regexInfo)
|
||||||
|
{
|
||||||
|
var constructor = SyntaxHighlighter.Match,
|
||||||
|
code = match[0],
|
||||||
|
tag = new XRegExp('(<|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
|
||||||
|
result = []
|
||||||
|
;
|
||||||
|
|
||||||
|
if (match.attributes != null)
|
||||||
|
{
|
||||||
|
var attributes,
|
||||||
|
regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
|
||||||
|
'\\s*=\\s*' +
|
||||||
|
'(?<value> ".*?"|\'.*?\'|\\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: /(<|<)%--[\s\S]*?--%(>|>)/gm, css: 'comments' }, // <%-- ... --%>
|
||||||
|
{ regex: /\$[\w]*/gm, css: 'color2' }, // $Var
|
||||||
|
{ regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process },
|
||||||
|
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
Brush.prototype = new SyntaxHighlighter.Highlighter();
|
||||||
|
Brush.aliases = ['ss', 'silverstripe'];
|
||||||
|
|
||||||
|
SyntaxHighlighter.brushes.SS = Brush;
|
||||||
|
|
||||||
|
// CommonJS
|
||||||
|
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
|
||||||
|
})();
|
Loading…
x
Reference in New Issue
Block a user