-
+
- pass('editor', true) && 'on' == $request->get('__typecho_all_comments') && $stat->waitingCommentsNum > 0): ?> @@ -20,7 +22,7 @@ $stat = Typecho_Widget::widget('Widget_Stat'); waitingCommentsNum(); ?> myWaitingCommentsNum > 0): ?> -
- +
- myWaitingCommentsNum(); ?> @@ -34,36 +36,33 @@ $stat = Typecho_Widget::widget('Widget_Stat'); pass('administrator', true)): ?> -
- -
- +
- +
- + date('n.j'); ?> title(); ?> - - dateWord(); ?> @@ -71,41 +70,37 @@ $stat = Typecho_Widget::widget('Widget_Stat');
- - title(); ?> - - dateWord(); ?>, author(true); ?> + date('n.j'); ?> + author(true); ?>: + excerpt(35, '...'); ?> -
- +
- include this source file in an html page via - * {@code } - *
- define style rules. See the example page for examples. - *
- mark the {@code
} and {@code} tags in your source with - * {@code class=prettyprint.} - * You can also use the (html deprecated) {@code} tag, but the pretty - * printer needs to do more substantial DOM manipulations to support that, so - * some css styles may not be preserved. - * - class_align_right - * - * defaults to 'right' - * - *
- class_align_left - * - * defaults to 'left' - * - *
- class_align_center - * - * defaults to 'center' - * - *
- class_align_top - * - * defaults to 'top' - * - *
- class_align_bottom - * - * defaults to 'bottom' - * - *
- class_align_middle - * - * defaults to 'middle' - * - *
- class_align_justify - * - * defaults to 'justify' - * - *
- class_caps - * - * defaults to 'caps' - * - *
- class_footnote - * - * defaults to 'footnote' - * - *
- id_footnote_prefix - * - * defaults to 'fn' - * - *
%s 篇日志, 并有 %s 条关于你的评论在 %s 个分类中.',
+ $stat->myPublishedPostsNum, $stat->myPublishedCommentsNum, $stat->categoriesNum); ?>
+
-
pass('contributor', true)): ?>
%s 篇 Blog, 并有 %s 条关于你的评论在已设定的 %s 个分类中.', - $stat->myPublishedPostsNum, $stat->myPublishedCommentsNum, $stat->categoriesNum); ?>
- -logged > 0) { - _e('最后登录: %s', Typecho_I18n::dateWord($user->logged + $options->timezone, $options->gmtTime + $options->timezone)); - } - ?>
+ + +-
have()): ?>
next()): ?>
-
- to($comments); ?>
+ to($comments); ?>
have()): ?>
next()): ?>
| ';
-
- return $source . $numberItem . $sourceItem . '
- * 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-css.js b/usr/plugins/GoogleCodePrettify/src/lang-css.js deleted file mode 100644 index 44013d26..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-css.js +++ /dev/null @@ -1,78 +0,0 @@ -// 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 - *
- * - * - * 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(my lisp code)- * 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
(my lisp code)- * 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 Practical Common Lisp 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-lua.js b/usr/plugins/GoogleCodePrettify/src/lang-lua.js deleted file mode 100644 index 68bb30b9..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-lua.js +++ /dev/null @@ -1,59 +0,0 @@ -// 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 - *
(my Lua code)- * - * - * 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-ml.js b/usr/plugins/GoogleCodePrettify/src/lang-ml.js deleted file mode 100644 index c5a3db73..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-ml.js +++ /dev/null @@ -1,56 +0,0 @@ -// 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-proto.js b/usr/plugins/GoogleCodePrettify/src/lang-proto.js deleted file mode 100644 index d6531fd9..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-proto.js +++ /dev/null @@ -1,35 +0,0 @@ -// 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-sql.js b/usr/plugins/GoogleCodePrettify/src/lang-sql.js deleted file mode 100644 index 7a580974..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-sql.js +++ /dev/null @@ -1,57 +0,0 @@ -// 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 - *
(my SQL code)- * - * - * 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-vb.js b/usr/plugins/GoogleCodePrettify/src/lang-vb.js deleted file mode 100644 index a38db455..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-vb.js +++ /dev/null @@ -1,61 +0,0 @@ -// 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 - * - * - * - * 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-wiki.js b/usr/plugins/GoogleCodePrettify/src/lang-wiki.js deleted file mode 100644 index d4aa350a..00000000 --- a/usr/plugins/GoogleCodePrettify/src/lang-wiki.js +++ /dev/null @@ -1,53 +0,0 @@ -// 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']); diff --git a/usr/plugins/GoogleCodePrettify/src/prettify.css b/usr/plugins/GoogleCodePrettify/src/prettify.css deleted file mode 100644 index 990d48ce..00000000 --- a/usr/plugins/GoogleCodePrettify/src/prettify.css +++ /dev/null @@ -1,32 +0,0 @@ -/* 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; } -} diff --git a/usr/plugins/GoogleCodePrettify/src/prettify.js b/usr/plugins/GoogleCodePrettify/src/prettify.js deleted file mode 100644 index 09d6394f..00000000 --- a/usr/plugins/GoogleCodePrettify/src/prettify.js +++ /dev/null @@ -1,1478 +0,0 @@ -// 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 - * some functions for browser-side pretty printing of code contained in html. - *
- * - * For a fairly comprehensive set of languages see the - * README - * file that came with this source. At a minimum, the lexer should work on a - * number of languages including C and friends, Java, Python, Bash, SQL, HTML, - * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk - * and a subset of Perl, but, because of commenting conventions, doesn't work on - * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. - *
- * Usage:
-
- *
} or {@code } element to specify the
- * language, as in {@code }. Any class that
- * starts with "lang-" followed by a file extension, specifies the file type.
- * See the "lang-*.js" files in this directory for code that implements
- * per-language file handlers.
- *
- * Change log:
- * cbeust, 2006/08/22
- *
- * Java annotations (start with "@") are now captured as literals ("lit")
- *
- * @requires console
- * @overrides window
- */
-
-// JSLint declarations
-/*global console, document, navigator, setTimeout, window */
-
-/**
- * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
- * UI events.
- * If set to {@code false}, {@code prettyPrint()} is synchronous.
- */
-window['PR_SHOULD_USE_CONTINUATION'] = true;
-
-/** the number of characters between tab columns */
-window['PR_TAB_WIDTH'] = 8;
-
-/** Walks the DOM returning a properly escaped version of innerHTML.
- * @param {Node} node
- * @param {Array.} out output buffer that receives chunks of HTML.
- */
-window['PR_normalizedHtml']
-
-/** Contains functions for creating and registering new language handlers.
- * @type {Object}
- */
- = window['PR']
-
-/** Pretty print a chunk of code.
- *
- * @param {string} sourceCodeHtml code as html
- * @return {string} code as html, but prettier
- */
- = window['prettyPrintOne']
-/** Find all the {@code } and {@code } tags in the DOM with
- * {@code class=prettyprint} and prettify them.
- * @param {Function?} opt_whenDone if specified, called when the last entry
- * has been finished.
- */
- = window['prettyPrint'] = void 0;
-
-/** browser detection. @extern @returns false if not IE, otherwise the major version. */
-window['_pr_isIE6'] = function () {
- var ieVersion = navigator && navigator.userAgent &&
- navigator.userAgent.match(/\bMSIE ([678])\./);
- ieVersion = ieVersion ? +ieVersion[1] : false;
- window['_pr_isIE6'] = function () { return ieVersion; };
- return ieVersion;
-};
-
-
-(function () {
- // Keyword lists for various languages.
- var FLOW_CONTROL_KEYWORDS =
- "break continue do else for if return while ";
- var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
- "double enum extern float goto int long register short signed sizeof " +
- "static struct switch typedef union unsigned void volatile ";
- var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
- "new operator private protected public this throw true try typeof ";
- var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
- "concept concept_map const_cast constexpr decltype " +
- "dynamic_cast explicit export friend inline late_check " +
- "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
- "template typeid typename using virtual wchar_t where ";
- var JAVA_KEYWORDS = COMMON_KEYWORDS +
- "abstract boolean byte extends final finally implements import " +
- "instanceof null native package strictfp super synchronized throws " +
- "transient ";
- var CSHARP_KEYWORDS = JAVA_KEYWORDS +
- "as base by checked decimal delegate descending event " +
- "fixed foreach from group implicit in interface internal into is lock " +
- "object out override orderby params partial readonly ref sbyte sealed " +
- "stackalloc string select uint ulong unchecked unsafe ushort var ";
- var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
- "debugger eval export function get null set undefined var with " +
- "Infinity NaN ";
- var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
- "goto if import last local my next no our print package redo require " +
- "sub undef unless until use wantarray while BEGIN END ";
- var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
- "elif except exec finally from global import in is lambda " +
- "nonlocal not or pass print raise try with yield " +
- "False True None ";
- var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
- " defined elsif end ensure false in module next nil not or redo rescue " +
- "retry self super then true undef unless until when yield BEGIN END ";
- var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
- "function in local set then until ";
- var ALL_KEYWORDS = (
- CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
- PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
-
- // token style names. correspond to css classes
- /** token style for a string literal */
- var PR_STRING = 'str';
- /** token style for a keyword */
- var PR_KEYWORD = 'kwd';
- /** token style for a comment */
- var PR_COMMENT = 'com';
- /** token style for a type */
- var PR_TYPE = 'typ';
- /** token style for a literal value. e.g. 1, null, true. */
- var PR_LITERAL = 'lit';
- /** token style for a punctuation string. */
- var PR_PUNCTUATION = 'pun';
- /** token style for a punctuation string. */
- var PR_PLAIN = 'pln';
-
- /** token style for an sgml tag. */
- var PR_TAG = 'tag';
- /** token style for a markup declaration such as a DOCTYPE. */
- var PR_DECLARATION = 'dec';
- /** token style for embedded source. */
- var PR_SOURCE = 'src';
- /** token style for an sgml attribute name. */
- var PR_ATTRIB_NAME = 'atn';
- /** token style for an sgml attribute value. */
- var PR_ATTRIB_VALUE = 'atv';
-
- /**
- * A class that indicates a section of markup that is not code, e.g. to allow
- * embedding of line numbers within code listings.
- */
- var PR_NOCODE = 'nocode';
-
- /** A set of tokens that can precede a regular expression literal in
- * javascript.
- * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
- * list, but I've removed ones that might be problematic when seen in
- * languages that don't support regular expression literals.
- *
- * Specifically, I've removed any keywords that can't precede a regexp
- * literal in a syntactically legal javascript program, and I've removed the
- * "in" keyword since it's not a keyword in many languages, and might be used
- * as a count of inches.
- *
- *
The link a above does not accurately describe EcmaScript rules since
- * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
- * very well in practice.
- *
- * @private
- */
- var REGEXP_PRECEDER_PATTERN = function () {
- var preceders = [
- "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
- "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
- "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
- "<", "<<", "<<=", "<=", "=", "==", "===", ">",
- ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
- "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
- "||=", "~" /* handles =~ and !~ */,
- "break", "case", "continue", "delete",
- "do", "else", "finally", "instanceof",
- "return", "throw", "try", "typeof"
- ];
- var pattern = '(?:^^|[+-]';
- for (var i = 0; i < preceders.length; ++i) {
- pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
- }
- pattern += ')\\s*'; // matches at end, and matches empty string
- return pattern;
- // CAVEAT: this does not properly handle the case where a regular
- // expression immediately follows another since a regular expression may
- // have flags for case-sensitivity and the like. Having regexp tokens
- // adjacent is not valid in any language I'm aware of, so I'm punting.
- // TODO: maybe style special characters inside a regexp as punctuation.
- }();
-
- // Define regexps here so that the interpreter doesn't have to create an
- // object each time the function containing them is called.
- // The language spec requires a new object created even if you don't access
- // the $1 members.
- var pr_amp = /&/g;
- var pr_lt = //g;
- var pr_quot = /\"/g;
- /** like textToHtml but escapes double quotes to be attribute safe. */
- function attribToHtml(str) {
- return str.replace(pr_amp, '&')
- .replace(pr_lt, '<')
- .replace(pr_gt, '>')
- .replace(pr_quot, '"');
- }
-
- /** escapest html special characters to html. */
- function textToHtml(str) {
- return str.replace(pr_amp, '&')
- .replace(pr_lt, '<')
- .replace(pr_gt, '>');
- }
-
-
- var pr_ltEnt = /</g;
- var pr_gtEnt = />/g;
- var pr_aposEnt = /'/g;
- var pr_quotEnt = /"/g;
- var pr_ampEnt = /&/g;
- var pr_nbspEnt = / /g;
- /** unescapes html to plain text. */
- function htmlToText(html) {
- var pos = html.indexOf('&');
- if (pos < 0) { return html; }
- // Handle numeric entities specially. We can't use functional substitution
- // since that doesn't work in older versions of Safari.
- // These should be rare since most browsers convert them to normal chars.
- for (--pos; (pos = html.indexOf('', pos + 1)) >= 0;) {
- var end = html.indexOf(';', pos);
- if (end >= 0) {
- var num = html.substring(pos + 3, end);
- var radix = 10;
- if (num && num.charAt(0) === 'x') {
- num = num.substring(1);
- radix = 16;
- }
- var codePoint = parseInt(num, radix);
- if (!isNaN(codePoint)) {
- html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
- html.substring(end + 1));
- }
- }
- }
-
- return html.replace(pr_ltEnt, '<')
- .replace(pr_gtEnt, '>')
- .replace(pr_aposEnt, "'")
- .replace(pr_quotEnt, '"')
- .replace(pr_nbspEnt, ' ')
- .replace(pr_ampEnt, '&');
- }
-
- /** is the given node's innerHTML normally unescaped? */
- function isRawContent(node) {
- return 'XMP' === node.tagName;
- }
-
- var newlineRe = /[\r\n]/g;
- /**
- * Are newlines and adjacent spaces significant in the given node's innerHTML?
- */
- function isPreformatted(node, content) {
- // PRE means preformatted, and is a very common case, so don't create
- // unnecessary computed style objects.
- if ('PRE' === node.tagName) { return true; }
- if (!newlineRe.test(content)) { return true; } // Don't care
- var whitespace = '';
- // For disconnected nodes, IE has no currentStyle.
- if (node.currentStyle) {
- whitespace = node.currentStyle.whiteSpace;
- } else if (window.getComputedStyle) {
- // Firefox makes a best guess if node is disconnected whereas Safari
- // returns the empty string.
- whitespace = window.getComputedStyle(node, null).whiteSpace;
- }
- return !whitespace || whitespace === 'pre';
- }
-
- function normalizedHtml(node, out) {
- switch (node.nodeType) {
- case 1: // an element
- var name = node.tagName.toLowerCase();
- out.push('<', name);
- for (var i = 0; i < node.attributes.length; ++i) {
- var attr = node.attributes[i];
- if (!attr.specified) { continue; }
- out.push(' ');
- normalizedHtml(attr, out);
- }
- out.push('>');
- for (var child = node.firstChild; child; child = child.nextSibling) {
- normalizedHtml(child, out);
- }
- if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
- out.push('<\/', name, '>');
- }
- break;
- case 2: // an attribute
- out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
- break;
- case 3: case 4: // text
- out.push(textToHtml(node.nodeValue));
- break;
- }
- }
-
- /**
- * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
- * matches the union o the sets o strings matched d by the input RegExp.
- * Since it matches globally, if the input strings have a start-of-input
- * anchor (/^.../), it is ignored for the purposes of unioning.
- * @param {Array.} regexs non multiline, non-global regexs.
- * @return {RegExp} a global regex.
- */
- function combinePrefixPatterns(regexs) {
- var capturedGroupIndex = 0;
-
- var needToFoldCase = false;
- var ignoreCase = false;
- for (var i = 0, n = regexs.length; i < n; ++i) {
- var regex = regexs[i];
- if (regex.ignoreCase) {
- ignoreCase = true;
- } else if (/[a-z]/i.test(regex.source.replace(
- /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
- needToFoldCase = true;
- ignoreCase = false;
- break;
- }
- }
-
- function decodeEscape(charsetPart) {
- if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
- switch (charsetPart.charAt(1)) {
- case 'b': return 8;
- case 't': return 9;
- case 'n': return 0xa;
- case 'v': return 0xb;
- case 'f': return 0xc;
- case 'r': return 0xd;
- case 'u': case 'x':
- return parseInt(charsetPart.substring(2), 16)
- || charsetPart.charCodeAt(1);
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7':
- return parseInt(charsetPart.substring(1), 8);
- default: return charsetPart.charCodeAt(1);
- }
- }
-
- function encodeEscape(charCode) {
- if (charCode < 0x20) {
- return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
- }
- var ch = String.fromCharCode(charCode);
- if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
- ch = '\\' + ch;
- }
- return ch;
- }
-
- function caseFoldCharset(charSet) {
- var charsetParts = charSet.substring(1, charSet.length - 1).match(
- new RegExp(
- '\\\\u[0-9A-Fa-f]{4}'
- + '|\\\\x[0-9A-Fa-f]{2}'
- + '|\\\\[0-3][0-7]{0,2}'
- + '|\\\\[0-7]{1,2}'
- + '|\\\\[\\s\\S]'
- + '|-'
- + '|[^-\\\\]',
- 'g'));
- var groups = [];
- var ranges = [];
- var inverse = charsetParts[0] === '^';
- for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
- var p = charsetParts[i];
- switch (p) {
- case '\\B': case '\\b':
- case '\\D': case '\\d':
- case '\\S': case '\\s':
- case '\\W': case '\\w':
- groups.push(p);
- continue;
- }
- var start = decodeEscape(p);
- var end;
- if (i + 2 < n && '-' === charsetParts[i + 1]) {
- end = decodeEscape(charsetParts[i + 2]);
- i += 2;
- } else {
- end = start;
- }
- ranges.push([start, end]);
- // If the range might intersect letters, then expand it.
- if (!(end < 65 || start > 122)) {
- if (!(end < 65 || start > 90)) {
- ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
- }
- if (!(end < 97 || start > 122)) {
- ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
- }
- }
- }
-
- // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
- // -> [[1, 12], [14, 14], [16, 17]]
- ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
- var consolidatedRanges = [];
- var lastRange = [NaN, NaN];
- for (var i = 0; i < ranges.length; ++i) {
- var range = ranges[i];
- if (range[0] <= lastRange[1] + 1) {
- lastRange[1] = Math.max(lastRange[1], range[1]);
- } else {
- consolidatedRanges.push(lastRange = range);
- }
- }
-
- var out = ['['];
- if (inverse) { out.push('^'); }
- out.push.apply(out, groups);
- for (var i = 0; i < consolidatedRanges.length; ++i) {
- var range = consolidatedRanges[i];
- out.push(encodeEscape(range[0]));
- if (range[1] > range[0]) {
- if (range[1] + 1 > range[0]) { out.push('-'); }
- out.push(encodeEscape(range[1]));
- }
- }
- out.push(']');
- return out.join('');
- }
-
- function allowAnywhereFoldCaseAndRenumberGroups(regex) {
- // Split into character sets, escape sequences, punctuation strings
- // like ('(', '(?:', ')', '^'), and runs of characters that do not
- // include any of the above.
- var parts = regex.source.match(
- new RegExp(
- '(?:'
- + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
- + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
- + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
- + '|\\\\[0-9]+' // a back-reference or octal escape
- + '|\\\\[^ux0-9]' // other escape sequence
- + '|\\(\\?[:!=]' // start of a non-capturing group
- + '|[\\(\\)\\^]' // start/emd of a group, or line start
- + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
- + ')',
- 'g'));
- var n = parts.length;
-
- // Maps captured group numbers to the number they will occupy in
- // the output or to -1 if that has not been determined, or to
- // undefined if they need not be capturing in the output.
- var capturedGroups = [];
-
- // Walk over and identify back references to build the capturedGroups
- // mapping.
- for (var i = 0, groupIndex = 0; i < n; ++i) {
- var p = parts[i];
- if (p === '(') {
- // groups are 1-indexed, so max group index is count of '('
- ++groupIndex;
- } else if ('\\' === p.charAt(0)) {
- var decimalValue = +p.substring(1);
- if (decimalValue && decimalValue <= groupIndex) {
- capturedGroups[decimalValue] = -1;
- }
- }
- }
-
- // Renumber groups and reduce capturing groups to non-capturing groups
- // where possible.
- for (var i = 1; i < capturedGroups.length; ++i) {
- if (-1 === capturedGroups[i]) {
- capturedGroups[i] = ++capturedGroupIndex;
- }
- }
- for (var i = 0, groupIndex = 0; i < n; ++i) {
- var p = parts[i];
- if (p === '(') {
- ++groupIndex;
- if (capturedGroups[groupIndex] === undefined) {
- parts[i] = '(?:';
- }
- } else if ('\\' === p.charAt(0)) {
- var decimalValue = +p.substring(1);
- if (decimalValue && decimalValue <= groupIndex) {
- parts[i] = '\\' + capturedGroups[groupIndex];
- }
- }
- }
-
- // Remove any prefix anchors so that the output will match anywhere.
- // ^^ really does mean an anchored match though.
- for (var i = 0, groupIndex = 0; i < n; ++i) {
- if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
- }
-
- // Expand letters to groupts to handle mixing of case-sensitive and
- // case-insensitive patterns if necessary.
- if (regex.ignoreCase && needToFoldCase) {
- for (var i = 0; i < n; ++i) {
- var p = parts[i];
- var ch0 = p.charAt(0);
- if (p.length >= 2 && ch0 === '[') {
- parts[i] = caseFoldCharset(p);
- } else if (ch0 !== '\\') {
- // TODO: handle letters in numeric escapes.
- parts[i] = p.replace(
- /[a-zA-Z]/g,
- function (ch) {
- var cc = ch.charCodeAt(0);
- return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
- });
- }
- }
- }
-
- return parts.join('');
- }
-
- var rewritten = [];
- for (var i = 0, n = regexs.length; i < n; ++i) {
- var regex = regexs[i];
- if (regex.global || regex.multiline) { throw new Error('' + regex); }
- rewritten.push(
- '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
- }
-
- return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
- }
-
- var PR_innerHtmlWorks = null;
- function getInnerHtml(node) {
- // inner html is hopelessly broken in Safari 2.0.4 when the content is
- // an html description of well formed XML and the containing tag is a PRE
- // tag, so we detect that case and emulate innerHTML.
- if (null === PR_innerHtmlWorks) {
- var testNode = document.createElement('PRE');
- testNode.appendChild(
- document.createTextNode('\n '));
- PR_innerHtmlWorks = !/)[\r\n]+/g, '$1')
- .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
- }
- return content;
- }
-
- var out = [];
- for (var child = node.firstChild; child; child = child.nextSibling) {
- normalizedHtml(child, out);
- }
- return out.join('');
- }
-
- /** returns a function that expand tabs to spaces. This function can be fed
- * successive chunks of text, and will maintain its own internal state to
- * keep track of how tabs are expanded.
- * @return {function (string) : string} a function that takes
- * plain text and return the text with tabs expanded.
- * @private
- */
- function makeTabExpander(tabWidth) {
- var SPACES = ' ';
- var charInLine = 0;
-
- return function (plainText) {
- // walk over each character looking for tabs and newlines.
- // On tabs, expand them. On newlines, reset charInLine.
- // Otherwise increment charInLine
- var out = null;
- var pos = 0;
- for (var i = 0, n = plainText.length; i < n; ++i) {
- var ch = plainText.charAt(i);
-
- switch (ch) {
- case '\t':
- if (!out) { out = []; }
- out.push(plainText.substring(pos, i));
- // calculate how much space we need in front of this part
- // nSpaces is the amount of padding -- the number of spaces needed
- // to move us to the next column, where columns occur at factors of
- // tabWidth.
- var nSpaces = tabWidth - (charInLine % tabWidth);
- charInLine += nSpaces;
- for (; nSpaces >= 0; nSpaces -= SPACES.length) {
- out.push(SPACES.substring(0, nSpaces));
- }
- pos = i + 1;
- break;
- case '\n':
- charInLine = 0;
- break;
- default:
- ++charInLine;
- }
- }
- if (!out) { return plainText; }
- out.push(plainText.substring(pos));
- return out.join('');
- };
- }
-
- var pr_chunkPattern = new RegExp(
- '[^<]+' // A run of characters other than '<'
- + '|<\!--[\\s\\S]*?--\>' // an HTML comment
- + '|' // a CDATA section
- // a probable tag that should not be highlighted
- + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
- + '|<', // A '<' that does not begin a larger chunk
- 'g');
- var pr_commentPrefix = /^<\!--/;
- var pr_cdataPrefix = /^) into their textual equivalent.
- *
- * @param {string} s html where whitespace is considered significant.
- * @return {Object} source code and extracted tags.
- * @private
- */
- function extractTags(s) {
- // since the pattern has the 'g' modifier and defines no capturing groups,
- // this will return a list of all chunks which we then classify and wrap as
- // PR_Tokens
- var matches = s.match(pr_chunkPattern);
- var sourceBuf = [];
- var sourceBufLen = 0;
- var extractedTags = [];
- if (matches) {
- for (var i = 0, n = matches.length; i < n; ++i) {
- var match = matches[i];
- if (match.length > 1 && match.charAt(0) === '<') {
- if (pr_commentPrefix.test(match)) { continue; }
- if (pr_cdataPrefix.test(match)) {
- // strip CDATA prefix and suffix. Don't unescape since it's CDATA
- sourceBuf.push(match.substring(9, match.length - 3));
- sourceBufLen += match.length - 12;
- } else if (pr_brPrefix.test(match)) {
- //
tags are lexically significant so convert them to text.
- // This is undone later.
- sourceBuf.push('\n');
- ++sourceBufLen;
- } else {
- if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
- // A will start a section that should be
- // ignored. Continue walking the list until we see a matching end
- // tag.
- var name = match.match(pr_tagNameRe)[2];
- var depth = 1;
- var j;
- end_tag_loop:
- for (j = i + 1; j < n; ++j) {
- var name2 = matches[j].match(pr_tagNameRe);
- if (name2 && name2[2] === name) {
- if (name2[1] === '/') {
- if (--depth === 0) { break end_tag_loop; }
- } else {
- ++depth;
- }
- }
- }
- if (j < n) {
- extractedTags.push(
- sourceBufLen, matches.slice(i, j + 1).join(''));
- i = j;
- } else { // Ignore unclosed sections.
- extractedTags.push(sourceBufLen, match);
- }
- } else {
- extractedTags.push(sourceBufLen, match);
- }
- }
- } else {
- var literalText = htmlToText(match);
- sourceBuf.push(literalText);
- sourceBufLen += literalText.length;
- }
- }
- }
- return { source: sourceBuf.join(''), tags: extractedTags };
- }
-
- /** True if the given tag contains a class attribute with the nocode class. */
- function isNoCodeTag(tag) {
- return !!tag
- // First canonicalize the representation of attributes
- .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
- ' $1="$2$3$4"')
- // Then look for the attribute we want.
- .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
- }
-
- /**
- * Apply the given language handler to sourceCode and add the resulting
- * decorations to out.
- * @param {number} basePos the index of sourceCode within the chunk of source
- * whose decorations are already present on out.
- */
- function appendDecorations(basePos, sourceCode, langHandler, out) {
- if (!sourceCode) { return; }
- var job = {
- source: sourceCode,
- basePos: basePos
- };
- langHandler(job);
- out.push.apply(out, job.decorations);
- }
-
- /** Given triples of [style, pattern, context] returns a lexing function,
- * The lexing function interprets the patterns to find token boundaries and
- * returns a decoration list of the form
- * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
- * where index_n is an index into the sourceCode, and style_n is a style
- * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
- * all characters in sourceCode[index_n-1:index_n].
- *
- * The stylePatterns is a list whose elements have the form
- * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
- *
- * Style is a style constant like PR_PLAIN, or can be a string of the
- * form 'lang-FOO', where FOO is a language extension describing the
- * language of the portion of the token in $1 after pattern executes.
- * E.g., if style is 'lang-lisp', and group 1 contains the text
- * '(hello (world))', then that portion of the token will be passed to the
- * registered lisp handler for formatting.
- * The text before and after group 1 will be restyled using this decorator
- * so decorators should take care that this doesn't result in infinite
- * recursion. For example, the HTML lexer rule for SCRIPT elements looks
- * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
- * '';
-
- $value = str_replace($matches[0][$i], $url, $value);
- }
-
- return $value;
- }
-}
\ No newline at end of file
diff --git a/usr/plugins/SimpleCode.php b/usr/plugins/SimpleCode.php
deleted file mode 100644
index 3b674812..00000000
--- a/usr/plugins/SimpleCode.php
+++ /dev/null
@@ -1,83 +0,0 @@
-contentEx = array('SimpleCode', 'parse');
- Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('SimpleCode', 'parse');
- Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('SimpleCode', 'parse');
- }
-
- /**
- * 禁用插件方法,如果禁用失败,直接抛出异常
- *
- * @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){}
-
- /**
- * 解析
- *
- * @access public
- * @param array $matches 解析值
- * @return string
- */
- public static function parseCallback($matches)
- {
- return highlight_string(trim($matches[2]), true);
- }
-
- /**
- * 插件实现方法
- *
- * @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>/is", array('SimpleCode', 'parseCallback'), $text);
- } else {
- return $text;
- }
- }
-}
diff --git a/usr/plugins/Textile2/Plugin.php b/usr/plugins/Textile2/Plugin.php
deleted file mode 100644
index 2e7dae7a..00000000
--- a/usr/plugins/Textile2/Plugin.php
+++ /dev/null
@@ -1,121 +0,0 @@
-PHP implementation of Brad Choate's Textile 2. It is feature compatible with the MovableType plugin. Does not play well with the Markdown, Textile, or Textile 2 plugins that ship with WordPress. Packaged by Adam Gessaman.
- *
- * @package Textile 2 (Improved)
- * @author Jim Riggs
- * @version 2.1.1
- * @dependence 9.9.2-*
- * @link http://jimandlissa.com/project/textilephp
- */
-
-require('Textile2/Textile.php');
-
-class Textile2_Plugin implements Typecho_Plugin_Interface
-{
- /**
- * 激活插件方法,如果激活失败,直接抛出异常
- *
- * @access public
- * @return void
- * @throws Typecho_Plugin_Exception
- */
- public static function activate()
- {
- Typecho_Plugin::factory('Widget_Abstract_Contents')->excerpt = array('Textile2_Plugin', 'parse');
- Typecho_Plugin::factory('Widget_Abstract_Contents')->content = array('Textile2_Plugin', 'parse');
- Typecho_Plugin::factory('Widget_Abstract_Comments')->content = array('Textile2_Plugin', 'parse');
- }
-
- /**
- * 禁用插件方法,如果禁用失败,直接抛出异常
- *
- * @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)
- {
- $version = new Typecho_Widget_Helper_Form_Element_Radio('version',
- array('MTTextile' => 'MTTextile - includes Brad Choates\' extensions.',
- 'Textile' => 'Textile for the Textile purist.'), 'MTTextile',
- 'Textile Flavor');
- $form->addInput($version->multiMode());
-
- $filters = new Typecho_Widget_Helper_Form_Element_Checkbox('filters',
- array('SmartyPants' => 'Apply SmartyPants (provides em and en dashes, and other typographic niceities)',
- 'EducateQuotes' => 'Apply Texturize (applies curly quotes)'),
- array('SmartyPants', 'EducateQuotes'), 'Text Filters');
- $form->addInput($filters->multiMode());
-
- $headerOffset = new Typecho_Widget_Helper_Form_Element_Select('headerOffset',
- array('0 (.h1 = .h1)', '1 (.h1 = .h2)', '2 (.h1 = .h3)', '3 (.h1 = .h4)', '4 (.h1 = .h5)', '5 (.h1 = .h6)'),
- 0, 'Header Offset');
- $form->addInput($headerOffset);
-
- $parsing = new Typecho_Widget_Helper_Form_Element_Checkbox('parsing',
- array('ClearLines' => 'Strip extra spaces from the end of each line.',
- 'PreserveSpaces' => 'Change double-spaces to the HTML entity for an em-space (&8195;).'),
- NULL, 'Parsing Options');
- $form->addInput($parsing->multiMode());
-
- $inputEncoding = new Typecho_Widget_Helper_Form_Element_Text('inputEncoding', NULL, Helper::options()->charset,
- _t('Input Character Encoding'));
- $inputEncoding->input->setAttribute('class', 'mini');
- $form->addInput($inputEncoding);
-
- $encoding = new Typecho_Widget_Helper_Form_Element_Text('encoding', NULL, Helper::options()->charset,
- _t('Output Character Encoding'));
- $encoding->input->setAttribute('class', 'mini');
- $form->addInput($encoding);
- }
-
- /**
- * 个人用户的配置面板
- *
- * @access public
- * @param Typecho_Widget_Helper_Form $form
- * @return void
- */
- public static function personalConfig(Typecho_Widget_Helper_Form $form){}
-
- /**
- * 插件实现方法
- *
- * @access public
- * @return void
- */
- public static function parse($text, $widget, $lastResult)
- {
- $text = empty($lastResult) ? $text : $lastResult;
-
- $settings = Helper::options()->plugin('Textile2');
-
- if ($settings->version == 'Textile') {
- $textile = new Textile;
- } else {
- $textile = new MTLikeTextile;
- }
-
- $textile->options['head_offset'] = $settings->headerOffset;
- $textile->options['char_encoding'] = $settings->encoding;
- $textile->options['input_encoding'] = $settings->inputEncoding;
-
- $textile->options['do_quotes'] = $settings->filters && in_array('EducateQuotes', $settings->filters);
- $textile->options['smarty_mode'] = $settings->filters && in_array('SmartyPants', $settings->filters);
- $textile->options['trim_spaces'] = $settings->parsing && in_array('ClearLines', $settings->parsing);
- $textile->options['preserve_spaces'] = $settings->parsing && in_array('PreserveSpaces', $settings->parsing);
-
- return $textile->process($text);
- }
-}
diff --git a/usr/plugins/Textile2/Textile.php b/usr/plugins/Textile2/Textile.php
deleted file mode 100644
index a99141e0..00000000
--- a/usr/plugins/Textile2/Textile.php
+++ /dev/null
@@ -1,4080 +0,0 @@
-arrays of replacement blocks
- * of text that are temporary removed from the input text to avoid
- * processing. Different functions use this replacement
- * functionality, and each shifts its own replacement array into
- * position 0 and removes it when finished. This avoids having
- * several replacement variables and/or functions clobbering
- * eachothers' replacement blocks.
- *
- * @private
- */
- var $repl = array();
-
- /**
- * The @c array containing temporary strings used in
- * replacement callbacks. *JHR*
- *
- * @private
- */
- var $tmp = array();
-
- /**
- * Instantiates a new Textile object. Optional options
- * can be passed to initialize the object. Attributes for the
- * options key are the same as the get/set method names
- * documented here.
- *
- * @param $options The @c array specifying the options to use for
- * this object.
- *
- * @public
- */
- function Textile($options = array()) {
- $this->options = $options;
- $this->options['filters'] = ($this->options['filters'] ? $this->options['filters'] : array());
- $this->options['charset'] = ($this->options['charset'] ? $this->options['charset'] : 'iso-8859-1');
- $this->options['char_encoding'] = (isset($this->options['char_encoding']) ? $this->options['char_encoding'] : 1);
- $this->options['do_quotes'] = (isset($this->options['do_quotes']) ? $this->options['do_quotes'] : 1);
- $this->options['trim_spaces'] = (isset($this->options['trim_spaces']) ? $this->options['trim_spaces'] : 0);
- $this->options['smarty_mode'] = (isset($this->options['smarty_mode']) ? $this->options['smarty_mode'] : 1);
- $this->options['preserve_spaces'] = (isset($this->options['preserve_spaces']) ? $this->options['preserve_spaaces'] : 0);
- $this->options['head_offset'] = (isset($this->options['head_offset']) ? $this->options['head_offset'] : 0);
-
- if (is_array($this->options['css'])) {
- $this->css($this->options['css']);
- }
- $this->options['macros'] = ($this->options['macros'] ? $this->options['macros'] : $this->default_macros());
- if (isset($this->options['flavor'])) {
- $this->flavor($this->options['flavor']);
- } else {
- $this->flavor('xhtml1/css');
- }
- $this->_create_re();
- } // function Textile
-
- // getter/setter methods...
-
- /**
- * Used to set Textile attributes. Attribute names are the same
- * as the get/set method names documented here.
- *
- * @param $opt A @c string specifying the name of the option to
- * change or an @c array specifying options and values.
- * @param $value The value for the provided option name.
- *
- * @public
- */
- function set($opt, $value = NULL) {
- if (is_array($opt)) {
- foreach ($opt as $opt => $value) {
- $this->set($opt, $value);
- }
- } else {
- // the following options have special set methods
- // that activate upon setting:
- if ($opt == 'charset') {
- $this->charset($value);
- } elseif ($opt == 'css') {
- $this->css($value);
- } elseif ($opt == 'flavor') {
- $this->flavor($value);
- } else {
- $this->options[$opt] = $value;
- }
- }
- } // function set
-
- /**
- * Used to get Textile attributes. Attribute names are the same
- * as the get/set method names documented here.
- *
- * @param $opt A @c string specifying the name of the option to get.
- *
- * @return The value for the provided option.
- *
- * @public
- */
- function get($opt) {
- return $this->options[$opt];
- } // function get
-
- /**
- * Gets or sets the "disable html" control, which allows you to
- * prevent HTML tags from being used within the text processed.
- * Any HTML tags encountered will be removed if disable html is
- * enabled. Default behavior is to allow HTML.
- *
- * @param $disable_html If provided, a @c bool indicating whether or
- * not this object should disable HTML.
- *
- * @return A true value if this object disables HTML; a false value
- * otherwise.
- *
- * @public
- */
- function disable_html($disable_html = NULL) {
- if ($disable_html != NULL) {
- $this->options['disable_html'] = $disable_html;
- }
- return ($this->options['disable_html'] ? $this->options['disable_html'] : 0);
- } // function disable_html
-
- /**
- * Gets or sets the relative heading offset, which allows you to
- * change the heading level used within the text processed. For
- * example, if the heading offset is '2' and the text contains an
- * 'h1' block, an \ block will be output.
- *
- * @param $head_offset If provided, an @c integer specifying the
- * heading offset for this object.
- *
- * @return An @c integer containing the heading offset for this
- * object.
- *
- * @public
- */
- function head_offset($head_offset = NULL) {
- if ($head_offset != NULL) {
- $this->options['head_offset'] = $head_offset;
- }
- return ($this->options['head_offset'] ? $this->options['head_offset'] : 0);
- } // function head_offset
-
- /**
- * Assigns the HTML flavor of output from Textile. Currently
- * these are the valid choices: html, xhtml (behaves like "xhtml1"),
- * xhtml1, xhtml2. Default flavor is "xhtml1".
- *
- * Note that the xhtml2 flavor support is experimental and incomplete
- * (and will remain that way until the XHTML 2.0 draft becomes a
- * proper recommendation).
- *
- * @param $flavor If provided, a @c string specifying the flavor to
- * be used for this object.
- *
- * @return A @c string containing the flavor for this object.
- *
- * @public
- */
- function flavor($flavor = NULL) {
- if ($flavor != NULL) {
- $this->options['flavor'] = $flavor;
- if (preg_match('/^xhtml(\d)?(\D|$)/', $flavor, $matches)) {
- if ($matches[1] == '2') {
- $this->options['_line_open'] = '';
- $this->options['_line_close'] = ' ';
- $this->options['_blockcode_open'] = '';
- $this->options['_blockcode_close'] = ' ';
- $this->options['css_mode'] = 1;
- } else {
- // xhtml 1.x
- $this->options['_line_open'] = '';
- $this->options['_line_close'] = '
';
- $this->options['_blockcode_open'] = '';
- $this->options['_blockcode_close'] = '
';
- $this->options['css_mode'] = 1;
- }
- } elseif (preg_match('/^html/', $flavor)) {
- $this->options['_line_open'] = '';
- $this->options['_line_close'] = '
';
- $this->options['_blockcode_open'] = '';
- $this->options['_blockcode_close'] = '
';
- $this->options['css_mode'] = preg_match('/\/css/', $flavor);
- }
- if ($this->options['css_mode'] && !isset($this->options['css'])) { $this->_css_defaults(); }
- }
- return $this->options['flavor'];
- } // function flavor
-
- /**
- * Gets or sets the css support for Textile. If css is enabled,
- * Textile will emit CSS rules. You may pass a 1 or 0 to enable
- * or disable CSS behavior altogether. If you pass an associative array,
- * you may assign the CSS class names that are used by
- * Textile. The following key names for such an array are
- * recognized:
- *
- *
- *
- *
- * @param $css If provided, either a @c bool indicating whether or
- * not this object should use css or an associative @c array
- * specifying class names to use.
- *
- * @return Either an associative @c array containing class names
- * used by this object, or a true or false value indicating
- * whether or not this object uses css.
- *
- * @public
- */
- function css($css = NULL) {
- if ($css != NULL) {
- if (is_array($css)) {
- $this->options['css'] = $css;
- $this->options['css_mode'] = 1;
- } else {
- $this->options['css_mode'] = $css;
- if ($this->options['css_mode'] && !isset($this->options['css'])) { $this->_css_defaults(); }
- }
- }
- return ($this->options['css_mode'] ? $this->options['css'] : 0);
- } // function css
-
- /**
- * Gets or sets the character set targetted for publication.
- * At this time, Textile only changes its behavior
- * if the 'utf-8' character set is assigned.
- *
- * Specifically, if utf-8 is requested, any special characters
- * created by Textile will be output as native utf-8 characters
- * rather than HTML entities.
- *
- * @param $charset If provided, a @c string specifying the
- * characater set to be used for this object.
- *
- * @return A @c string containing the character set for this object.
- *
- * @public
- */
- function charset($charset = NULL) {
- if ($charset != NULL) {
- $this->options['charset'] = $charset;
- if (preg_match('/^utf-?8$/i', $this->options['charset'])) {
- $this->char_encoding(0);
- } else {
- $this->char_encoding(1);
- }
- }
- return $this->options['charset'];
- } // function charset
-
- /**
- * Gets or sets the physical file path to root of document files.
- * This path is utilized when images are referenced and size
- * calculations are needed (the getimagesize() function is used to read
- * the image dimensions).
- *
- * @param $docroot If provided, a @c string specifying the document
- * root to use for this object.
- *
- * @return A @c string containing the docroot for this object.
- *
- * @public
- */
- function docroot($docroot = NULL) {
- if ($docroot != NULL) {
- $this->options['docroot'] = $docroot;
- }
- return $this->options['docroot'];
- } // function docroot
-
- /**
- * Gets or sets the 'trim spaces' control flag. If enabled, this
- * will clear any lines that have only spaces on them (the newline
- * itself will remain).
- *
- * @param $trim_spaces If provided, a @c bool indicating whether or
- * not this object should trim spaces.
- *
- * @return A true value if this object trims spaces; a false value
- * otherwise.
- *
- * @public
- */
- function trim_spaces($trim_spaces = NULL) {
- if ($trim_spaces != NULL) {
- $this->options['trim_spaces'] = $trim_spaces;
- }
- return $this->options['trim_spaces'];
- } // function trim_spaces
-
- /**
- * Gets or sets a parameter that is passed to filters.
- *
- * @param $filter_param If provided, a parameter that this object
- * should pass to filters.
- *
- * @return The parameter this object passes to filters.
- *
- * @public
- */
- function filter_param($filter_param = NULL) {
- if ($filter_param != NULL) {
- $this->options['filter_param'] = $filter_param;
- }
- return $this->options['filter_param'];
- } // function filter_param
-
- /**
- * Gets or sets the 'preserve spaces' control flag. If enabled, this
- * will replace any double spaces within the paragraph data with the
- * \  HTML entity (wide space). The default is 0. Spaces will
- * pass through to the browser unchanged and render as a single space.
- * Note that this setting has no effect on spaces within \,
- * \ blocks or \
-
-";
- }
-}
diff --git a/usr/plugins/TinyMCE/tiny_mce/langs.php b/usr/plugins/TinyMCE/tiny_mce/langs.php
deleted file mode 100644
index 3608524d..00000000
--- a/usr/plugins/TinyMCE/tiny_mce/langs.php
+++ /dev/null
@@ -1,391 +0,0 @@
-setContentType('text/javascript');
-?>
-
-tinyMCE.addI18n({typecho:{
-common:{
-edit_confirm:"",
-apply:"",
-insert:"",
-update:"",
-cancel:"",
-close:"",
-browse:"",
-class_name:"",
-not_set:"",
-clipboard_msg:"",
-clipboard_no_support:"",
-popup_blocked:"",
-invalid_data:"",
-more_colors:""
-},
-contextmenu:{
-align:"",
-left:"",
-center:"",
-right:"",
-full:""
-},
-insertdatetime:{
-date_fmt:"",
-time_fmt:"",
-insertdate_desc:"",
-inserttime_desc:"",
-months_long:"",
-months_short:"",
-day_long:"",
-day_short:""
-},
-print:{
-print_desc:""
-},
-preview:{
-preview_desc:""
-},
-directionality:{
-ltr_desc:"",
-rtl_desc:""
-},
-layer:{
-insertlayer_desc:"",
-forward_desc:"",
-backward_desc:"",
-absolute_desc:"",
-content:""
-},
-save:{
-save_desc:"",
-cancel_desc:""
-},
-nonbreaking:{
-nonbreaking_desc:""
-},
-iespell:{
-iespell_desc:"",
-download:""
-},
-advhr:{
-advhr_desc:""
-},
-emotions:{
-emotions_desc:""
-},
-searchreplace:{
-search_desc:"",
-replace_desc:""
-},
-advimage:{
-image_desc:""
-},
-advlink:{
-link_desc:""
-},
-xhtmlxtras:{
-cite_desc:"",
-abbr_desc:"",
-acronym_desc:"",
-del_desc:"",
-ins_desc:"",
-attribs_desc:""
-},
-style:{
-desc:""
-},
-paste:{
-paste_text_desc:"",
-paste_word_desc:"",
-selectall_desc:""
-},
-paste_dlg:{
-text_title:"",
-text_linebreaks:"",
-word_title:""
-},
-table:{
-desc:"",
-row_before_desc:"",
-row_after_desc:"",
-delete_row_desc:"",
-col_before_desc:"",
-col_after_desc:"",
-delete_col_desc:"",
-split_cells_desc:"",
-merge_cells_desc:"",
-row_desc:"",
-cell_desc:"",
-props_desc:"",
-paste_row_before_desc:"",
-paste_row_after_desc:"",
-cut_row_desc:"",
-copy_row_desc:"",
-del:"",
-row:"",
-col:"",
-cell:""
-},
-autosave:{
-unload_msg:""
-},
-fullscreen:{
-desc:""
-},
-media:{
-desc:"",
-edit:""
-},
-fullpage:{
-desc:""
-},
-template:{
-desc:""
-},
-visualchars:{
-desc:""
-},
-spellchecker:{
-desc:"",
-menu:"",
-ignore_word:"",
-ignore_words:"",
-langs:"",
-wait:"",
-sug:"",
-no_sug:"",
-no_mpell:""
-},
-morebreak:{
-desc:""
-}}});
-
-tinyMCE.addI18n('typecho.advanced',{
-style_select:"",
-font_size:"",
-fontdefault:"",
-block:"",
-paragraph:"",
-div:"",
-address:"",
-pre:"",
-h1:"",
-h2:"",
-h3:"",
-h4:"",
-h5:"",
-h6:"",
-blockquote:"",
-code:"",
-samp:"",
-dt:"",
-dd:"",
-bold_desc:"",
-italic_desc:"",
-underline_desc:"",
-striketrough_desc:"",
-justifyleft_desc:"",
-justifycenter_desc:"",
-justifyright_desc:"",
-justifyfull_desc:"",
-bullist_desc:"",
-numlist_desc:"",
-outdent_desc:"",
-indent_desc:"",
-undo_desc:"",
-redo_desc:"",
-link_desc:"",
-unlink_desc:"",
-image_desc:"",
-cleanup_desc:"",
-code_desc:"",
-sub_desc:"",
-sup_desc:"",
-hr_desc:"",
-removeformat_desc:"",
-custom1_desc:"",
-forecolor_desc:"",
-backcolor_desc:"",
-charmap_desc:"",
-visualaid_desc:"",
-anchor_desc:"",
-cut_desc:"",
-copy_desc:"",
-paste_desc:"",
-image_props_desc:"",
-newdocument_desc:"",
-help_desc:"",
-blockquote_desc:"",
-clipboard_msg:"",
-path:"",
-newdocument:"",
-toolbar_focus:"",
-more_colors:"",
-
-colorpicker_delta_height: 30,
-image_delta_height: 30,
-link_delta_height: -20,
-link_delta_width: 10
-});
-
-tinyMCE.addI18n('typecho.advanced_dlg',{
-about_title:"",
-about_general:"",
-about_help:"",
-about_license:"",
-about_plugins:"",
-about_plugin:"",
-about_author:"",
-about_version:"",
-about_loaded:"",
-anchor_title:"",
-anchor_name:"",
-code_title:"",
-code_wordwrap:"",
-colorpicker_title:"",
-colorpicker_picker_tab:"",
-colorpicker_picker_title:"",
-colorpicker_palette_tab:"",
-colorpicker_palette_title:"",
-colorpicker_named_tab:"",
-colorpicker_named_title:"",
-colorpicker_color:"",
-colorpicker_name:"",
-charmap_title:"",
-image_title:"",
-image_src:"",
-image_alt:"",
-image_list:"",
-image_border:"",
-image_dimensions:"",
-image_vspace:"",
-image_hspace:"",
-image_align:"",
-image_align_baseline:"",
-image_align_top:"",
-image_align_middle:"",
-image_align_bottom:"",
-image_align_texttop:"",
-image_align_textbottom:"",
-image_align_left:"",
-image_align_right:"",
-link_title:"",
-link_url:"",
-link_target:"",
-link_target_same:"",
-link_target_blank:"",
-link_titlefield:"",
-link_is_email:"",
-link_is_external:"",
-link_list:""
-});
-
-tinyMCE.addI18n('typecho.media_dlg',{
-title:"",
-general:"",
-advanced:"",
-file:"",
-list:"",
-size:"",
-preview:"",
-constrain_proportions:"",
-type:"",
-id:"",
-name:"",
-class_name:"",
-vspace:"",
-hspace:"",
-play:"",
-loop:"",
-menu:"",
-quality:"",
-scale:"",
-align:"",
-salign:"",
-wmode:"",
-bgcolor:"",
-base:"",
-flashvars:"",
-liveconnect:"",
-autohref:"",
-cache:"",
-hidden:"",
-controller:"",
-kioskmode:"",
-playeveryframe:"",
-targetcache:"",
-correction:"",
-enablejavascript:"",
-starttime:"",
-endtime:"",
-href:"",
-qtsrcchokespeed:"",
-target:"",
-volume:"",
-autostart:"",
-enabled:"",
-fullscreen:"",
-invokeurls:"",
-mute:"",
-stretchtofit:"",
-windowlessvideo:"",
-balance:"",
-baseurl:"",
-captioningid:"",
-currentmarker:"",
-currentposition:"",
-defaultframe:"",
-playcount:"",
-rate:"",
-uimode:"",
-flash_options:"",
-qt_options:"",
-wmp_options:"",
-rmp_options:"",
-shockwave_options:"",
-autogotourl:"",
-center:"",
-imagestatus:"",
-maintainaspect:"",
-nojava:"",
-prefetch:"",
-shuffle:"",
-console:"",
-numloop:"",
-controls:"",
-scriptcallbacks:"",
-swstretchstyle:"",
-swstretchhalign:"",
-swstretchvalign:"",
-sound:"",
-progress:"",
-qtsrc:"",
-qt_stream_warn:"",
-align_top:"",
-align_right:"",
-align_bottom:"",
-align_left:"",
-align_center:"",
-align_top_left:"",
-align_top_right:"",
-align_bottom_left:"",
-align_bottom_right:"",
-flv_options:"",
-flv_scalemode:"",
-flv_buffer:"",
-flv_startimage:"",
-flv_starttime:"",
-flv_defaultvolume:"",
-flv_hiddengui:"",
-flv_autostart:"",
-flv_loop:"",
-flv_showscalemodes:"",
-flv_smoothvideo:"",
-flv_jscallback:""
-});
-
-/** offset */
-tinyMCE.addI18n('typecho.media',{
- delta_height:40
-});
diff --git a/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js b/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js
deleted file mode 100644
index ad52ac3f..00000000
--- a/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js
+++ /dev/null
@@ -1 +0,0 @@
-/** nothing to do, just sleep...Zzz... */
diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js
deleted file mode 100644
index 0a87a707..00000000
--- a/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
- *
- * @author Moxiecode
- * @copyright Copyright 2004-2008, Moxiecode Systems AB, All rights reserved.
- */
-
-(function() {
- tinymce.create('tinymce.plugins.CoderPlugin', {
- init : function(ed, url) {
-
- ed.onClick.add(function(ed, e) {
- e = e.target;
-
- if (e.nodeName === 'CODE' || e.nodeName === 'PRE' || e.className.indexOf("typecho-plugin") >= 0)
- ed.selection.select(e);
- });
-
-
- ed.onBeforeSetContent.add(function(ed, o) {
-
- var _replace = function (g, a, b, c) {
-
- c = c.trim().replace(/( |<|>|\r\n|\r|\n)/g, function (e) {
-
- switch (e) {
-
- case "<":
- return "<";
-
- case ">":
- return ">";
-
- case "\r\n":
- case "\r":
- case "\n":
- return '
';
-
- case " ":
- return ' ';
-
- default:
- return;
-
- }
-
- });
-
- return '<' + a + b + '>' + c + '' + a + '>';
- };
-
- o.content = o.content.replace(/<(code)([^>]*)>([\s\S]*?)<\/(code)>/ig, _replace);
- o.content = o.content.replace(/<(pre)([^>]*)>([\s\S]*?)<\/(pre)>/ig, _replace);
- });
-
- /*
- ed.onPostProcess.add(function(ed, o) {
- if (o.get) {
- o.content = o.content.replace(/