├── README.md ├── assets ├── css │ └── mdocs.css ├── geshi.mdocs.php ├── geshi.php ├── geshi │ ├── abap.php │ ├── actionscript.php │ ├── actionscript3.php │ ├── ada.php │ ├── apache.php │ ├── applescript.php │ ├── apt_sources.php │ ├── asm.php │ ├── asp.php │ ├── autoit.php │ ├── avisynth.php │ ├── bash.php │ ├── basic4gl.php │ ├── bf.php │ ├── blitzbasic.php │ ├── bnf.php │ ├── boo.php │ ├── c.php │ ├── c_mac.php │ ├── caddcl.php │ ├── cadlisp.php │ ├── cfdg.php │ ├── cfm.php │ ├── cil.php │ ├── cobol.php │ ├── cpp-qt.php │ ├── cpp.php │ ├── csharp.php │ ├── css.php │ ├── d.php │ ├── delphi.php │ ├── diff.php │ ├── div.php │ ├── dos.php │ ├── dot.php │ ├── eiffel.php │ ├── email.php │ ├── fortran.php │ ├── freebasic.php │ ├── genero.php │ ├── gettext.php │ ├── glsl.php │ ├── gml.php │ ├── gnuplot.php │ ├── groovy.php │ ├── haskell.php │ ├── hq9plus.php │ ├── html.php │ ├── html4strict.php │ ├── idl.php │ ├── ini.php │ ├── inno.php │ ├── intercal.php │ ├── io.php │ ├── java.php │ ├── java5.php │ ├── javascript.php │ ├── kixtart.php │ ├── klonec.php │ ├── klonecpp.php │ ├── latex.php │ ├── lisp.php │ ├── lolcode.php │ ├── lotusformulas.php │ ├── lotusscript.php │ ├── lscript.php │ ├── lua.php │ ├── m68k.php │ ├── make.php │ ├── matlab.php │ ├── mirc.php │ ├── mpasm.php │ ├── mxml.php │ ├── mysql.php │ ├── nsis.php │ ├── objc.php │ ├── ocaml-brief.php │ ├── ocaml.php │ ├── oobas.php │ ├── oracle11.php │ ├── oracle8.php │ ├── pascal.php │ ├── per.php │ ├── perl.php │ ├── php-brief.php │ ├── php.php │ ├── pic16.php │ ├── pixelbender.php │ ├── plsql.php │ ├── povray.php │ ├── powershell.php │ ├── progress.php │ ├── prolog.php │ ├── providex.php │ ├── python.php │ ├── qbasic.php │ ├── rails.php │ ├── reg.php │ ├── robots.php │ ├── ruby.php │ ├── sas.php │ ├── scala.php │ ├── scheme.php │ ├── scilab.php │ ├── sdlbasic.php │ ├── smalltalk.php │ ├── smarty.php │ ├── sql.php │ ├── tcl.php │ ├── teraterm.php │ ├── text.php │ ├── thinbasic.php │ ├── tsql.php │ ├── typoscript.php │ ├── vb.php │ ├── vbnet.php │ ├── verilog.php │ ├── vhdl.php │ ├── vim.php │ ├── visualfoxpro.php │ ├── visualprolog.php │ ├── whitespace.php │ ├── winbatch.php │ ├── xml.php │ ├── xorg_conf.php │ ├── xpp.php │ └── z80.php ├── images │ └── ajax-loader.gif ├── js │ ├── jquery-1.6.4.min.js │ ├── jquery.address-1.4.min.js │ ├── jquery.floating-widget-0.9.1.js │ ├── jquery.smooth-scroll-1.4.min.js │ └── main.js ├── json.php ├── markdown.mdocs.php ├── markdown.php ├── menu.php └── toc.php ├── docs ├── Class │ ├── Class.Extras.md │ └── Class.md ├── Core │ ├── Browser.md │ └── Core.md ├── Element │ ├── Element.Dimensions.md │ ├── Element.Event.md │ ├── Element.Style.md │ └── Element.md ├── Fx │ ├── Fx.CSS.md │ ├── Fx.Morph.md │ ├── Fx.Transitions.md │ ├── Fx.Tween.md │ └── Fx.md ├── Native │ ├── Array.md │ ├── Event.md │ ├── Function.md │ ├── Hash.md │ ├── Number.md │ └── String.md ├── Request │ ├── Request.HTML.md │ ├── Request.JSON.md │ └── Request.md └── Utilities │ ├── Cookie.md │ ├── DomReady.md │ ├── JSON.md │ ├── Selectors.md │ └── Swiff.md ├── github.php ├── index.php ├── licenses ├── docs.md ├── geshi.md └── markdown.md └── mdocs.php /README.md: -------------------------------------------------------------------------------- 1 | ![mDocs Markdown Powered Documentation](http://dev.d3done.com/mdocs-logo.png) 2 | 3 | 4 | mDocs takes Markdown files and turns them into a full website, on the fly, using only PHP. 5 | This project is very young, so any feedback or suggestions are welcome. Just send me an e-mail @ jay [at] myd3 [dot] com. 6 | 7 | ## Demo: 8 | 9 | 10 | ## Requirements: 11 | 12 | * PHP 5.2+ -------------------------------------------------------------------------------- /assets/css/mdocs.css: -------------------------------------------------------------------------------- 1 | /* ----------------------------------------------------------------------- 2 | 3 | mDocs - MooTools Style 4 | 5 | This style is based off of the MooTools documentation style: 6 | Copyright (c) 2006-2008 Valerio Proietti, http://mad4milk.net. 7 | 8 | Additional code was based off of the MooDocs style: 9 | Copyright (c) 2009 Jose Prado, http://pradador.com. 10 | 11 | And lastly, I, Jay Williams, modified the styles for relative 12 | width and intergrated it with mDocs. 13 | 14 | ----------------------------------------------------------------------- */ 15 | 16 | 17 | body { 18 | background-color: #F4F5F5; 19 | color: #313334; 20 | font-family: Helvetica, Arial, sans-serif; 21 | font-size: 75%; 22 | line-height: 1.5; 23 | margin: 0; 24 | padding: 0; 25 | } 26 | 27 | /* @group Main */ 28 | 29 | a:link, a:visited { 30 | color: #6b7b95; 31 | } 32 | 33 | a:hover, a:active { 34 | color: #e79d35; 35 | } 36 | 37 | a.selected:link, a.selected:visited { 38 | color: #222; 39 | } 40 | 41 | em { 42 | font-style: normal; 43 | color: #686c70; 44 | } 45 | 46 | p { 47 | font-size: 1.2em; 48 | } 49 | 50 | pre { 51 | background: #fff; 52 | border-top: 1px solid #eee; 53 | border-bottom: 1px solid #eee; 54 | padding: 5px 7px; 55 | overflow: auto; 56 | font-size: 12px; 57 | } 58 | 59 | pre, code, tt { 60 | line-height: 1.5; 61 | font-family: 'andale mono', 'lucida console', monospace; 62 | } 63 | 64 | ul, ol { 65 | margin: 0 1.5em 1.5em 1.5em; 66 | padding: 0; 67 | font-size: 1.03em; 68 | } 69 | 70 | ul { 71 | list-style-type: square; 72 | } 73 | 74 | #container { 75 | position: relative; 76 | background-color: #F4F5F5; 77 | margin: 0px auto; 78 | padding-top: 36px; 79 | /*width: 950px;*/ 80 | min-width: 850px; 81 | max-width: 1200px; 82 | } 83 | 84 | 85 | 86 | /* @end */ 87 | 88 | /* @group DocDecoration */ 89 | .document-decoration { 90 | color: #BFBFBF; 91 | font-family: serif; 92 | font-style: italic; 93 | font-weight: bold; 94 | font-size: 30px; 95 | } 96 | .documetn-decoration.pound {} 97 | 98 | /* @end */ 99 | 100 | /* @group Aside */ 101 | aside#aside-right { 102 | float: left; max-width: 193px; 103 | } 104 | 105 | /* @end */ 106 | 107 | /* @group Menu */ 108 | 109 | #menu { 110 | float: left; 111 | /*width: 150px;*/ 112 | width: 15%; 113 | margin-right: 10px; 114 | font-size: 1.1em; 115 | padding: 0 10px; 116 | } 117 | 118 | #menu a, #toc a { 119 | display: block; 120 | } 121 | 122 | #menu ul { 123 | padding: 0; 124 | margin: 0; 125 | } 126 | #menu li { 127 | list-style: none; 128 | } 129 | 130 | #menu p, #menu li { 131 | text-align: right; 132 | } 133 | 134 | #menu h4 { 135 | border-bottom: 1px solid #ddd; 136 | font-weight: bold; 137 | font-size: 1.2em; 138 | margin: 10px 0; 139 | padding-bottom: 2px; 140 | } 141 | 142 | 143 | 144 | /* @end */ 145 | 146 | 147 | /* @group Doc */ 148 | 149 | #doc { 150 | float: left; 151 | /*width: 590px;*/ 152 | width: 61%; 153 | padding: 0 24px 0 25px; 154 | margin: 0 0 3em 0; 155 | border-left: 1px solid rgb(221, 221, 221); 156 | border-right: 1px solid rgb(221, 221, 221); 157 | } 158 | 159 | h1, h2, h3, h4, h5, h6 { 160 | color: #313334; 161 | font-weight: bold; 162 | margin-bottom: .5em; 163 | margin-top: .5em; 164 | } 165 | 166 | #doc h1 { 167 | margin: 0 0 15px 0; 168 | padding: 0 0 9px 0; 169 | font-size: 2.5em; 170 | color: #c17878; 171 | text-decoration: none; 172 | } 173 | 174 | #doc h2 { 175 | color: #78ba91; 176 | text-decoration: none; 177 | font-size: 2em; 178 | margin-bottom: 0.75em; 179 | } 180 | 181 | #doc h1, #doc h2 { 182 | border-bottom: 1px solid #ddd; 183 | } 184 | 185 | h1 a:link, h1 a:visited { 186 | color: #c17878; 187 | text-decoration: none; 188 | } 189 | 190 | h2 a:link, h2 a:visited { 191 | color: #78ba91; 192 | text-decoration: none; 193 | } 194 | 195 | #doc h3 { 196 | font-size: 1.5em; 197 | } 198 | 199 | 200 | #doc h4 { 201 | font-size: 1.2em; 202 | } 203 | 204 | #doc h5 { 205 | font-size: 1em; 206 | } 207 | 208 | 209 | 210 | /* @end */ 211 | 212 | /* @group geshi */ 213 | 214 | .kw1 { 215 | color: #1b609a; 216 | } 217 | 218 | .kw2 { 219 | color: #9a6f1b; 220 | } 221 | 222 | .me1 { 223 | color: #666; 224 | } 225 | 226 | .kw3, .re0, .sc1 { 227 | color: #784e0c; 228 | } 229 | 230 | .br0 { 231 | color: #444; 232 | } 233 | 234 | .st0 { 235 | color: #489a1b; 236 | } 237 | 238 | .co1, .coMULTI { 239 | color: #888; 240 | } 241 | 242 | .nu0 { 243 | color: #70483d; 244 | } 245 | 246 | /* @end */ 247 | 248 | /* @group TOC */ 249 | 250 | #toc h4 { 251 | padding: 10px 0; 252 | margin: 0; 253 | font-weight: bold; 254 | font-size: 1.2em; 255 | height: 1.25em; 256 | line-height: 1.25; 257 | color: rgb(49, 51, 52); 258 | } 259 | 260 | #toc p, #toc div{ 261 | padding: 0; 262 | margin: 0; 263 | } 264 | 265 | 266 | #toc { padding: 0 25px;} 267 | #toc.floating { position: fixed; top: 0; } 268 | #toc.pinned-bottom { position: absolute; bottom: 0; background-color: orange; _position: static; } 269 | 270 | /* @end */ 271 | 272 | /* @group DOC & TOC Loading */ 273 | 274 | #doc.loading,#toc.loading { 275 | background: url('../images/ajax-loader.gif') no-repeat 8px 0; 276 | } 277 | #doc.loading:before , #toc.loading:before { 278 | color: #BFBFBF; 279 | font-weight: bold; 280 | content: 'Loading...'; 281 | } 282 | /* @end */ 283 | 284 | /* @group Footer */ 285 | 286 | #footer { 287 | clear: both; 288 | margin-top: 30px; 289 | text-align: right; 290 | color:#666; 291 | margin-bottom: 3em; 292 | } 293 | 294 | 295 | 296 | /* @end */ -------------------------------------------------------------------------------- /assets/geshi.mdocs.php: -------------------------------------------------------------------------------- 1 | wrapper. 11 | */ 12 | class GeSHi_mDocs extends GeSHi 13 | { 14 | /** 15 | * The default language to use, if one isn't 16 | * specified manually in the code block. 17 | * 18 | * @var string 19 | */ 20 | var $default_language = 'javascript'; 21 | 22 | function __construct($source = '', $language = '', $path = '') 23 | { 24 | if (empty($language)) 25 | $language = $this->default_language; 26 | else 27 | $this->default_language = $language; 28 | 29 | $this->GeSHi($source,$language,$path); 30 | 31 | $this->enable_classes(); 32 | $this->set_overall_style(''); 33 | $this->enable_keyword_links(false); 34 | } 35 | 36 | 37 | function parse_codeblocks($input) 38 | { 39 | $regex = '/(.*)<\/code><\/pre>/sU'; 40 | 41 | $input = & html_entity_decode($input); 42 | 43 | $input = preg_replace_callback($regex, array(&$this, '_parse_codeblocks_match'), $input); 44 | 45 | return $input; 46 | 47 | } 48 | 49 | private function _parse_codeblocks_match($match) 50 | { 51 | $source = trim($match[4]); 52 | $language = ($match[2]=='class' && !empty($match[3]))? $match[3] : $this->default_language; 53 | 54 | $this->set_source($source); 55 | $this->set_language($language); 56 | 57 | return $this->parse_code(); 58 | } 59 | } 60 | 61 | 62 | ?> -------------------------------------------------------------------------------- /assets/geshi/abap.php: -------------------------------------------------------------------------------- 1 | 'ABAP', 42 | 'COMMENT_SINGLE' => array(1 => '"', 2 => '*'), 43 | 'COMMENT_MULTI' => array(), 44 | 'CASE_KEYWORDS' => 0, 45 | 'QUOTEMARKS' => array("'"), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | 1 => array( 49 | 'if', 'return', 'while', 'case', 'default', 50 | 'do', 'else', 'for', 'endif', 'elseif', 'eq', 51 | 'not', 'and' 52 | ), 53 | 2 => array( 54 | 'data', 'types', 'seletion-screen', 'parameters', 'field-symbols', 'extern', 'inline' 55 | ), 56 | 3 => array( 57 | 'report', 'write', 'append', 'select', 'endselect', 'call method', 'call function', 58 | 'loop', 'endloop', 'raise', 'read table', 'concatenate', 'split', 'shift', 59 | 'condense', 'describe', 'clear', 'endfunction', 'assign', 'create data', 'translate', 60 | 'continue', 'start-of-selection', 'at selection-screen', 'modify', 'call screen', 61 | 'create object', 'perform', 'form', 'endform', 62 | 'reuse_alv_block_list_init', 'zbcialv', 'include' 63 | ), 64 | 4 => array( 65 | 'type ref to', 'type', 'begin of', 'end of', 'like', 'into', 66 | 'from', 'where', 'order by', 'with key', 'string', 'separated by', 67 | 'exporting', 'importing', 'to upper case', 'to', 'exceptions', 'tables', 68 | 'using', 'changing' 69 | ), 70 | ), 71 | 'SYMBOLS' => array( 72 | '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':' 73 | ), 74 | 'CASE_SENSITIVE' => array( 75 | GESHI_COMMENTS => false, 76 | 1 => false, 77 | 2 => false, 78 | 3 => false, 79 | 4 => false, 80 | ), 81 | 'STYLES' => array( 82 | 'KEYWORDS' => array( 83 | 1 => 'color: #b1b100;', 84 | 2 => 'color: #000000; font-weight: bold;', 85 | 3 => 'color: #000066;', 86 | 4 => 'color: #993333;' 87 | ), 88 | 'COMMENTS' => array( 89 | 1 => 'color: #808080; font-style: italic;', 90 | 2 => 'color: #339933;', 91 | 'MULTI' => 'color: #808080; font-style: italic;' 92 | ), 93 | 'ESCAPE_CHAR' => array( 94 | 0 => 'color: #000099; font-weight: bold;' 95 | ), 96 | 'BRACKETS' => array( 97 | 0 => 'color: #66cc66;' 98 | ), 99 | 'STRINGS' => array( 100 | 0 => 'color: #ff0000;' 101 | ), 102 | 'NUMBERS' => array( 103 | 0 => 'color: #cc66cc;' 104 | ), 105 | 'METHODS' => array( 106 | 1 => 'color: #202020;', 107 | 2 => 'color: #202020;' 108 | ), 109 | 'SYMBOLS' => array( 110 | 0 => 'color: #66cc66;' 111 | ), 112 | 'REGEXPS' => array( 113 | ), 114 | 'SCRIPT' => array( 115 | ) 116 | ), 117 | 'URLS' => array( 118 | 1 => '', 119 | 2 => '', 120 | 3 => 'http://sap4.com/wiki/index.php?title={FNAMEL}', 121 | 4 => '' 122 | ), 123 | 'OOLANG' => true, 124 | 'OBJECT_SPLITTERS' => array( 125 | 1 => '.', 126 | 2 => '::' 127 | ), 128 | 'REGEXPS' => array( 129 | ), 130 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 131 | 'SCRIPT_DELIMITERS' => array( 132 | ), 133 | 'HIGHLIGHT_STRICT_BLOCK' => array( 134 | ) 135 | ); 136 | 137 | ?> 138 | -------------------------------------------------------------------------------- /assets/geshi/ada.php: -------------------------------------------------------------------------------- 1 | 'Ada', 48 | 'COMMENT_SINGLE' => array(1 => '--'), 49 | 'COMMENT_MULTI' => array('/*' => '*/'), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array('"'), 52 | 'ESCAPE_CHAR' => '\\', 53 | 'KEYWORDS' => array( 54 | 1 => array( 55 | 'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if', 56 | 'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until', 57 | 'goto', 'return' 58 | ), 59 | 2 => array( 60 | 'abs', 'and', 'mod', 'not', 'or', 'rem', 'xor' 61 | ), 62 | 3 => array( 63 | 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', 'at', 'body', 64 | 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', 65 | 'function', 'generic', 'in', 'limited', 'new', 'null', 'of', 'others', 'out', 'package', 'pragma', 66 | 'private', 'procedure', 'protected', 'raise', 'range', 'record', 'renames', 'requeue', 'reverse', 67 | 'separate', 'subtype', 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' 68 | ) 69 | ), 70 | 'SYMBOLS' => array( 71 | '(', ')' 72 | ), 73 | 'CASE_SENSITIVE' => array( 74 | GESHI_COMMENTS => false, 75 | 1 => false, 76 | 2 => false, 77 | 3 => false, 78 | ), 79 | 'STYLES' => array( 80 | 'KEYWORDS' => array( 81 | 1 => 'color: #00007f;', 82 | 2 => 'color: #0000ff;', 83 | 3 => 'color: #46aa03; font-weight:bold;', 84 | ), 85 | 'BRACKETS' => array( 86 | 0 => 'color: #66cc66;' 87 | ), 88 | 'COMMENTS' => array( 89 | 1 => 'color: #adadad; font-style: italic;', 90 | 'MULTI' => 'color: #808080; font-style: italic;' 91 | ), 92 | 'ESCAPE_CHAR' => array( 93 | 0 => 'color: #000099; font-weight: bold;' 94 | ), 95 | 'BRACKETS' => array( 96 | 0 => 'color: #66cc66;' 97 | ), 98 | 'STRINGS' => array( 99 | 0 => 'color: #7f007f;' 100 | ), 101 | 'NUMBERS' => array( 102 | 0 => 'color: #ff0000;' 103 | ), 104 | 'METHODS' => array( 105 | 1 => 'color: #202020;' 106 | ), 107 | 'SYMBOLS' => array( 108 | 0 => 'color: #66cc66;' 109 | ), 110 | 'REGEXPS' => array( 111 | ), 112 | 'SCRIPT' => array( 113 | ) 114 | ), 115 | 'URLS' => array( 116 | 1 => '', 117 | 2 => '', 118 | 3 => '' 119 | ), 120 | 'OOLANG' => true, 121 | 'OBJECT_SPLITTERS' => array( 122 | 1 => '.' 123 | ), 124 | 'REGEXPS' => array( 125 | ), 126 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 127 | 'SCRIPT_DELIMITERS' => array( 128 | ), 129 | 'HIGHLIGHT_STRICT_BLOCK' => array( 130 | ) 131 | ); 132 | 133 | ?> 134 | -------------------------------------------------------------------------------- /assets/geshi/apt_sources.php: -------------------------------------------------------------------------------- 1 | 'Apt sources', 39 | 'COMMENT_SINGLE' => array(1 => '#'), 40 | 'COMMENT_MULTI' => array(), 41 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 42 | 'QUOTEMARKS' => array(), 43 | 'ESCAPE_CHAR' => '\\', 44 | 'KEYWORDS' => array( 45 | /*keywords*/ 46 | 1 => array( 47 | 'deb-src', 'deb' 48 | ), 49 | 2 => array( 50 | //Generic 51 | 'stable', 'old-stable', 'testing', 'testing-proposed-updates', 52 | 'unstable', 'unstable-proposed-updates', 'experimental', 53 | 'non-US', 'security', 'volatile', 'volatile-sloppy', 54 | 'apt-build', 55 | 'stable/updates', 56 | //Debian 57 | 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge', 58 | 'etch', 'lenny', 'sid', 59 | //Ubuntu 60 | 'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports', 61 | 'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports', 62 | 'breezy', 'breezy-updates', 'breezy-security', 'breezy-proposed', 'breezy-backports', 63 | 'dapper', 'dapper-updates', 'dapper-security', 'dapper-proposed', 'dapper-backports', 64 | 'edgy', 'edgy-updates', 'edgy-security', 'edgy-proposed', 'edgy-backports', 65 | 'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports', 66 | 'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports', 67 | 'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports', 68 | 'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports' 69 | ), 70 | 3 => array( 71 | 'main', 'restricted', 'preview', 'contrib', 'non-free', 72 | 'commercial', 'universe', 'multiverse' 73 | ) 74 | ), 75 | 'REGEXPS' => array( 76 | 0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)", 77 | ), 78 | 'SYMBOLS' => array( 79 | ), 80 | 'CASE_SENSITIVE' => array( 81 | GESHI_COMMENTS => false, 82 | 1 => false, 83 | 2 => true, 84 | 3 => true 85 | ), 86 | 'STYLES' => array( 87 | 'KEYWORDS' => array( 88 | 1 => 'color: #00007f;', 89 | 2 => 'color: #b1b100;', 90 | 3 => 'color: #b16000;' 91 | ), 92 | 'COMMENTS' => array( 93 | 1 => 'color: #adadad; font-style: italic;', 94 | ), 95 | 'ESCAPE_CHAR' => array( 96 | ), 97 | 'BRACKETS' => array( 98 | ), 99 | 'STRINGS' => array( 100 | ), 101 | 'NUMBERS' => array( 102 | ), 103 | 'METHODS' => array( 104 | ), 105 | 'SYMBOLS' => array( 106 | ), 107 | 'REGEXPS' => array( 108 | 0 => 'color: #009900;', 109 | ), 110 | 'SCRIPT' => array( 111 | ) 112 | ), 113 | 'URLS' => array( 114 | 1 => '', 115 | 2 => '', 116 | 3 => '' 117 | ), 118 | 'OOLANG' => false, 119 | 'OBJECT_SPLITTERS' => array( 120 | ), 121 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 122 | 'SCRIPT_DELIMITERS' => array( 123 | ), 124 | 'HIGHLIGHT_STRICT_BLOCK' => array( 125 | ), 126 | 'PARSER_CONTROL' => array( 127 | 'ENABLE_FLAGS' => array( 128 | 'NUMBERS' => GESHI_NEVER, 129 | 'METHODS' => GESHI_NEVER, 130 | 'SCRIPT' => GESHI_NEVER, 131 | 'SYMBOLS' => GESHI_NEVER, 132 | 'ESCAPE_CHAR' => GESHI_NEVER, 133 | 'BRACKETS' => GESHI_NEVER, 134 | 'STRINGS' => GESHI_NEVER, 135 | ), 136 | 'KEYWORDS' => array( 137 | 'DISALLOWED_BEFORE' => '(?|^\/])', 138 | 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])' 139 | ) 140 | ), 141 | 'TAB_WIDTH' => 4 142 | ); 143 | 144 | ?> 145 | -------------------------------------------------------------------------------- /assets/geshi/bf.php: -------------------------------------------------------------------------------- 1 | 'Brainfuck', 41 | 'COMMENT_SINGLE' => array(), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array(1 => '/[^\n+\-<>\[\]\.\,Y]+/s'), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 45 | 'QUOTEMARKS' => array(), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | ), 49 | 'SYMBOLS' => array( 50 | 0 => array('+', '-'), 51 | 1 => array('[', ']'), 52 | 2 => array('<', '>'), 53 | 3 => array('.', ','), 54 | 4 => array('Y') //Brainfork Extension ;-) 55 | ), 56 | 'CASE_SENSITIVE' => array( 57 | GESHI_COMMENTS => false, 58 | ), 59 | 'STYLES' => array( 60 | 'KEYWORDS' => array( 61 | ), 62 | 'COMMENTS' => array( 63 | 1 => 'color: #666666; font-style: italic;' 64 | ), 65 | 'BRACKETS' => array( 66 | 0 => 'color: #66cc66;' 67 | ), 68 | 'STRINGS' => array( 69 | 0 => 'color: #ff0000;' 70 | ), 71 | 'NUMBERS' => array( 72 | ), 73 | 'METHODS' => array( 74 | ), 75 | 'SYMBOLS' => array( 76 | 0 => 'color: #006600;', 77 | 1 => 'color: #660000;', 78 | 2 => 'color: #000066;', 79 | 3 => 'color: #660066;', 80 | 4 => 'color: #666600;' 81 | ), 82 | 'ESCAPE_CHAR' => array( 83 | ), 84 | 'SCRIPT' => array( 85 | ), 86 | 'REGEXPS' => array( 87 | ) 88 | ), 89 | 'URLS' => array( 90 | ), 91 | 'OOLANG' => false, 92 | 'OBJECT_SPLITTERS' => array( 93 | ), 94 | 'REGEXPS' => array( 95 | ), 96 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 97 | 'SCRIPT_DELIMITERS' => array( 98 | ), 99 | 'HIGHLIGHT_STRICT_BLOCK' => array( 100 | ), 101 | 'TAB_WIDTH' => 4, 102 | 'PARSER_CONTROL' => array( 103 | 'ENABLE_FLAGS' => array( 104 | 'STRINGS' => GESHI_NEVER, 105 | 'NUMBERS' => GESHI_NEVER 106 | ), 107 | 'KEYWORDS' => array( 108 | 'DISALLOW_BEFORE' => '', 109 | 'DISALLOW_AFTER' => '' 110 | ) 111 | ) 112 | ); 113 | 114 | ?> 115 | -------------------------------------------------------------------------------- /assets/geshi/bnf.php: -------------------------------------------------------------------------------- 1 | 'bnf', 48 | 'COMMENT_SINGLE' => array(), 49 | 'COMMENT_MULTI' => array(), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array('"', "'"), 52 | 'ESCAPE_CHAR' => '', 53 | 'KEYWORDS' => array(), 54 | 'SYMBOLS' => array( 55 | '(', ')', '<', '>', '::=', '|' 56 | ), 57 | 'CASE_SENSITIVE' => array( 58 | //GESHI_COMMENTS => false 59 | ), 60 | 'STYLES' => array( 61 | 'KEYWORDS' => array(), 62 | 'COMMENTS' => array( 63 | ), 64 | 'ESCAPE_CHAR' => array( 65 | 0 => '' 66 | ), 67 | 'BRACKETS' => array( 68 | 0 => '' 69 | ), 70 | 'STRINGS' => array( 71 | 0 => 'color: #a00;', 72 | 1 => 'color: #a00;' 73 | ), 74 | 'NUMBERS' => array( 75 | 0 => '' 76 | ), 77 | 'METHODS' => array( 78 | 0 => '' 79 | ), 80 | 'SYMBOLS' => array( 81 | 0 => 'color: #000066; font-weight: bold;', // Unused 82 | ), 83 | 'REGEXPS' => array( 84 | 0 => 'color: #007;', 85 | ), 86 | 'SCRIPT' => array( 87 | 0 => '' 88 | ) 89 | ), 90 | 'URLS' => array(), 91 | 'OOLANG' => false, 92 | 'OBJECT_SPLITTERS' => array(), 93 | 'REGEXPS' => array( 94 | //terminal symbols 95 | 0 => array( 96 | GESHI_SEARCH => '(<)([^&]+?)(>)', 97 | GESHI_REPLACE => '\\2', 98 | GESHI_MODIFIERS => '', 99 | GESHI_BEFORE => '\\1', 100 | GESHI_AFTER => '\\3' 101 | ), 102 | ), 103 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 104 | 'SCRIPT_DELIMITERS' => array( 105 | ), 106 | 'HIGHLIGHT_STRICT_BLOCK' => array( 107 | ) 108 | ); 109 | 110 | ?> 111 | -------------------------------------------------------------------------------- /assets/geshi/caddcl.php: -------------------------------------------------------------------------------- 1 | 'CAD DCL', 46 | 'COMMENT_SINGLE' => array(1 => '//'), 47 | 'COMMENT_MULTI' => array('/*' => '*/'), 48 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 49 | 'QUOTEMARKS' => array('"'), 50 | 'ESCAPE_CHAR' => '\\', 51 | 'KEYWORDS' => array( 52 | 1 => array( 53 | 'boxed_column','boxed_radio_column','boxed_radio_row','boxed_row', 54 | 'column','concatenation','button','dialog','edit_box','image','image_button', 55 | 'errtile','list_box','ok_cancel','ok_cancel_help','ok_cancel_help_errtile', 56 | 'ok_cancel_help_info','ok_only','paragraph','popup_list','radio_button', 57 | 'radio_column','radio_row','row','slider','spacer','spacer_0','spacer_1','text', 58 | 'text_part','toggle', 59 | 'action','alignment','allow_accept','aspect_ratio','big_increment', 60 | 'children_alignment','children_fixed_height', 61 | 'children_fixed_width','color', 62 | 'edit_limit','edit_width','fixed_height','fixed_width', 63 | 'height','initial_focus','is_cancel','is_default', 64 | 'is_enabled','is_tab_stop','is-bold','key','label','layout','list', 65 | 'max_value','min_value','mnemonic','multiple_select','password_char', 66 | 'small_increment','tabs','tab_truncate','value','width', 67 | 'false','true','left','right','centered','top','bottom', 68 | 'dialog_line','dialog_foreground','dialog_background', 69 | 'graphics_background','black','red','yellow','green','cyan', 70 | 'blue','magenta','whitegraphics_foreground', 71 | 'horizontal','vertical' 72 | ) 73 | ), 74 | 'SYMBOLS' => array( 75 | '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':' 76 | ), 77 | 'CASE_SENSITIVE' => array( 78 | GESHI_COMMENTS => false, 79 | 1 => false 80 | ), 81 | 'STYLES' => array( 82 | 'KEYWORDS' => array( 83 | 1 => 'color: #b1b100;' 84 | ), 85 | 'COMMENTS' => array( 86 | 1 => 'color: #808080; font-style: italic;', 87 | 'MULTI' => 'color: #808080; font-style: italic;' 88 | ), 89 | 'ESCAPE_CHAR' => array( 90 | 0 => 'color: #000099; font-weight: bold;' 91 | ), 92 | 'BRACKETS' => array( 93 | 0 => 'color: #66cc66;' 94 | ), 95 | 'STRINGS' => array( 96 | 0 => 'color: #ff0000;' 97 | ), 98 | 'NUMBERS' => array( 99 | 0 => 'color: #cc66cc;' 100 | ), 101 | 'METHODS' => array( 102 | ), 103 | 'SYMBOLS' => array( 104 | 0 => 'color: #66cc66;' 105 | ), 106 | 'REGEXPS' => array( 107 | ), 108 | 'SCRIPT' => array( 109 | ) 110 | ), 111 | 'URLS' => array( 112 | 1 => '' 113 | ), 114 | 'OOLANG' => false, 115 | 'OBJECT_SPLITTERS' => array( 116 | ), 117 | 'REGEXPS' => array( 118 | ), 119 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 120 | 'SCRIPT_DELIMITERS' => array( 121 | ), 122 | 'HIGHLIGHT_STRICT_BLOCK' => array( 123 | ) 124 | ); 125 | 126 | ?> 127 | -------------------------------------------------------------------------------- /assets/geshi/cfdg.php: -------------------------------------------------------------------------------- 1 | 6 | * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/ 7 | * Release Version: 1.0.8.2 8 | * Date Started: 2006/03/11 9 | * 10 | * CFDG language file for GeSHi. 11 | * 12 | * CHANGES 13 | * ------- 14 | * 2006/03/11 (1.0.0) 15 | * - First Release 16 | * 17 | * TODO (updated 2006/03/11) 18 | * ------------------------- 19 | * 20 | ************************************************************************************* 21 | * 22 | * This file is part of GeSHi. 23 | * 24 | * GeSHi is free software; you can redistribute it and/or modify 25 | * it under the terms of the GNU General Public License as published by 26 | * the Free Software Foundation; either version 2 of the License, or 27 | * (at your option) any later version. 28 | * 29 | * GeSHi is distributed in the hope that it will be useful, 30 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | * GNU General Public License for more details. 33 | * 34 | * You should have received a copy of the GNU General Public License 35 | * along with GeSHi; if not, write to the Free Software 36 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 37 | * 38 | ************************************************************************************/ 39 | 40 | $language_data = array ( 41 | 'LANG_NAME' => 'CFDG', 42 | 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), 43 | 'COMMENT_MULTI' => array('/*' => '*/'), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => array("'", '"'), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | 1 => array( 49 | 'include', 'startshape', 'rule', 'background' 50 | ), 51 | 2 => array( 52 | 'SQUARE', 'CIRCLE', 'TRIANGLE', 53 | ), 54 | 3 => array( 55 | 'b','brightness','h','hue','sat','saturation', 56 | 'a','alpha','x','y','z','s','size', 57 | 'r','rotate','f','flip','skew','xml_set_object' 58 | ) 59 | ), 60 | 'SYMBOLS' => array( 61 | '[', ']', '{', '}', '*', '|' 62 | ), 63 | 'CASE_SENSITIVE' => array( 64 | GESHI_COMMENTS => false, 65 | 1 => false, 66 | 2 => false, 67 | 3 => false, 68 | ), 69 | 'STYLES' => array( 70 | 'KEYWORDS' => array( 71 | 1 => 'color: #717100;', 72 | 2 => 'color: #000000; font-weight: bold;', 73 | 3 => 'color: #006666;' 74 | ), 75 | 'COMMENTS' => array( 76 | 1 => 'color: #808080; font-style: italic;', 77 | 2 => 'color: #808080; font-style: italic;', 78 | 'MULTI' => 'color: #808080; font-style: italic;' 79 | ), 80 | 'ESCAPE_CHAR' => array( 81 | 0 => 'color: #000099; font-weight: bold;' 82 | ), 83 | 'BRACKETS' => array( 84 | 0 => 'color: #66cc66;' 85 | ), 86 | 'STRINGS' => array( 87 | 0 => 'color: #ff0000;' 88 | ), 89 | 'NUMBERS' => array( 90 | 0 => 'color: #cc66cc;' 91 | ), 92 | 'METHODS' => array( 93 | 1 => 'color: #006600;', 94 | 2 => 'color: #006600;' 95 | ), 96 | 'SYMBOLS' => array( 97 | 0 => 'color: #66cc66;' 98 | ), 99 | 'REGEXPS' => array( 100 | ), 101 | 'SCRIPT' => array( 102 | 0 => '', 103 | 1 => '', 104 | 2 => '', 105 | 3 => '' 106 | ) 107 | ), 108 | 'URLS' => array( 109 | 1 => '', 110 | 2 => '', 111 | 3 => '' 112 | ), 113 | 'OOLANG' => false, 114 | 'OBJECT_SPLITTERS' => array(), 115 | 'REGEXPS' => array( 116 | ), 117 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 118 | 'SCRIPT_DELIMITERS' => array( 119 | ), 120 | 'HIGHLIGHT_STRICT_BLOCK' => array( 121 | ) 122 | ); 123 | 124 | ?> 125 | -------------------------------------------------------------------------------- /assets/geshi/div.php: -------------------------------------------------------------------------------- 1 | 'DIV', 43 | 'COMMENT_SINGLE' => array(1 => '//'), 44 | 'COMMENT_MULTI' => array('/*' => '*/'), 45 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 46 | 'QUOTEMARKS' => array("'", '"'), 47 | 'ESCAPE_CHAR' => '', 48 | 'KEYWORDS' => array( 49 | 1 => array( 50 | 'while','until','to','switch','step','return','repeat','loop','if','from','frame','for','end','elseif', 51 | 'else','default','debug','continue','clone','case','break','begin' 52 | ), 53 | 2 => array( 54 | 'xor','whoami','type','sizeof','pointer','or','offset','not','neg','mod','id','dup','and','_ne','_lt', 55 | '_le','_gt','_ge','_eq' 56 | ), 57 | 3 => array( 58 | 'setup_program','program','process','private','local','import','global','function','const', 59 | 'compiler_options' 60 | ), 61 | 4 => array( 62 | 'word','struct','string','int','byte' 63 | ), 64 | ), 65 | 'SYMBOLS' => array( 66 | '(',')','[',']','=','+','-','*','/','!','%','^','&',':',';',',','<','>' 67 | ), 68 | 'CASE_SENSITIVE' => array( 69 | GESHI_COMMENTS => false, 70 | 1 => false, 71 | 2 => false, 72 | 3 => false, 73 | 4 => false, 74 | ), 75 | 'STYLES' => array( 76 | 'KEYWORDS' => array( 77 | 1 => 'color: #0040b1;', 78 | 2 => 'color: #000000;', 79 | 3 => 'color: #000066; font-weight: bold;', 80 | 4 => 'color: #993333;' 81 | ), 82 | 'COMMENTS' => array( 83 | 1 => 'color: #808080; font-style: italic;', 84 | 'MULTI' => 'color: #808080; font-style: italic;' 85 | ), 86 | 'ESCAPE_CHAR' => array( 87 | 0 => '' 88 | ), 89 | 'BRACKETS' => array( 90 | 0 => 'color: #44aa44;' 91 | ), 92 | 'STRINGS' => array( 93 | 0 => 'color: #ff0000;' 94 | ), 95 | 'NUMBERS' => array( 96 | 0 => 'color: #cc66cc;' 97 | ), 98 | 'METHODS' => array( 99 | 0 => 'color: #202020;', 100 | ), 101 | 'SYMBOLS' => array( 102 | 0 => 'color: #44aa44;' 103 | ), 104 | 'REGEXPS' => array( 105 | ), 106 | 'SCRIPT' => array( 107 | ) 108 | ), 109 | 'URLS' => array( 110 | 1 => '', 111 | 2 => '', 112 | 3 => '', 113 | 4 => '' 114 | ), 115 | 'OOLANG' => false, 116 | 'OBJECT_SPLITTERS' => array(), 117 | 'REGEXPS' => array( 118 | ), 119 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 120 | 'SCRIPT_DELIMITERS' => array( 121 | ), 122 | 'HIGHLIGHT_STRICT_BLOCK' => array( 123 | ) 124 | ); 125 | 126 | ?> 127 | -------------------------------------------------------------------------------- /assets/geshi/gettext.php: -------------------------------------------------------------------------------- 1 | 'GNU Gettext', 41 | 'COMMENT_SINGLE' => array('#:', '#.', '#,', '#|', '#'), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array(), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => array("'", '"'), 46 | 'ESCAPE_CHAR' => '\\', 47 | 'KEYWORDS' => array( 48 | 1 => array('msgctxt', 'msgid_plural', 'msgid', 'msgstr'), 49 | ), 50 | 'SYMBOLS' => array(), 51 | 'CASE_SENSITIVE' => array( 52 | GESHI_COMMENTS => false, 53 | 1 => true, 54 | ), 55 | 'STYLES' => array( 56 | 'KEYWORDS' => array( 57 | 1 => 'color: #000000; font-weight: bold;' 58 | ), 59 | 'COMMENTS' => array( 60 | 0 => 'color: #000099;', 61 | 1 => 'color: #000099;', 62 | 2 => 'color: #000099;', 63 | 3 => 'color: #006666;', 64 | 4 => 'color: #666666; font-style: italic;', 65 | ), 66 | 'ESCAPE_CHAR' => array( 67 | 0 => 'color: #000099; font-weight: bold;' 68 | ), 69 | 'STRINGS' => array( 70 | 0 => 'color: #ff0000;' 71 | ), 72 | 'REGEXPS' => array(), 73 | 'SYMBOLS' => array(), 74 | 'NUMBERS' => array( 75 | 0 => 'color: #000099;' 76 | ), 77 | 'METHODS' => array(), 78 | 'SCRIPT' => array(), 79 | 'BRACKETS' => array( 80 | 0 => 'color: #000099;' 81 | ), 82 | ), 83 | 'URLS' => array( 84 | 1 => '' 85 | ), 86 | 'OOLANG' => false, 87 | 'OBJECT_SPLITTERS' => array(), 88 | 'REGEXPS' => array(), 89 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 90 | 'SCRIPT_DELIMITERS' => array( 91 | ), 92 | 'HIGHLIGHT_STRICT_BLOCK' => array( 93 | ), 94 | 'TAB_WIDTH' => 4, 95 | ); 96 | 97 | ?> 98 | -------------------------------------------------------------------------------- /assets/geshi/hq9plus.php: -------------------------------------------------------------------------------- 1 | 'HQ9+', 41 | 'COMMENT_SINGLE' => array(), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array(), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 45 | 'QUOTEMARKS' => array(), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | ), 49 | 'SYMBOLS' => array( 50 | 'H', 'Q', '9', '+', 'h', 'q' 51 | ), 52 | 'CASE_SENSITIVE' => array( 53 | GESHI_COMMENTS => false 54 | ), 55 | 'STYLES' => array( 56 | 'KEYWORDS' => array( 57 | ), 58 | 'COMMENTS' => array( 59 | ), 60 | 'BRACKETS' => array( 61 | 0 => 'color: #66cc66;' 62 | ), 63 | 'STRINGS' => array( 64 | 0 => 'color: #ff0000;' 65 | ), 66 | 'NUMBERS' => array( 67 | ), 68 | 'METHODS' => array( 69 | ), 70 | 'SYMBOLS' => array( 71 | 0 => 'color: #a16000;' 72 | ), 73 | 'ESCAPE_CHAR' => array( 74 | ), 75 | 'SCRIPT' => array( 76 | ), 77 | 'REGEXPS' => array( 78 | ) 79 | ), 80 | 'URLS' => array( 81 | ), 82 | 'OOLANG' => false, 83 | 'OBJECT_SPLITTERS' => array( 84 | ), 85 | 'REGEXPS' => array( 86 | ), 87 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 88 | 'SCRIPT_DELIMITERS' => array( 89 | ), 90 | 'HIGHLIGHT_STRICT_BLOCK' => array( 91 | ), 92 | 'TAB_WIDTH' => 4, 93 | 'PARSER_CONTROL' => array( 94 | 'ENABLE_FLAGS' => array( 95 | 'KEYWORDS' => GESHI_NEVER, 96 | 'COMMENTS' => GESHI_NEVER, 97 | 'STRINGS' => GESHI_NEVER, 98 | 'REGEXPS' => GESHI_NEVER, 99 | 'NUMBERS' => GESHI_NEVER 100 | ) 101 | ) 102 | ); 103 | 104 | ?> 105 | -------------------------------------------------------------------------------- /assets/geshi/idl.php: -------------------------------------------------------------------------------- 1 | 'Uno Idl', 38 | 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), 39 | 'COMMENT_MULTI' => array('/*' => '*/'), 40 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 41 | 'QUOTEMARKS' => array("'", '"'), 42 | 'ESCAPE_CHAR' => '\\', 43 | 'KEYWORDS' => array( 44 | 1 => array( 45 | 'published', 'get', 'set', 'service', 'singleton', 'type', 'module', 'interface', 'struct', 46 | 'const', 'constants', 'exception', 'enum', 'raises', 'typedef' 47 | ), 48 | 2 => array( 49 | 'bound', 'maybeambiguous', 'maybedefault', 'maybevoid', 'oneway', 'optional', 50 | 'readonly', 'in', 'out', 'inout', 'attribute', 'transient', 'removable' 51 | ), 52 | 3 => array( 53 | 'True', 'False', 'TRUE', 'FALSE' 54 | ), 55 | 4 => array( 56 | 'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double', 57 | 'void', 'sequence', 'unsigned' 58 | ), 59 | ), 60 | 'SYMBOLS' => array( 61 | '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ';', '...' 62 | ), 63 | 'CASE_SENSITIVE' => array( 64 | GESHI_COMMENTS => false, 65 | 1 => true, 66 | 2 => true, 67 | 3 => true, 68 | 4 => true, 69 | ), 70 | 'STYLES' => array( 71 | 'KEYWORDS' => array( 72 | 1 => 'color: #990078; font-weight: bold', 73 | 2 => 'color: #36dd1c;', 74 | 3 => 'color: #990078; font-weight: bold', 75 | 4 => 'color: #0000ec;' 76 | ), 77 | 'COMMENTS' => array( 78 | 1 => 'color: #3f7f5f;', 79 | 2 => 'color: #808080;', 80 | 'MULTI' => 'color: #4080ff; font-style: italic;' 81 | ), 82 | 'ESCAPE_CHAR' => array( 83 | 0 => 'color: #666666; font-weight: bold;' 84 | ), 85 | 'BRACKETS' => array( 86 | 0 => 'color: #808080;' 87 | ), 88 | 'STRINGS' => array( 89 | 0 => 'color: #ff0000;' 90 | ), 91 | 'NUMBERS' => array( 92 | 0 => 'color: #0000dd;' 93 | ), 94 | 'METHODS' => array( 95 | ), 96 | 'SYMBOLS' => array( 97 | 0 => 'color: #66cc66;' 98 | ), 99 | 'REGEXPS' => array( 100 | ), 101 | 'SCRIPT' => array( 102 | ) 103 | ), 104 | 'URLS' => array( 105 | 1 => '', 106 | 2 => '', 107 | 3 => '', 108 | 4 => '' 109 | ), 110 | 'OOLANG' => false, 111 | 'OBJECT_SPLITTERS' => array( 112 | 1 => '::' 113 | ), 114 | 'REGEXPS' => array( 115 | ), 116 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 117 | 'SCRIPT_DELIMITERS' => array( 118 | ), 119 | 'HIGHLIGHT_STRICT_BLOCK' => array( 120 | ) 121 | ); 122 | 123 | ?> 124 | -------------------------------------------------------------------------------- /assets/geshi/ini.php: -------------------------------------------------------------------------------- 1 | 'INI', 47 | 'COMMENT_SINGLE' => array(0 => ';'), 48 | 'COMMENT_MULTI' => array(), 49 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 50 | 'QUOTEMARKS' => array('"'), 51 | 'ESCAPE_CHAR' => '', 52 | 'KEYWORDS' => array( 53 | ), 54 | 'SYMBOLS' => array( 55 | '[', ']', '=' 56 | ), 57 | 'CASE_SENSITIVE' => array( 58 | GESHI_COMMENTS => false 59 | ), 60 | 'STYLES' => array( 61 | 'KEYWORDS' => array( 62 | ), 63 | 'COMMENTS' => array( 64 | 0 => 'color: #666666; font-style: italic;' 65 | ), 66 | 'ESCAPE_CHAR' => array( 67 | 0 => '' 68 | ), 69 | 'BRACKETS' => array( 70 | 0 => '' 71 | ), 72 | 'STRINGS' => array( 73 | 0 => 'color: #933;' 74 | ), 75 | 'NUMBERS' => array( 76 | 0 => '' 77 | ), 78 | 'METHODS' => array( 79 | 0 => '' 80 | ), 81 | 'SYMBOLS' => array( 82 | 0 => 'color: #000066; font-weight:bold;' 83 | ), 84 | 'REGEXPS' => array( 85 | 0 => 'color: #000066; font-weight:bold;', 86 | 1 => 'color: #000099;', 87 | 2 => 'color: #660066;' 88 | ), 89 | 'SCRIPT' => array( 90 | 0 => '' 91 | ) 92 | ), 93 | 'URLS' => array( 94 | ), 95 | 'OOLANG' => false, 96 | 'OBJECT_SPLITTERS' => array( 97 | ), 98 | 'REGEXPS' => array( 99 | //Section names 100 | 0 => '\[.+\]', 101 | //Entry names 102 | 1 => array( 103 | GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_\-]+)(\s*=)', 104 | GESHI_REPLACE => '\\2', 105 | GESHI_MODIFIERS => 'm', 106 | GESHI_BEFORE => '\\1', 107 | GESHI_AFTER => '\\3' 108 | ), 109 | //Entry values 110 | 2 => array( 111 | // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched 112 | // Explicit match on variable names because if a comment is before the first < of the span 113 | // gets chewed up... 114 | GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)', 115 | GESHI_REPLACE => '\\2', 116 | GESHI_MODIFIERS => '', 117 | GESHI_BEFORE => '\\1=', 118 | GESHI_AFTER => '' 119 | ) 120 | ), 121 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 122 | 'SCRIPT_DELIMITERS' => array( 123 | ), 124 | 'HIGHLIGHT_STRICT_BLOCK' => array( 125 | ) 126 | ); 127 | 128 | ?> 129 | -------------------------------------------------------------------------------- /assets/geshi/intercal.php: -------------------------------------------------------------------------------- 1 | 'INTERCAL', 41 | 'COMMENT_SINGLE' => array(), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array(), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 45 | 'QUOTEMARKS' => array(), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | //Politeness 49 | 1 => array( 50 | 'DO', 'DONT', 'NOT', 'PLEASE', 'PLEASENT', 'MAYBE' 51 | ), 52 | //Statements 53 | 2 => array( 54 | 'STASH', 'RETRIEVE', 'NEXT', 'RESUME', 'FORGET', 'ABSTAIN', 55 | 'COME', 'FROM', 'CALCULATING', 'REINSTATE', 'IGNORE', 'REMEMBER', 56 | 'WRITE', 'IN', 'READ', 'OUT', 'GIVE', 'UP' 57 | ) 58 | ), 59 | 'SYMBOLS' => array( 60 | '.', ',', ':', ';', '#', 61 | '~', '$', '&', '?', 62 | '\'', '"', '<-' 63 | ), 64 | 'CASE_SENSITIVE' => array( 65 | GESHI_COMMENTS => false, 66 | 1 => false, 67 | 2 => false 68 | ), 69 | 'STYLES' => array( 70 | 'KEYWORDS' => array( 71 | 1 => 'color: #000080;', 72 | 2 => 'color: #000080; font-width: bold;' 73 | ), 74 | 'COMMENTS' => array( 75 | ), 76 | 'BRACKETS' => array( 77 | 0 => 'color: #66cc66;' 78 | ), 79 | 'STRINGS' => array( 80 | 0 => 'color: #ff0000;' 81 | ), 82 | 'NUMBERS' => array( 83 | ), 84 | 'METHODS' => array( 85 | ), 86 | 'SYMBOLS' => array( 87 | 0 => 'color: #66cc66;' 88 | ), 89 | 'ESCAPE_CHAR' => array( 90 | ), 91 | 'SCRIPT' => array( 92 | ), 93 | 'REGEXPS' => array( 94 | 1 => 'color: #808080; font-style: italic;' 95 | ) 96 | ), 97 | 'URLS' => array( 98 | 1 => '', 99 | 2 => '' 100 | ), 101 | 'OOLANG' => false, 102 | 'OBJECT_SPLITTERS' => array( 103 | ), 104 | 'REGEXPS' => array( 105 | 1 => '^\(\d+\)' 106 | ), 107 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 108 | 'SCRIPT_DELIMITERS' => array( 109 | ), 110 | 'HIGHLIGHT_STRICT_BLOCK' => array( 111 | ), 112 | 'TAB_WIDTH' => 4, 113 | 'PARSER_CONTROL' => array( 114 | 'ENABLE_FLAGS' => array( 115 | 'COMMENTS' => GESHI_NEVER, 116 | 'STRINGS' => GESHI_NEVER, 117 | 'NUMBERS' => GESHI_NEVER 118 | ) 119 | ) 120 | ); 121 | 122 | ?> 123 | -------------------------------------------------------------------------------- /assets/geshi/javascript.php: -------------------------------------------------------------------------------- 1 | 'Javascript', 46 | 'COMMENT_SINGLE' => array(1 => '//'), 47 | 'COMMENT_MULTI' => array('/*' => '*/'), 48 | //Regular Expressions 49 | 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array("'", '"'), 52 | 'ESCAPE_CHAR' => '\\', 53 | 'KEYWORDS' => array( 54 | 1 => array( 55 | 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do', 56 | 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item', 57 | 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void', 58 | 'while', 'write', 'with' 59 | ), 60 | 2 => array( 61 | 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false', 62 | 'function', 'import', 'namespace', 'new', 'null', 'package', 'private', 63 | 'protected', 'public', 'super', 'true', 'use', 'var' 64 | ), 65 | 3 => array( 66 | // common functions for Window object 67 | 'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home', 68 | 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove', 69 | 'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status', 70 | 'stop', 71 | ) 72 | ), 73 | 'SYMBOLS' => array( 74 | '(', ')', '[', ']', '{', '}', 75 | '+', '-', '*', '/', '%', 76 | '!', '@', '&', '|', '^', 77 | '<', '>', '=', 78 | ',', ';', '?', ':' 79 | ), 80 | 'CASE_SENSITIVE' => array( 81 | GESHI_COMMENTS => false, 82 | 1 => false, 83 | 2 => false, 84 | 3 => false 85 | ), 86 | 'STYLES' => array( 87 | 'KEYWORDS' => array( 88 | 1 => 'color: #000066; font-weight: bold;', 89 | 2 => 'color: #003366; font-weight: bold;', 90 | 3 => 'color: #000066;' 91 | ), 92 | 'COMMENTS' => array( 93 | 1 => 'color: #006600; font-style: italic;', 94 | 2 => 'color: #009966; font-style: italic;', 95 | 'MULTI' => 'color: #006600; font-style: italic;' 96 | ), 97 | 'ESCAPE_CHAR' => array( 98 | 0 => 'color: #000099; font-weight: bold;' 99 | ), 100 | 'BRACKETS' => array( 101 | 0 => 'color: #009900;' 102 | ), 103 | 'STRINGS' => array( 104 | 0 => 'color: #3366CC;' 105 | ), 106 | 'NUMBERS' => array( 107 | 0 => 'color: #CC0000;' 108 | ), 109 | 'METHODS' => array( 110 | 1 => 'color: #660066;' 111 | ), 112 | 'SYMBOLS' => array( 113 | 0 => 'color: #339933;' 114 | ), 115 | 'REGEXPS' => array( 116 | ), 117 | 'SCRIPT' => array( 118 | 0 => '', 119 | 1 => '', 120 | 2 => '', 121 | 3 => '' 122 | ) 123 | ), 124 | 'URLS' => array( 125 | 1 => '', 126 | 2 => '', 127 | 3 => '' 128 | ), 129 | 'OOLANG' => true, 130 | 'OBJECT_SPLITTERS' => array( 131 | 1 => '.' 132 | ), 133 | 'REGEXPS' => array( 134 | ), 135 | 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 136 | 'SCRIPT_DELIMITERS' => array( 137 | 0 => array( 138 | '' 139 | ), 140 | 1 => array( 141 | '' 142 | ) 143 | ), 144 | 'HIGHLIGHT_STRICT_BLOCK' => array( 145 | 0 => true, 146 | 1 => true 147 | ) 148 | ); 149 | 150 | ?> 151 | -------------------------------------------------------------------------------- /assets/geshi/lisp.php: -------------------------------------------------------------------------------- 1 | 'Lisp', 46 | 'COMMENT_SINGLE' => array(1 => ';'), 47 | 'COMMENT_MULTI' => array(';|' => '|;'), 48 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 49 | 'QUOTEMARKS' => array('"'), 50 | 'ESCAPE_CHAR' => '\\', 51 | 'KEYWORDS' => array( 52 | 1 => array( 53 | 'not','defun','princ','when', 54 | 'eval','apply','funcall','quote','identity','function', 55 | 'complement','backquote','lambda','set','setq','setf', 56 | 'defmacro','gensym','make','symbol','intern', 57 | 'name','value','plist','get', 58 | 'getf','putprop','remprop','hash','array','aref', 59 | 'car','cdr','caar','cadr','cdar','cddr','caaar','caadr','cadar', 60 | 'caddr','cdaar','cdadr','cddar','cdddr','caaaar','caaadr', 61 | 'caadar','caaddr','cadaar','cadadr','caddar','cadddr', 62 | 'cdaaar','cdaadr','cdadar','cdaddr','cddaar','cddadr', 63 | 'cdddar','cddddr','cons','list','append','reverse','last','nth', 64 | 'nthcdr','member','assoc','subst','sublis','nsubst', 65 | 'nsublis','remove','length', 66 | 'mapc','mapcar','mapl','maplist','mapcan','mapcon','rplaca', 67 | 'rplacd','nconc','delete','atom','symbolp','numberp', 68 | 'boundp','null','listp','consp','minusp','zerop','plusp', 69 | 'evenp','oddp','eq','eql','equal','cond','case','and','or', 70 | 'let','l','if','prog','prog1','prog2','progn','go','return', 71 | 'do','dolist','dotimes','catch','throw','error','cerror','break', 72 | 'continue','errset','baktrace','evalhook','truncate','float', 73 | 'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt', 74 | 'random','logand','logior','logxor','lognot','bignums','logeqv', 75 | 'lognand','lognor','logorc2','logtest','logbitp','logcount', 76 | 'integer','nil','parse-integer' 77 | ) 78 | ), 79 | 'SYMBOLS' => array( 80 | '(', ')', '{', '}', '[', ']', 81 | '!', '%', '^', '&', 82 | ' + ',' - ',' * ',' / ', 83 | '=','<','>', 84 | '.',':',',',';', 85 | '|' 86 | ), 87 | 'CASE_SENSITIVE' => array( 88 | GESHI_COMMENTS => false, 89 | 1 => false 90 | ), 91 | 'STYLES' => array( 92 | 'KEYWORDS' => array( 93 | 1 => 'color: #b1b100;' 94 | ), 95 | 'COMMENTS' => array( 96 | 1 => 'color: #808080; font-style: italic;', 97 | 'MULTI' => 'color: #808080; font-style: italic;' 98 | ), 99 | 'ESCAPE_CHAR' => array( 100 | 0 => 'color: #000099; font-weight: bold;' 101 | ), 102 | 'BRACKETS' => array( 103 | 0 => 'color: #66cc66;' 104 | ), 105 | 'STRINGS' => array( 106 | 0 => 'color: #ff0000;' 107 | ), 108 | 'NUMBERS' => array( 109 | 0 => 'color: #cc66cc;' 110 | ), 111 | 'METHODS' => array( 112 | 0 => 'color: #555;', 113 | 1 => 'color: #555;' 114 | ), 115 | 'SYMBOLS' => array( 116 | 0 => 'color: #66cc66;' 117 | ), 118 | 'REGEXPS' => array( 119 | ), 120 | 'SCRIPT' => array( 121 | ) 122 | ), 123 | 'URLS' => array( 124 | 1 => '' 125 | ), 126 | 'OOLANG' => true, 127 | 'OBJECT_SPLITTERS' => array( 128 | '::', ':' 129 | ), 130 | 'REGEXPS' => array( 131 | ), 132 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 133 | 'SCRIPT_DELIMITERS' => array( 134 | ), 135 | 'HIGHLIGHT_STRICT_BLOCK' => array( 136 | ), 137 | 'PARSER_CONTROL' => array( 138 | 'OOLANG' => array( 139 | 'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*' 140 | ) 141 | ) 142 | ); 143 | 144 | ?> 145 | -------------------------------------------------------------------------------- /assets/geshi/lolcode.php: -------------------------------------------------------------------------------- 1 | 'LOLcode', 41 | 'COMMENT_SINGLE' => array(), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array( 44 | 1 => "/\bBTW\b.*$/im", 45 | 2 => "/(^|\b)(?:OBTW\b.+?\bTLDR|LOL\b.+?\/LOL)(\b|$)/si" 46 | ), 47 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 48 | 'QUOTEMARKS' => array('"'), 49 | 'ESCAPE_CHAR' => '', 50 | 'ESCAPE_REGEXP' => array( 51 | 1 => '/:[)>o":]/', 52 | 2 => '/:\([\da-f]+\)/i', 53 | 3 => '/:\{\w+\}/i', 54 | 4 => '/:\[\w+\]/i', 55 | ), 56 | 'KEYWORDS' => array( 57 | //Statements 58 | 1 => array( 59 | 'VISIBLE', 'HAI', 'KTHX', 'KTHXBYE', 'SMOOSH', 'GIMMEH', 'PLZ', 60 | 'ON', 'INVISIBLE', 'R', 'ITZ', 'GTFO', 'COMPLAIN', 'GIMME', 61 | 62 | 'OPEN', 'FILE', 'I HAS A', 'AWSUM THX', 'O NOES', 'CAN', 'HAS', 'HAZ', 63 | 'HOW DOES I', 'IF U SAY SO', 'FOUND YR', 'BORROW', 'OWN', 'ALONG', 64 | 'WITH', 'WIT', 'LOOK', 'AT', 'AWSUM', 'THX' 65 | ), 66 | //Conditionals 67 | 2 => array( 68 | 'IZ', 'YARLY', 'NOWAI', 'WTF?', 'MEBBE', 'OMG', 'OMGWTF', 69 | 'ORLY?', 'OF', 'NOPE', 'SO', 'IM', 'MAI', 70 | 71 | 'O RLY?', 'SUM', 'BOTH SAEM', 'DIFFRINT', 'BOTH', 'EITHER', 'WON', 72 | 'DIFF', 'PRODUKT', 'QUOSHUNT', 'MOD', 'MKAY', 'OK', 'THING', 73 | 'BIGNESS' 74 | ), 75 | //Repetition 76 | 3 => array( 77 | 'IN', 'OUTTA', 'LOOP', 'WHILE' 78 | ), 79 | //Operators \Math 80 | 4 => array( 81 | 'AN', 'AND', 'NOT', 'UP', 'YR', 'UPPIN', 'NERF', 'NERFIN', 'NERFZ', 82 | 'SMASHING', 'UR', 'KINDA', 'LIKE', 'SAEM', 'BIG', 'SMALL', 83 | 'BIGGR', 'SMALLR', 'BIGGER', 'SMALLER', 'GOOD', 'CUTE', 'THAN' 84 | ) 85 | ), 86 | 'SYMBOLS' => array( 87 | '.', ',', '?', 88 | '!!' 89 | ), 90 | 'CASE_SENSITIVE' => array( 91 | GESHI_COMMENTS => false, 92 | 1 => false, 93 | 2 => false, 94 | 3 => false, 95 | 4 => false 96 | ), 97 | 'STYLES' => array( 98 | 'KEYWORDS' => array( 99 | 1 => 'color: #008000;', 100 | 2 => 'color: #000080;', 101 | 3 => 'color: #000080;', 102 | 4 => 'color: #800000;' 103 | ), 104 | 'COMMENTS' => array( 105 | 1 => 'color: #666666; style: italic;', 106 | 2 => 'color: #666666; style: italic;' 107 | ), 108 | 'BRACKETS' => array( 109 | 0 => 'color: #66cc66;' 110 | ), 111 | 'STRINGS' => array( 112 | 0 => 'color: #ff0000;' 113 | ), 114 | 'NUMBERS' => array( 115 | ), 116 | 'METHODS' => array( 117 | ), 118 | 'SYMBOLS' => array( 119 | 0 => 'color: #66cc66;' 120 | ), 121 | 'ESCAPE_CHAR' => array( 122 | ), 123 | 'SCRIPT' => array( 124 | ), 125 | 'REGEXPS' => array( 126 | ) 127 | ), 128 | 'URLS' => array( 129 | 1 => '', 130 | 2 => '', 131 | 3 => '', 132 | 4 => '' 133 | ), 134 | 'OOLANG' => false, 135 | 'OBJECT_SPLITTERS' => array( 136 | ), 137 | 'REGEXPS' => array( 138 | ), 139 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 140 | 'SCRIPT_DELIMITERS' => array( 141 | ), 142 | 'HIGHLIGHT_STRICT_BLOCK' => array( 143 | ), 144 | 'TAB_WIDTH' => 4 145 | ); 146 | 147 | ?> 148 | -------------------------------------------------------------------------------- /assets/geshi/m68k.php: -------------------------------------------------------------------------------- 1 | 'Motorola 68000 Assembler', 47 | 'COMMENT_SINGLE' => array(1 => ';'), 48 | 'COMMENT_MULTI' => array(), 49 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 50 | 'QUOTEMARKS' => array("'", '"'), 51 | 'ESCAPE_CHAR' => '', 52 | 'KEYWORDS' => array( 53 | /*CPU*/ 54 | 1 => array( 55 | 'adc','add','ais','aix','and','asl','asr','bcc','bclr','bcs','beq', 56 | 'bge','bgt','bhcc','bhcs','bhi','bhs','bih','bil','bit','ble','blo', 57 | 'bls','blt','bmc','bmi','bms','bne','bpl','bra','brclr','brn', 58 | 'brset','bset','bsr','cbeq','clc','cli','clr','cmp','com','cphx', 59 | 'cpx','daa','dbnz','dec','div','eor','inc','jmp','jsr','lda','ldhx', 60 | 'ldx','lsl','lsr','mov','mul','neg','nop','nsa','ora','psha','pshh', 61 | 'pshx','pula','pulh','pulx','rol','ror','rsp','rti','rts','sbc', 62 | 'sec','sei','sta','sthx','stop','stx','sub','swi','tap','tax','tpa', 63 | 'tst','tsx','txa','txs','wait' 64 | ), 65 | /*registers*/ 66 | 2 => array( 67 | 'a','h','x', 68 | 'hx','sp' 69 | ), 70 | /*Directive*/ 71 | 3 => array( 72 | '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', 73 | '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' 74 | ), 75 | ), 76 | 'SYMBOLS' => array( 77 | ',' 78 | ), 79 | 'CASE_SENSITIVE' => array( 80 | GESHI_COMMENTS => false, 81 | 1 => false, 82 | 2 => false, 83 | 3 => false, 84 | ), 85 | 'STYLES' => array( 86 | 'KEYWORDS' => array( 87 | 1 => 'color: #0000ff; font-weight:bold;', 88 | 2 => 'color: #0000ff;', 89 | 3 => 'color: #46aa03; font-weight:bold;' 90 | ), 91 | 'COMMENTS' => array( 92 | 1 => 'color: #adadad; font-style: italic;', 93 | ), 94 | 'ESCAPE_CHAR' => array( 95 | 0 => 'color: #000099; font-weight: bold;' 96 | ), 97 | 'BRACKETS' => array( 98 | 0 => 'color: #0000ff;' 99 | ), 100 | 'STRINGS' => array( 101 | 0 => 'color: #7f007f;' 102 | ), 103 | 'NUMBERS' => array( 104 | 0 => 'color: #dd22dd;' 105 | ), 106 | 'METHODS' => array( 107 | ), 108 | 'SYMBOLS' => array( 109 | 0 => 'color: #008000;' 110 | ), 111 | 'REGEXPS' => array( 112 | 0 => 'color: #22bbff;', 113 | 1 => 'color: #22bbff;', 114 | 2 => 'color: #993333;' 115 | ), 116 | 'SCRIPT' => array( 117 | ) 118 | ), 119 | 'URLS' => array( 120 | 1 => '', 121 | 2 => '', 122 | 3 => '' 123 | ), 124 | 'OOLANG' => false, 125 | 'OBJECT_SPLITTERS' => array( 126 | ), 127 | 'REGEXPS' => array( 128 | //Hex numbers 129 | 0 => '#?0[0-9a-fA-F]{1,32}[hH]', 130 | //Binary numbers 131 | 1 => '\%[01]{1,64}[bB]', 132 | //Labels 133 | 2 => '^[_a-zA-Z][_a-zA-Z0-9]*?\:' 134 | ), 135 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 136 | 'SCRIPT_DELIMITERS' => array( 137 | ), 138 | 'HIGHLIGHT_STRICT_BLOCK' => array( 139 | ), 140 | 'TAB_WIDTH' => 8 141 | ); 142 | 143 | ?> 144 | -------------------------------------------------------------------------------- /assets/geshi/mxml.php: -------------------------------------------------------------------------------- 1 | 'MXML', 42 | 'COMMENT_SINGLE' => array(), 43 | 'COMMENT_MULTI' => array(''), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => array("'", '"'), 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => array( 48 | ), 49 | 'SYMBOLS' => array( 50 | ), 51 | 'CASE_SENSITIVE' => array( 52 | GESHI_COMMENTS => false, 53 | ), 54 | 'STYLES' => array( 55 | 'KEYWORDS' => array( 56 | ), 57 | 'COMMENTS' => array( 58 | 'MULTI' => 'color: #808080; font-style: italic;' 59 | ), 60 | 'ESCAPE_CHAR' => array( 61 | 0 => 'color: #000099; font-weight: bold;' 62 | ), 63 | 'BRACKETS' => array( 64 | 0 => 'color: #66cc66;' 65 | ), 66 | 'STRINGS' => array( 67 | 0 => 'color: #ff0000;' 68 | ), 69 | 'NUMBERS' => array( 70 | 0 => 'color: #cc66cc;' 71 | ), 72 | 'METHODS' => array( 73 | ), 74 | 'SYMBOLS' => array( 75 | 0 => 'color: #66cc66;' 76 | ), 77 | 'SCRIPT' => array( 78 | 0 => 'color: #00bbdd;', 79 | 1 => 'color: #ddbb00;', 80 | 2 => 'color: #339933;', 81 | 3 => 'color: #000000;' 82 | ), 83 | 'REGEXPS' => array( 84 | 0 => 'font-weight: bold; color: black;', 85 | 1 => 'color: #7400FF;', 86 | 2 => 'color: #7400FF;' 87 | ) 88 | ), 89 | 'URLS' => array( 90 | ), 91 | 'OOLANG' => false, 92 | 'OBJECT_SPLITTERS' => array( 93 | ), 94 | 'REGEXPS' => array( 95 | // xml declaration 96 | 0 => array( 97 | GESHI_SEARCH => '(<[\/?|(\?xml)]?[a-z0-9_\-:]*(\?>))', 98 | GESHI_REPLACE => '\\1', 99 | GESHI_MODIFIERS => 'i', 100 | GESHI_BEFORE => '', 101 | GESHI_AFTER => '' 102 | ), 103 | // opening tags 104 | 1 => array( 105 | GESHI_SEARCH => '(<\/?[a-z]+:[a-z]+)', 106 | GESHI_REPLACE => '\\1', 107 | GESHI_MODIFIERS => 'i', 108 | GESHI_BEFORE => '', 109 | GESHI_AFTER => '' 110 | ), 111 | // closing tags 112 | 2 => array( 113 | GESHI_SEARCH => '(\/?>)', 114 | GESHI_REPLACE => '\\1', 115 | GESHI_MODIFIERS => 'i', 116 | GESHI_BEFORE => '', 117 | GESHI_AFTER => '' 118 | ) 119 | ), 120 | 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 121 | 'SCRIPT_DELIMITERS' => array( 122 | 0 => array( 123 | ' '>' 124 | ), 125 | 1 => array( 126 | '&' => ';' 127 | ), 128 | 2 => array( 129 | //' ']]>' 130 | '' => '' 131 | ), 132 | 3 => array( 133 | '<' => '>' 134 | ) 135 | ), 136 | 'HIGHLIGHT_STRICT_BLOCK' => array( 137 | 0 => false, 138 | 1 => false, 139 | 2 => false, 140 | 3 => true 141 | ), 142 | 'TAB_WIDTH' => 4 143 | ); 144 | 145 | ?> 146 | -------------------------------------------------------------------------------- /assets/geshi/ocaml-brief.php: -------------------------------------------------------------------------------- 1 | 'OCaml (brief)', 42 | 'COMMENT_SINGLE' => array(), 43 | 'COMMENT_MULTI' => array('(*' => '*)'), 44 | 'CASE_KEYWORDS' => 0, 45 | 'QUOTEMARKS' => array('"'), 46 | 'ESCAPE_CHAR' => "", 47 | 'KEYWORDS' => array( 48 | /* main OCaml keywords */ 49 | 1 => array( 50 | 'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else', 51 | 'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor', 52 | 'if', 'in', 'include', 'inherit', 'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor', 53 | 'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser', 54 | 'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then', 55 | 'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with' 56 | ) 57 | ), 58 | /* highlighting symbols is really important in OCaml */ 59 | 'SYMBOLS' => array( 60 | ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', 61 | '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" 62 | ), 63 | 'CASE_SENSITIVE' => array( 64 | GESHI_COMMENTS => false, 65 | 1 => false, 66 | ), 67 | 'STYLES' => array( 68 | 'KEYWORDS' => array( 69 | 1 => 'color: #06c; font-weight: bold;' /* nice blue */ 70 | ), 71 | 'COMMENTS' => array( 72 | 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ 73 | ), 74 | 'ESCAPE_CHAR' => array( 75 | ), 76 | 'BRACKETS' => array( 77 | 0 => 'color: #6c6;' 78 | ), 79 | 'STRINGS' => array( 80 | 0 => 'color: #3cb371;' /* nice green */ 81 | ), 82 | 'NUMBERS' => array( 83 | 0 => 'color: #c6c;' /* pink */ 84 | ), 85 | 'METHODS' => array( 86 | 1 => 'color: #060;' /* dark green */ 87 | ), 88 | 'REGEXPS' => array( 89 | ), 90 | 'SYMBOLS' => array( 91 | 0 => 'color: #a52a2a;' /* maroon */ 92 | ), 93 | 'SCRIPT' => array( 94 | ) 95 | ), 96 | 'URLS' => array( 97 | 1 => '', 98 | ), 99 | 'OOLANG' => true, 100 | 'OBJECT_SPLITTERS' => array( 101 | 1 => '.' 102 | ), 103 | 'REGEXPS' => array( 104 | ), 105 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 106 | 'SCRIPT_DELIMITERS' => array( 107 | ), 108 | 'HIGHLIGHT_STRICT_BLOCK' => array( 109 | ) 110 | ); 111 | 112 | ?> 113 | -------------------------------------------------------------------------------- /assets/geshi/oobas.php: -------------------------------------------------------------------------------- 1 | 'OpenOffice.org Basic', 46 | 'COMMENT_SINGLE' => array(1 => "'"), 47 | 'COMMENT_MULTI' => array(), 48 | //Single-Line comments using REM keyword 49 | 'COMMENT_REGEXP' => array(2 => '/\bREM.*?$/i'), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array('"'), 52 | 'ESCAPE_CHAR' => '', 53 | 'KEYWORDS' => array( 54 | 1 => array( 55 | 'dim','private','public','global','as','if','redim','true','set','byval', 56 | 'false','bool','double','integer','long','object','single','variant', 57 | 'msgbox','print','inputbox','green','blue','red','qbcolor', 58 | 'rgb','open','close','reset','freefile','get','input','line', 59 | 'put','write','loc','seek','eof','lof','chdir','chdrive', 60 | 'curdir','dir','fileattr','filecopy','filedatetime','fileexists', 61 | 'filelen','getattr','kill','mkdir','name','rmdir','setattr', 62 | 'dateserial','datevalue','day','month','weekday','year','cdatetoiso', 63 | 'cdatefromiso','hour','minute','second','timeserial','timevalue', 64 | 'date','now','time','timer','erl','err','error','on','goto','resume', 65 | 'and','eqv','imp','not','or','xor','mod','atn','cos','sin','tan','log', 66 | 'exp','rnd','randomize','sqr','fix','int','abs','sgn','hex','oct', 67 | 'it','then','else','select','case','iif','do','loop','for','next','to', 68 | 'while','wend','gosub','return','call','choose','declare', 69 | 'end','exit','freelibrary','function','rem','stop','sub','switch','with', 70 | 'cbool','cdate','cdbl','cint','clng','const','csng','cstr','defbool', 71 | 'defdate','defdbl','defint','deflng','asc','chr','str','val','cbyte', 72 | 'space','string','format','lcase','left','lset','ltrim','mid','right', 73 | 'rset','rtrim','trim','ucase','split','join','converttourl','convertfromurl', 74 | 'instr','len','strcomp','beep','shell','wait','getsystemticks','environ', 75 | 'getsolarversion','getguitype','twipsperpixelx','twipsperpixely', 76 | 'createunostruct','createunoservice','getprocessservicemanager', 77 | 'createunodialog','createunolistener','createunovalue','thiscomponent', 78 | 'globalscope' 79 | ) 80 | ), 81 | 'SYMBOLS' => array( 82 | '(', ')', '=' 83 | ), 84 | 'CASE_SENSITIVE' => array( 85 | GESHI_COMMENTS => false, 86 | 1 => false 87 | ), 88 | 'STYLES' => array( 89 | 'KEYWORDS' => array( 90 | 1 => 'color: #b1b100;' 91 | ), 92 | 'COMMENTS' => array( 93 | 1 => 'color: #808080;', 94 | 2 => 'color: #808080;' 95 | ), 96 | 'BRACKETS' => array( 97 | 0 => 'color: #66cc66;' 98 | ), 99 | 'STRINGS' => array( 100 | 0 => 'color: #ff0000;' 101 | ), 102 | 'NUMBERS' => array( 103 | 0 => 'color: #cc66cc;' 104 | ), 105 | 'METHODS' => array( 106 | 1 => 'color: #006600;' 107 | ), 108 | 'SYMBOLS' => array( 109 | 0 => 'color: #66cc66;' 110 | ), 111 | 'ESCAPE_CHAR' => array( 112 | 0 => 'color: #000099;' 113 | ), 114 | 'SCRIPT' => array( 115 | ), 116 | 'REGEXPS' => array( 117 | ) 118 | ), 119 | 'URLS' => array( 120 | 1 => '' 121 | ), 122 | 'OOLANG' => true, 123 | 'OBJECT_SPLITTERS' => array( 124 | 1 => '.' 125 | ), 126 | 'REGEXPS' => array( 127 | ), 128 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 129 | 'SCRIPT_DELIMITERS' => array( 130 | ), 131 | 'HIGHLIGHT_STRICT_BLOCK' => array( 132 | ) 133 | ); 134 | 135 | ?> 136 | -------------------------------------------------------------------------------- /assets/geshi/pic16.php: -------------------------------------------------------------------------------- 1 | 'PIC16', 42 | 'COMMENT_SINGLE' => array(1 => ';'), 43 | 'COMMENT_MULTI' => array(), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => array("'", '"'), 46 | 'ESCAPE_CHAR' => '\\', 47 | 'KEYWORDS' => array( 48 | /*Instructions*/ 49 | 1 => array( 50 | 'addcf','adddcf','addlw','addwf','andlw','andwf','bc','bcf','bdc', 51 | 'bnc','bndc','bnz','bsf','btfsc','btfss','bz','call','clrc','clrdc', 52 | 'clrf','clrw','clrwdt','clrz','comf','decf','goto','incf','incfsz', 53 | 'iorlw','iorwf','lcall','lgoto','movf','movfw','movlw','movwf', 54 | 'option','negf','nop','retfie','retlw','return','rlf','rrf','setc', 55 | 'setdc','setz','skpc','skpdc','skpnc','skpndc','skpnz','skpz', 56 | 'sleep','subcf','subdcf','sublw','subwf','swapf','tris','tstf', 57 | 'xorlw','xorwf' 58 | ), 59 | /*Registers*/ 60 | 2 => array( 61 | 'INDF','TMR0','OPTION','PCL','STATUS','FSR','PORTA','PORTB','PORTC', 62 | 'PORTD','PORTE','PORTF','TRISA','TRISB','TRISC','TRISD','TRISE', 63 | 'TRISF','PCLATH','INTCON','PIR1','PIE1','PCON','CMCON','VRCON', 64 | 'F','W' 65 | ), 66 | /*Directives*/ 67 | 3 => array( 68 | '_BADRAM','BANKISEL','BANKSEL','CBLOCK','CODE','_CONFIG','CONSTANT', 69 | 'DA','DATA','DB','DE','#DEFINE','DT','DW','ELSE','END','ENDC', 70 | 'ENDIF','ENDM','ENDW','EQU','ERROR','ERRORLEVEL','EXITM','EXPAND', 71 | 'EXTERN','FILL','GLOBAL','IDATA','_IDLOCS','IF','IFDEF','IFNDEF', 72 | 'INCLUDE','#INCLUDE','LIST','LOCAL','MACRO','_MAXRAM','MESSG', 73 | 'NOEXPAND','NOLIST','ORG','PAGE','PAGESEL','PROCESSOR','RADIX', 74 | 'RES','SET','SPACE','SUBTITLE','TITLE','UDATA','UDATA_ACS', 75 | 'UDATA_OVR','UDATA_SHR','#UNDEFINE','VARIABLE','WHILE', 76 | 'D','H','O','B','A' 77 | ), 78 | ), 79 | 'SYMBOLS' => array('=','.',',',':'), 80 | 'CASE_SENSITIVE' => array( 81 | GESHI_COMMENTS => false, 82 | 1 => false, 83 | 2 => false, 84 | 3 => false 85 | ), 86 | 'STYLES' => array( 87 | 'KEYWORDS' => array( 88 | 1 => 'color: #0000a0; font-weight: bold;', 89 | 2 => 'color: #aa3300; font-weight: bold;', 90 | 3 => 'color: #0000ff;', 91 | ), 92 | 'COMMENTS' => array( 93 | 1 => 'color: #00a000;' 94 | ), 95 | 'ESCAPE_CHAR' => array( 96 | 0 => 'color: #ff0000;' 97 | ), 98 | 'BRACKETS' => array( 99 | 0 => 'color: #0000ff;' 100 | ), 101 | 'STRINGS' => array( 102 | 0 => 'color: #ff7700;' 103 | ), 104 | 'NUMBERS' => array( 105 | 0 => 'color: #ff7700;' 106 | ), 107 | 'METHODS' => array( 108 | ), 109 | 'SYMBOLS' => array( 110 | 0 => 'color: #7777ff;' 111 | ), 112 | 'REGEXPS' => array(), 113 | 'SCRIPT' => array() 114 | ), 115 | 'URLS' => array( 116 | 1 => '', 117 | 2 => '', 118 | 3 => '' 119 | ), 120 | 'OOLANG' => false, 121 | 'OBJECT_SPLITTERS' => array(), 122 | 'NUMBERS' => 123 | GESHI_NUMBER_INT_BASIC | 124 | GESHI_NUMBER_BIN_SUFFIX | 125 | GESHI_NUMBER_HEX_PREFIX | 126 | GESHI_NUMBER_HEX_SUFFIX, 127 | 'REGEXPS' => array( 128 | ), 129 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 130 | 'SCRIPT_DELIMITERS' => array(), 131 | 'HIGHLIGHT_STRICT_BLOCK' => array(), 132 | 'TAB_WIDTH' => 4, 133 | 'PARSER_CONTROL' => array( 134 | 'KEYWORDS' => array( 135 | 'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#>|^", 136 | 'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%" 137 | ) 138 | ) 139 | ); 140 | 141 | ?> 142 | -------------------------------------------------------------------------------- /assets/geshi/robots.php: -------------------------------------------------------------------------------- 1 | 'robots.txt', 37 | 'COMMENT_SINGLE' => array(1 => '#'), 38 | 'COMMENT_MULTI' => array(), 39 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 40 | 'QUOTEMARKS' => array(), 41 | 'ESCAPE_CHAR' => '', 42 | 'KEYWORDS' => array( 43 | 1 => array( 44 | 'User-agent', 'Disallow' 45 | ) 46 | ), 47 | 'SYMBOLS' => array( 48 | ':' 49 | ), 50 | 'CASE_SENSITIVE' => array( 51 | GESHI_COMMENTS => false, 52 | 1 => true 53 | ), 54 | 'STYLES' => array( 55 | 'KEYWORDS' => array( 56 | 1 => 'color: #b1b100;' 57 | ), 58 | 'COMMENTS' => array( 59 | 1 => 'color: #808080; font-style: italic;', 60 | ), 61 | 'ESCAPE_CHAR' => array( 62 | 0 => 'color: #000099; font-weight: bold;' 63 | ), 64 | 'BRACKETS' => array( 65 | 0 => 'color: #66cc66;' 66 | ), 67 | 'STRINGS' => array( 68 | 0 => 'color: #ff0000;' 69 | ), 70 | 'NUMBERS' => array( 71 | 0 => 'color: #cc66cc;' 72 | ), 73 | 'METHODS' => array( 74 | ), 75 | 'SYMBOLS' => array( 76 | 0 => 'color: #66cc66;' 77 | ), 78 | 'REGEXPS' => array( 79 | ), 80 | 'SCRIPT' => array( 81 | ) 82 | ), 83 | 'URLS' => array( 84 | 1 => 'http://www.robotstxt.org/wc/norobots.html' 85 | ), 86 | 'OOLANG' => false, 87 | 'OBJECT_SPLITTERS' => array( 88 | ), 89 | 'REGEXPS' => array( 90 | ), 91 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 92 | 'SCRIPT_DELIMITERS' => array( 93 | ), 94 | 'HIGHLIGHT_STRICT_BLOCK' => array( 95 | ) 96 | ); 97 | 98 | ?> 99 | -------------------------------------------------------------------------------- /assets/geshi/scala.php: -------------------------------------------------------------------------------- 1 | 'Scala', 42 | 'COMMENT_SINGLE' => array(1 => '//'), 43 | 'COMMENT_MULTI' => array('/*' => '*/'), 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => array("'", '"'), 46 | 'ESCAPE_CHAR' => '\\', 47 | 'KEYWORDS' => array( 48 | 1 => array( 49 | 'abstract', 'case', 'catch', 'class', 'def', 50 | 'do', 'else', 'extends', 'false', 'final', 51 | 'finally', 'for', 'forSome', 'if', 'implicit', 52 | 'import', 'match', 'new', 'null', 'object', 53 | 'override', 'package', 'private', 'protected', 'requires', 54 | 'return', 'sealed', 'super', 'this', 'throw', 55 | 'trait', 'try', 'true', 'type', 'val', 56 | 'var', 'while', 'with', 'yield' 57 | ), 58 | 2 => array( 59 | 'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float' 60 | ) 61 | ), 62 | 'SYMBOLS' => array( 63 | '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', 64 | '_', ':', '=', '=>', '<<:', 65 | '<%', '>:', '#', '@' 66 | ), 67 | 'CASE_SENSITIVE' => array( 68 | GESHI_COMMENTS => false, 69 | 1 => true, 70 | 2 => true 71 | ), 72 | 'STYLES' => array( 73 | 'KEYWORDS' => array( 74 | 1 => 'color: #0000ff; font-weight: bold;', 75 | 2 => 'color: #9999cc; font-weight: bold;', 76 | ), 77 | 'COMMENTS' => array( 78 | 1=> 'color: #008000; font-style: italic;', 79 | 'MULTI' => 'color: #00ff00; font-style: italic;' 80 | ), 81 | 'ESCAPE_CHAR' => array( 82 | 0 => 'color: #0000ff; font-weight: bold;' 83 | ), 84 | 'BRACKETS' => array( 85 | 0 => 'color: #F78811;' 86 | ), 87 | 'STRINGS' => array( 88 | 0 => 'color: #6666FF;' 89 | ), 90 | 'NUMBERS' => array( 91 | 0 => 'color: #F78811;' 92 | ), 93 | 'METHODS' => array( 94 | 1 => 'color: #000000;', 95 | 2 => 'color: #000000;' 96 | ), 97 | 'SYMBOLS' => array( 98 | 0 => 'color: #000080;' 99 | ), 100 | 'SCRIPT' => array( 101 | ), 102 | 'REGEXPS' => array( 103 | ) 104 | ), 105 | 'URLS' => array( 106 | 1 => 'http://scala-lang.org', 107 | 2 => '' 108 | ), 109 | 'OOLANG' => true, 110 | 'OBJECT_SPLITTERS' => array( 111 | 1 => '.' 112 | ), 113 | 'REGEXPS' => array( 114 | ), 115 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 116 | 'SCRIPT_DELIMITERS' => array( 117 | ), 118 | 'HIGHLIGHT_STRICT_BLOCK' => array( 119 | ) 120 | ); 121 | 122 | ?> 123 | -------------------------------------------------------------------------------- /assets/geshi/smalltalk.php: -------------------------------------------------------------------------------- 1 | 'Smalltalk', 43 | 'COMMENT_SINGLE' => array(), 44 | 'COMMENT_MULTI' => array('"' => '"'), 45 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 46 | 'QUOTEMARKS' => array("'"), 47 | 'ESCAPE_CHAR' => '', 48 | 'KEYWORDS' => array( 49 | 1 => array('self','super','true','false','nil') 50 | ), 51 | 'SYMBOLS' => array( 52 | '[', ']', '=' , ':=', '(', ')', '#' 53 | ), 54 | 'CASE_SENSITIVE' => array( 55 | GESHI_COMMENTS => false, 56 | 1 => true 57 | ), 58 | 'STYLES' => array( 59 | 'KEYWORDS' => array( 60 | 1 => 'color: #7f007f;' 61 | ), 62 | 'COMMENTS' => array( 63 | 'MULTI' => 'color: #007f00; font-style: italic;' 64 | ), 65 | 'ESCAPE_CHAR' => array( 66 | 0 => '' 67 | ), 68 | 'BRACKETS' => array( 69 | 0 => '' 70 | ), 71 | 'STRINGS' => array( 72 | 0 => 'color: #7f0000;' 73 | ), 74 | 'NUMBERS' => array( 75 | 0 => 'color: #7f0000;' 76 | ), 77 | 'METHODS' => array( 78 | 0 => '' 79 | ), 80 | 'SYMBOLS' => array( 81 | 0 => 'color: #000066; font-weight:bold;' 82 | ), 83 | 'REGEXPS' => array( 84 | 0 => 'color: #0000ff;', 85 | 1 => 'color: #7f0000;', 86 | 2 => 'color: #7f0000;', 87 | 3 => 'color: #00007f;', 88 | 4 => 'color: #7f007f;', 89 | 5 => 'color: #00007f;', 90 | 6 => 'color: #00007f;' 91 | ), 92 | 'SCRIPT' => array( 93 | 0 => '' 94 | ) 95 | ), 96 | 'URLS' => array( 97 | 1 => '' 98 | ), 99 | 'OOLANG' => false, 100 | 'OBJECT_SPLITTERS' => array( 101 | ), 102 | 'REGEXPS' => array( 103 | 0 => array( 104 | GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names 105 | GESHI_REPLACE => '\\2', 106 | GESHI_MODIFIERS => '', 107 | GESHI_BEFORE => '\\1', 108 | GESHI_AFTER => '' 109 | ), 110 | 1 => array( 111 | GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols 112 | GESHI_REPLACE => '\\1\\2', 113 | GESHI_MODIFIERS => '', 114 | GESHI_BEFORE => '', 115 | GESHI_AFTER => '' 116 | ), 117 | 2 => array( 118 | GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols 119 | GESHI_REPLACE => '\\1', 120 | GESHI_MODIFIERS => '', 121 | GESHI_BEFORE => '', 122 | GESHI_AFTER => '' 123 | ), 124 | 3 => array( 125 | GESHI_SEARCH => '([a-zA-Z0-9_\s]+)', //temporary variables 126 | GESHI_REPLACE => '\\1', 127 | GESHI_MODIFIERS => '', 128 | GESHI_BEFORE => '|', 129 | GESHI_AFTER => '|' 130 | ), 131 | 4 => array( 132 | GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp) 133 | GESHI_REPLACE => '\\1', 134 | GESHI_MODIFIERS => '', 135 | GESHI_BEFORE => '', 136 | GESHI_AFTER => '' 137 | ), 138 | 5 => array( 139 | GESHI_SEARCH => '([:(,=[.*\/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers 140 | GESHI_REPLACE => '\\2', 141 | GESHI_MODIFIERS => 's', 142 | GESHI_BEFORE => '\\1', 143 | GESHI_AFTER => '' 144 | ), 145 | 6 => array( 146 | GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets 147 | GESHI_REPLACE => '\\1', 148 | GESHI_MODIFIERS => '', 149 | GESHI_BEFORE => '', 150 | GESHI_AFTER => '\\2' 151 | ) 152 | ), 153 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 154 | 'SCRIPT_DELIMITERS' => array( 155 | ), 156 | 'HIGHLIGHT_STRICT_BLOCK' => array( 157 | ) 158 | ); 159 | 160 | ?> 161 | -------------------------------------------------------------------------------- /assets/geshi/sql.php: -------------------------------------------------------------------------------- 1 | 'SQL', 54 | 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), 55 | 'COMMENT_MULTI' => array('/*' => '*/'), 56 | 'CASE_KEYWORDS' => 1, 57 | 'QUOTEMARKS' => array("'", '"', '`'), 58 | 'ESCAPE_CHAR' => '\\', 59 | 'KEYWORDS' => array( 60 | 1 => array( 61 | 'ADD', 'ALL', 'ALTER', 'AND', 'AS', 'ASC', 62 | 'AUTO_INCREMENT', 'BETWEEN', 'BINARY', 'BOOLEAN', 63 | 'BOTH', 'BY', 'CHANGE', 'CHECK', 'COLUMN', 'COLUMNS', 64 | 'CREATE', 'CROSS', 'DATA', 'DATABASE', 'DATABASES', 65 | 'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 66 | 'DISTINCT', 'DROP', 'ENCLOSED', 'ESCAPED', 'EXISTS', 67 | 'EXPLAIN', 'FIELD', 'FIELDS', 'FLUSH', 'FOR', 68 | 'FOREIGN', 'FROM', 'FULL', 'FUNCTION', 'GRANT', 69 | 'GROUP', 'HAVING', 'IDENTIFIED', 'IF', 'IGNORE', 70 | 'IN', 'INDEX', 'INFILE', 'INNER', 'INSERT', 'INTO', 71 | 'IS', 'JOIN', 'KEY', 'KEYS', 'KILL', 'LANGUAGE', 72 | 'LEADING', 'LEFT', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 73 | 'LOCAL', 'LOCK', 'LOW_PRIORITY', 'MODIFY', 'NATURAL', 74 | 'NEXTVAL', 'NOT', 'NULL', 'ON', 'OPTIMIZE', 'OPTION', 75 | 'OPTIONALLY', 'OR', 'ORDER', 'OUTER', 'OUTFILE', 76 | 'PRIMARY', 'PROCEDURAL', 'PROCEEDURE', 'READ', 77 | 'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE', 78 | 'RETURN', 'REVOKE', 'RIGHT', 'RLIKE', 'SELECT', 79 | 'SET', 'SETVAL', 'SHOW', 'SONAME', 'STATUS', 80 | 'STRAIGHT_JOIN', 'TABLE', 'TABLES', 'TEMINATED', 81 | 'TEMPORARY', 'TO', 'TRAILING', 'TRIGGER', 'TRUNCATE', 82 | 'TRUSTED', 'UNION', 'UNIQUE', 'UNLOCK', 'UNSIGNED', 83 | 'UPDATE', 'USE', 'USING', 'VALUES', 'VARIABLES', 84 | 'VIEW', 'WHERE', 'WITH', 'WRITE', 'XOR', 'ZEROFILL' 85 | ) 86 | ), 87 | 'SYMBOLS' => array( 88 | '(', ')', '=', '<', '>', '|', ',', '.', '+', '-', '*', '/' 89 | ), 90 | 'CASE_SENSITIVE' => array( 91 | GESHI_COMMENTS => false, 92 | 1 => false 93 | ), 94 | 'STYLES' => array( 95 | 'KEYWORDS' => array( 96 | 1 => 'color: #993333; font-weight: bold;' 97 | ), 98 | 'COMMENTS' => array( 99 | 1 => 'color: #808080; font-style: italic;', 100 | 2 => 'color: #808080; font-style: italic;', 101 | 'MULTI' => 'color: #808080; font-style: italic;' 102 | ), 103 | 'ESCAPE_CHAR' => array( 104 | 0 => 'color: #000099; font-weight: bold;' 105 | ), 106 | 'BRACKETS' => array( 107 | 0 => 'color: #66cc66;' 108 | ), 109 | 'STRINGS' => array( 110 | 0 => 'color: #ff0000;' 111 | ), 112 | 'NUMBERS' => array( 113 | 0 => 'color: #cc66cc;' 114 | ), 115 | 'METHODS' => array( 116 | ), 117 | 'SYMBOLS' => array( 118 | 0 => 'color: #66cc66;' 119 | ), 120 | 'SCRIPT' => array( 121 | ), 122 | 'REGEXPS' => array( 123 | ) 124 | ), 125 | 'URLS' => array( 126 | 1 => '' 127 | ), 128 | 'OOLANG' => false, 129 | 'OBJECT_SPLITTERS' => array( 130 | ), 131 | 'REGEXPS' => array( 132 | ), 133 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 134 | 'SCRIPT_DELIMITERS' => array( 135 | ), 136 | 'HIGHLIGHT_STRICT_BLOCK' => array( 137 | ) 138 | ); 139 | 140 | ?> 141 | -------------------------------------------------------------------------------- /assets/geshi/text.php: -------------------------------------------------------------------------------- 1 | 'Text', 48 | 'COMMENT_SINGLE' => array(), 49 | 'COMMENT_MULTI' => array(), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array(), 52 | 'ESCAPE_CHAR' => '', 53 | 'KEYWORDS' => array(), 54 | 'SYMBOLS' => array(), 55 | 'CASE_SENSITIVE' => array( 56 | GESHI_COMMENTS => false 57 | ), 58 | 'STYLES' => array( 59 | 'KEYWORDS' => array(), 60 | 'COMMENTS' => array(), 61 | 'ESCAPE_CHAR' => array(), 62 | 'BRACKETS' => array(), 63 | 'STRINGS' => array(), 64 | 'NUMBERS' => array(), 65 | 'METHODS' => array(), 66 | 'SYMBOLS' => array(), 67 | 'SCRIPT' => array(), 68 | 'REGEXPS' => array() 69 | ), 70 | 'URLS' => array(), 71 | 'OOLANG' => false, 72 | 'OBJECT_SPLITTERS' => array(), 73 | 'REGEXPS' => array(), 74 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 75 | 'SCRIPT_DELIMITERS' => array(), 76 | 'HIGHLIGHT_STRICT_BLOCK' => array(), 77 | 'PARSER_CONTROL' => array( 78 | 'ENABLE_FLAGS' => array( 79 | 'ALL' => GESHI_NEVER 80 | ), 81 | ) 82 | ); 83 | 84 | ?> 85 | -------------------------------------------------------------------------------- /assets/geshi/vb.php: -------------------------------------------------------------------------------- 1 | 'Visual Basic', 49 | 'COMMENT_SINGLE' => array(), 50 | 'COMMENT_MULTI' => array(), 51 | 'COMMENT_REGEXP' => array( 52 | // Comments (either single or multiline with _ 53 | 1 => '/\'.*(? GESHI_CAPS_NO_CHANGE, 56 | 'QUOTEMARKS' => array(), 57 | 'ESCAPE_CHAR' => '', 58 | 'KEYWORDS' => array( 59 | 1 => array( 60 | 'AddressOf', 'Alias', 'And', 'Append', 'As', 'BF', 'Binary', 61 | 'Boolean', 'ByRef', 'Byte', 'ByVal', 'Call', 'Case', 'CBool', 62 | 'CByte', 'CCur', 'CDate', 'CDbl', 'CDec', 'CInt', 'CLng', 63 | 'Close', 'Collection', 'Const', 'Control', 'CSng', 'CStr', 64 | 'Currency', 'CVar', 'Date', 'Declare', 'Dim', 'Do', 'Double', 65 | 'Each', 'Else', 'ElseIf', 'End', 'Enum', 'Erase', 'Error', 66 | 'Event', 'Exit', 'Explicit', 'False', 'For', 'Friend', 67 | 'Function', 'Get', 'GoSub', 'Goto', 'If', 'Implements', 'In', 68 | 'Input', 'Integer', 'Is', 'LBound', 'Let', 'Lib', 'Like', 69 | 'Line', 'Long', 'Loop', 'Mod', 'New', 'Next', 'Not', 70 | 'Nothing', 'Object', 'On', 'Open', 'Option', 'Optional', 71 | 'Or', 'Output', 'ParamArray', 'Preserve', 'Print', 'Private', 72 | 'Property', 'Public', 'RaiseEvent', 'Random', 'ReDim', 73 | 'Resume', 'Select', 'Set', 'Single', 'Static', 'Step', 74 | 'Stop', 'String', 'Sub', 'Then', 'To', 'True', 'Type', 75 | 'TypeOf', 'UBound', 'Until', 'Variant', 'While', 'With', 76 | 'WithEvents', 'Xor' 77 | ) 78 | ), 79 | 'SYMBOLS' => array( 80 | ), 81 | 'CASE_SENSITIVE' => array( 82 | GESHI_COMMENTS => false, 83 | 1 => false 84 | ), 85 | 'STYLES' => array( 86 | 'KEYWORDS' => array( 87 | 1 => 'color: #000080;' 88 | ), 89 | 'COMMENTS' => array( 90 | 1 => 'color: #008000;' 91 | ), 92 | 'BRACKETS' => array( 93 | ), 94 | 'STRINGS' => array( 95 | ), 96 | 'NUMBERS' => array( 97 | ), 98 | 'METHODS' => array( 99 | ), 100 | 'SYMBOLS' => array( 101 | ), 102 | 'ESCAPE_CHAR' => array( 103 | ), 104 | 'SCRIPT' => array( 105 | ), 106 | 'REGEXPS' => array( 107 | ) 108 | ), 109 | 'URLS' => array( 110 | 1 => '' 111 | ), 112 | 'OOLANG' => false, 113 | 'OBJECT_SPLITTERS' => array( 114 | ), 115 | 'REGEXPS' => array( 116 | ), 117 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 118 | 'SCRIPT_DELIMITERS' => array( 119 | ), 120 | 'HIGHLIGHT_STRICT_BLOCK' => array( 121 | ), 122 | 'PARSER_CONTROL' => array( 123 | 'ENABLE_FLAGS' => array( 124 | 'STRINGS' => GESHI_NEVER, 125 | 'BRACKETS' => GESHI_NEVER, 126 | 'SYMBOLS' => GESHI_NEVER, 127 | 'NUMBERS' => GESHI_NEVER 128 | ) 129 | ) 130 | ); 131 | 132 | ?> 133 | -------------------------------------------------------------------------------- /assets/geshi/visualprolog.php: -------------------------------------------------------------------------------- 1 | 'Visual Prolog', 37 | 'COMMENT_SINGLE' => array(1 => '%'), 38 | 'COMMENT_MULTI' => array('/*' => '*/'), 39 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 40 | 'QUOTEMARKS' => array("'", '"'), 41 | 'HARDQUOTE' => array('@"', '"'), 42 | 'HARDESCAPE' => array('""'), 43 | 'ESCAPE_CHAR' => '\\', 44 | 'KEYWORDS' => array( 45 | 1 => array( 46 | 'clauses','constants','constructors','delegate','domains','facts', 47 | 'goal','guards','inherits','monitor','namespace','open', 48 | 'predicates','properties','resolve','supports' 49 | ), 50 | 2 => array( 51 | 'align','and','anyflow','as','bitsize','catch','determ','digits', 52 | 'div','do','else','elseif','erroneous','externally','failure', 53 | 'finally','from','language','mod','multi','nondeterm','or', 54 | 'procedure','quot','rem','single','then','to' 55 | ), 56 | 3 => array( 57 | '#bininclude','#else','#elseif','#endif','#error','#export', 58 | '#externally','#if','#import','#include','#message','#options', 59 | '#orrequires','#requires','#then','#warning' 60 | ), 61 | ), 62 | 'SYMBOLS' => array( 63 | '+', '-', '*', '?', '=', '/', '>', '<', '^', '!', ':', '(', ')', '{', '}', '[', ']' 64 | ), 65 | 'CASE_SENSITIVE' => array( 66 | GESHI_COMMENTS => true, 67 | 1 => true, 68 | 2 => true, 69 | 3 => true 70 | ), 71 | 'STYLES' => array( 72 | 'KEYWORDS' => array( 73 | 1 => 'color: #808000;', 74 | 2 => 'color: #333399;', 75 | 3 => 'color: #800080;', 76 | ), 77 | 'COMMENTS' => array( 78 | 1 => 'color: #AA77BD', 79 | 'MULTI' => 'color: #AA77BD' 80 | ), 81 | 'ESCAPE_CHAR' => array( 82 | 0 => 'color: #008080;' 83 | ), 84 | 'BRACKETS' => array( 85 | 0 => 'color: #000000;' 86 | ), 87 | 'STRINGS' => array( 88 | 0 => 'color: #00B7B7;' 89 | ), 90 | 'NUMBERS' => array( 91 | 0 => 'color: #0000FF;' 92 | ), 93 | 'METHODS' => array( 94 | ), 95 | 'SYMBOLS' => array( 96 | 0 => 'color: #000000;' 97 | ), 98 | 'SCRIPT' => array( 99 | ), 100 | 'REGEXPS' => array( 101 | 0 => 'color: #008000;', 102 | 1 => 'color: #808000;', 103 | 2 => 'color: #333399;', 104 | ) 105 | ), 106 | 'URLS' => array( 107 | 1 => '', 108 | 2 => '', 109 | 3 => '' 110 | ), 111 | 'OOLANG' => true, 112 | 'OBJECT_SPLITTERS' => array( 113 | 1 => ':', 114 | 2 => '::' 115 | ), 116 | 'REGEXPS' => array( 117 | 0 => "(?)[A-Z_]\w*(?!\w)", 118 | 1 => "\\b(end\\s+)?(implement|class|interface)\\b", 119 | 2 => "\\b(end\\s+)?(foreach|if|try)\\b", 120 | ), 121 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 122 | 'SCRIPT_DELIMITERS' => array( 123 | ), 124 | 'HIGHLIGHT_STRICT_BLOCK' => array( 125 | ), 126 | 'TAB_WIDTH' => 4 127 | ); 128 | 129 | ?> 130 | -------------------------------------------------------------------------------- /assets/geshi/whitespace.php: -------------------------------------------------------------------------------- 1 | 'Whitespace', 41 | 'COMMENT_SINGLE' => array(), 42 | 'COMMENT_MULTI' => array(), 43 | 'COMMENT_REGEXP' => array( 44 | 3 => "/[^\n\x20\x09]+/s" 45 | ), 46 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 47 | 'QUOTEMARKS' => array(), 48 | 'ESCAPE_CHAR' => '', 49 | 'KEYWORDS' => array( 50 | ), 51 | 'SYMBOLS' => array( 52 | ), 53 | 'CASE_SENSITIVE' => array( 54 | GESHI_COMMENTS => false, 55 | ), 56 | 'STYLES' => array( 57 | 'KEYWORDS' => array( 58 | ), 59 | 'COMMENTS' => array( 60 | 3 => 'color: #666666; font-style: italic;' 61 | ), 62 | 'BRACKETS' => array( 63 | 0 => 'color: #66cc66;' 64 | ), 65 | 'STRINGS' => array( 66 | 0 => 'color: #ff0000;' 67 | ), 68 | 'NUMBERS' => array( 69 | ), 70 | 'METHODS' => array( 71 | ), 72 | 'SYMBOLS' => array( 73 | ), 74 | 'ESCAPE_CHAR' => array( 75 | ), 76 | 'SCRIPT' => array( 77 | ), 78 | 'REGEXPS' => array( 79 | 2 => 'background-color: #FF9999;', 80 | 3 => 'background-color: #9999FF;' 81 | ) 82 | ), 83 | 'URLS' => array( 84 | ), 85 | 'OOLANG' => false, 86 | 'OBJECT_SPLITTERS' => array( 87 | ), 88 | 'REGEXPS' => array( 89 | 2 => array( 90 | GESHI_SEARCH => "(? " ", 92 | GESHI_MODIFIERS => 's', 93 | GESHI_BEFORE => "", 94 | GESHI_AFTER => "" 95 | ), 96 | 3 => array( 97 | GESHI_SEARCH => "\x09", 98 | GESHI_REPLACE => " ", 99 | GESHI_MODIFIERS => 's', 100 | GESHI_BEFORE => "", 101 | GESHI_AFTER => "" 102 | ), 103 | ), 104 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 105 | 'SCRIPT_DELIMITERS' => array( 106 | ), 107 | 'HIGHLIGHT_STRICT_BLOCK' => array( 108 | ), 109 | 'TAB_WIDTH' => 4, 110 | 'PARSER_CONTROL' => array( 111 | 'ENABLE_FLAGS' => array( 112 | 'KEYWORDS' => GESHI_NEVER, 113 | 'SYMBOLS' => GESHI_NEVER, 114 | 'STRINGS' => GESHI_NEVER, 115 | // 'REGEXPS' => GESHI_NEVER, 116 | 'NUMBERS' => GESHI_NEVER 117 | ) 118 | ) 119 | ); 120 | 121 | ?> 122 | -------------------------------------------------------------------------------- /assets/geshi/xml.php: -------------------------------------------------------------------------------- 1 | 'XML', 49 | 'COMMENT_SINGLE' => array(), 50 | 'COMMENT_MULTI' => array(), 51 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 52 | 'QUOTEMARKS' => array("'", '"'), 53 | 'ESCAPE_CHAR' => '', 54 | 'KEYWORDS' => array( 55 | ), 56 | 'SYMBOLS' => array( 57 | ), 58 | 'CASE_SENSITIVE' => array( 59 | GESHI_COMMENTS => false, 60 | ), 61 | 'STYLES' => array( 62 | 'KEYWORDS' => array( 63 | ), 64 | 'COMMENTS' => array( 65 | ), 66 | 'ESCAPE_CHAR' => array( 67 | 0 => 'color: #000099; font-weight: bold;' 68 | ), 69 | 'BRACKETS' => array( 70 | 0 => 'color: #66cc66;' 71 | ), 72 | 'STRINGS' => array( 73 | 0 => 'color: #ff0000;' 74 | ), 75 | 'NUMBERS' => array( 76 | 0 => 'color: #cc66cc;' 77 | ), 78 | 'METHODS' => array( 79 | ), 80 | 'SYMBOLS' => array( 81 | 0 => 'color: #66cc66;' 82 | ), 83 | 'SCRIPT' => array( 84 | -1 => 'color: #808080; font-style: italic;', // comments 85 | 0 => 'color: #00bbdd;', 86 | 1 => 'color: #ddbb00;', 87 | 2 => 'color: #339933;', 88 | 3 => 'color: #009900;' 89 | ), 90 | 'REGEXPS' => array( 91 | 0 => 'color: #000066;', 92 | 1 => 'color: #000000; font-weight: bold;', 93 | 2 => 'color: #000000; font-weight: bold;' 94 | ) 95 | ), 96 | 'URLS' => array( 97 | ), 98 | 'OOLANG' => false, 99 | 'OBJECT_SPLITTERS' => array( 100 | ), 101 | 'REGEXPS' => array( 102 | 0 => array(//attribute names 103 | GESHI_SEARCH => '([a-z_:][\w\-\.:]*)(=)', 104 | GESHI_REPLACE => '\\1', 105 | GESHI_MODIFIERS => 'i', 106 | GESHI_BEFORE => '', 107 | GESHI_AFTER => '\\2' 108 | ), 109 | 1 => array(//Initial header line 110 | GESHI_SEARCH => '(<[\/?|(\?xml)]?[a-z_:][\w\-\.:]*(\??>)?)', 111 | GESHI_REPLACE => '\\1', 112 | GESHI_MODIFIERS => 'i', 113 | GESHI_BEFORE => '', 114 | GESHI_AFTER => '' 115 | ), 116 | 2 => array(//Tag end markers 117 | GESHI_SEARCH => '(([\/|\?])?>)', 118 | GESHI_REPLACE => '\\1', 119 | GESHI_MODIFIERS => 'i', 120 | GESHI_BEFORE => '', 121 | GESHI_AFTER => '' 122 | ), 123 | ), 124 | 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 125 | 'SCRIPT_DELIMITERS' => array( 126 | -1 => array( 127 | '' 128 | ), 129 | 0 => array( 130 | ' '>' 131 | ), 132 | 1 => array( 133 | '&' => ';' 134 | ), 135 | 2 => array( 136 | ' ']]>' 137 | ), 138 | 3 => array( 139 | '<' => '>' 140 | ) 141 | ), 142 | 'HIGHLIGHT_STRICT_BLOCK' => array( 143 | -1 => false, 144 | 0 => false, 145 | 1 => false, 146 | 2 => false, 147 | 3 => true 148 | ), 149 | 'TAB_WIDTH' => 2, 150 | 'PARSER_CONTROL' => array( 151 | 'ENABLE_FLAGS' => array( 152 | 'NUMBERS' => GESHI_NEVER 153 | ) 154 | ) 155 | ); 156 | 157 | ?> 158 | -------------------------------------------------------------------------------- /assets/geshi/xorg_conf.php: -------------------------------------------------------------------------------- 1 | 'Xorg configuration', 39 | 'COMMENT_SINGLE' => array(1 => '#'), 40 | 'COMMENT_MULTI' => array(), 41 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 42 | 'QUOTEMARKS' => array('"'), 43 | 'ESCAPE_CHAR' => '\\', 44 | 'KEYWORDS' => array( 45 | // sections 46 | 1 => array( 47 | 'Section', 'EndSection', 'SubSection', 'EndSubSection' 48 | ), 49 | 2 => array( 50 | // see http://www.x.org/archive/X11R6.9.0/doc/html/xorg.conf.5.html 51 | 'BiosBase', 'Black', 'Boardname', 'BusID', 'ChipID', 'ChipRev', 52 | 'Chipset', 'ClockChip', 'Clocks', 'DacSpeed', 53 | 'DefaultDepth', 'DefaultFbBpp', 'Depth', 'Device', 54 | 'DisplaySize', 'Driver', 'FbBpp', 'Gamma', 55 | 'HorizSync', 'IOBase', 'Identifier', 'InputDevice', 56 | 'Load', 'MemBase', 'Mode', 'Modeline', 'Modelname', 57 | 'Modes', 'Monitor', 'Option', 'Ramdac', 'RgbPath', 58 | 'Screen', 'TextClockFreq', 'UseModes', 'VendorName', 59 | 'VertRefresh', 'VideoAdaptor', 'VideoRam', 60 | 'ViewPort', 'Virtual', 'Visual', 'Weight', 'White' 61 | ), 62 | 3 => array( 63 | // some sub-keywords 64 | // screen position 65 | 'Above', 'Absolute', 'Below', 'LeftOf', 'Relative', 'RightOf', 66 | // modes 67 | 'DotClock', 'Flags', 'HSkew', 'HTimings', 'VScan', 'VTimings' 68 | ), 69 | ), 70 | 'REGEXPS' => array( 71 | ), 72 | 'SYMBOLS' => array( 73 | ), 74 | 'CASE_SENSITIVE' => array( 75 | GESHI_COMMENTS => false, 76 | 1 => false, 77 | 2 => false, 78 | 3 => false 79 | ), 80 | 'STYLES' => array( 81 | 'KEYWORDS' => array( 82 | 1 => 'color: #b1b100;', 83 | 2 => 'color: #990000;', 84 | 3 => 'color: #550000;' 85 | ), 86 | 'COMMENTS' => array( 87 | 1 => 'color: #adadad; font-style: italic;', 88 | ), 89 | 'ESCAPE_CHAR' => array( 90 | ), 91 | 'BRACKETS' => array( 92 | ), 93 | 'STRINGS' => array( 94 | 0 => 'color: #0000ff;', 95 | ), 96 | 'NUMBERS' => array( 97 | 0 => 'color: #cc66cc;' 98 | ), 99 | 'METHODS' => array( 100 | ), 101 | 'SYMBOLS' => array( 102 | ), 103 | 'REGEXPS' => array( 104 | ), 105 | 'SCRIPT' => array( 106 | ) 107 | ), 108 | 'URLS' => array( 109 | 1 => '', 110 | 2 => '', 111 | 3 => '' 112 | ), 113 | 'OOLANG' => false, 114 | 'OBJECT_SPLITTERS' => array( 115 | ), 116 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 117 | 'SCRIPT_DELIMITERS' => array( 118 | ), 119 | 'HIGHLIGHT_STRICT_BLOCK' => array( 120 | ), 121 | 'TAB_WIDTH' => 4 122 | ); 123 | 124 | ?> 125 | -------------------------------------------------------------------------------- /assets/geshi/z80.php: -------------------------------------------------------------------------------- 1 | 'ZiLOG Z80 Assembler', 48 | 'COMMENT_SINGLE' => array(1 => ';'), 49 | 'COMMENT_MULTI' => array(), 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => array("'", '"'), 52 | 'ESCAPE_CHAR' => '', 53 | 'KEYWORDS' => array( 54 | /*CPU*/ 55 | 1 => array( 56 | 'adc','add','and','bit','call','ccf','cp','cpd','cpdr','cpir','cpi', 57 | 'cpl','daa','dec','di','djnz','ei','ex','exx','halt','im','in', 58 | 'in0','inc','ind','indr','inir','ini','jp','jr','ld','ldd','lddr', 59 | 'ldir','ldi','mlt','neg','nop','or','otdm','otdmr','otdr','otim', 60 | 'otimr','otir','out','out0','outd','outi','pop','push','res','ret', 61 | 'reti','retn','rl','rla','rlc','rlca','rld','rr','rra','rrc','rrca', 62 | 'rrd','rst','sbc','scf','set','sla','sl1','sll','slp','sra','srl', 63 | 'sub','tst','tstio','xor' 64 | ), 65 | /*registers*/ 66 | 2 => array( 67 | 'a','b','c','d','e','h','l', 68 | 'af','bc','de','hl','ix','iy','sp', 69 | 'af\'','ixh','ixl','iyh','iyl' 70 | ), 71 | /*Directive*/ 72 | 3 => array( 73 | '#define','#endif','#else','#ifdef','#ifndef','#include','#undef', 74 | '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ' 75 | ), 76 | ), 77 | 'SYMBOLS' => array( 78 | '[', ']', '(', ')', '?', '+', '-', '*', '/', '%', '$' 79 | ), 80 | 'CASE_SENSITIVE' => array( 81 | GESHI_COMMENTS => false, 82 | 1 => false, 83 | 2 => false, 84 | 3 => false, 85 | ), 86 | 'STYLES' => array( 87 | 'KEYWORDS' => array( 88 | 1 => 'color: #0000ff; font-weight:bold;', 89 | 2 => 'color: #0000ff;', 90 | 3 => 'color: #46aa03; font-weight:bold;' 91 | ), 92 | 'COMMENTS' => array( 93 | 1 => 'color: #adadad; font-style: italic;', 94 | ), 95 | 'ESCAPE_CHAR' => array( 96 | 0 => 'color: #000099; font-weight: bold;' 97 | ), 98 | 'BRACKETS' => array( 99 | 0 => 'color: #0000ff;' 100 | ), 101 | 'STRINGS' => array( 102 | 0 => 'color: #7f007f;' 103 | ), 104 | 'NUMBERS' => array( 105 | 0 => 'color: #dd22dd;' 106 | ), 107 | 'METHODS' => array( 108 | ), 109 | 'SYMBOLS' => array( 110 | 0 => 'color: #008000;' 111 | ), 112 | 'REGEXPS' => array( 113 | 0 => 'color: #22bbff;', 114 | 1 => 'color: #22bbff;', 115 | 2 => 'color: #993333;' 116 | ), 117 | 'SCRIPT' => array( 118 | ) 119 | ), 120 | 'URLS' => array( 121 | 1 => '', 122 | 2 => '', 123 | 3 => '' 124 | ), 125 | 'OOLANG' => false, 126 | 'OBJECT_SPLITTERS' => array( 127 | ), 128 | 'REGEXPS' => array( 129 | //Hex numbers 130 | 0 => '0[0-9a-fA-F]{1,32}[hH]', 131 | //Binary numbers 132 | 1 => '\%[01]{1,64}|[01]{1,64}[bB]?', 133 | //Labels 134 | 2 => '^[_a-zA-Z][_a-zA-Z0-9]?\:' 135 | ), 136 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 137 | 'SCRIPT_DELIMITERS' => array( 138 | ), 139 | 'HIGHLIGHT_STRICT_BLOCK' => array( 140 | ), 141 | 'TAB_WIDTH' => 8 142 | ); 143 | 144 | ?> 145 | -------------------------------------------------------------------------------- /assets/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3designs/mdocs/4cda7126d6ccb9a47b245260d35625c9ff7a6f7e/assets/images/ajax-loader.gif -------------------------------------------------------------------------------- /assets/js/jquery.floating-widget-0.9.1.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery Floating Widget plugin v0.9.1 3 | * http://terkel.jp/archives/2011/05/jquery-floating-widget-plugin/ 4 | * 5 | * Copyright (c) 2011 Takeru Suzuki 6 | * Dual licensed under the MIT and GPL licenses. 7 | */ 8 | (function(b){b.fn.floatingWidget=function(){return this.each(function(){var a=b(this),c=a.offsetParent(),d=b(window),e=a.offset().top-parseFloat(a.css("marginTop").replace(/auto/,0));c.height()>a.outerHeight(!0)&&d.scroll(function(){var b=d.scrollTop(),f=c.offset().top+c.height()-a.outerHeight(!0);b>e?(a.addClass("floating"),b>f?a.removeClass("floating").addClass("pinned-bottom"):a.removeClass("pinned-bottom")):a.removeClass("floating")})})}})(jQuery); 9 | -------------------------------------------------------------------------------- /assets/js/jquery.smooth-scroll-1.4.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Smooth Scroll Plugin v1.4 3 | * 4 | * Date: Mon Apr 25 00:02:30 2011 EDT 5 | * Requires: jQuery v1.3+ 6 | * 7 | * Copyright 2010, Karl Swedberg 8 | * Dual licensed under the MIT and GPL licenses (just like jQuery): 9 | * http://www.opensource.org/licenses/mit-license.php 10 | * http://www.gnu.org/licenses/gpl.html 11 | * 12 | * 13 | * 14 | * 15 | */ 16 | (function(c){function k(b){return b.replace(/^\//,"").replace(/(index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")}var l=k(location.pathname),m=function(b){var d=[],a=false,e=b.dir&&b.dir=="left"?"scrollLeft":"scrollTop";this.each(function(){if(!(this==document||this==window)){var f=c(this);if(f[e]()>0)d.push(this);else{f[e](1);a=f[e]()>0;f[e](0);a&&d.push(this)}}});if(b.el==="first"&&d.length)d=[d.shift()];return d};c.fn.extend({scrollable:function(b){return this.pushStack(m.call(this,{dir:b}))}, 17 | firstScrollable:function(b){return this.pushStack(m.call(this,{el:"first",dir:b}))},smoothScroll:function(b){b=b||{};var d=c.extend({},c.fn.smoothScroll.defaults,b);this.die("click.smoothscroll").live("click.smoothscroll",function(a){var e=c(this),f=location.hostname===this.hostname||!this.hostname,g=d.scrollTarget||(k(this.pathname)||l)===l,i=this.hash,h=true;if(!d.scrollTarget&&(!f||!g||!i))h=false;else{f=d.exclude;g=0;for(var j=f.length;h&&g 0) { 10 | url = url.substr(0, query_pos); 11 | } 12 | url = url.replace(/\/$/, ''); 13 | url += $.address.value(); 14 | window.location = url; 15 | } 16 | 17 | // Fix all colons in id 18 | function removeIdColons() { 19 | $('#doc *[id*=":"]').each(function(){ 20 | $(this).attr('id', $(this).attr('id').replace(':', '--')); 21 | }); 22 | $('#toc a[href*=":"]').each(function(){ 23 | $(this).attr('href', $(this).attr('href').replace(':', '--')); 24 | }); 25 | } 26 | 27 | // On Load 28 | (function($){ 29 | $(document).ready(function(){ 30 | // Remove colons from id 31 | removeIdColons(); 32 | 33 | // TOC floating widget 34 | $('#toc').floatingWidget(); 35 | // TOC smooth scroll 36 | $('#toc a').smoothScroll(); 37 | 38 | // Show decoration of TOC 39 | $('a[href^="#"]').hover(function(){ 40 | var target = $(this).attr('href'); 41 | var decoration = $(target).attr('id') + '-decoration'; 42 | if($('#'+decoration).length === 0) { 43 | var position = $(target).position(); 44 | var div = document.createElement('div'); 45 | $(div).attr('id', decoration); 46 | $(div).text('#'); 47 | //console.log($(target)); 48 | $(div).css({ 49 | position: 'absolute', 50 | top: position.top, 51 | left: position.left - 15, 52 | marginTop: $(target).css('margin-top'), 53 | padding: $(target).css('padding'), 54 | fontSize: $(target).css('font-size') 55 | }); 56 | $(div).addClass('document-decoration'); 57 | $(div).addClass('pound'); 58 | $(div).appendTo($('#doc')); 59 | } 60 | else { 61 | $('#'+decoration).show(); 62 | } 63 | }, function(){ 64 | var target = $(this).attr('href'); 65 | $('#' + $(target).attr('id') + '-decoration').hide(); 66 | }); 67 | 68 | // Ajax load 69 | $('#menu a').click(function(e){ 70 | e.preventDefault(); 71 | var url = $(this).attr('href'); 72 | 73 | // Add deep link 74 | $.address.value(url); 75 | 76 | // Scroll to top 77 | $.smoothScroll(0); 78 | 79 | // Show loaders 80 | $('#doc, #toc').wrapInner('
'); 81 | $('#doc > div, #toc > div').fadeOut(function(){ 82 | $(this).parent().addClass('loading'); 83 | 84 | // Load 85 | $.ajax({ 86 | url: url, 87 | dataType: 'json', 88 | success: function(response) { 89 | // Invalid data -> just redirect 90 | if(!response.title, !response.doc, !response.toc) { 91 | window.location = url; 92 | } 93 | 94 | // Change title and load data 95 | document.title = response.title; 96 | $('#doc > div').html(response.doc); 97 | $('#toc > div').html(response.toc); 98 | 99 | // Remove colons from ids 100 | removeIdColons(); 101 | 102 | // Remove loading and show 103 | $('#doc, #toc').removeClass('loading'); 104 | $('#doc > div,#toc > div').fadeIn(function(){ 105 | $(this).parent().html($(this).html()); 106 | }); 107 | }, 108 | // Just redirect on error 109 | error: function(){ 110 | window.location = url; 111 | } 112 | }); 113 | }); 114 | }); 115 | 116 | }); 117 | })(jQuery); 118 | -------------------------------------------------------------------------------- /assets/markdown.mdocs.php: -------------------------------------------------------------------------------- 1 | _doHeaders_permalink($title); 56 | } 57 | 58 | function _doHeaders_callback_setext($matches) { 59 | if ($matches[3] == '-' && preg_match('{^- }', $matches[1])) 60 | return $matches[0]; 61 | 62 | $level = $matches[3]{0} == '=' ? 1 : 2; 63 | $id = & $matches[2]; 64 | $title = & $this->runSpanGamut($matches[1]); 65 | 66 | if ($level >= $this->maxlevel && $level <= $this->minlevel) { 67 | $attr = $this->_doHeaders_attr($id ,$title); 68 | $block = "".$title.""; 69 | }else { 70 | $attr = $this->_doHeaders_attr($id); 71 | $block = "$title"; 72 | } 73 | 74 | return "\n" . $this->hashBlock($block) . "\n\n"; 75 | } 76 | function _doHeaders_callback_atx($matches) { 77 | 78 | $level = strlen($matches[1]); 79 | $id = & $matches[3]; 80 | $title = & $this->runSpanGamut($matches[2]); 81 | 82 | if ($level >= $this->maxlevel && $level <= $this->minlevel) { 83 | $attr = $this->_doHeaders_attr($id, $title); 84 | $block = "".$title.""; 85 | }else { 86 | $attr = $this->_doHeaders_attr($id); 87 | $block = "".$title.""; 88 | } 89 | 90 | return "\n" . $this->hashBlock($block) . "\n\n"; 91 | } 92 | 93 | function _doCodeBlocks_callback($matches) { 94 | $codeblock = $matches[1]; 95 | 96 | $codeblock = $this->outdent($codeblock); 97 | $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); 98 | 99 | # trim leading newlines and trailing newlines 100 | $codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock); 101 | 102 | 103 | # Get code block language if specfied on the first line 104 | # Example: {.php} (sets
 class) or {#php} (sets 
 id)
105 | 		if(preg_match('/^(\s+)?{(\.|#)([\w\-\_]+)}(\s+)?\n/',$codeblock,$language))
106 | 		{
107 | 			// Remove the language specification the codeblock:
108 | 			$codeblock = substr($codeblock,strlen($language[0]));
109 | 			
110 | 			$attr_name = ($language[2] == '.')? 'class' : 'id'; 
111 | 			$attr = " $attr_name=\"$language[3]\"";
112 | 		}
113 | 		else 
114 | 		{
115 | 			$attr = "";
116 | 		}
117 | 			
118 | 		$codeblock = "$codeblock\n
"; 119 | return "\n\n".$this->hashBlock($codeblock)."\n\n"; 120 | } 121 | 122 | function _doFencedCodeBlocks_callback($matches) { 123 | $codeblock = $matches[2]; 124 | $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); 125 | $codeblock = preg_replace_callback('/^\n+/', 126 | array(&$this, '_doFencedCodeBlocks_newlines'), $codeblock); 127 | 128 | 129 | # Get code block language if specfied on the first line 130 | # Example: {.php} (sets
 class) or {#php} (sets 
 id)
131 | 		if(preg_match('/^(\s+)?{(\.|#)([\w\-\_]+)}(\s+)?\n/',$codeblock,$language))
132 | 		{
133 | 			// Remove the language specification the codeblock:
134 | 			$codeblock = substr($codeblock,strlen($language[0]));
135 | 			
136 | 			$attr_name = ($language[2] == '.')? 'class' : 'id'; 
137 | 			$attr = " $attr_name=\"$language[3]\"";
138 | 		}
139 | 		else 
140 | 		{
141 | 			$attr = "";
142 | 		}
143 | 			
144 | 		$codeblock = "$codeblock\n
"; 145 | // $codeblock = "
$codeblock
"; 146 | return "\n\n".$this->hashBlock($codeblock)."\n\n"; 147 | } 148 | 149 | 150 | } 151 | 152 | 153 | ?> -------------------------------------------------------------------------------- /assets/menu.php: -------------------------------------------------------------------------------- 1 | generate(); 9 | * 10 | */ 11 | class Menu 12 | { 13 | var $dir; 14 | var $filetype; 15 | var $html; 16 | 17 | function __construct($dir='docs/',$filetype='.md') 18 | { 19 | $this->dir = & $dir; 20 | $this->filetype = & $filetype; 21 | } 22 | 23 | function __toString() 24 | { 25 | return $this->html; 26 | } 27 | 28 | /** 29 | * Recursive glob() 30 | * 31 | * @param int $pattern 32 | * the pattern passed to glob() 33 | * @param int $flags 34 | * the flags passed to glob() 35 | * @param string $path 36 | * the path to scan 37 | * @return array 38 | * an array of files in the given path matching the pattern. 39 | */ 40 | function rglob($pattern='*', $flags = 0, $path='') 41 | { 42 | $paths = glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); 43 | $files = glob($path.$pattern, $flags); 44 | $length = strlen($path); 45 | 46 | foreach ($paths as $path) { 47 | $files[substr($path,$length,-1)] = $this->rglob($pattern, $flags, $path); 48 | } 49 | 50 | return $files; 51 | } 52 | 53 | /** 54 | * Generate the documentation navigation menu 55 | * 56 | * @return string $html 57 | */ 58 | function generate($ignore = false) 59 | { 60 | $files = $this->rglob('*'.$this->filetype,0,$this->dir); 61 | 62 | if($ignore) { 63 | foreach ($files as $k => $v) { 64 | if(is_int($k)) unset($files[$k]); 65 | } 66 | } 67 | 68 | $this->html = ""; 69 | 70 | $this->_list_files($files); 71 | 72 | return $this->html; 73 | } 74 | 75 | /** 76 | * List all files in HTML format 77 | * Used by generate() 78 | * 79 | * @param array $files Multi-dimensional array of files 80 | * @param string $parent Parent path, used for sub directories 81 | * @param int $depth Folder depth, used for heading tags 82 | * @return null 83 | */ 84 | function _list_files($files, $parent='', $depth=0) 85 | { 86 | $path = $parent; 87 | 88 | if(empty($files)) 89 | return; 90 | 91 | foreach($files as $group => $file) 92 | { 93 | if(!is_int($group)) 94 | { 95 | $h = $depth + 4; 96 | $this->html .= "$group\n"; 97 | $path = $parent . $group . '/'; 98 | } 99 | 100 | if(is_array($file)) 101 | { 102 | $this->_list_files($file, $path, $depth+1); 103 | continue; 104 | } 105 | 106 | $file = pathinfo($file); 107 | $url = "?file=$path$file[filename]"; 108 | $this->html .= "\t\n"; 109 | } 110 | } 111 | 112 | } 113 | 114 | 115 | ?> -------------------------------------------------------------------------------- /assets/toc.php: -------------------------------------------------------------------------------- 1 | generate(); 10 | * 11 | * 12 | * @author Jay Williams 13 | */ 14 | class TOC 15 | { 16 | /** 17 | * The HTML to scan when creating the Table of Contents 18 | * 19 | * @var string 20 | */ 21 | var $content = ""; 22 | 23 | /** 24 | * The the raw Table of Contents array is stored here 25 | * 26 | * @var array 27 | * @access private 28 | */ 29 | var $toc = array(); 30 | 31 | /** 32 | * The maximum header level to include in the TOC 33 | * 34 | * @var int 35 | */ 36 | var $maxlevel = 1; 37 | 38 | /** 39 | * The minimum header level to include in the TOC 40 | * 41 | * @var int 42 | */ 43 | var $minlevel = 2; 44 | 45 | /** 46 | * All headers will be split based off of this delimiter. 47 | * If you don't want to split the headers, simply set this variable to false, or empty. 48 | * 49 | * @var string 50 | */ 51 | var $delimiter = ':'; 52 | 53 | /** 54 | * Headers will be trimmed based off of this variable. 55 | * If you don't want headers to be trimmed, simply set this variable to false, or empty. 56 | * 57 | * @var string 58 | */ 59 | var $trim = '$ '; 60 | 61 | var $html; 62 | 63 | function __construct($content='',$maxlevel=1,$minlevel=2) 64 | { 65 | if (empty($content)) 66 | return false; 67 | 68 | $this->content = & $content; 69 | $this->maxlevel = & $maxlevel; 70 | $this->minlevel = & $minlevel; 71 | 72 | return true; 73 | } 74 | 75 | function __toString() 76 | { 77 | return $this->html; 78 | } 79 | 80 | 81 | function scan() 82 | { 83 | $regex = '#maxlevel-$this->minlevel".'])(.*?id=("|\')([\w\:\-_]+)\3.*?)?>(.*?)#'; 84 | 85 | preg_replace_callback($regex, array(&$this, 'add'), $this->content); 86 | } 87 | 88 | 89 | function add($match) 90 | { 91 | $this->toc[] = array( 92 | 'level'=>(int)$match[1], 93 | 'id'=>$match[4], 94 | 'text'=>$match[5] 95 | ); 96 | } 97 | 98 | function generate() 99 | { 100 | if (count($this->toc) < 1) { 101 | $this->scan(); 102 | } 103 | 104 | return $this->output(); 105 | } 106 | 107 | 108 | function output_list() 109 | { 110 | $this->html = ""; 111 | 112 | $toc_total = count($this->toc); 113 | for ($i = 0; $i < $toc_total; $i ++) { 114 | 115 | $level = & $this->toc[$i]['level']; 116 | $id = & $this->toc[$i]['id']; 117 | $text = $item['text']; 118 | 119 | if (!empty($this->delimiter)) 120 | $text = end(explode($this->delimiter,$text)); 121 | 122 | if (!empty($this->trim)) 123 | $text = trim($text,$this->trim); 124 | 125 | $link = "$text"; 126 | 127 | if ($i == 0) { 128 | $level = min($level, $this->minlevel); 129 | $stack = array($level); 130 | $this->html .= "\t
  1. $link"; 131 | } else { 132 | $prev = $stack[count($stack)-1]; 133 | if ($level == $prev) { 134 | $this->html .= "
  2. \n\t
  3. $link"; 135 | } elseif ($level < $prev) { 136 | 137 | while (count($stack) > 1) { 138 | array_pop($stack); 139 | $this->html .= "
"; 140 | $prev = $stack[count($stack)-1]; 141 | if ($level >= $prev) 142 | break; 143 | } 144 | $this->html .= "\n\t
  • $link"; 145 | } else { 146 | $stack[] = $level; 147 | $this->html .= "\n\t
    1. $link"; 148 | } 149 | } 150 | } 151 | while (count($stack) > 0) { 152 | array_pop($stack); 153 | $this->html .= "
    "; 154 | } 155 | 156 | return $this->html; 157 | } 158 | 159 | function output() 160 | { 161 | 162 | $this->html = ""; 163 | 164 | foreach ($this->toc as $item) { 165 | 166 | $level = & $item['level']; 167 | $id = & $item['id']; 168 | $text = & $item['text']; 169 | 170 | if (!empty($this->delimiter)) 171 | $text = end(explode($this->delimiter,$text)); 172 | 173 | if (!empty($this->trim)) 174 | $text = trim($text,$this->trim); 175 | 176 | $link = "$text"; 177 | 178 | if ($level == $this->maxlevel) { 179 | $this->html .= "

    $link

    \n"; 180 | }else { 181 | $this->html .= "\t
    $link
    \n"; 182 | } 183 | 184 | } 185 | 186 | return $this->html; 187 | } 188 | 189 | function getHtml() { 190 | return $this->html; 191 | } 192 | 193 | } 194 | 195 | 196 | ?> -------------------------------------------------------------------------------- /docs/Class/Class.md: -------------------------------------------------------------------------------- 1 | Native: Class {#Class} 2 | ====================== 3 | 4 | The base Class of the [MooTools](http://mootools.net/) framework. 5 | 6 | Class Method: constructor {#Class:constructor} 7 | ---------------------------------------------- 8 | 9 | ### Syntax: 10 | 11 | var MyClass = new Class(properties); 12 | 13 | ### Arguments: 14 | 15 | 1. properties - (*object*) The collection of properties that apply to the Class. Also accepts some special properties such as Extends, Implements, and initialize (see below). 16 | 17 | #### Property: Extends 18 | 19 | * (*class*) The Class that this class will extend. 20 | 21 | The methods of This Class that have the same name as the Extends Class, will have a parent property, that allows you to call the other overridden method. 22 | 23 | #### Property: Implements 24 | 25 | * (*object*) A passed object's properties will be copied into this Class. 26 | * (*class*) The properties of a passed Class will be copied into the target Class. 27 | * (*array*) An array of objects or Classes, the properties of which will be copied into this Class. 28 | 29 | Implements is similar to Extends, except that it overrides properties without inheritance. 30 | Useful when implementing a default set of properties in multiple Classes. 31 | 32 | #### Property: initialize 33 | 34 | * (*function*) The initialize function will be the constructor for this class when new instances are created. 35 | 36 | ### Returns: 37 | 38 | * (*class*) The created Class. 39 | 40 | ### Examples: 41 | 42 | #### Class Example: 43 | 44 | var Cat = new Class({ 45 | initialize: function(name){ 46 | this.name = name; 47 | } 48 | }); 49 | var myCat = new Cat('Micia'); 50 | alert(myCat.name); //alerts 'Micia' 51 | 52 | var Cow = new Class({ 53 | initialize: function(){ 54 | alert('moooo'); 55 | } 56 | }); 57 | var Effie = new Cow($empty); //Will not alert 'moooo', because the initialize method is overridden by the $empty function. 58 | 59 | #### Extends Example: 60 | 61 | var Animal = new Class({ 62 | initialize: function(age){ 63 | this.age = age; 64 | } 65 | }); 66 | var Cat = new Class({ 67 | Extends: Animal, 68 | initialize: function(name, age){ 69 | this.parent(age); //will call initalize of Animal 70 | this.name = name; 71 | } 72 | }); 73 | var myCat = new Cat('Micia', 20); 74 | alert(myCat.name); //Alerts 'Micia'. 75 | alert(myCat.age); //Alerts 20. 76 | 77 | #### Implements Example: 78 | 79 | var Animal = new Class({ 80 | initialize: function(age){ 81 | this.age = age; 82 | } 83 | }); 84 | var Cat = new Class({ 85 | Implements: Animal, 86 | setName: function(name){ 87 | this.name = name 88 | } 89 | }); 90 | var myAnimal = new Cat(20); 91 | myAnimal.setName('Micia'); 92 | alert(myAnimal.name); //Alerts 'Micia'. 93 | 94 | 95 | 96 | 97 | Class Method: implement {#Class:implement} 98 | ------------------------------------------ 99 | 100 | Implements the passed in properties into the base Class prototypes, altering the base Class. 101 | The same as creating a [new Class](#Class:constructor) with the Implements property, but handy when you need to modify existing classes. 102 | 103 | ### Syntax: 104 | 105 | MyClass.implement(properties); 106 | 107 | ### Arguments: 108 | 109 | 1. properties - (*object*) The properties to add to the base Class. 110 | 111 | ### Examples: 112 | 113 | var Animal = new Class({ 114 | initialize: function(age){ 115 | this.age = age; 116 | } 117 | }); 118 | Animal.implement({ 119 | setName: function(name){ 120 | this.name = name; 121 | } 122 | }); 123 | var myAnimal = new Animal(20); 124 | myAnimal.setName('Micia'); 125 | alert(myAnimal.name); //alerts 'Micia' 126 | -------------------------------------------------------------------------------- /docs/Core/Browser.md: -------------------------------------------------------------------------------- 1 | Hash: Browser {#Browser} 2 | ======================== 3 | 4 | Some browser properties are attached to the Browser Object for browser and platform detection. 5 | 6 | ### Features: 7 | 8 | * Browser.Features.xpath - (*boolean*) True if the browser supports DOM queries using XPath. 9 | * Browser.Features.xhr - (*boolean*) True if the browser supports native XMLHTTP object. 10 | 11 | ### Engine: 12 | 13 | * Browser.Engine.trident - (*boolean*) True if the current browser uses the trident engine (e.g. Internet Explorer). 14 | * Browser.Engine.gecko - (*boolean*) True if the current browser uses the gecko engine (e.g. Firefox, or any Mozilla Browser). 15 | * Browser.Engine.webkit - (*boolean*) True if the current browser uses the webkit engine (e.g. Safari, Google Chrome, Konqueror). 16 | * Browser.Engine.presto - (*boolean*) True if the current browser uses the presto engine (e.g. Opera 9). 17 | * Browser.Engine.name - (*string*) The name of the engine. 18 | * Browser.Engine.version - (*number*) The version of the engine. (e.g. 950) 19 | * Browser.Plugins.Flash.version - (*number*) The major version of the flash plugin installed. 20 | * Browser.Plugins.Flash.build - (*number*) The build version of the flash plugin installed. 21 | 22 | ### Platform: 23 | 24 | * Browser.Platform.mac - (*boolean*) True if the platform is Mac. 25 | * Browser.Platform.win - (*boolean*) True if the platform is Windows. 26 | * Browser.Platform.linux - (*boolean*) True if the platform is Linux. 27 | * Browser.Platform.ipod - (*boolean*) True if the platform is an iPod touch / iPhone. 28 | * Browser.Platform.other - (*boolean*) True if the platform is neither Mac, Windows, Linux nor iPod. 29 | * Browser.Platform.name - (*string*) The name of the platform. 30 | 31 | ### Notes: 32 | 33 | - Engine detection is entirely feature-based. 34 | -------------------------------------------------------------------------------- /docs/Element/Element.Style.md: -------------------------------------------------------------------------------- 1 | Native: Element {#Element} 2 | ========================== 3 | 4 | Custom Native to allow all of its methods to be used with any DOM element via the dollar function [$][]. 5 | 6 | 7 | 8 | Element Method: setStyle {#Element:setStyle} 9 | -------------------------------------------- 10 | 11 | Sets a CSS property to the Element. 12 | 13 | ### Syntax: 14 | 15 | myElement.setStyle(property, value); 16 | 17 | ### Arguments: 18 | 19 | 1. property - (*string*) The property to set. 20 | 2. value - (*mixed*) The value to which to set it. Numeric values of properties requiring a unit will automatically be appended with 'px'. 21 | 22 | ### Returns: 23 | 24 | * (*element*) This element. 25 | 26 | ### Example: 27 | //Both lines have the same effect. 28 | $('myElement').setStyle('width', '300px'); //The width is now 300px. 29 | $('myElement').setStyle('width', 300); //The width is now 300px. 30 | 31 | ### Notes: 32 | 33 | - All number values will automatically be rounded to the nearest whole number. 34 | 35 | 36 | 37 | Element Method: getStyle {#Element:getStyle} 38 | -------------------------------------------- 39 | 40 | Returns the style of the Element given the property passed in. 41 | 42 | ### Syntax: 43 | 44 | var style = myElement.getStyle(property); 45 | 46 | ### Arguments: 47 | 48 | 1. property - (*string*) The css style property you want to retrieve. 49 | 50 | ### Returns: 51 | 52 | * (*string*) The style value. 53 | 54 | ### Examples: 55 | 56 | $('myElement').getStyle('width'); //Returns "300px". 57 | $('myElement').getStyle('width').toInt(); //Returns 300. 58 | 59 | 60 | 61 | Element Method: setStyles {#Element:setStyles} 62 | ---------------------------------------------- 63 | 64 | Applies a collection of styles to the Element. 65 | 66 | ### Syntax: 67 | 68 | myElement.setStyles(styles); 69 | 70 | ### Arguments: 71 | 72 | 1. styles - (*object*) An object of property/value pairs for all the styles to apply. 73 | 74 | ### Returns: 75 | 76 | * (*element*) This element. 77 | 78 | ### Example: 79 | 80 | $('myElement').setStyles({ 81 | border: '1px solid #000', 82 | width: 300, 83 | height: 400 84 | }); 85 | 86 | ### See Also: 87 | 88 | - [Element:getStyle][] 89 | 90 | 91 | 92 | Element Method: getStyles {#Element:getStyles} 93 | ---------------------------------------------- 94 | 95 | Returns an object of styles of the Element for each argument passed in. 96 | 97 | ### Syntax: 98 | 99 | var styles = myElement.getStyles(property[, property2[, property3[, ...]]]); 100 | 101 | ### Arguments: 102 | 103 | 1. properties - (*strings*) Any number of style properties. 104 | 105 | ### Returns: 106 | 107 | * (*object*) An key/value object with the CSS styles as computed by the browser. 108 | 109 | ### Examples: 110 | 111 | $('myElement').getStyles('width', 'height', 'padding'); 112 | //returns {width: "10px", height: "10px", padding: "10px 0px 10px 0px"} 113 | 114 | ### See Also: 115 | 116 | - [Element:getStyle][] 117 | 118 | 119 | 120 | [$]: /core/Element/Element/#dollar 121 | [Function]: /core/Native/Function 122 | [Element:getStyle]: #Element:getStyle -------------------------------------------------------------------------------- /docs/Fx/Fx.CSS.md: -------------------------------------------------------------------------------- 1 | Class: Fx.CSS {#Fx-CSS} 2 | ======================= 3 | 4 | CSS parsing class for effects. Required by [Fx.Tween][], [Fx.Morph][], [Fx.Elements][]. 5 | 6 | Has no public methods. 7 | 8 | 9 | 10 | [Fx.Tween]: /core/Fx/Fx.Tween 11 | [Fx.Morph]: /core/Fx/Fx.Morph 12 | [Fx.Elements]: /more/Fx/Fx.Elements -------------------------------------------------------------------------------- /docs/Fx/Fx.Transitions.md: -------------------------------------------------------------------------------- 1 | Class: Fx {#Fx} 2 | =============== 3 | 4 | Fx.Transitions overrides the base [Fx][] constructor, and adds the possibility to use the transition option as string. 5 | 6 | ### Transition option: 7 | 8 | The equation to use for the effect. See [Fx.Transitions][]. It accepts both a function (ex: Fx.Transitions.Sine.easeIn) or a string ('sine:in', 'bounce:out' or 'quad:in:out') that will map to Fx.Transitions.Sine.easeIn / Fx.Transitions.Bounce.easeOut / Fx.Transitions.Quad.easeInOut 9 | 10 | 11 | Hash: Fx.Transitions {#Fx-Transitions} 12 | ====================================== 13 | 14 | A collection of tweening transitions for use with the [Fx][] classes. 15 | 16 | ### Examples: 17 | 18 | //Elastic.easeOut with default values: 19 | var myFx = $('myElement').effect('margin', {transition: Fx.Transitions.Elastic.easeOut}); 20 | 21 | ### See also: 22 | 23 | - [Robert Penner's Easing Equations](http://www.robertpenner.com/easing/) 24 | 25 | 26 | 27 | Fx.Transitions Method: linear {#Fx-Transitions:linear} 28 | ------------------------------------------------------ 29 | 30 | Displays a linear transition. 31 | 32 | Fx.Transitions Method: quad {#Fx-Transitions:quad} 33 | -------------------------------------------------- 34 | 35 | Displays a quadratic transition. Must be used as Quad.easeIn or Quad.easeOut or Quad.easeInOut. 36 | 37 | Fx.Transitions Method: cubic {#Fx-Transitions:cubic} 38 | ---------------------------------------------------- 39 | 40 | Displays a cubicular transition. Must be used as Cubic.easeIn or Cubic.easeOut or Cubic.easeInOut. 41 | 42 | 43 | Fx.Transitions Method: quart {#Fx-Transitions:quart} 44 | ---------------------------------------------------- 45 | 46 | Displays a quartetic transition. Must be used as Quart.easeIn or Quart.easeOut or Quart.easeInOut. 47 | 48 | Fx.Transitions Method: quint {#Fx-Transitions:quint} 49 | ---------------------------------------------------- 50 | 51 | Displays a quintic transition. Must be used as Quint.easeIn or Quint.easeOut or Quint.easeInOut 52 | 53 | Fx.Transitions Method: pow {#Fx-Transitions:pow} 54 | ------------------------------------------------ 55 | 56 | Used to generate Quad, Cubic, Quart and Quint. 57 | 58 | ### Note: 59 | 60 | - The default is `p^6`. 61 | 62 | Fx.Transitions Method: expo {#Fx-Transitions:expo} 63 | -------------------------------------------------- 64 | 65 | Displays a exponential transition. Must be used as Expo.easeIn or Expo.easeOut or Expo.easeInOut. 66 | 67 | 68 | 69 | Fx.Transitions Method: circ {#Fx-Transitions:circ} 70 | -------------------------------------------------- 71 | 72 | Displays a circular transition. Must be used as Circ.easeIn or Circ.easeOut or Circ.easeInOut. 73 | 74 | 75 | 76 | Fx.Transitions Method: sine {#Fx-Transitions:sine} 77 | -------------------------------------------------- 78 | 79 | Displays a sineousidal transition. Must be used as Sine.easeIn or Sine.easeOut or Sine.easeInOut. 80 | 81 | 82 | 83 | Fx.Transitions Method: back {#Fx-Transitions:back} 84 | -------------------------------------------------- 85 | 86 | Makes the transition go back, then all forth. Must be used as Back.easeIn or Back.easeOut or Back.easeInOut. 87 | 88 | 89 | 90 | Fx.Transitions Method: bounce {#Fx-Transitions:bounce} 91 | ------------------------------------------------------ 92 | 93 | Makes the transition bouncy. Must be used as Bounce.easeIn or Bounce.easeOut or Bounce.easeInOut. 94 | 95 | 96 | 97 | Fx.Transitions Method: elastic {#Fx-Transitions:elastic} 98 | -------------------------------------------------------- 99 | 100 | Elastic curve. Must be used as Elastic.easeIn or Elastic.easeOut or Elastic.easeInOut 101 | 102 | 103 | 104 | Class: Fx.Transition {#Fx-Transition} 105 | ===================================== 106 | 107 | This class is only useful for math geniuses who want to write their own easing equations. 108 | Returns an [Fx][] transition function with 'easeIn', 'easeOut', and 'easeInOut' methods. 109 | 110 | ### Syntax: 111 | 112 | var myTransition = new Fx.Transition(transition[, params]); 113 | 114 | ### Arguments: 115 | 116 | 1. transition - (*function*) Can be a [Fx.Transitions][] function or a user-provided function which will be extended with easing functions. 117 | 2. params - (*mixed*, optional) Single value or an array for multiple values to pass as the second parameter for the transition function. 118 | 119 | ### Returns: 120 | 121 | * (*function*) A function with easing functions. 122 | 123 | ### Examples: 124 | 125 | //Elastic.easeOut with user-defined value for elasticity. 126 | var myTransition = new Fx.Transition(Fx.Transitions.Elastic, 3); 127 | var myFx = $('myElement').effect('margin', {transition: myTransition.easeOut}); 128 | 129 | ### See Also: 130 | 131 | - [Fx.Transitions][] 132 | 133 | 134 | [Fx]: /core/Fx/Fx 135 | [Fx.Transitions]: #Fx-Transitions 136 | [Element.effect]: /core/Element/#Element:effect 137 | [Linear]: ../Docs/assets/images/Linear.png 138 | [Quad]: ../Docs/assets/images/Quad.png 139 | [Cubic]: ../Docs/assets/images/Cubic.png 140 | [Quart]: ../Docs/assets/images/Quart.png 141 | [Quint]: ../Docs/assets/images/Quint.png 142 | [Expo]: ../Docs/assets/images/Expo.png 143 | [Circ]: ../Docs/assets/images/Circ.png 144 | [Sine]: ../Docs/assets/images/Sine.png 145 | [Back]: ../Docs/assets/images/Back.png 146 | [Bounce]: ../Docs/assets/images/Bounce.png 147 | [Elastic]: ../Docs/assets/images/Elastic.png -------------------------------------------------------------------------------- /docs/Native/Number.md: -------------------------------------------------------------------------------- 1 | Native: Number {#Number} 2 | ======================== 3 | 4 | A collection of the Number Object methods. 5 | 6 | ### See Also: 7 | 8 | - [MDC Number][] 9 | 10 | ### Notes: 11 | 12 | Every Math method is mirrored in the Number object, both as prototype and generic. 13 | 14 | 15 | Number Method: limit {#Number:limit} 16 | ------------------------------------ 17 | 18 | Limits this number between two bounds. 19 | 20 | ### Syntax: 21 | 22 | myNumber.limit(min, max); 23 | 24 | ### Arguments: 25 | 26 | 1. min - (*number*) The minimum possible value. 27 | 2. max - (*number*) The maximum possible value. 28 | 29 | ### Returns: 30 | 31 | * (*number*) The number bounded between the given limits. 32 | 33 | ### Examples: 34 | 35 | (12).limit(2, 6.5); //Returns: 6.5 36 | (-4).limit(2, 6.5); //Returns: 2 37 | (4.3).limit(2, 6.5); //Returns: 4.3 38 | 39 | 40 | 41 | Number Method: round {#Number:round} 42 | ------------------------------------ 43 | 44 | Returns this number rounded to the specified precision. 45 | 46 | ### Syntax: 47 | 48 | myNumber.round([precision]); 49 | 50 | ### Arguments: 51 | 52 | 1. precision - (*number*, optional: defaults to 0) The number of digits after the decimal place. 53 | 54 | ### Returns: 55 | 56 | * (number) The number, rounded. 57 | 58 | ### Notes: 59 | 60 | - Argument may also be negative. 61 | 62 | ### Examples: 63 | 64 | (12.45).round() //Returns: 12 65 | (12.45).round(1) //Returns: 12.5 66 | (12.45).round(-1) //Returns: 10 67 | 68 | 69 | 70 | Number Method: times {#Number:times} 71 | ------------------------------------ 72 | 73 | Executes the function passed in the specified number of times. 74 | 75 | ### Syntax: 76 | 77 | myNumber.times(fn[, bind]); 78 | 79 | ### Arguments: 80 | 81 | 1. fn - (*function*) The function which should be executed on each iteration of the loop. This function is passed the current iteration's index. 82 | 2. bind - (*object*, optional) The object to use as 'this' in the function. For more information see [Function:bind](/Native/Function/#Function:bind). 83 | 84 | ### Examples: 85 | 86 | (4).times(alert); //Alerts "0", then "1", then "2", then "3". 87 | 88 | 89 | 90 | Number Method: toFloat {#Number:toFloat} 91 | ---------------------------------------- 92 | 93 | Returns this number as a float. Useful because toFloat must work on both Strings and Numbers. 94 | 95 | ### Syntax: 96 | 97 | myNumber.toFloat(); 98 | 99 | ### Returns: 100 | 101 | * (*number*) The number as a float. 102 | 103 | ### Examples: 104 | 105 | (111).toFloat(); //returns 111 106 | (111.1).toFloat(); //returns 111.1 107 | 108 | 109 | 110 | Number Method: toInt {#Number:toInt} 111 | ------------------------------------ 112 | 113 | Returns this number as another number with the passed in base. Useful because toInt must work on both Strings and Numbers. 114 | 115 | ### Syntax: 116 | 117 | myNumber.toInt([base]); 118 | 119 | ### Arguments: 120 | 121 | 1. base - (*number*, optional: defaults to 10) The base to use. 122 | 123 | ### Returns: 124 | 125 | * (*number*) A number with the base provided. 126 | 127 | ### Examples: 128 | 129 | (111).toInt(); //returns 111 130 | (111.1).toInt(); //returns 111 131 | (111).toInt(2); //returns 7 132 | 133 | 134 | 135 | [MDC Number]: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Number -------------------------------------------------------------------------------- /docs/Request/Request.HTML.md: -------------------------------------------------------------------------------- 1 | [Request]: /core/Request/Request 2 | 3 | Class: Request.HTML {#Request-HTML} 4 | =================================== 5 | 6 | Request Specifically made for receiving HTML. 7 | 8 | ### Extends: 9 | 10 | [Request][] 11 | 12 | ### Syntax: 13 | 14 | var myHTMLRequest = new Request.HTML([options]); 15 | 16 | ### Arguments: 17 | 18 | 1. options - (*object*, optional) See options below. Also inherited are all the options from [Request][]. 19 | 20 | ### Options: 21 | 22 | * evalScripts - (*boolean*: defaults to true) If set to true, `script` tags inside the response will be evaluated. This overrides the `false` default from Request. 23 | * update - (*element*: defaults to null) The Element to insert the response text of the Request into upon completion of the request. 24 | 25 | ### Events: 26 | 27 | #### success 28 | 29 | * (*function*) Function to execute when the HTML request completes. This overrides the signature of the Request success event. 30 | 31 | ##### Signature: 32 | 33 | onSuccess(responseTree, responseElements, responseHTML, responseJavaScript) 34 | 35 | ##### Arguments: 36 | 37 | 1. responseTree - (*element*) The node list of the remote response. 38 | 2. responseElements - (*array*) An array containing all elements of the remote response. 39 | 3. responseHTML - (*string*) The content of the remote response. 40 | 4. responseJavaScript - (*string*) The portion of JavaScript from the remote response. 41 | 42 | ### Returns: 43 | 44 | * (*object*) A new Request.HTML instance. 45 | 46 | ### Examples: 47 | 48 | #### Simple GET Request: 49 | 50 | var myHTMLRequest = new Request.HTML().get('myPage.html'); 51 | 52 | #### POST Request with data as String: 53 | 54 | var myHTMLRequest = new Request.HTML({url:'myPage.html'}).post("user_id=25&save=true"); 55 | 56 | #### Data from Object Passed via GET: 57 | 58 | //Loads "load/?user_id=25". 59 | var myHTMLRequest = new Request.HTML({url:'load/'}).get({'user_id': 25}); 60 | 61 | #### Data from Element via POST: 62 | 63 | ##### HTML 64 | 65 |
    66 |

    67 | Search: 68 | Search in description: 69 | 70 |

    71 |
    72 | 73 | ##### JavaScript 74 | 75 | //Needs to be in a submit event or the form handler. 76 | var myHTMLRequest = new Request.HTML({url:'save/'}).post($('user-form')); 77 | 78 | ### See Also: 79 | 80 | [Request][] 81 | 82 | 83 | Hash: Element.Properties {#Element-Properties} 84 | ============================================== 85 | 86 | see [Element.Properties](/Element/Element/#Element-Properties) 87 | 88 | Element Property: load {#Element-Properties:load} 89 | ------------------------------------------------- 90 | 91 | ### Setter 92 | 93 | Sets a default Request.HTML instance for an Element. 94 | 95 | #### Syntax: 96 | 97 | el.set('load'[, options]); 98 | 99 | #### Arguments: 100 | 101 | 1. options - (*object*) The Request options. 102 | 103 | #### Returns: 104 | 105 | * (*element*) The target Element. 106 | 107 | #### Example: 108 | 109 | el.set('load', {evalScripts: true}); 110 | el.load('some/request/uri'); 111 | 112 | 113 | ### Getter 114 | 115 | Returns either the previously set Request.HTML instance or a new one with default options. 116 | 117 | #### Syntax: 118 | 119 | el.get('load', options); 120 | 121 | #### Arguments: 122 | 123 | 1. options - (*object*, optional) The Request.HTML options. If these are passed in, a new instance will be generated, regardless of whether or not one is set. 124 | 125 | #### Returns: 126 | 127 | * (*object*) The Request instance. 128 | 129 | #### Example: 130 | 131 | el.set('load', {method: 'get'}); 132 | el.load('test.html'); 133 | //The getter returns the Request.HTML instance, making its class methods available. 134 | el.get('load').post('http://localhost/script'); 135 | 136 | 137 | 138 | Native: Element {#Element} 139 | ========================== 140 | 141 | Custom Native to allow all of its methods to be used with any DOM element via the dollar function [$][]. 142 | 143 | Element Method: load {#Element:load} 144 | ------------------------------------ 145 | 146 | Updates the content of the Element with a Request.HTML GET request. 147 | 148 | ### Syntax: 149 | 150 | myElement.load(url); 151 | 152 | ### Arguments: 153 | 154 | 1. url - (*string*) The URL pointing to the server-side document. 155 | 156 | ### Returns: 157 | 158 | * (*element*) The target Element. 159 | 160 | ### Example: 161 | 162 | ##### HTML 163 | 164 |
    Loading content...
    165 | 166 | ##### JavaScript 167 | 168 | $('content').load('page_1.html'); 169 | 170 | 171 | 172 | ### See Also: 173 | 174 | - [$][], [Request](/Request/Request) 175 | 176 | [$]: /core/Element/Element/#dollar 177 | -------------------------------------------------------------------------------- /docs/Request/Request.JSON.md: -------------------------------------------------------------------------------- 1 | Class: Request.JSON {#Request-JSON} 2 | ================================= 3 | 4 | Wrapped Request with automated sending and receiving of JavaScript Objects in JSON Format. 5 | 6 | ### Extends: 7 | 8 | [Request](/Request/Request) 9 | 10 | ### Syntax: 11 | 12 | var myJSONRemote = new Request.JSON([options]); 13 | 14 | ### Arguments: 15 | 16 | 1. options - (*object*, optional) See below. 17 | 18 | ### Options: 19 | 20 | * secure - (*boolean*: defaults to true) If set to true, a syntax check will be done on the result JSON (see [JSON.decode](/Utilities/JSON#JSON:decode)). 21 | 22 | ### Events: 23 | 24 | #### success 25 | 26 | Fired when the request completes. This overrides the signature of the Request success event. 27 | 28 | ##### Signature: 29 | 30 | onSuccess(responseJSON, responseText) 31 | 32 | ##### Arguments: 33 | 34 | 1. responseJSON - (*object*) The JSON response object from the remote request. 35 | 2. responseText - (*string*) The JSON response as string. 36 | 37 | ### Returns: 38 | 39 | * (*object*) A new Request.JSON instance. 40 | 41 | ### Example: 42 | 43 | //This code will send a data object via a GET request and alert the retrieved data. 44 | var jsonRequest = new Request.JSON({url: "http://site.com/tellMeAge.php", onComplete: function(person){ 45 | alert(person.age); //Alerts "25 years". 46 | alert(person.height); //Alerts "170 cm". 47 | alert(person.weight); //Alerts "120 kg". 48 | }}).get({'firstName': 'John', 'lastName': 'Doe'}); 49 | -------------------------------------------------------------------------------- /docs/Utilities/Cookie.md: -------------------------------------------------------------------------------- 1 | Object: Cookie {#Cookie} 2 | ======================== 3 | 4 | Sets and accesses cookies. 5 | 6 | ### Credits: 7 | 8 | - Based on the functions by Peter-Paul Koch [QuirksMode][]. 9 | 10 | ### Options: {#Cookie-options} 11 | 12 | * domain - (*string*: defaults to false) The domain the Cookie belongs to. 13 | * path - (*string*: defaults to false) The path the Cookie belongs to. 14 | * duration - (*number*: defaults to false) The duration of the Cookie before it expires, in days. If set to false or 0, the cookie will be a session cookie that expires when the browser is closed. 15 | * secure - (*boolean*: defaults to false) Stored cookie information can be accessed only from a secure environment. 16 | 17 | ### Notes: 18 | 19 | - In order to share the Cookie with pages located in a different path, the [Cookie.options.domain][] value must be set. 20 | 21 | 22 | 23 | Cookie Method: write {#Cookie:write} 24 | -------------------------------- 25 | 26 | Writes a cookie in the browser. 27 | 28 | ### Syntax: 29 | 30 | var myCookie = Cookie.write(key, value[, options]); 31 | 32 | ### Arguments: 33 | 34 | 1. key - (*string*) The key (or name) of the cookie. 35 | 2. value - (*string*) The value to set. Cannot contain semicolons. 36 | 3. options - (*mixed*, optional) See [Cookie][]. 37 | 38 | ### Returns: 39 | 40 | * (*object*) An object with the options, the key and the value. You can give it as first parameter to Cookie.remove. 41 | 42 | ### Examples: 43 | 44 | Saves the Cookie for the Duration of the Session: 45 | 46 | var myCookie = Cookie.write('username', 'Harald'); 47 | 48 | Saves the Cookie for a Day: 49 | 50 | var myCookie = Cookie.write('username', 'JackBauer', {duration: 1}); 51 | 52 | 53 | 54 | Cookie Method: read {#Cookie:read} 55 | -------------------------------- 56 | 57 | Reads the value of a Cookie. 58 | 59 | ### Syntax: 60 | 61 | var myCookie = Cookie.read(name); 62 | 63 | ### Arguments: 64 | 65 | 1. name - (*string*) The name of the Cookie to retrieve. 66 | 67 | ### Returns: 68 | 69 | * (*mixed*) The cookie string value, or null if not found. 70 | 71 | ### Examples: 72 | 73 | Cookie.read("username"); 74 | 75 | 76 | 77 | Cookie Method: dispose {#Cookie:dispose} 78 | -------------------------------------- 79 | 80 | Removes a cookie from the browser. 81 | 82 | ### Syntax: 83 | 84 | var oldCookie = Cookie.dispose(cookie[, options]); 85 | 86 | ### Arguments: 87 | 88 | 1. name - (*string*) The name of the cookie to remove or a previously saved Cookie instance. 89 | 2. options - (*object*, optional) See [Cookie][]. 90 | 91 | ### Examples: 92 | 93 | Remove a Cookie: 94 | 95 | Cookie.dispose('username'); //Bye-bye JackBauer! Seeya in 24 Hours. 96 | 97 | Creating a Cookie and Removing it Right Away: 98 | 99 | var myCookie = Cookie.write('username', 'Aaron', {domain: 'mootools.net'}); 100 | if (Cookie.read('username') == 'Aaron') { Cookie.dispose(myCookie); } 101 | 102 | 103 | 104 | [Cookie]: #Cookie 105 | [Cookie.options]: #Cookie-options 106 | [Cookie.options.domain]: #Cookie-options 107 | [QuirksMode]: http://www.quirksmode.org -------------------------------------------------------------------------------- /docs/Utilities/DomReady.md: -------------------------------------------------------------------------------- 1 | Window Event: domready 2 | ======================== 3 | 4 | Contains the window Event 'domready', which will execute when the DOM has loaded. To ensure that DOM elements exist when the code attempting to access them is executed, they should be placed within the 'domready' event. 5 | 6 | This event is only available to the window Element. 7 | 8 | ### Example: 9 | 10 | window.addEvent('domready', function() { 11 | alert("The DOM is ready."); 12 | }); 13 | 14 | ### See Also: 15 | [Element.Event][] 16 | 17 | [Element.Event]: /core/Element/Element.Event -------------------------------------------------------------------------------- /docs/Utilities/JSON.md: -------------------------------------------------------------------------------- 1 | Object: JSON {#JSON} 2 | ==================== 3 | 4 | JSON parser and encoder. 5 | 6 | ### See Also: 7 | 8 | - [JavaScript Object Notation (JSON.org)](http://www.json.org/) 9 | 10 | JSON Method: encode {#JSON:encode} 11 | ---------------------------------- 12 | 13 | Converts an object or array to a JSON string. 14 | 15 | ### Syntax: 16 | 17 | var myJSON = JSON.encode(obj); 18 | 19 | ### Arguments: 20 | 21 | 1. obj - (*object*) The object to convert to string. 22 | 23 | ### Returns: 24 | 25 | * (*string*) A JSON string. 26 | 27 | ### Examples: 28 | 29 | var fruitsJSON = JSON.encode({apple: 'red', lemon: 'yellow'}); // returns: '{"apple":"red","lemon":"yellow"}' 30 | 31 | 32 | 33 | JSON Method: decode {#JSON:decode} 34 | ---------------------------------- 35 | 36 | Converts a JSON string into an JavaScript object. 37 | 38 | ### Syntax: 39 | 40 | var object = JSON.decode(string[, secure]); 41 | 42 | ### Arguments: 43 | 44 | 1. string - (*string*) The string to evaluate. 45 | 2. secure - (*boolean*, optional: defaults to false) If set to true, checks for any hazardous syntax and returns null if any found. 46 | 47 | ### Returns: 48 | 49 | * (*object*) The object represented by the JSON string. 50 | 51 | ### Examples: 52 | 53 | var myObject = JSON.decode('{"apple":"red","lemon":"yellow"}'); //returns: {apple: 'red', lemon: 'yellow'} 54 | 55 | ### Credits: 56 | 57 | - JSON test regexp is by [Douglas Crockford](http://crockford.com/) and [Tobie Langel](http://tobielangel.com/). 58 | -------------------------------------------------------------------------------- /docs/Utilities/Swiff.md: -------------------------------------------------------------------------------- 1 | Class: Swiff {#Swiff} 2 | ===================== 3 | 4 | Creates and returns a Flash object using supplied parameters. 5 | 6 | ### Credits: 7 | 8 | Flash detection and Internet Explorer/Flash Player 9 fix adapted from [SWFObject][]. 9 | 10 | ### Syntax: 11 | 12 | var mySwiff = new Swiff(path[, options]); 13 | 14 | ### Arguments: 15 | 16 | 1. path - (*string*) The path to the SWF file. 17 | 2. options - (*object*, optional) See Options below. 18 | 19 | ### Options: 20 | 21 | * id - (*string*: defaults to 'Swiff\_' + unique id) The id of the SWF object. 22 | * width - (*number*: defaults to 1) The width of the SWF object. 23 | * height - (*number*: defaults to 1) The height of the SWF object. 24 | * container - (*element*) The container into which the SWF object will be injected. 25 | * params - (*object*) Parameters to be passed to the SWF object (wmode, bgcolor, allowScriptAccess, loop, etc.). 26 | * allowScriptAccess - (*string*: defaults to always) The domain that the SWF object allows access to. 27 | * quality - (*string*: defaults to 'high') The render quality of the movie. 28 | * swLiveConnect - (*boolean*: defaults to true) the swLiveConnect parameter to allow remote scripting. 29 | * wMode - (*string*: defaults to 'transparent') Allows the SWF to be displayed with a transparent background. 30 | * properties - (*object*) Additional attributes for the object element. 31 | * vars - (*object*) Vars will be passed to the SWF as querystring in flashVars. 32 | * callBacks - (*object*) Functions to call from the SWF. These will be available globally in the movie, and bound to the object. 33 | 34 | ### Returns: 35 | 36 | * (*element*) A new HTML object Element. 37 | 38 | ### Example: 39 | 40 | var obj = new Swiff('myMovie.swf', { 41 | id: 'myBeautifulMovie', 42 | width: 500, 43 | height: 400, 44 | params: { 45 | wmode: 'opaque', 46 | bgcolor: '#ff3300' 47 | }, 48 | vars: { 49 | myVariable: myJsVar, 50 | myVariableString: 'hello' 51 | }, 52 | callBacks: { 53 | load: myOnloadFunc 54 | } 55 | }); 56 | 57 | ### Note: 58 | 59 | 1. Although Swiff returns the object, this element will NOT have any Element methods applied to it. 60 | 2. The $ function on an object/embed tag will only return its reference without further processing. 61 | 62 | Swiff Function: remote {#Swiff:remote} 63 | -------------------------------------- 64 | 65 | Calls an ActionScript function from JavaScript. 66 | 67 | ### Syntax: 68 | 69 | var result = Swiff.remote(obj, fn); 70 | 71 | ### Arguments: 72 | 73 | 1. obj - (*element*) A Swiff instance (an HTML object Element). 74 | 2. fn - (*string*) The name of the function to execute in the Flash movie. 75 | 76 | ### Returns: 77 | 78 | * (*mixed*) The ActionScript function's result. 79 | 80 | ### Example: 81 | 82 | var obj = new Swiff('myMovie.swf'); 83 | //Alerts "This is from the .swf file!". 84 | alert(Swiff.remote(obj, 'myFlashFn')); 85 | 86 | ### Note: 87 | 88 | The SWF file must be compiled with the ExternalInterface component. See the Adobe documentation on [External Interface][] for more information. 89 | 90 | [SWFObject]: http://blog.deconcept.com/swfobject/ 91 | [External Interface]: http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001652.html -------------------------------------------------------------------------------- /github.php: -------------------------------------------------------------------------------- 1 | repo_path = ''; 32 | 33 | 34 | /** 35 | * The is the local path on your server where you have the Git 36 | * clone of your project (w/docs). 37 | * 38 | * Note: 39 | * This folder must be a pre-existing Git clone repository. 40 | * 41 | * Due to the limitations of Git, your entire repository will 42 | * be stored in this directory. If you don't want this, you 43 | * may want to create a separate repository just for your docs. 44 | */ 45 | $config->path = './'; 46 | 47 | 48 | /** 49 | * Update Key 50 | * 51 | * Prevents unauthorized updates. Be sure to include this when 52 | * entering the Post-Receive URL in GitHub. 53 | * 54 | * @example http://example.com/github.php?key=myKEYgoesHERE 55 | */ 56 | $config->key = 'CHANGE_ME'; 57 | 58 | 59 | /** 60 | * Git Pull Shell Command 61 | * 62 | * You may need to set the full path to your Git executable depending 63 | * on how Git is setup on your server. 64 | * 65 | * Adding " 2>&1" to the end of the command will allow you to see any 66 | * errors that occurred during the git update in the log file. 67 | */ 68 | $config->command = 'git pull 2>&1'; 69 | 70 | 71 | /** 72 | * GitHub Error Log 73 | * 74 | * Filename & path where you want to store the GitHub error log. 75 | * If you don't with to keep a log, simply set the string to ''. 76 | */ 77 | $config->log = 'github.log'; 78 | 79 | 80 | 81 | 82 | 83 | 84 | /** 85 | * Verify that an authorized client is submitting the request... 86 | */ 87 | if (!isset($_REQUEST['key']) || $_REQUEST['key'] != $config->key) 88 | _die('ERROR: Incorrect Key'); 89 | 90 | /** 91 | * Check to see if we have a payload to process... 92 | */ 93 | if (!isset($_REQUEST['payload'])) 94 | _die('ERROR: No payload received'); 95 | 96 | 97 | /** 98 | * Analyze the JSON data, if possible, use the built in PHP function, 99 | * if that doesn't exist, fall back to the slower alternate method. 100 | */ 101 | if (!function_exists('json_decode')) { 102 | require_once 'assets/json.php'; 103 | $json = new Services_JSON(); 104 | $paylaod = $json->decode($_REQUEST['payload']); 105 | }else { 106 | $paylaod = json_decode($_REQUEST['payload']); 107 | } 108 | 109 | 110 | 111 | /** 112 | * Verify that we have something to process... 113 | */ 114 | if (!isset($paylaod->commits)) 115 | _die('ERROR: No commits to process'); 116 | 117 | 118 | /** 119 | * Create a list of files added, removed, or modified from the commit, 120 | * and store them in as an array in $files. 121 | */ 122 | $files = array(); 123 | foreach ($paylaod->commits as $commit) { 124 | 125 | if (isset($commit->added)) 126 | $files = array_merge($files,$commit->added); 127 | 128 | if (isset($commit->removed)) 129 | $files = array_merge($files,$commit->removed); 130 | 131 | if (isset($commit->modified)) 132 | $files = array_merge($files,$commit->modified); 133 | } 134 | 135 | 136 | 137 | $update = false; 138 | 139 | if (empty($config->repo_path)){ 140 | 141 | /** 142 | * If the path is empty, we need to do an update, every time. 143 | */ 144 | $update = true; 145 | 146 | }elseif(!empty($config->repo_path)) { 147 | 148 | /** 149 | * Otherwise, run through the changed files, and see if any files 150 | * have been changed in the docs directory of the repository 151 | */ 152 | foreach ($files as $file) { 153 | if (strpos($file,$config->repo_path) !== false) { 154 | $update = true; 155 | break; 156 | } 157 | } 158 | 159 | } 160 | 161 | 162 | /** 163 | * No updates exist... 164 | */ 165 | if (!$update) 166 | _die('No updates necessary'); 167 | 168 | 169 | 170 | /** 171 | * It's time to update... 172 | */ 173 | 174 | // Move to the path 175 | chdir($config->path); 176 | // Do the pull... 177 | $last_line = system($config->command,$exit_code); 178 | 179 | 180 | if ($exit_code !== 0 || strpos($last_line,'fatal:') !== false) 181 | _die("ERROR: Couldn't update local repository"); 182 | 183 | 184 | 185 | _die('Success!'); 186 | 187 | function _die($message='') 188 | { 189 | global $config; 190 | 191 | if (empty($config->log)) 192 | die($message); 193 | 194 | $log = "##################################################\n"; 195 | $log .= date('r')."\n"; 196 | $log .= "$message\n"; 197 | $log .= ob_get_contents()."\n"; 198 | 199 | file_put_contents($config->log,$log,FILE_APPEND); 200 | 201 | die(); 202 | } 203 | 204 | ?> -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | $file, 12 | 'menu' => $menu, 13 | 'doc' => $doc, 14 | 'toc' => $toc->getHtml(), 15 | 'title' => "mDocs" . " - " . $file 16 | ); 17 | 18 | print json_encode($return); 19 | exit; 20 | } 21 | 22 | 23 | ?> 24 | 25 | 26 | 27 | 28 | <?php echo isset($title) ? $title : "mDocs"; ?> 29 | 30 | 31 | 32 |
    33 | 38 | 39 |
    40 | 41 |
    42 | 43 | 48 | 49 | 52 |
    53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /licenses/docs.md: -------------------------------------------------------------------------------- 1 | Sample Documentation 2 | ==================== 3 | 4 | The sample documentation has been copied from the [MooTools][mt] project, which is released under a Creative Commons [Attribution-NonCommercial-ShareAlike 3.0][cc] license. 5 | 6 | 7 | [mt]: http://github.com/mootools/mootools-core/tree/master/ 8 | [cc]: http://creativecommons.org/licenses/by-nc-sa/3.0/ 9 | 10 | -------------------------------------------------------------------------------- /licenses/geshi.md: -------------------------------------------------------------------------------- 1 | GeSHi - GEneric Syntax HIghlighter 2 | ================================== 3 | Version 1.0.8 4 | 5 | Author: Nigel McNie, Benny Baumann 6 | Email: nigel@geshi.org, BenBE@omorphia.de 7 | GeSHi Website: 8 | 9 | GeSHi is a generic syntax highlighter, written in PHP. You simply 10 | input the source code you wish to highlight with the language you 11 | wish to use, and the output will be a file syntax highlighted to 12 | XHTML standards. 13 | 14 | For more information on how to use GeSHi, please consult the 15 | documentation. If you got this readme from a GeSHi package, then 16 | the documentation is available in the docs/ directory. Documentation 17 | is also available at 18 | 19 | If you think you've found a bug in GeSHi, contact me with a bug 20 | report at BenBE@omorphia.de, or submit it to the bug tracker at 21 | . Be 22 | aware that minor highlighting errors may well just be incorrect 23 | language files, but if you do find something major please contact me. 24 | 25 | And if you're using GeSHi as a plugin/mod for some other software, 26 | please tell me about it! It's worth a link to you, and I can give 27 | you specialist help if you need it. 28 | 29 | GeSHi is free software, released under the GNU GPL. Please see the 30 | [COPYING](http://www.opensource.org/licenses/gpl-2.0.php) file for 31 | more information. If you do modify this program, please tell me about 32 | it! Perhaps you've made a good improvement that I can learn from :) -------------------------------------------------------------------------------- /licenses/markdown.md: -------------------------------------------------------------------------------- 1 | PHP Markdown & Extra 2 | ==================== 3 | 4 | Copyright (c) 2004-2008 Michel Fortin 5 | 6 | All rights reserved. 7 | 8 | Based on Markdown 9 | Copyright (c) 2003-2006 John Gruber 10 | 11 | All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, 18 | this list of conditions and the following disclaimer. 19 | 20 | * Redistributions in binary form must reproduce the above copyright 21 | notice, this list of conditions and the following disclaimer in the 22 | documentation and/or other materials provided with the distribution. 23 | 24 | * Neither the name "Markdown" nor the names of its contributors may 25 | be used to endorse or promote products derived from this software 26 | without specific prior written permission. 27 | 28 | This software is provided by the copyright holders and contributors "as 29 | is" and any express or implied warranties, including, but not limited 30 | to, the implied warranties of merchantability and fitness for a 31 | particular purpose are disclaimed. In no event shall the copyright owner 32 | or contributors be liable for any direct, indirect, incidental, special, 33 | exemplary, or consequential damages (including, but not limited to, 34 | procurement of substitute goods or services; loss of use, data, or 35 | profits; or business interruption) however caused and on any theory of 36 | liability, whether in contract, strict liability, or tort (including 37 | negligence or otherwise) arising in any way out of the use of this 38 | software, even if advised of the possibility of such damage. 39 | -------------------------------------------------------------------------------- /mdocs.php: -------------------------------------------------------------------------------- 1 | path = 'docs/'; 23 | 24 | /** 25 | * The Markdown file extension used for all the documentation files. 26 | */ 27 | $config->extension = '.md'; 28 | 29 | /** 30 | * The file to load, when no file is specified 31 | */ 32 | $config->index = 'Core/Core'; 33 | 34 | /** 35 | * Default Syntax Highlighting Language 36 | * @see /assets/geshi/ for complete list. 37 | */ 38 | $config->language = 'javascript'; 39 | 40 | /** 41 | * The highest/lowest header level to include in the Table of Contents 42 | * You shouldn't need to change these. 43 | */ 44 | $config->maxlevel = 1; 45 | $config->minlevel = 2; 46 | 47 | /** 48 | * Ignore files in the root of Docs? 49 | */ 50 | $config->ignore = true; 51 | 52 | 53 | 54 | /** 55 | * @todo Possibly move this ugly logic code into a class or function 56 | */ 57 | 58 | // Determine the file to load: 59 | $file = (isset($_GET['file']) && !empty($_GET['file']))? clean_filename($_GET['file']) : $config->index; 60 | 61 | $config->filename = $config->path.$file.$config->extension; 62 | 63 | if (!(file_exists($config->filename) && is_readable($config->filename))){ 64 | /** 65 | * @todo Possibly show a 404 page 66 | */ 67 | die('ERROR: Document not found.'); 68 | } 69 | 70 | $doc = file_get_contents($config->filename); 71 | 72 | 73 | // Get the classes: 74 | require_once 'assets/markdown.php'; 75 | require_once 'assets/markdown.mdocs.php'; 76 | require_once 'assets/toc.php'; 77 | require_once 'assets/menu.php'; 78 | require_once 'assets/geshi.php'; 79 | require_once 'assets/geshi.mdocs.php'; 80 | 81 | 82 | // Initialize Markdown 83 | $markdown = new MarkdownExtra_Parser_mDocs(); 84 | $markdown->maxlevel = & $config->maxlevel; 85 | $markdown->minlevel = & $config->minlevel; 86 | 87 | // Initialize Table of Contents 88 | $toc = new TOC(); 89 | $toc->content = & $doc; 90 | $toc->maxlevel = & $config->maxlevel; 91 | $toc->minlevel = & $config->minlevel; 92 | $toc->delimiter = ':'; 93 | $toc->trim = '$ '; 94 | 95 | // Initialize Docs Menu 96 | $menu = new menu(); 97 | $menu->dir = & $config->path; 98 | $menu->filetype = & $config->extension; 99 | 100 | // Initialize GeSHi (Syntax Highlighting) 101 | $geshi = new GeSHi_mDocs(); 102 | $geshi->default_language = & $config->language; 103 | 104 | 105 | // Apply Markdown Syntax: 106 | $doc = $markdown->transform($doc); 107 | 108 | // Apply GeSHi Syntax Highlighting: 109 | $doc = $geshi->parse_codeblocks($doc); 110 | 111 | // Create Menu: 112 | $menu->generate($config->ignore); 113 | 114 | // Create TOC: 115 | $toc->generate(); 116 | 117 | 118 | /** 119 | * Helper Functions: 120 | * @todo Possibly move this to a separate file 121 | */ 122 | 123 | 124 | /** 125 | * Clean Filename Path 126 | * 127 | * Yes, it's overkill, but why not, it's fun! 128 | * This function allows only the following characters to pass: 129 | * A-Z a-z 0-9 - _ . / 130 | * 131 | * It also goes into great detail to make sure that troublesome 132 | * slash and period characters are not abused by would-be hackers. 133 | * So because of this, you can't read any file or folder that starts 134 | * or ends with a period, but then again, you shouldn't have public 135 | * files named like that in the first place, right? 136 | * 137 | * @param string $file 138 | * @return string $filename 139 | */ 140 | function clean_filename($filename='') 141 | { 142 | $patern[] = '/[^\w\.\-\_\/]/'; 143 | $replacement[] = ''; 144 | 145 | $patern[] = '/\.+/'; 146 | $replacement[] = '.'; 147 | 148 | $patern[] = '/\/+/'; 149 | $replacement[] = '/'; 150 | 151 | $patern[] = '/(\/\.|\.\/)/'; 152 | $replacement[] = '/'; 153 | 154 | $patern[] = '/\.+/'; 155 | $replacement[] = '.'; 156 | 157 | $patern[] = '/\/+/'; 158 | $replacement[] = '/'; 159 | 160 | $filename = preg_replace($patern,$replacement,$filename); 161 | $filename = trim($filename,' ./\\'); 162 | 163 | return $filename; 164 | } 165 | 166 | ?> --------------------------------------------------------------------------------