初始化

修改了上一个版本的一些错误,第一次提交
This commit is contained in:
joyqi
2013-07-17 13:13:57 +08:00
commit 55379c90df
531 changed files with 80105 additions and 0 deletions
+137
View File
@@ -0,0 +1,137 @@
<?php
/**
* Google高亮代码
*
* @package Google Code Prettify
* @author qining
* @version 1.0.0
* @dependence 9.9.2-*
* @link http://typecho.org
*/
class GoogleCodePrettify_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate()
{
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('GoogleCodePrettify_Plugin', 'parse');
Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('GoogleCodePrettify_Plugin', 'parse');
Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('GoogleCodePrettify_Plugin', 'parse');
Typecho_Plugin::factory('Widget_Archive')->header = array('GoogleCodePrettify_Plugin', 'header');
Typecho_Plugin::factory('Widget_Archive')->footer = array('GoogleCodePrettify_Plugin', 'footer');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate(){}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form){}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 输出头部css
*
* @access public
* @param unknown $header
* @return unknown
*/
public static function header() {
$cssUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/prettify.css';
echo '<link rel="stylesheet" type="text/css" href="' . $cssUrl . '" />';
}
/**
* 输出尾部js
*
* @access public
* @param unknown $header
* @return unknown
*/
public static function footer() {
$jsUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/prettify.js';
echo '<script type="text/javascript" src="'. $jsUrl .'"></script>';
echo '<script type="text/javascript">window.onload = function () {
prettyPrint();
}</script>';
}
/**
* 解析
*
* @access public
* @param array $matches 解析值
* @return string
*/
public static function parseCallback($matches)
{
$language = trim($matches[2]);
$map = array(
'js' => 'javascript',
'as' => 'actionscript',
'as3' => 'actionscript3'
);
if (!empty($language) && isset($map[$language])) {
$language = $map[$language];
}
$source = '<div class="prettyprint-box"><table class="prettyprint-table"><tr>';
$numberItem = '<td width="2%" class="number"><table>';
$sourceItem = '<td width="98%" class="code"><pre' . (empty($language) ? '' : ' id="' . $language . '"') . ' class="prettyprint"><table>';
$sourceList = explode("\n", trim($matches[3]));
foreach ($sourceList as $key => $sourceLine) {
$numberItem .= '<tr><td>' . ($key + 1) . '</td></tr>';
$sourceItem .= '<tr><td class="source">' . htmlspecialchars($sourceLine) . '</td></tr>';
}
$numberItem .= '</table></td>';
$sourceItem .= '</table></pre></td>';
return $source . $numberItem . $sourceItem . '</tr></table></div>';
}
/**
* 插件实现方法
*
* @access public
* @return void
*/
public static function parse($text, $widget, $lastResult)
{
$text = empty($lastResult) ? $text : $lastResult;
if ($widget instanceof Widget_Archive || $widget instanceof Widget_Abstract_Comments) {
return preg_replace_callback("/<(code|pre)(\s*[^>]*)>(.*?)<\/\\1>/is", array('GoogleCodePrettify_Plugin', 'parseCallback'), $text);
} else {
return $text;
}
}
}
@@ -0,0 +1,51 @@
// Copyright (C) 2009 Onno Hommes.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for the AGC/AEA Assembly Language as described
* at http://virtualagc.googlecode.com
* <p>
* This file could be used by goodle code to allow syntax highlight for
* Virtual AGC SVN repository or if you don't want to commonize
* the header for the agc/aea html assembly listing.
*
* @author ohommes@alumni.cmu.edu
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// A line comment that starts with ;
[PR.PR_COMMENT, /^#[^\r\n]*/, null, '#'],
// Whitespace
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
// A double quoted, possibly multi-line, string.
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
],
[
[PR.PR_KEYWORD, /^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,null],
[PR.PR_TYPE, /^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],
// A single quote possibly followed by a word that optionally ends with
// = ! or ?.
[PR.PR_LITERAL,
/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
// Any word including labels that optionally ends with = ! or ?.
[PR.PR_PLAIN,
/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
// A printable non-space non-special character
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
]),
['apollo', 'agc', 'aea']);
@@ -0,0 +1,78 @@
// Copyright (C) 2009 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for CSS.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-css"></pre>
*
*
* http://www.w3.org/TR/CSS21/grammar.html Section G2 defines the lexical
* grammar. This scheme does not recognize keywords containing escapes.
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// The space production <s>
[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, ' \t\r\n\f']
],
[
// Quoted strings. <string1> and <string2>
[PR.PR_STRING,
/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
[PR.PR_STRING,
/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
['lang-css-str', /^url\(([^\)\"\']*)\)/i],
[PR.PR_KEYWORD,
/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,
null],
// A property name -- an identifier followed by a colon.
['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
// A C style block comment. The <comment> production.
[PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
// Escaping text spans
[PR.PR_COMMENT, /^(?:<!--|-->)/],
// A number possibly containing a suffix.
[PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
// A hex color
[PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i],
// An identifier
[PR.PR_PLAIN,
/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
// A run of punctuation
[PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/]
]),
['css']);
PR.registerLangHandler(
PR.createSimpleLexer([],
[
[PR.PR_KEYWORD,
/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]
]),
['css-kw']);
PR.registerLangHandler(
PR.createSimpleLexer([],
[
[PR.PR_STRING, /^[^\)\"\']+/]
]),
['css-str']);
@@ -0,0 +1,101 @@
// Copyright (C) 2009 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for Haskell.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-hs">(my lisp code)</pre>
* The lang-cl class identifies the language as common lisp.
* This file supports the following language extensions:
* lang-cl - Common Lisp
* lang-el - Emacs Lisp
* lang-lisp - Lisp
* lang-scm - Scheme
*
*
* I used http://www.informatik.uni-freiburg.de/~thiemann/haskell/haskell98-report-html/syntax-iso.html
* as the basis, but ignore the way the ncomment production nests since this
* makes the lexical grammar irregular. It might be possible to support
* ncomments using the lookbehind filter.
*
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace
// whitechar -> newline | vertab | space | tab | uniWhite
// newline -> return linefeed | return | linefeed | formfeed
[PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, '\t\n\x0B\x0C\r '],
// Single line double and single-quoted strings.
// char -> ' (graphic<' | \> | space | escape<\&>) '
// string -> " {graphic<" | \> | space | escape | gap}"
// escape -> \ ( charesc | ascii | decimal | o octal
// | x hexadecimal )
// charesc -> a | b | f | n | r | t | v | \ | " | ' | &
[PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,
null, '"'],
[PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,
null, "'"],
// decimal -> digit{digit}
// octal -> octit{octit}
// hexadecimal -> hexit{hexit}
// integer -> decimal
// | 0o octal | 0O octal
// | 0x hexadecimal | 0X hexadecimal
// float -> decimal . decimal [exponent]
// | decimal exponent
// exponent -> (e | E) [+ | -] decimal
[PR.PR_LITERAL,
/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,
null, '0123456789']
],
[
// Haskell does not have a regular lexical grammar due to the nested
// ncomment.
// comment -> dashes [ any<symbol> {any}] newline
// ncomment -> opencom ANYseq {ncomment ANYseq}closecom
// dashes -> '--' {'-'}
// opencom -> '{-'
// closecom -> '-}'
[PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],
// reservedid -> case | class | data | default | deriving | do
// | else | if | import | in | infix | infixl | infixr
// | instance | let | module | newtype | of | then
// | type | where | _
[PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null],
// qvarid -> [ modid . ] varid
// qconid -> [ modid . ] conid
// varid -> (small {small | large | digit | ' })<reservedid>
// conid -> large {small | large | digit | ' }
// modid -> conid
// small -> ascSmall | uniSmall | _
// ascSmall -> a | b | ... | z
// uniSmall -> any Unicode lowercase letter
// large -> ascLarge | uniLarge
// ascLarge -> A | B | ... | Z
// uniLarge -> any uppercase or titlecase Unicode letter
[PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],
// matches the symbol production
[PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]
]),
['hs']);
@@ -0,0 +1,93 @@
// Copyright (C) 2008 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for Common Lisp and related languages.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-lisp">(my lisp code)</pre>
* The lang-cl class identifies the language as common lisp.
* This file supports the following language extensions:
* lang-cl - Common Lisp
* lang-el - Emacs Lisp
* lang-lisp - Lisp
* lang-scm - Scheme
*
*
* I used http://www.devincook.com/goldparser/doc/meta-language/grammar-LISP.htm
* as the basis, but added line comments that start with ; and changed the atom
* production to disallow unquoted semicolons.
*
* "Name" = 'LISP'
* "Author" = 'John McCarthy'
* "Version" = 'Minimal'
* "About" = 'LISP is an abstract language that organizes ALL'
* | 'data around "lists".'
*
* "Start Symbol" = [s-Expression]
*
* {Atom Char} = {Printable} - {Whitespace} - [()"\'']
*
* Atom = ( {Atom Char} | '\'{Printable} )+
*
* [s-Expression] ::= [Quote] Atom
* | [Quote] '(' [Series] ')'
* | [Quote] '(' [s-Expression] '.' [s-Expression] ')'
*
* [Series] ::= [s-Expression] [Series]
* |
*
* [Quote] ::= '' !Quote = do not evaluate
* |
*
*
* I used <a href="http://gigamonkeys.com/book/">Practical Common Lisp</a> as
* the basis for the reserved word list.
*
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
['opn', /^\(/, null, '('],
['clo', /^\)/, null, ')'],
// A line comment that starts with ;
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'],
// Whitespace
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
// A double quoted, possibly multi-line, string.
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
],
[
[PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|cons|defun|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null],
[PR.PR_LITERAL,
/^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],
// A single quote possibly followed by a word that optionally ends with
// = ! or ?.
[PR.PR_LITERAL,
/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
// A word that optionally ends with = ! or ?.
[PR.PR_PLAIN,
/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
// A printable non-space non-special character
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
]),
['cl', 'el', 'lisp', 'scm']);
@@ -0,0 +1,59 @@
// Copyright (C) 2008 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for Lua.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-lua">(my Lua code)</pre>
*
*
* I used http://www.lua.org/manual/5.1/manual.html#2.1
* Because of the long-bracket concept used in strings and comments, Lua does
* not have a regular lexical grammar, but luckily it fits within the space
* of irregular grammars supported by javascript regular expressions.
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
// A double or single quoted, possibly multi-line, string.
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\'']
],
[
// A comment is either a line comment that starts with two dashes, or
// two dashes preceding a long bracketed block.
[PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],
// A long bracketed block not preceded by -- is a string.
[PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],
[PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null],
// A number is a hex integer literal, a decimal real literal, or in
// scientific notation.
[PR.PR_LITERAL,
/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
// An identifier
[PR.PR_PLAIN, /^[a-z_]\w*/i],
// A run of punctuation
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]
]),
['lua']);
@@ -0,0 +1,56 @@
// Copyright (C) 2008 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for OCaml, SML, F# and similar languages.
*
* Based on the lexical grammar at
* http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace is made up of spaces, tabs and newline characters.
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
// #if ident/#else/#endif directives delimit conditional compilation
// sections
[PR.PR_COMMENT,
/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,
null, '#'],
// A double or single quoted, possibly multi-line, string.
// F# allows escaped newlines in strings.
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\'']
],
[
// Block comments are delimited by (* and *) and may be
// nested. Single-line comments begin with // and extend to
// the end of a line.
// TODO: (*...*) comments can be nested. This does not handle that.
[PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],
[PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
// A number is a hex integer literal, a decimal real literal, or in
// scientific notation.
[PR.PR_LITERAL,
/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
[PR.PR_PLAIN, /^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],
// A printable non-space non-special character
[PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/]
]),
['fs', 'ml']);
@@ -0,0 +1,35 @@
// Copyright (C) 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for Protocol Buffers as described at
* http://code.google.com/p/protobuf/.
*
* Based on the lexical grammar at
* http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(PR.sourceDecorator({
keywords: (
'bool bytes default double enum extend extensions false fixed32 '
+ 'fixed64 float group import int32 int64 max message option '
+ 'optional package repeated required returns rpc service '
+ 'sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 '
+ 'uint64'),
cStyleComments: true
}), ['proto']);
@@ -0,0 +1,57 @@
// Copyright (C) 2008 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for SQL.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-sql">(my SQL code)</pre>
*
*
* http://savage.net.au/SQL/sql-99.bnf.html is the basis for the grammar, and
* http://msdn.microsoft.com/en-us/library/aa238507(SQL.80).aspx as the basis
* for the keyword list.
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
// A double or single quoted, possibly multi-line, string.
[PR.PR_STRING, /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null,
'"\'']
],
[
// A comment is either a line comment that starts with two dashes, or
// two dashes preceding a long bracketed block.
[PR.PR_COMMENT, /^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],
[PR.PR_KEYWORD, /^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i, null],
// A number is a hex integer literal, a decimal real literal, or in
// scientific notation.
[PR.PR_LITERAL,
/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
// An identifier
[PR.PR_PLAIN, /^[a-z_][\w-]*/i],
// A run of punctuation
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]
]),
['sql']);
@@ -0,0 +1,61 @@
// Copyright (C) 2009 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for various flavors of basic.
*
*
* To use, include prettify.js and this file in your HTML page.
* Then put your code in an HTML tag like
* <pre class="prettyprint lang-vb"></pre>
*
*
* http://msdn.microsoft.com/en-us/library/aa711638(VS.71).aspx defines the
* visual basic grammar lexical grammar.
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace
[PR.PR_PLAIN, /^[\t\n\r \xA0\u2028\u2029]+/, null, '\t\n\r \xA0\u2028\u2029'],
// A double quoted string with quotes escaped by doubling them.
// A single character can be suffixed with C.
[PR.PR_STRING, /^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i, null,
'"\u201C\u201D'],
// A comment starts with a single quote and runs until the end of the
// line.
[PR.PR_COMMENT, /^[\'\u2018\u2019][^\r\n\u2028\u2029]*/, null, '\'\u2018\u2019']
],
[
[PR.PR_KEYWORD, /^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|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|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, null],
// A second comment form
[PR.PR_COMMENT, /^REM[^\r\n\u2028\u2029]*/i],
// A boolean, numeric, or date literal.
[PR.PR_LITERAL,
/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],
// An identifier?
[PR.PR_PLAIN, /^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],
// A run of punctuation
[PR.PR_PUNCTUATION,
/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],
// Square brackets
[PR.PR_PUNCTUATION, /^(?:\[|\])/]
]),
['vb', 'vbs']);
@@ -0,0 +1,53 @@
// Copyright (C) 2009 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* Registers a language handler for Wiki pages.
*
* Based on WikiSyntax at http://code.google.com/p/support/wiki/WikiSyntax
*
* @author mikesamuel@gmail.com
*/
PR.registerLangHandler(
PR.createSimpleLexer(
[
// Whitespace
[PR.PR_PLAIN, /^[\t \xA0a-gi-z0-9]+/, null,
'\t \xA0abcdefgijklmnopqrstuvwxyz0123456789'],
// Wiki formatting
[PR.PR_PUNCTUATION, /^[=*~\^\[\]]+/, null, '=*~^[]']
],
[
// Meta-info like #summary, #labels, etc.
['lang-wiki.meta', /(?:^^|\r\n?|\n)(#[a-z]+)\b/],
// A WikiWord
[PR.PR_LITERAL, /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/
],
// A preformatted block in an unknown language
['lang-', /^\{\{\{([\s\S]+?)\}\}\}/],
// A block of source code in an unknown language
['lang-', /^`([^\r\n`]+)`/],
// An inline URL.
[PR.PR_STRING,
/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],
[PR.PR_PLAIN, /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]
]),
['wiki']);
PR.registerLangHandler(
PR.createSimpleLexer([[PR.PR_KEYWORD, /^#[a-z]+/i, null, '#']], []),
['wiki.meta']);
@@ -0,0 +1,32 @@
/* Pretty printing styles. Used with prettify.js. */
.str { color: #B1D631; font-style: italic; }
.kwd { color: #527AA2; }
.com { color: #666; font-style: italic; }
.typ { color: #FAF4C6; }
.lit { color: #527AA2; }
.pun { color: #FF8613; }
.pln { color: #FAF4C6; }
.tag { color: #527AA2; }
.atn { color: #FAF4C6; }
.atv { color: #B1D631; }
.dec { color: #FAF4C6; }
table.prettyprint-table { padding: 2px; border: 1px solid #000; background: #222; color: #eee; font-size: 13px; margin: 0; font: 12px/1.5 'andale mono','lucida console',monospace; }
table.prettyprint-table pre, table.prettyprint-table table {margin: 0; background: #222; border: none; font-size: 13px;}
pre.prettyprint tr:hover td {background: #333}
table.prettyprint-table td.number {color: #666; font-family: "Courier New",Courier,monospace }
.prettyprint-box {width: 100%; display: block; overflow-x: auto}
table.prettyprint-table td {padding: 2px 4px}
@media print {
.str { color: #060; }
.kwd { color: #006; font-weight: bold; }
.com { color: #600; font-style: italic; }
.typ { color: #404; font-weight: bold; }
.lit { color: #044; }
.pun { color: #440; }
.pln { color: #000; }
.tag { color: #006; font-weight: bold; }
.atn { color: #404; }
.atv { color: #060; }
}
File diff suppressed because it is too large Load Diff