From 6f2b105ca09c630b184ffb818e1ec355e7708940 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 30 Aug 2019 19:30:19 +0200 Subject: [PATCH] fork --- .gitignore | 11 + .gitmodules | 9 + crayon-syntax-highlighter.sublime-project | 13 + crayon_fonts.class.php | 36 + crayon_formatter.class.php | 633 ++++ crayon_highlighter.class.php | 423 +++ crayon_langs.class.php | 544 ++++ crayon_parser.class.php | 265 ++ crayon_resource.class.php | 478 +++ crayon_settings.class.php | 918 ++++++ crayon_settings_wp.class.php | 1273 ++++++++ crayon_themes.class.php | 45 + crayon_wp.class.php | 1340 +++++++++ css/images/crayon_logo.png | Bin 0 -> 12377 bytes css/images/crayon_logo_square.png | Bin 0 -> 11427 bytes css/images/crayon_tinymce.png | Bin 0 -> 2235 bytes css/images/docs.png | Bin 0 -> 1530 bytes css/images/donate.png | Bin 0 -> 3776 bytes css/images/facebook.png | Bin 0 -> 1214 bytes css/images/github.png | Bin 0 -> 2460 bytes css/images/google.png | Bin 0 -> 1650 bytes css/images/theme_editor.png | Bin 0 -> 4125 bytes css/images/thumb_horizontal.png | Bin 0 -> 1181 bytes css/images/thumb_vertical.png | Bin 0 -> 1213 bytes css/images/toolbar/buttons.png | Bin 0 -> 2236 bytes css/images/toolbar/buttons@2x.png | Bin 0 -> 3181 bytes css/images/track_horizontal.png | Bin 0 -> 1256 bytes css/images/track_vertical.png | Bin 0 -> 1220 bytes css/images/twitter.png | Bin 0 -> 1214 bytes css/images/wordpress-blue.png | Bin 0 -> 1692 bytes css/min/crayon.min.css | 1 + css/minify.sh | 7 + css/src/admin_style.css | 285 ++ css/src/crayon_style.css | 530 ++++ css/src/global_style.css | 302 ++ fonts/adobe-source-sans.css | 14 + .../SourceSansPro-Semibold.eot | Bin 0 -> 149976 bytes .../SourceSansPro-Semibold.otf.woff | Bin 0 -> 74996 bytes .../SourceSansPro-Semibold.svg | 1117 ++++++++ .../SourceSansPro-Semibold.ttf.woff | Bin 0 -> 68484 bytes fonts/arial.css | 3 + fonts/consolas.css | 14 + fonts/consolas/consolas-webfont.eot | Bin 0 -> 37918 bytes fonts/consolas/consolas-webfont.svg | 261 ++ fonts/consolas/consolas-webfont.ttf | Bin 0 -> 37732 bytes fonts/consolas/consolas-webfont.woff | Bin 0 -> 23784 bytes fonts/courier-new.css | 3 + fonts/droid-sans-mono.css | 14 + .../droid-sans-mono-webfont.eot | Bin 0 -> 24758 bytes .../droid-sans-mono-webfont.svg | 149 + .../droid-sans-mono-webfont.ttf | Bin 0 -> 24524 bytes .../droid-sans-mono-webfont.woff | Bin 0 -> 15696 bytes fonts/inconsolata.css | 14 + fonts/inconsolata/inconsolata-webfont.eot | Bin 0 -> 25846 bytes fonts/inconsolata/inconsolata-webfont.svg | 147 + fonts/inconsolata/inconsolata-webfont.ttf | Bin 0 -> 25644 bytes fonts/inconsolata/inconsolata-webfont.woff | Bin 0 -> 17080 bytes fonts/liberation-mono.css | 14 + .../liberation-mono-webfont.eot | Bin 0 -> 33022 bytes .../liberation-mono-webfont.svg | 153 + .../liberation-mono-webfont.ttf | Bin 0 -> 32808 bytes .../liberation-mono-webfont.woff | Bin 0 -> 21144 bytes fonts/monaco.css | 14 + fonts/monaco/monaco-webfont.eot | Bin 0 -> 18525 bytes fonts/monaco/monaco-webfont.svg | 239 ++ fonts/monaco/monaco-webfont.ttf | Bin 0 -> 34812 bytes fonts/monaco/monaco-webfont.woff | Bin 0 -> 21372 bytes fonts/monospace.css | 3 + fonts/sourcecodepro.css | 14 + .../sourcecodepro-regular-webfont.eot | Bin 0 -> 21505 bytes .../sourcecodepro-regular-webfont.svg | 241 ++ .../sourcecodepro-regular-webfont.ttf | Bin 0 -> 44432 bytes .../sourcecodepro-regular-webfont.woff | Bin 0 -> 25172 bytes .../sourcecodepro-regular-webfont.woff2 | Bin 0 -> 19180 bytes fonts/tahoma.css | 3 + fonts/times.css | 3 + fonts/ubuntu-mono.css | 14 + fonts/ubuntu-mono/ubuntu-mono-webfont.eot | Bin 0 -> 13955 bytes fonts/ubuntu-mono/ubuntu-mono-webfont.svg | 146 + fonts/ubuntu-mono/ubuntu-mono-webfont.ttf | Bin 0 -> 23688 bytes fonts/ubuntu-mono/ubuntu-mono-webfont.woff | Bin 0 -> 15844 bytes fonts/verdana.css | 3 + global.php | 250 ++ js/jquery-colorpicker/.gitignore | 1 + js/jquery-colorpicker/README | 231 ++ js/jquery-colorpicker/TODO | 20 + .../i18n/jquery.ui.colorpicker-en.js | 27 + .../i18n/jquery.ui.colorpicker-fr.js | 27 + .../i18n/jquery.ui.colorpicker-nl.js | 27 + js/jquery-colorpicker/images/bar-alpha.png | Bin 0 -> 2195 bytes js/jquery-colorpicker/images/bar-opacity.png | Bin 0 -> 134 bytes js/jquery-colorpicker/images/bar-pointer.png | Bin 0 -> 198 bytes js/jquery-colorpicker/images/bar.png | Bin 0 -> 382 bytes js/jquery-colorpicker/images/map-opacity.png | Bin 0 -> 139 bytes js/jquery-colorpicker/images/map-pointer.png | Bin 0 -> 344 bytes js/jquery-colorpicker/images/map.png | Bin 0 -> 78245 bytes .../images/preview-opacity.png | Bin 0 -> 135 bytes .../images/ui-colorpicker.png | Bin 0 -> 494 bytes js/jquery-colorpicker/index.html | 210 ++ js/jquery-colorpicker/jquery.colorpicker.css | 199 ++ js/jquery-colorpicker/jquery.colorpicker.js | 2552 +++++++++++++++++ js/min/crayon.min.js | 1 + js/min/crayon.te.min.js | 8 + js/minify.sh | 9 + js/src/crayon.js | 1152 ++++++++ js/src/crayon_admin.js | 579 ++++ js/src/cssjson.js | 190 ++ js/src/jquery.popup.js | 101 + js/src/util.js | 265 ++ js/tinycolor-min.js | 21 + langs/1c-kod/1c-kod.txt | 10 + langs/1c-kod/operator.txt | 8 + langs/1c-kod/statement.txt | 82 + langs/1c-zapros/1c-zapros.txt | 10 + langs/1c-zapros/operator.txt | 20 + langs/1c-zapros/statement.txt | 55 + langs/1c-zapros/symbol.txt | 15 + langs/abap/abap.txt | 17 + langs/abap/operator.txt | 22 + langs/abap/reserved.txt | 404 +++ langs/abap/statement.txt | 670 +++++ langs/ada/README.md | 16 + langs/ada/ada.txt | 22 + langs/ada/operator.txt | 32 + langs/ada/reserved.txt | 73 + langs/ada/statement.txt | 26 + langs/ada/type.txt | 6 + langs/aliases.txt | 17 + langs/amigados/amigados.txt | 20 + langs/amigados/commands.txt | 180 ++ langs/amigados/symbols.txt | 14 + langs/amigados/wildcards.txt | 11 + langs/apache/apache.txt | 23 + langs/apache/reserved.txt | 200 ++ langs/apache/type.txt | 29 + langs/applescript/applescript.txt | 19 + langs/applescript/entity.txt | 152 + langs/applescript/reserved.txt | 43 + langs/applescript/statement.txt | 37 + langs/arduino/arduino.txt | 24 + langs/arduino/enity.txt | 2 + langs/arduino/keywords.txt | 7 + langs/arduino/modifier.txt | 36 + langs/arduino/reserved.txt | 52 + langs/arduino/reserved2.txt | 46 + langs/arduino/statement.txt | 53 + langs/arduino/types.txt | 13 + langs/as/as.txt | 22 + langs/as/library.txt | 16 + langs/as/reserved.txt | 8 + langs/as/statement.txt | 1 + langs/asm/asm.txt | 16 + langs/asp/asp.txt | 22 + langs/asp/reserved.txt | 70 + langs/asp/statement.txt | 25 + langs/asp/type.txt | 48 + langs/autoit/autoit.txt | 20 + langs/autoit/reserved.txt | 11 + langs/autoit/statement.txt | 27 + langs/batch/batch.txt | 25 + langs/batch/builtins.txt | 75 + langs/batch/keywords.txt | 19 + langs/c#/c#.txt | 23 + langs/c#/modifier.txt | 20 + langs/c#/reserved.txt | 14 + langs/c#/statement.txt | 25 + langs/c#/type.txt | 28 + langs/c++/c++.txt | 23 + langs/c++/modifier.txt | 30 + langs/c++/reserved.txt | 57 + langs/c++/statement.txt | 16 + langs/c++/type.txt | 42 + langs/c/c.txt | 22 + langs/c/modifier.txt | 36 + langs/c/reserved.txt | 52 + langs/c/type.txt | 6 + langs/clojure/clojure.txt | 21 + langs/clojure/hof.txt | 8 + langs/clojure/special.txt | 18 + langs/clojure/statement.txt | 577 ++++ langs/clojure/type.txt | 5 + langs/clojure/vars.txt | 34 + langs/coffee/coffee.txt | 24 + langs/coffee/exception.txt | 5 + langs/coffee/function.txt | 4 + langs/coffee/modifier.txt | 2 + langs/coffee/module.txt | 3 + langs/coffee/reserved.txt | 20 + langs/coffee/statement.txt | 17 + langs/coffee/type.txt | 1 + langs/css/css.txt | 21 + langs/default/default.txt | 30 + langs/default/modifier.txt | 10 + langs/default/operator.txt | 46 + langs/default/reserved.txt | 13 + langs/default/statement.txt | 38 + langs/default/symbol.txt | 21 + langs/default/type.txt | 29 + langs/delimiters.txt | 5 + langs/delphi/delphi.txt | 23 + langs/delphi/modifier.txt | 20 + langs/delphi/operator.txt | 25 + langs/delphi/reserved.txt | 314 ++ langs/delphi/statement.txt | 26 + langs/delphi/type.txt | 72 + langs/diff/diff.txt | 13 + langs/dws/dws.txt | 19 + langs/dws/keywords.txt | 96 + langs/dws/modifier.txt | 20 + langs/dws/operator.txt | 25 + langs/dws/type.txt | 8 + langs/erlang/erlang.txt | 24 + langs/erlang/modifier.txt | 3 + langs/erlang/operators.txt | 38 + langs/erlang/statements.txt | 11 + langs/extensions.txt | 21 + langs/go/go.txt | 25 + langs/go/reserved.txt | 3 + langs/go/statement.txt | 25 + langs/haskell/haskell.txt | 22 + langs/haskell/reserved.txt | 200 ++ langs/haskell/type.txt | 29 + langs/ilogic/ilogic.txt | 24 + langs/ilogic/modifier.txt | 0 langs/ilogic/operator.txt | 10 + langs/ilogic/reserved.txt | 39 + langs/ilogic/special.txt | 10 + langs/ilogic/statement.txt | 18 + langs/ilogic/type.txt | 6 + langs/ini/ini.txt | 18 + langs/java/java.txt | 23 + langs/java/modifier.txt | 5 + langs/java/reserved.txt | 1 + langs/js/js.txt | 27 + langs/js/reserved.txt | 137 + langs/kl/constant.txt | 403 +++ langs/kl/kl.txt | 25 + langs/kl/module.txt | 45 + langs/kl/reserved.txt | 1753 +++++++++++ langs/kl/statement.txt | 29 + langs/kl/type.txt | 214 ++ langs/kl/variable.txt | 369 +++ langs/less/less.txt | 23 + langs/less/notation.txt | 2 + langs/lisp/lisp.txt | 19 + langs/lisp/reserved.txt | 132 + langs/lisp/statement.txt | 14 + langs/lisp/type.txt | 11 + langs/lua/lua.txt | 19 + langs/lua/reserved.txt | 48 + langs/lua/statement.txt | 16 + langs/matlab/matlab.txt | 19 + langs/matlab/reserved.txt | 673 +++++ langs/matlab/statement.txt | 24 + langs/mel/constant.txt | 2 + langs/mel/mel.txt | 22 + langs/mel/reserved.txt | 1403 +++++++++ langs/mel/statement.txt | 26 + langs/mel/type.txt | 6 + langs/miva/miva.txt | 23 + langs/monkey/modifier.txt | 1 + langs/monkey/monkey.txt | 23 + langs/monkey/operator.txt | 10 + langs/monkey/reserved.txt | 8 + langs/monkey/statement.txt | 8 + langs/mysql/built.in.func.txt | 553 ++++ langs/mysql/mysql.txt | 26 + langs/mysql/operator.txt | 49 + langs/mysql/reserved.txt | 214 ++ langs/mysql/statement.txt | 414 +++ langs/mysql/type.txt | 342 +++ langs/mysql/variable.txt | 54 + langs/objc/constant.txt | 4 + langs/objc/modifier.txt | 22 + langs/objc/modifier_at.txt | 4 + langs/objc/objc.txt | 29 + langs/objc/reserved.txt | 8 + langs/objc/reserved_at.txt | 1 + langs/objc/statement.txt | 10 + langs/objc/statement_at.txt | 13 + langs/objc/type.txt | 22 + langs/ocaml/function.txt | 27 + langs/ocaml/ocaml.txt | 36 + langs/ocaml/operator.txt | 31 + langs/ocaml/reserved.txt | 52 + langs/ocaml/type.txt | 6 + langs/papyrus/papyrus.txt | 23 + langs/papyrus/reserved.txt | 28 + langs/papyrus/statement.txt | 11 + langs/papyrus/type.txt | 74 + langs/perl/compile.txt | 10 + langs/perl/perl.txt | 22 + langs/perl/reserved.txt | 206 ++ langs/perl/statement.txt | 29 + langs/pgsql/built.in.func.txt | 219 ++ langs/pgsql/operator.txt | 60 + langs/pgsql/pgsql.txt | 18 + langs/pgsql/reserved.txt | 369 +++ langs/pgsql/statement.txt | 95 + langs/pgsql/type.txt | 78 + langs/php/compile.txt | 9 + langs/php/construct.txt | 18 + langs/php/php.txt | 26 + langs/php/reserved.txt | 257 ++ langs/plsql/catalog.txt | 1684 +++++++++++ langs/plsql/function.txt | 314 ++ langs/plsql/operator.txt | 35 + langs/plsql/plsql.txt | 20 + langs/plsql/reserved.txt | 498 ++++ langs/plsql/statement.txt | 297 ++ langs/plsql/type.txt | 58 + langs/ps/ps.txt | 23 + langs/ps/reserved.txt | 226 ++ langs/ps/statement.txt | 19 + langs/ps/type.txt | 23 + langs/python/exception.txt | 50 + langs/python/function.txt | 80 + langs/python/modifier.txt | 1 + langs/python/module.txt | 432 +++ langs/python/python.txt | 27 + langs/python/reserved.txt | 19 + langs/python/statement.txt | 21 + langs/python/type.txt | 4 + langs/r/r.txt | 21 + langs/r/reserved.txt | 11 + langs/r/statement.txt | 3 + langs/r/type.txt | 6 + langs/readme.md | 106 + langs/reg/operator.txt | 2 + langs/reg/reg.txt | 14 + langs/reg/rootkeys.txt | 12 + langs/reg/type.txt | 2 + langs/reg/version.txt | 2 + langs/ruby/constant.txt | 13 + langs/ruby/exception.txt | 28 + langs/ruby/library.txt | 28 + langs/ruby/modifier.txt | 3 + langs/ruby/module.txt | 11 + langs/ruby/operator.txt | 3 + langs/ruby/reserved.txt | 63 + langs/ruby/ruby.txt | 27 + langs/ruby/statement.txt | 28 + langs/ruby/type.txt | 34 + langs/rust/modifier.txt | 4 + langs/rust/reserved.txt | 3 + langs/rust/rust.txt | 23 + langs/rust/statement.txt | 24 + langs/rust/type.txt | 10 + langs/sass/sass.txt | 25 + langs/scala/modifier.txt | 8 + langs/scala/reserved.txt | 40 + langs/scala/scala.txt | 23 + langs/scheme/entity.txt | 168 ++ langs/scheme/keyword.txt | 24 + langs/scheme/scheme.txt | 23 + langs/sh/reserved.txt | 162 ++ langs/sh/sh.txt | 21 + langs/sh/statement.txt | 5 + langs/swift/modifier.txt | 20 + langs/swift/operator.txt | 2 + langs/swift/reserved.txt | 40 + langs/swift/swift.txt | 24 + langs/swift/type.txt | 4 + langs/tex/tex.txt | 15 + langs/tsql/keyword.txt | 357 +++ langs/tsql/operator.txt | 14 + langs/tsql/procedure.txt | 483 ++++ langs/tsql/tsql.txt | 21 + langs/tsql/type.txt | 14 + langs/vb/modifier.txt | 19 + langs/vb/reserved.txt | 37 + langs/vb/statement.txt | 13 + langs/vb/type.txt | 28 + langs/vb/vb.txt | 21 + langs/vbnet/LICENSE | 674 +++++ langs/vbnet/README.md | 25 + langs/vbnet/identifier.txt | 1 + langs/vbnet/modifier.txt | 21 + langs/vbnet/reserved.txt | 41 + langs/vbnet/statement.txt | 14 + langs/vbnet/type.txt | 32 + langs/vbnet/vbnet.txt | 22 + langs/vim/statement.txt | 180 ++ langs/vim/vim.txt | 20 + langs/xhtml/xhtml.txt | 20 + langs/yaml/operator.txt | 12 + langs/yaml/yaml.txt | 19 + langs/zsh/modifier.txt | 0 langs/zsh/reserved.txt | 24 + langs/zsh/statement.txt | 19 + langs/zsh/type.txt | 2 + langs/zsh/zsh.txt | 22 + readme.txt | 1250 ++++++++ screenshot-1.png | Bin 0 -> 75195 bytes screenshot-2.png | Bin 0 -> 74498 bytes screenshot-3.png | Bin 0 -> 92570 bytes screenshot-4.png | Bin 0 -> 74580 bytes screenshot-5.png | Bin 0 -> 74658 bytes themes/1c-kod/1c-kod.css | 167 ++ themes/1c-zapros/1c-zapros.css | 167 ++ themes/809finest/809finest.css | 164 ++ themes/ado/ado.css | 188 ++ themes/amity/amity.css | 188 ++ themes/arduino-ide/arduino-ide.css | 164 ++ themes/bncplusplus/bncplusplus.css | 186 ++ themes/capacitacionti/capacitacionti.css | 172 ++ themes/cg-cookie/cg-cookie.css | 164 ++ themes/cisco-router/cisco-router.css | 171 ++ themes/classic/classic.css | 164 ++ .../coda-special-board/coda-special-board.css | 184 ++ themes/coy/coy.css | 117 + themes/dark-terminal/dark-terminal.css | 168 ++ themes/eclipse/eclipse.css | 171 ++ themes/epicgeeks/epicgeeks.css | 172 ++ themes/epicgeeks/images/code.gif | Bin 0 -> 554 bytes themes/epicgeeks/images/copy.gif | Bin 0 -> 547 bytes themes/epicgeeks/images/list.gif | Bin 0 -> 460 bytes themes/epicgeeks/images/pop.gif | Bin 0 -> 222 bytes themes/familiar/familiar.css | 159 + themes/feeldesign/feeldesign.css | 164 ++ themes/flatui-light/flatui-light.css | 163 ++ themes/github/github.css | 117 + themes/idle/idle.css | 166 ++ themes/inlellij-idea/inlellij-idea.css | 191 ++ themes/iris-vfx/iris-vfx.css | 165 ++ themes/kaderu/kaderu.css | 319 +++ themes/kayote/kayote.css | 184 ++ themes/light-abite/light-abite.css | 117 + themes/mirc-dark/mirc-dark.css | 167 ++ themes/mm-dark-blue/mm-dark-blue.css | 174 ++ themes/monokai/monokai.css | 165 ++ themes/neon/neon.css | 192 ++ themes/obsidian-light/obsidian-light.css | 157 + themes/obsidian/obsidian.css | 184 ++ themes/onderka15/onderka15.css | 167 ++ themes/orange-code/orange-code.css | 164 ++ themes/plain-white/plain-white.css | 172 ++ themes/powershell-ise/powershell-ise.css | 167 ++ themes/powershell/powershell.css | 166 ++ themes/prism-like/prism-like.css | 119 + themes/pspad/pspad.css | 168 ++ themes/qtcreator/qtcreator.css | 164 ++ themes/raygun/raygun.css | 160 ++ themes/secrets-of-rock/secrets-of-rock.css | 164 ++ themes/shell-default/shell-default.css | 167 ++ themes/solarized-dark/solarized-dark.css | 180 ++ themes/solarized-light/solarized-light.css | 177 ++ themes/son-of-obsidian/son-of-obsidian.css | 176 ++ themes/ssms2012/ssms2012.css | 163 ++ themes/sublime-text/sublime-text.css | 167 ++ themes/terminal/terminal.css | 171 ++ themes/tomorrow-night/tomorrow-night.css | 167 ++ themes/tomorrow/tomorrow.css | 165 ++ themes/turnwall/turnwall.css | 162 ++ themes/twilight/twilight.css | 184 ++ themes/visual-assist/visual-assist.css | 167 ++ themes/vs2012-black/vs2012-black.css | 167 ++ themes/vs2012/vs2012.css | 164 ++ themes/x3info/x3info.css | 165 ++ themes/xcode/xcode.css | 120 + trans/crayon-syntax-highlighter-ar_AR.mo | Bin 0 -> 18118 bytes trans/crayon-syntax-highlighter-ar_AR.po | 1271 ++++++++ trans/crayon-syntax-highlighter-de_DE.mo | Bin 0 -> 16165 bytes trans/crayon-syntax-highlighter-de_DE.po | 1372 +++++++++ trans/crayon-syntax-highlighter-es_ES.mo | Bin 0 -> 13924 bytes trans/crayon-syntax-highlighter-es_ES.po | 886 ++++++ trans/crayon-syntax-highlighter-fa_IR.mo | Bin 0 -> 16982 bytes trans/crayon-syntax-highlighter-fa_IR.po | 1322 +++++++++ trans/crayon-syntax-highlighter-fi.mo | Bin 0 -> 17722 bytes trans/crayon-syntax-highlighter-fi.po | 1399 +++++++++ trans/crayon-syntax-highlighter-fr_FR.mo | Bin 0 -> 13023 bytes trans/crayon-syntax-highlighter-fr_FR.po | 966 +++++++ trans/crayon-syntax-highlighter-it_IT.mo | Bin 0 -> 12431 bytes trans/crayon-syntax-highlighter-it_IT.po | 835 ++++++ trans/crayon-syntax-highlighter-ja.mo | Bin 0 -> 13952 bytes trans/crayon-syntax-highlighter-ja.po | 825 ++++++ trans/crayon-syntax-highlighter-ko_KR.mo | Bin 0 -> 18265 bytes trans/crayon-syntax-highlighter-ko_KR.po | 1364 +++++++++ trans/crayon-syntax-highlighter-lt_LT.mo | Bin 0 -> 10167 bytes trans/crayon-syntax-highlighter-lt_LT.po | 806 ++++++ trans/crayon-syntax-highlighter-nb_NO.mo | Bin 0 -> 18739 bytes trans/crayon-syntax-highlighter-nb_NO.po | 1185 ++++++++ trans/crayon-syntax-highlighter-nl_NL.mo | Bin 0 -> 18812 bytes trans/crayon-syntax-highlighter-nl_NL.po | 1294 +++++++++ trans/crayon-syntax-highlighter-pl_PL.mo | Bin 0 -> 18981 bytes trans/crayon-syntax-highlighter-pl_PL.po | 1186 ++++++++ trans/crayon-syntax-highlighter-pt_BR.mo | Bin 0 -> 12788 bytes trans/crayon-syntax-highlighter-pt_BR.po | 723 +++++ trans/crayon-syntax-highlighter-ru_RU.mo | Bin 0 -> 19004 bytes trans/crayon-syntax-highlighter-ru_RU.po | 885 ++++++ trans/crayon-syntax-highlighter-sk_SK.mo | Bin 0 -> 13722 bytes trans/crayon-syntax-highlighter-sk_SK.po | 967 +++++++ trans/crayon-syntax-highlighter-sl_SI.mo | Bin 0 -> 19074 bytes trans/crayon-syntax-highlighter-sl_SI.po | 1394 +++++++++ trans/crayon-syntax-highlighter-ta_MY.mo | Bin 0 -> 18320 bytes trans/crayon-syntax-highlighter-ta_MY.po | 1306 +++++++++ trans/crayon-syntax-highlighter-tr_TR.mo | Bin 0 -> 18832 bytes trans/crayon-syntax-highlighter-tr_TR.po | 1293 +++++++++ trans/crayon-syntax-highlighter-uk_UA.mo | Bin 0 -> 22468 bytes trans/crayon-syntax-highlighter-uk_UA.po | 1128 ++++++++ trans/crayon-syntax-highlighter-zh_CN.mo | Bin 0 -> 17607 bytes trans/crayon-syntax-highlighter-zh_CN.po | 1380 +++++++++ trans/crayon-syntax-highlighter-zh_TW.mo | Bin 0 -> 17634 bytes trans/crayon-syntax-highlighter-zh_TW.po | 1380 +++++++++ util/crayon_log.class.php | 94 + util/crayon_timer.class.php | 24 + util/crayon_util.class.php | 858 ++++++ util/external_use.php | 57 + util/lines_to_array.rb | 11 + util/lines_to_regex.rb | 11 + util/minify.sh | 17 + util/sample/abap.txt | 8 + util/sample/apache.txt | 3 + util/sample/applescript.txt | 10 + util/sample/arduino.txt | 12 + util/sample/as.txt | 9 + util/sample/asm.txt | 5 + util/sample/asp.txt | 7 + util/sample/autoit.txt | 11 + util/sample/batch.txt | 11 + util/sample/c#.txt | 10 + util/sample/c++.txt | 16 + util/sample/c.txt | 9 + util/sample/clojure.txt | 5 + util/sample/coffee.txt | 14 + util/sample/css.txt | 12 + util/sample/default.txt | 8 + util/sample/delphi.txt | 9 + util/sample/diff.txt | 9 + util/sample/dws.txt | 13 + util/sample/erlang.txt | 12 + util/sample/go.txt | 11 + util/sample/haskell.txt | 23 + util/sample/ilogic.txt | 10 + util/sample/ini.txt | 10 + util/sample/java.txt | 8 + util/sample/js.txt | 12 + util/sample/kl.txt | 18 + util/sample/less.txt | 13 + util/sample/lisp.txt | 12 + util/sample/lua.txt | 7 + util/sample/matlab.txt | 9 + util/sample/mel.txt | 24 + util/sample/monkey.txt | 8 + util/sample/mysql.txt | 8 + util/sample/objc.txt | 8 + util/sample/perl.txt | 14 + util/sample/pgsql.txt | 8 + util/sample/php.txt | 10 + util/sample/plsql.txt | 11 + util/sample/ps.txt | 2 + util/sample/python.txt | 9 + util/sample/r.txt | 14 + util/sample/reg.txt | 7 + util/sample/ruby.txt | 9 + util/sample/rust.txt | 8 + util/sample/sass.txt | 11 + util/sample/scala.txt | 15 + util/sample/scheme.txt | 6 + util/sample/sh.txt | 12 + util/sample/swift.txt | 7 + util/sample/tex.txt | 5 + util/sample/tsql.txt | 4 + util/sample/vb.txt | 10 + util/sample/vbnet.txt | 8 + util/sample/vim.txt | 12 + util/sample/xhtml.txt | 12 + util/sample/yaml.txt | 7 + util/sample/zsh.txt | 20 + util/scraper/file_concat.py | 21 + util/scraper/keyword_join.py | 26 + util/scraper/keyword_scraper.py | 73 + util/scraper/keyword_scraper_tool.py | 18 + util/scraper/readme.txt | 1 + util/settings_list.txt | 48 + util/tag-editor/colorbox/colorbox.css | 145 + .../colorbox/jquery.colorbox-min.js | 7 + util/tag-editor/crayon_qt.js | 51 + util/tag-editor/crayon_tag_editor.js | 631 ++++ .../tag-editor/crayon_tag_editor_wp.class.php | 292 ++ util/tag-editor/crayon_te.css | 32 + util/tag-editor/crayon_tinymce.js | 270 ++ util/theme-editor/images/button-pressed.png | Bin 0 -> 1099 bytes util/theme-editor/images/button.png | Bin 0 -> 1079 bytes util/theme-editor/images/frame.png | Bin 0 -> 1623 bytes util/theme-editor/images/highlighting.png | Bin 0 -> 2566 bytes util/theme-editor/images/information.png | Bin 0 -> 1536 bytes util/theme-editor/images/lines.png | Bin 0 -> 1947 bytes util/theme-editor/images/numbers.png | Bin 0 -> 2216 bytes util/theme-editor/images/title.png | Bin 0 -> 1048 bytes util/theme-editor/images/toolbar.png | Bin 0 -> 1968 bytes util/theme-editor/theme_editor.css | 317 ++ util/theme-editor/theme_editor.js | 655 +++++ util/theme-editor/theme_editor.php | 879 ++++++ util/touch.txt | 18 + 595 files changed, 78405 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 crayon-syntax-highlighter.sublime-project create mode 100644 crayon_fonts.class.php create mode 100644 crayon_formatter.class.php create mode 100644 crayon_highlighter.class.php create mode 100644 crayon_langs.class.php create mode 100644 crayon_parser.class.php create mode 100644 crayon_resource.class.php create mode 100644 crayon_settings.class.php create mode 100644 crayon_settings_wp.class.php create mode 100644 crayon_themes.class.php create mode 100644 crayon_wp.class.php create mode 100644 css/images/crayon_logo.png create mode 100644 css/images/crayon_logo_square.png create mode 100644 css/images/crayon_tinymce.png create mode 100644 css/images/docs.png create mode 100644 css/images/donate.png create mode 100644 css/images/facebook.png create mode 100644 css/images/github.png create mode 100644 css/images/google.png create mode 100644 css/images/theme_editor.png create mode 100644 css/images/thumb_horizontal.png create mode 100644 css/images/thumb_vertical.png create mode 100644 css/images/toolbar/buttons.png create mode 100644 css/images/toolbar/buttons@2x.png create mode 100644 css/images/track_horizontal.png create mode 100644 css/images/track_vertical.png create mode 100644 css/images/twitter.png create mode 100644 css/images/wordpress-blue.png create mode 100644 css/min/crayon.min.css create mode 100644 css/minify.sh create mode 100644 css/src/admin_style.css create mode 100644 css/src/crayon_style.css create mode 100644 css/src/global_style.css create mode 100644 fonts/adobe-source-sans.css create mode 100644 fonts/adobe-source-sans/SourceSansPro-Semibold.eot create mode 100644 fonts/adobe-source-sans/SourceSansPro-Semibold.otf.woff create mode 100644 fonts/adobe-source-sans/SourceSansPro-Semibold.svg create mode 100644 fonts/adobe-source-sans/SourceSansPro-Semibold.ttf.woff create mode 100644 fonts/arial.css create mode 100644 fonts/consolas.css create mode 100644 fonts/consolas/consolas-webfont.eot create mode 100644 fonts/consolas/consolas-webfont.svg create mode 100644 fonts/consolas/consolas-webfont.ttf create mode 100644 fonts/consolas/consolas-webfont.woff create mode 100644 fonts/courier-new.css create mode 100644 fonts/droid-sans-mono.css create mode 100644 fonts/droid-sans-mono/droid-sans-mono-webfont.eot create mode 100644 fonts/droid-sans-mono/droid-sans-mono-webfont.svg create mode 100644 fonts/droid-sans-mono/droid-sans-mono-webfont.ttf create mode 100644 fonts/droid-sans-mono/droid-sans-mono-webfont.woff create mode 100644 fonts/inconsolata.css create mode 100644 fonts/inconsolata/inconsolata-webfont.eot create mode 100644 fonts/inconsolata/inconsolata-webfont.svg create mode 100644 fonts/inconsolata/inconsolata-webfont.ttf create mode 100644 fonts/inconsolata/inconsolata-webfont.woff create mode 100644 fonts/liberation-mono.css create mode 100644 fonts/liberation-mono/liberation-mono-webfont.eot create mode 100644 fonts/liberation-mono/liberation-mono-webfont.svg create mode 100644 fonts/liberation-mono/liberation-mono-webfont.ttf create mode 100644 fonts/liberation-mono/liberation-mono-webfont.woff create mode 100644 fonts/monaco.css create mode 100644 fonts/monaco/monaco-webfont.eot create mode 100644 fonts/monaco/monaco-webfont.svg create mode 100644 fonts/monaco/monaco-webfont.ttf create mode 100644 fonts/monaco/monaco-webfont.woff create mode 100644 fonts/monospace.css create mode 100644 fonts/sourcecodepro.css create mode 100644 fonts/sourcecodepro/sourcecodepro-regular-webfont.eot create mode 100644 fonts/sourcecodepro/sourcecodepro-regular-webfont.svg create mode 100644 fonts/sourcecodepro/sourcecodepro-regular-webfont.ttf create mode 100644 fonts/sourcecodepro/sourcecodepro-regular-webfont.woff create mode 100644 fonts/sourcecodepro/sourcecodepro-regular-webfont.woff2 create mode 100644 fonts/tahoma.css create mode 100644 fonts/times.css create mode 100644 fonts/ubuntu-mono.css create mode 100644 fonts/ubuntu-mono/ubuntu-mono-webfont.eot create mode 100644 fonts/ubuntu-mono/ubuntu-mono-webfont.svg create mode 100644 fonts/ubuntu-mono/ubuntu-mono-webfont.ttf create mode 100644 fonts/ubuntu-mono/ubuntu-mono-webfont.woff create mode 100644 fonts/verdana.css create mode 100644 global.php create mode 100644 js/jquery-colorpicker/.gitignore create mode 100644 js/jquery-colorpicker/README create mode 100644 js/jquery-colorpicker/TODO create mode 100644 js/jquery-colorpicker/i18n/jquery.ui.colorpicker-en.js create mode 100644 js/jquery-colorpicker/i18n/jquery.ui.colorpicker-fr.js create mode 100644 js/jquery-colorpicker/i18n/jquery.ui.colorpicker-nl.js create mode 100644 js/jquery-colorpicker/images/bar-alpha.png create mode 100644 js/jquery-colorpicker/images/bar-opacity.png create mode 100644 js/jquery-colorpicker/images/bar-pointer.png create mode 100644 js/jquery-colorpicker/images/bar.png create mode 100644 js/jquery-colorpicker/images/map-opacity.png create mode 100644 js/jquery-colorpicker/images/map-pointer.png create mode 100644 js/jquery-colorpicker/images/map.png create mode 100644 js/jquery-colorpicker/images/preview-opacity.png create mode 100644 js/jquery-colorpicker/images/ui-colorpicker.png create mode 100644 js/jquery-colorpicker/index.html create mode 100644 js/jquery-colorpicker/jquery.colorpicker.css create mode 100644 js/jquery-colorpicker/jquery.colorpicker.js create mode 100644 js/min/crayon.min.js create mode 100644 js/min/crayon.te.min.js create mode 100644 js/minify.sh create mode 100644 js/src/crayon.js create mode 100644 js/src/crayon_admin.js create mode 100644 js/src/cssjson.js create mode 100644 js/src/jquery.popup.js create mode 100644 js/src/util.js create mode 100644 js/tinycolor-min.js create mode 100644 langs/1c-kod/1c-kod.txt create mode 100644 langs/1c-kod/operator.txt create mode 100644 langs/1c-kod/statement.txt create mode 100644 langs/1c-zapros/1c-zapros.txt create mode 100644 langs/1c-zapros/operator.txt create mode 100644 langs/1c-zapros/statement.txt create mode 100644 langs/1c-zapros/symbol.txt create mode 100644 langs/abap/abap.txt create mode 100644 langs/abap/operator.txt create mode 100644 langs/abap/reserved.txt create mode 100644 langs/abap/statement.txt create mode 100644 langs/ada/README.md create mode 100644 langs/ada/ada.txt create mode 100644 langs/ada/operator.txt create mode 100644 langs/ada/reserved.txt create mode 100644 langs/ada/statement.txt create mode 100644 langs/ada/type.txt create mode 100644 langs/aliases.txt create mode 100644 langs/amigados/amigados.txt create mode 100644 langs/amigados/commands.txt create mode 100644 langs/amigados/symbols.txt create mode 100644 langs/amigados/wildcards.txt create mode 100644 langs/apache/apache.txt create mode 100644 langs/apache/reserved.txt create mode 100644 langs/apache/type.txt create mode 100644 langs/applescript/applescript.txt create mode 100644 langs/applescript/entity.txt create mode 100644 langs/applescript/reserved.txt create mode 100644 langs/applescript/statement.txt create mode 100644 langs/arduino/arduino.txt create mode 100644 langs/arduino/enity.txt create mode 100644 langs/arduino/keywords.txt create mode 100644 langs/arduino/modifier.txt create mode 100644 langs/arduino/reserved.txt create mode 100644 langs/arduino/reserved2.txt create mode 100644 langs/arduino/statement.txt create mode 100644 langs/arduino/types.txt create mode 100644 langs/as/as.txt create mode 100644 langs/as/library.txt create mode 100644 langs/as/reserved.txt create mode 100644 langs/as/statement.txt create mode 100644 langs/asm/asm.txt create mode 100644 langs/asp/asp.txt create mode 100644 langs/asp/reserved.txt create mode 100644 langs/asp/statement.txt create mode 100644 langs/asp/type.txt create mode 100644 langs/autoit/autoit.txt create mode 100644 langs/autoit/reserved.txt create mode 100644 langs/autoit/statement.txt create mode 100644 langs/batch/batch.txt create mode 100644 langs/batch/builtins.txt create mode 100644 langs/batch/keywords.txt create mode 100644 langs/c#/c#.txt create mode 100644 langs/c#/modifier.txt create mode 100644 langs/c#/reserved.txt create mode 100644 langs/c#/statement.txt create mode 100644 langs/c#/type.txt create mode 100644 langs/c++/c++.txt create mode 100644 langs/c++/modifier.txt create mode 100644 langs/c++/reserved.txt create mode 100644 langs/c++/statement.txt create mode 100644 langs/c++/type.txt create mode 100644 langs/c/c.txt create mode 100644 langs/c/modifier.txt create mode 100644 langs/c/reserved.txt create mode 100644 langs/c/type.txt create mode 100644 langs/clojure/clojure.txt create mode 100644 langs/clojure/hof.txt create mode 100644 langs/clojure/special.txt create mode 100644 langs/clojure/statement.txt create mode 100644 langs/clojure/type.txt create mode 100644 langs/clojure/vars.txt create mode 100644 langs/coffee/coffee.txt create mode 100644 langs/coffee/exception.txt create mode 100644 langs/coffee/function.txt create mode 100644 langs/coffee/modifier.txt create mode 100644 langs/coffee/module.txt create mode 100644 langs/coffee/reserved.txt create mode 100644 langs/coffee/statement.txt create mode 100644 langs/coffee/type.txt create mode 100644 langs/css/css.txt create mode 100644 langs/default/default.txt create mode 100644 langs/default/modifier.txt create mode 100644 langs/default/operator.txt create mode 100644 langs/default/reserved.txt create mode 100644 langs/default/statement.txt create mode 100644 langs/default/symbol.txt create mode 100644 langs/default/type.txt create mode 100644 langs/delimiters.txt create mode 100644 langs/delphi/delphi.txt create mode 100644 langs/delphi/modifier.txt create mode 100644 langs/delphi/operator.txt create mode 100644 langs/delphi/reserved.txt create mode 100644 langs/delphi/statement.txt create mode 100644 langs/delphi/type.txt create mode 100644 langs/diff/diff.txt create mode 100644 langs/dws/dws.txt create mode 100644 langs/dws/keywords.txt create mode 100644 langs/dws/modifier.txt create mode 100644 langs/dws/operator.txt create mode 100644 langs/dws/type.txt create mode 100644 langs/erlang/erlang.txt create mode 100644 langs/erlang/modifier.txt create mode 100644 langs/erlang/operators.txt create mode 100644 langs/erlang/statements.txt create mode 100644 langs/extensions.txt create mode 100644 langs/go/go.txt create mode 100644 langs/go/reserved.txt create mode 100644 langs/go/statement.txt create mode 100644 langs/haskell/haskell.txt create mode 100644 langs/haskell/reserved.txt create mode 100644 langs/haskell/type.txt create mode 100644 langs/ilogic/ilogic.txt create mode 100644 langs/ilogic/modifier.txt create mode 100644 langs/ilogic/operator.txt create mode 100644 langs/ilogic/reserved.txt create mode 100644 langs/ilogic/special.txt create mode 100644 langs/ilogic/statement.txt create mode 100644 langs/ilogic/type.txt create mode 100644 langs/ini/ini.txt create mode 100644 langs/java/java.txt create mode 100644 langs/java/modifier.txt create mode 100644 langs/java/reserved.txt create mode 100644 langs/js/js.txt create mode 100644 langs/js/reserved.txt create mode 100644 langs/kl/constant.txt create mode 100644 langs/kl/kl.txt create mode 100644 langs/kl/module.txt create mode 100644 langs/kl/reserved.txt create mode 100644 langs/kl/statement.txt create mode 100644 langs/kl/type.txt create mode 100644 langs/kl/variable.txt create mode 100644 langs/less/less.txt create mode 100644 langs/less/notation.txt create mode 100644 langs/lisp/lisp.txt create mode 100644 langs/lisp/reserved.txt create mode 100644 langs/lisp/statement.txt create mode 100644 langs/lisp/type.txt create mode 100644 langs/lua/lua.txt create mode 100644 langs/lua/reserved.txt create mode 100644 langs/lua/statement.txt create mode 100644 langs/matlab/matlab.txt create mode 100644 langs/matlab/reserved.txt create mode 100644 langs/matlab/statement.txt create mode 100644 langs/mel/constant.txt create mode 100644 langs/mel/mel.txt create mode 100644 langs/mel/reserved.txt create mode 100644 langs/mel/statement.txt create mode 100644 langs/mel/type.txt create mode 100644 langs/miva/miva.txt create mode 100644 langs/monkey/modifier.txt create mode 100644 langs/monkey/monkey.txt create mode 100644 langs/monkey/operator.txt create mode 100644 langs/monkey/reserved.txt create mode 100644 langs/monkey/statement.txt create mode 100644 langs/mysql/built.in.func.txt create mode 100644 langs/mysql/mysql.txt create mode 100644 langs/mysql/operator.txt create mode 100644 langs/mysql/reserved.txt create mode 100644 langs/mysql/statement.txt create mode 100644 langs/mysql/type.txt create mode 100644 langs/mysql/variable.txt create mode 100644 langs/objc/constant.txt create mode 100644 langs/objc/modifier.txt create mode 100644 langs/objc/modifier_at.txt create mode 100644 langs/objc/objc.txt create mode 100644 langs/objc/reserved.txt create mode 100644 langs/objc/reserved_at.txt create mode 100644 langs/objc/statement.txt create mode 100644 langs/objc/statement_at.txt create mode 100644 langs/objc/type.txt create mode 100644 langs/ocaml/function.txt create mode 100644 langs/ocaml/ocaml.txt create mode 100644 langs/ocaml/operator.txt create mode 100644 langs/ocaml/reserved.txt create mode 100644 langs/ocaml/type.txt create mode 100644 langs/papyrus/papyrus.txt create mode 100644 langs/papyrus/reserved.txt create mode 100644 langs/papyrus/statement.txt create mode 100644 langs/papyrus/type.txt create mode 100644 langs/perl/compile.txt create mode 100644 langs/perl/perl.txt create mode 100644 langs/perl/reserved.txt create mode 100644 langs/perl/statement.txt create mode 100644 langs/pgsql/built.in.func.txt create mode 100644 langs/pgsql/operator.txt create mode 100644 langs/pgsql/pgsql.txt create mode 100644 langs/pgsql/reserved.txt create mode 100644 langs/pgsql/statement.txt create mode 100644 langs/pgsql/type.txt create mode 100644 langs/php/compile.txt create mode 100644 langs/php/construct.txt create mode 100644 langs/php/php.txt create mode 100644 langs/php/reserved.txt create mode 100644 langs/plsql/catalog.txt create mode 100644 langs/plsql/function.txt create mode 100644 langs/plsql/operator.txt create mode 100644 langs/plsql/plsql.txt create mode 100644 langs/plsql/reserved.txt create mode 100644 langs/plsql/statement.txt create mode 100644 langs/plsql/type.txt create mode 100644 langs/ps/ps.txt create mode 100644 langs/ps/reserved.txt create mode 100644 langs/ps/statement.txt create mode 100644 langs/ps/type.txt create mode 100644 langs/python/exception.txt create mode 100644 langs/python/function.txt create mode 100644 langs/python/modifier.txt create mode 100644 langs/python/module.txt create mode 100644 langs/python/python.txt create mode 100644 langs/python/reserved.txt create mode 100644 langs/python/statement.txt create mode 100644 langs/python/type.txt create mode 100644 langs/r/r.txt create mode 100644 langs/r/reserved.txt create mode 100644 langs/r/statement.txt create mode 100644 langs/r/type.txt create mode 100644 langs/readme.md create mode 100644 langs/reg/operator.txt create mode 100644 langs/reg/reg.txt create mode 100644 langs/reg/rootkeys.txt create mode 100644 langs/reg/type.txt create mode 100644 langs/reg/version.txt create mode 100644 langs/ruby/constant.txt create mode 100644 langs/ruby/exception.txt create mode 100644 langs/ruby/library.txt create mode 100644 langs/ruby/modifier.txt create mode 100644 langs/ruby/module.txt create mode 100644 langs/ruby/operator.txt create mode 100644 langs/ruby/reserved.txt create mode 100644 langs/ruby/ruby.txt create mode 100644 langs/ruby/statement.txt create mode 100644 langs/ruby/type.txt create mode 100644 langs/rust/modifier.txt create mode 100644 langs/rust/reserved.txt create mode 100644 langs/rust/rust.txt create mode 100644 langs/rust/statement.txt create mode 100644 langs/rust/type.txt create mode 100644 langs/sass/sass.txt create mode 100644 langs/scala/modifier.txt create mode 100644 langs/scala/reserved.txt create mode 100644 langs/scala/scala.txt create mode 100644 langs/scheme/entity.txt create mode 100644 langs/scheme/keyword.txt create mode 100644 langs/scheme/scheme.txt create mode 100644 langs/sh/reserved.txt create mode 100644 langs/sh/sh.txt create mode 100644 langs/sh/statement.txt create mode 100644 langs/swift/modifier.txt create mode 100644 langs/swift/operator.txt create mode 100644 langs/swift/reserved.txt create mode 100644 langs/swift/swift.txt create mode 100644 langs/swift/type.txt create mode 100644 langs/tex/tex.txt create mode 100644 langs/tsql/keyword.txt create mode 100644 langs/tsql/operator.txt create mode 100644 langs/tsql/procedure.txt create mode 100644 langs/tsql/tsql.txt create mode 100644 langs/tsql/type.txt create mode 100644 langs/vb/modifier.txt create mode 100644 langs/vb/reserved.txt create mode 100644 langs/vb/statement.txt create mode 100644 langs/vb/type.txt create mode 100644 langs/vb/vb.txt create mode 100644 langs/vbnet/LICENSE create mode 100644 langs/vbnet/README.md create mode 100644 langs/vbnet/identifier.txt create mode 100644 langs/vbnet/modifier.txt create mode 100644 langs/vbnet/reserved.txt create mode 100644 langs/vbnet/statement.txt create mode 100644 langs/vbnet/type.txt create mode 100644 langs/vbnet/vbnet.txt create mode 100644 langs/vim/statement.txt create mode 100644 langs/vim/vim.txt create mode 100644 langs/xhtml/xhtml.txt create mode 100644 langs/yaml/operator.txt create mode 100644 langs/yaml/yaml.txt create mode 100644 langs/zsh/modifier.txt create mode 100644 langs/zsh/reserved.txt create mode 100644 langs/zsh/statement.txt create mode 100644 langs/zsh/type.txt create mode 100644 langs/zsh/zsh.txt create mode 100644 readme.txt create mode 100644 screenshot-1.png create mode 100644 screenshot-2.png create mode 100644 screenshot-3.png create mode 100644 screenshot-4.png create mode 100644 screenshot-5.png create mode 100644 themes/1c-kod/1c-kod.css create mode 100644 themes/1c-zapros/1c-zapros.css create mode 100644 themes/809finest/809finest.css create mode 100644 themes/ado/ado.css create mode 100644 themes/amity/amity.css create mode 100644 themes/arduino-ide/arduino-ide.css create mode 100644 themes/bncplusplus/bncplusplus.css create mode 100644 themes/capacitacionti/capacitacionti.css create mode 100644 themes/cg-cookie/cg-cookie.css create mode 100644 themes/cisco-router/cisco-router.css create mode 100644 themes/classic/classic.css create mode 100644 themes/coda-special-board/coda-special-board.css create mode 100644 themes/coy/coy.css create mode 100644 themes/dark-terminal/dark-terminal.css create mode 100644 themes/eclipse/eclipse.css create mode 100644 themes/epicgeeks/epicgeeks.css create mode 100644 themes/epicgeeks/images/code.gif create mode 100644 themes/epicgeeks/images/copy.gif create mode 100644 themes/epicgeeks/images/list.gif create mode 100644 themes/epicgeeks/images/pop.gif create mode 100644 themes/familiar/familiar.css create mode 100644 themes/feeldesign/feeldesign.css create mode 100644 themes/flatui-light/flatui-light.css create mode 100644 themes/github/github.css create mode 100644 themes/idle/idle.css create mode 100644 themes/inlellij-idea/inlellij-idea.css create mode 100644 themes/iris-vfx/iris-vfx.css create mode 100644 themes/kaderu/kaderu.css create mode 100644 themes/kayote/kayote.css create mode 100644 themes/light-abite/light-abite.css create mode 100644 themes/mirc-dark/mirc-dark.css create mode 100644 themes/mm-dark-blue/mm-dark-blue.css create mode 100644 themes/monokai/monokai.css create mode 100644 themes/neon/neon.css create mode 100644 themes/obsidian-light/obsidian-light.css create mode 100644 themes/obsidian/obsidian.css create mode 100644 themes/onderka15/onderka15.css create mode 100644 themes/orange-code/orange-code.css create mode 100644 themes/plain-white/plain-white.css create mode 100644 themes/powershell-ise/powershell-ise.css create mode 100644 themes/powershell/powershell.css create mode 100644 themes/prism-like/prism-like.css create mode 100644 themes/pspad/pspad.css create mode 100644 themes/qtcreator/qtcreator.css create mode 100644 themes/raygun/raygun.css create mode 100644 themes/secrets-of-rock/secrets-of-rock.css create mode 100644 themes/shell-default/shell-default.css create mode 100644 themes/solarized-dark/solarized-dark.css create mode 100644 themes/solarized-light/solarized-light.css create mode 100644 themes/son-of-obsidian/son-of-obsidian.css create mode 100644 themes/ssms2012/ssms2012.css create mode 100644 themes/sublime-text/sublime-text.css create mode 100644 themes/terminal/terminal.css create mode 100644 themes/tomorrow-night/tomorrow-night.css create mode 100644 themes/tomorrow/tomorrow.css create mode 100644 themes/turnwall/turnwall.css create mode 100644 themes/twilight/twilight.css create mode 100644 themes/visual-assist/visual-assist.css create mode 100644 themes/vs2012-black/vs2012-black.css create mode 100644 themes/vs2012/vs2012.css create mode 100644 themes/x3info/x3info.css create mode 100644 themes/xcode/xcode.css create mode 100644 trans/crayon-syntax-highlighter-ar_AR.mo create mode 100644 trans/crayon-syntax-highlighter-ar_AR.po create mode 100644 trans/crayon-syntax-highlighter-de_DE.mo create mode 100644 trans/crayon-syntax-highlighter-de_DE.po create mode 100644 trans/crayon-syntax-highlighter-es_ES.mo create mode 100644 trans/crayon-syntax-highlighter-es_ES.po create mode 100644 trans/crayon-syntax-highlighter-fa_IR.mo create mode 100644 trans/crayon-syntax-highlighter-fa_IR.po create mode 100644 trans/crayon-syntax-highlighter-fi.mo create mode 100644 trans/crayon-syntax-highlighter-fi.po create mode 100644 trans/crayon-syntax-highlighter-fr_FR.mo create mode 100644 trans/crayon-syntax-highlighter-fr_FR.po create mode 100644 trans/crayon-syntax-highlighter-it_IT.mo create mode 100644 trans/crayon-syntax-highlighter-it_IT.po create mode 100644 trans/crayon-syntax-highlighter-ja.mo create mode 100644 trans/crayon-syntax-highlighter-ja.po create mode 100644 trans/crayon-syntax-highlighter-ko_KR.mo create mode 100644 trans/crayon-syntax-highlighter-ko_KR.po create mode 100644 trans/crayon-syntax-highlighter-lt_LT.mo create mode 100644 trans/crayon-syntax-highlighter-lt_LT.po create mode 100644 trans/crayon-syntax-highlighter-nb_NO.mo create mode 100644 trans/crayon-syntax-highlighter-nb_NO.po create mode 100644 trans/crayon-syntax-highlighter-nl_NL.mo create mode 100644 trans/crayon-syntax-highlighter-nl_NL.po create mode 100644 trans/crayon-syntax-highlighter-pl_PL.mo create mode 100644 trans/crayon-syntax-highlighter-pl_PL.po create mode 100644 trans/crayon-syntax-highlighter-pt_BR.mo create mode 100644 trans/crayon-syntax-highlighter-pt_BR.po create mode 100644 trans/crayon-syntax-highlighter-ru_RU.mo create mode 100644 trans/crayon-syntax-highlighter-ru_RU.po create mode 100644 trans/crayon-syntax-highlighter-sk_SK.mo create mode 100644 trans/crayon-syntax-highlighter-sk_SK.po create mode 100644 trans/crayon-syntax-highlighter-sl_SI.mo create mode 100644 trans/crayon-syntax-highlighter-sl_SI.po create mode 100644 trans/crayon-syntax-highlighter-ta_MY.mo create mode 100644 trans/crayon-syntax-highlighter-ta_MY.po create mode 100644 trans/crayon-syntax-highlighter-tr_TR.mo create mode 100644 trans/crayon-syntax-highlighter-tr_TR.po create mode 100644 trans/crayon-syntax-highlighter-uk_UA.mo create mode 100644 trans/crayon-syntax-highlighter-uk_UA.po create mode 100644 trans/crayon-syntax-highlighter-zh_CN.mo create mode 100644 trans/crayon-syntax-highlighter-zh_CN.po create mode 100644 trans/crayon-syntax-highlighter-zh_TW.mo create mode 100644 trans/crayon-syntax-highlighter-zh_TW.po create mode 100644 util/crayon_log.class.php create mode 100644 util/crayon_timer.class.php create mode 100644 util/crayon_util.class.php create mode 100644 util/external_use.php create mode 100644 util/lines_to_array.rb create mode 100644 util/lines_to_regex.rb create mode 100644 util/minify.sh create mode 100644 util/sample/abap.txt create mode 100644 util/sample/apache.txt create mode 100644 util/sample/applescript.txt create mode 100644 util/sample/arduino.txt create mode 100644 util/sample/as.txt create mode 100644 util/sample/asm.txt create mode 100644 util/sample/asp.txt create mode 100644 util/sample/autoit.txt create mode 100644 util/sample/batch.txt create mode 100644 util/sample/c#.txt create mode 100644 util/sample/c++.txt create mode 100644 util/sample/c.txt create mode 100644 util/sample/clojure.txt create mode 100644 util/sample/coffee.txt create mode 100644 util/sample/css.txt create mode 100644 util/sample/default.txt create mode 100644 util/sample/delphi.txt create mode 100644 util/sample/diff.txt create mode 100644 util/sample/dws.txt create mode 100644 util/sample/erlang.txt create mode 100644 util/sample/go.txt create mode 100644 util/sample/haskell.txt create mode 100644 util/sample/ilogic.txt create mode 100644 util/sample/ini.txt create mode 100644 util/sample/java.txt create mode 100644 util/sample/js.txt create mode 100644 util/sample/kl.txt create mode 100644 util/sample/less.txt create mode 100644 util/sample/lisp.txt create mode 100644 util/sample/lua.txt create mode 100644 util/sample/matlab.txt create mode 100644 util/sample/mel.txt create mode 100644 util/sample/monkey.txt create mode 100644 util/sample/mysql.txt create mode 100644 util/sample/objc.txt create mode 100644 util/sample/perl.txt create mode 100644 util/sample/pgsql.txt create mode 100644 util/sample/php.txt create mode 100644 util/sample/plsql.txt create mode 100644 util/sample/ps.txt create mode 100644 util/sample/python.txt create mode 100644 util/sample/r.txt create mode 100644 util/sample/reg.txt create mode 100644 util/sample/ruby.txt create mode 100644 util/sample/rust.txt create mode 100644 util/sample/sass.txt create mode 100644 util/sample/scala.txt create mode 100644 util/sample/scheme.txt create mode 100644 util/sample/sh.txt create mode 100644 util/sample/swift.txt create mode 100644 util/sample/tex.txt create mode 100644 util/sample/tsql.txt create mode 100644 util/sample/vb.txt create mode 100644 util/sample/vbnet.txt create mode 100644 util/sample/vim.txt create mode 100644 util/sample/xhtml.txt create mode 100644 util/sample/yaml.txt create mode 100644 util/sample/zsh.txt create mode 100644 util/scraper/file_concat.py create mode 100644 util/scraper/keyword_join.py create mode 100644 util/scraper/keyword_scraper.py create mode 100644 util/scraper/keyword_scraper_tool.py create mode 100644 util/scraper/readme.txt create mode 100644 util/settings_list.txt create mode 100644 util/tag-editor/colorbox/colorbox.css create mode 100644 util/tag-editor/colorbox/jquery.colorbox-min.js create mode 100644 util/tag-editor/crayon_qt.js create mode 100644 util/tag-editor/crayon_tag_editor.js create mode 100644 util/tag-editor/crayon_tag_editor_wp.class.php create mode 100644 util/tag-editor/crayon_te.css create mode 100644 util/tag-editor/crayon_tinymce.js create mode 100644 util/theme-editor/images/button-pressed.png create mode 100644 util/theme-editor/images/button.png create mode 100644 util/theme-editor/images/frame.png create mode 100644 util/theme-editor/images/highlighting.png create mode 100644 util/theme-editor/images/information.png create mode 100644 util/theme-editor/images/lines.png create mode 100644 util/theme-editor/images/numbers.png create mode 100644 util/theme-editor/images/title.png create mode 100644 util/theme-editor/images/toolbar.png create mode 100644 util/theme-editor/theme_editor.css create mode 100644 util/theme-editor/theme_editor.js create mode 100644 util/theme-editor/theme_editor.php create mode 100644 util/touch.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..923029d --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.svn +# .project +Thumbs.db +.DS_Store* +# .settings +# .buildpath +*.pyc +.idea/ +/log.txt +*.sublime-workspace +.c9 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..bfaf069 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "js/jquery-colorpicker"] + path = js/jquery-colorpicker +url=git://github.com/aramk/colorpicker.git +[submodule "langs/ada"] + path = langs/ada + url = https://github.com/antiphasis/crayon-lang-ada.git +[submodule "langs/vbnet"] + path = langs/vbnet +url=https://github.com/NuGardt/crayon-lang-vbnet.git diff --git a/crayon-syntax-highlighter.sublime-project b/crayon-syntax-highlighter.sublime-project new file mode 100644 index 0000000..c3e83ab --- /dev/null +++ b/crayon-syntax-highlighter.sublime-project @@ -0,0 +1,13 @@ +{ + "folders": + [ + { + "follow_symlinks": true, + "path": ".", + "folder_exclude_patterns": [ + "min", + "trans" + ] + } + ] +} diff --git a/crayon_fonts.class.php b/crayon_fonts.class.php new file mode 100644 index 0000000..4995d95 --- /dev/null +++ b/crayon_fonts.class.php @@ -0,0 +1,36 @@ +set_default(self::DEFAULT_FONT, self::DEFAULT_FONT_NAME); + $this->directory(CRAYON_FONT_PATH); + $this->relative_directory(CRAYON_FONT_DIR); + $this->extension('css'); + + CrayonLog::debug("Setting font directories"); + $upload = CrayonGlobalSettings::upload_path(); + if ($upload) { + $this->user_directory($upload . CRAYON_FONT_DIR); + if (!is_dir($this->user_directory())) { + CrayonGlobalSettings::mkdir($this->user_directory()); + CrayonLog::debug($this->user_directory(), "FONT USER DIR"); + } + } else { + CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load fonts."); + } + CrayonLog::debug($this->directory()); + CrayonLog::debug($this->user_directory()); + } + +} +?> \ No newline at end of file diff --git a/crayon_formatter.class.php b/crayon_formatter.class.php new file mode 100644 index 0000000..2cdff2c --- /dev/null +++ b/crayon_formatter.class.php @@ -0,0 +1,633 @@ +is_highlighted()) { + $code = self::clean_code($code, FALSE, FALSE, FALSE, TRUE); + /* Perform the replace on the code using the regex, pass the captured matches for + formatting before they are replaced */ + try { + CrayonParser::parse($language->id()); + // Match language regex + $elements = $language->elements(); + $regex = $language->regex(); + if (!empty($regex) && !empty($elements)) { + // Get array of CrayonElements + self::$elements = array_values($elements); + $code = preg_replace_callback($regex, 'CrayonFormatter::format_match', $code); + } + } catch (Exception $e) { + $error = 'An error occured when formatting: ' . $e->message(); + $hl ? $hl->log($error) : CrayonLog::syslog($error); + } + return $code; + } else { + return self::clean_code($code, TRUE, TRUE, TRUE, TRUE); + } + } + + /* Performs a replace to format each match based on the captured element. */ + private static function format_match($matches) { + /* First index in $matches is full match, subsequent indices are groups. + * Minimum number of elements in array is 2, so minimum captured group is 0. */ + $captured_group_number = count($matches) - 2; + $code = $matches[0]; + if (array_key_exists($captured_group_number, self::$elements)) { + $captured_element = self::$elements[$captured_group_number]; + // Avoid capturing and formatting internal Crayon elements + if ($captured_element->name() == CrayonParser::CRAYON_ELEMENT) { + return $code; // Return as is + } else { + // Separate lines and add css class, keep extended class last to allow overriding + $fallback_css = CrayonLangs::known_elements($captured_element->fallback()); + $element_css = $captured_element->css(); + $css = !empty($fallback_css) ? $fallback_css . ' ' . $element_css : $element_css; + return self::split_lines($code, $css); + } + } else { + // All else fails, return the match + return $matches[0]; + } + } + + /* Prints the formatted code, option to override the line numbers with a custom string */ + public static function print_code($hl, $code, $line_numbers = TRUE, $print = TRUE) { + global $CRAYON_VERSION; + + // We can print either block or inline, inline is treated differently, factor out common stuff here + $output = ''; + // Used for style tag + $main_style = $code_style = $toolbar_style = $info_style = $font_style = $line_style = $pre_style = ''; + // Unique ID for this instance of Crayon + $uid = 'crayon-' . $hl->id(); + // Print theme id + // We make the assumption that the id is correct (checked in crayon_wp) + $theme_id = $hl->setting_val(CrayonSettings::THEME); + $theme_id_dashed = CrayonUtil::space_to_hyphen($theme_id); + if (!$hl->setting_val(CrayonSettings::ENQUEUE_THEMES)) { + $output .= CrayonResources::themes()->get_css($theme_id); + } + + // Print font id + // We make the assumption that the id is correct (checked in crayon_wp) + $font_id = $hl->setting_val(CrayonSettings::FONT); + $font_id_dashed = CrayonUtil::space_to_hyphen($font_id); + if (!$hl->setting_val(CrayonSettings::ENQUEUE_FONTS)) { + $output .= CrayonResources::fonts()->get_css($font_id); + } + + // Inline margin + if ($hl->is_inline()) { + $inline_margin = $hl->setting_val(CrayonSettings::INLINE_MARGIN) . 'px !important;'; + } + + // Determine font size + // TODO improve logic + if ($hl->setting_val(CrayonSettings::FONT_SIZE_ENABLE)) { + $_font_size = $hl->setting_val(CrayonSettings::FONT_SIZE); + $_font_size = $_font_size . 'px !important;'; + $_line_height = $hl->setting_val(CrayonSettings::LINE_HEIGHT); + // Don't allow line height to be less than font size + $line_height = ($_line_height > $_font_size ? $_line_height : $_font_size) . 'px !important;'; + $toolbar_height = $_font_size * 1.5 . 'px !important;'; + $info_height = $_font_size * 1.4 . 'px !important;'; + + $font_style .= "font-size: $_font_size line-height: $line_height"; + $toolbar_style .= "font-size: $_font_size"; + $line_style .= "height: $line_height"; + + if ($hl->is_inline()) { + $font_style .= "font-size: $_font_size"; + } else { + $toolbar_style .= "height: $toolbar_height line-height: $toolbar_height"; + $info_style .= "min-height: $info_height line-height: $info_height"; + } + } else if (!$hl->is_inline()) { + if (($_font_size = CrayonGlobalSettings::get(CrayonSettings::FONT_SIZE)) !== FALSE) { + $_font_size = $_font_size->def() . 'px !important;'; + $line_height = ($_font_size * 1.4) . 'px !important;'; + } + } + + $tab = $hl->setting_val(CrayonSettings::TAB_SIZE); + $pre_style = "-moz-tab-size:$tab; -o-tab-size:$tab; -webkit-tab-size:$tab; tab-size:$tab;"; + + // This will return from function with inline print + if ($hl->is_inline()) { + $wrap = !$hl->setting_val(CrayonSettings::INLINE_WRAP) ? 'crayon-syntax-inline-nowrap' : ''; + $output .= ' + ' . + '' . $code . '' . + ''; + return $output; + } + + // Below code only for block (default) printing + + // Generate the code lines and separate each line as a div + $print_code = ''; + $print_nums = ''; + $hl->line_count(preg_match_all("#(?:^|(?<=\r\n|\n))[^\r\n]*#", $code, $code_lines)); + + // The line number to start from + $start_line = $hl->setting_val(CrayonSettings::START_LINE); + $marking = $hl->setting_val(CrayonSettings::MARKING); + $striped = $hl->setting_val(CrayonSettings::STRIPED); + $range = $hl->setting_val(CrayonSettings::RANGES) ? $hl->range() : FALSE; + for ($i = 1; $i <= $hl->line_count(); $i++) { + // Check if the current line is in the range of code to display + if ($range) { + if ($i < $range[0]) { + continue; + } else if ($i > $range[1]) { + break; + } + } + $code_line = $code_lines[0][$i - 1]; + + // If line is blank, add a space so the div has the correct height + if ($code_line == '') { + $code_line = ' '; + } + + // Check if the current line has been selected + $marked_lines = $hl->marked(); + // Check if lines need to be marked as important + if ($marking && in_array($i, $marked_lines)) { + $marked_num = ' crayon-marked-num'; + $marked_line = ' crayon-marked-line'; + // If multiple lines are marked, only show borders for top and bottom lines + if (!in_array($i - 1, $marked_lines)) { + $marked_num .= ' crayon-top'; + $marked_line .= ' crayon-top'; + } + // Single lines are both the top and bottom of the multiple marked lines + if (!in_array($i + 1, $marked_lines)) { + $marked_num .= ' crayon-bottom'; + $marked_line .= ' crayon-bottom'; + } + } else { + $marked_num = $marked_line = ''; + } + // Stripe odd lines + if ($striped && $i % 2 == 0) { + $striped_num = ' crayon-striped-num'; + $striped_line = ' crayon-striped-line'; + } else { + $striped_num = $striped_line = ''; + } + // Generate the lines + $line_num = $start_line + $i - 1; + $line_id = $uid . '-' . $line_num; + $print_code .= '
' . $code_line . '
'; + if (!is_string($line_numbers)) { + $print_nums .= '
' . $line_num . '
'; + } + } + // If $line_numbers is a string, display it + if (is_string($line_numbers) && !empty($line_numbers)) { + $print_nums .= '
' . $line_numbers . '
'; + } else if (empty($line_numbers)) { + $print_nums = FALSE; + } + // Determine whether to print title, encode characters + $title = $hl->title(); + // Decode if needed + if ($hl->setting_val(CrayonSettings::DECODE_ATTRIBUTES)) { + $title = CrayonUtil::html_entity_decode($title); + } + $print_title = '' . $title . ''; + // Determine whether to print language + $print_lang = ''; + // XXX Use for printing the regex + if ($hl->language()) { + $lang = $hl->language()->name(); + switch ($hl->setting_index(CrayonSettings::SHOW_LANG)) { + case 0 : + if ($hl->language()->id() == CrayonLangs::DEFAULT_LANG) { + break; + } + // Falls through + case 1 : + $print_lang = '' . $lang . ''; + break; + } + } + // Disable functionality for errors + $error = $hl->error(); + // Combined settings for code + $code_settings = ''; + // Disable mouseover for touchscreen devices and mobiles, if we are told to + $touch = FALSE; // Whether we have detected a touchscreen device + if ($hl->setting_val(CrayonSettings::TOUCHSCREEN) && CrayonUtil::is_touch()) { + $touch = TRUE; + $code_settings .= ' touchscreen'; + } + + // Disabling Popup + if (!$hl->setting_val(CrayonSettings::POPUP)) { + $code_settings .= ' no-popup'; + } + + // Minimize + if (!$hl->setting_val(CrayonSettings::MINIMIZE)) { + $code_settings .= ' minimize'; + } + + // Draw the plain code and toolbar + $toolbar_settings = $print_plain_button = $print_copy_button = ''; + $toolbar_index = $hl->setting_index(CrayonSettings::TOOLBAR); + if (empty($error) && ($toolbar_index != 2 || $hl->setting_val(CrayonSettings::MINIMIZE))) { + // Enable mouseover setting for toolbar + if ($toolbar_index == 0 && !$touch) { + // No touchscreen detected + $toolbar_settings .= ' mouseover'; + if ($hl->setting_val(CrayonSettings::TOOLBAR_OVERLAY)) { + $toolbar_settings .= ' overlay'; + } + if ($hl->setting_val(CrayonSettings::TOOLBAR_HIDE)) { + $toolbar_settings .= ' hide'; + } + if ($hl->setting_val(CrayonSettings::TOOLBAR_DELAY)) { + $toolbar_settings .= ' delay'; + } + } else if ($toolbar_index == 1) { + // Always display the toolbar + $toolbar_settings .= ' show'; + } else if ($toolbar_index == 2) { + $toolbar_settings .= ' never-show'; + } + + $buttons = array(); + + if ($hl->setting_val(CrayonSettings::NUMS_TOGGLE)) { + $buttons['nums'] = crayon__('Toggle Line Numbers'); + } + + if ($hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::PLAIN_TOGGLE)) { + $buttons['plain'] = crayon__('Toggle Plain Code'); + } + + if ($hl->setting_val(CrayonSettings::WRAP_TOGGLE)) { + $buttons['wrap'] = crayon__('Toggle Line Wrap'); + } + + if ($hl->setting_val(CrayonSettings::EXPAND_TOGGLE)) { + $buttons['expand'] = crayon__('Expand Code'); + } + + if (!$touch && $hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::COPY)) { + $buttons['copy'] = crayon__('Copy'); + } + + if ($hl->setting_val(CrayonSettings::POPUP)) { + $buttons['popup'] = crayon__('Open Code In New Window'); + } + + $buttons_str = ''; + foreach ($buttons as $button => $value) { + $buttons_str .= '
$value); + } + foreach ($value as $k => $v) { + $buttons_str .= ' ' . $k . '="' . $v . '"'; + } + $buttons_str .= '>
'; + } + + /* The table is rendered invisible by CSS and enabled with JS when asked to. If JS + is not enabled or fails, the toolbar won't work so there is no point to display it. */ + $print_plus = $hl->is_mixed() && $hl->setting_val(CrayonSettings::SHOW_MIXED) ? '' : ''; + $buttons = $print_plus . $buttons_str . $print_lang; + $toolbar = ' +
' . $print_title . ' +
' . $buttons . '
+
'; + + } else { + $toolbar = $buttons = $plain_settings = ''; + } + + if (empty($error) && $hl->setting_val(CrayonSettings::PLAIN)) { + // Different events to display plain code + switch ($hl->setting_index(CrayonSettings::SHOW_PLAIN)) { + case 0 : + $plain_settings = 'dblclick'; + break; + case 1 : + $plain_settings = 'click'; + break; + case 2 : + $plain_settings = 'mouseover'; + break; + default : + $plain_settings = ''; + } + if ($hl->setting_val(CrayonSettings::SHOW_PLAIN_DEFAULT)) { + $plain_settings .= ' show-plain-default'; + } + $readonly = $touch ? '' : 'readonly'; + $print_plain = $print_plain_button = ''; + $textwrap = !$hl->setting_val(CrayonSettings::WRAP) ? 'wrap="soft"' : ''; + $print_plain = ''; + } else { + $print_plain = $plain_settings = $plain_settings = ''; + } + + // Line numbers visibility + $num_vis = $num_settings = ''; + if ($line_numbers === FALSE) { + $num_vis = 'crayon-invisible'; + } else { + $num_settings = ($hl->setting_val(CrayonSettings::NUMS) ? 'show' : 'hide'); + } + + // Determine scrollbar visibility + $code_settings .= $hl->setting_val(CrayonSettings::SCROLL) && !$touch ? ' scroll-always' : ' scroll-mouseover'; + + // Disable animations + if ($hl->setting_val(CrayonSettings::DISABLE_ANIM)) { + $code_settings .= ' disable-anim'; + } + + // Wrap + if ($hl->setting_val(CrayonSettings::WRAP)) { + $code_settings .= ' wrap'; + } + + // Expand + if ($hl->setting_val(CrayonSettings::EXPAND)) { + $code_settings .= ' expand'; + } + + // Determine dimensions + if ($hl->setting_val(CrayonSettings::HEIGHT_SET)) { + $height_style = self::dimension_style($hl, CrayonSettings::HEIGHT); + // XXX Only set height for main, not code (if toolbar always visible, code will cover main) + if ($hl->setting_index(CrayonSettings::HEIGHT_UNIT) == 0) { + $main_style .= $height_style; + } + } + if ($hl->setting_val(CrayonSettings::WIDTH_SET)) { + $width_style = self::dimension_style($hl, CrayonSettings::WIDTH); + $code_style .= $width_style; + if ($hl->setting_index(CrayonSettings::WIDTH_UNIT) == 0) { + $main_style .= $width_style; + } + } + + // Determine margins + if ($hl->setting_val(CrayonSettings::TOP_SET)) { + $code_style .= ' margin-top: ' . $hl->setting_val(CrayonSettings::TOP_MARGIN) . 'px;'; + } + if ($hl->setting_val(CrayonSettings::BOTTOM_SET)) { + $code_style .= ' margin-bottom: ' . $hl->setting_val(CrayonSettings::BOTTOM_MARGIN) . 'px;'; + } + if ($hl->setting_val(CrayonSettings::LEFT_SET)) { + $code_style .= ' margin-left: ' . $hl->setting_val(CrayonSettings::LEFT_MARGIN) . 'px;'; + } + if ($hl->setting_val(CrayonSettings::RIGHT_SET)) { + $code_style .= ' margin-right: ' . $hl->setting_val(CrayonSettings::RIGHT_MARGIN) . 'px;'; + } + + // Determine horizontal alignment + $align_style = ''; + switch ($hl->setting_index(CrayonSettings::H_ALIGN)) { + case 1 : + $align_style = ' float: left;'; + break; + case 2 : + $align_style = ' float: none; margin-left: auto; margin-right: auto;'; + break; + case 3 : + $align_style = ' float: right;'; + break; + } + $code_style .= $align_style; + + // Determine allowed float elements + if ($hl->setting_val(CrayonSettings::FLOAT_ENABLE)) { + $clear_style = ' clear: none;'; + } else { + $clear_style = ''; + } + $code_style .= $clear_style; + + // Determine if operating system is mac + $crayon_os = CrayonUtil::is_mac() ? 'mac' : 'pc'; + + // Produce output + $output .= ' + '; + // Debugging stats + $runtime = $hl->runtime(); + if (!$hl->setting_val(CrayonSettings::DISABLE_RUNTIME) && is_array($runtime) && !empty($runtime)) { + $output = '' + . CRAYON_NL . $output . CRAYON_NL . '' . CRAYON_NL; + } + // Determine whether to print to screen or save + if ($print) { + echo $output; + } else { + return $output; + } + } + + public static function print_error($hl, $error, $line_numbers = 'ERROR', $print = TRUE) { + if (get_class($hl) != CRAYON_HIGHLIGHTER) { + return; + } + // Either print the error returned by the handler, or a custom error message + if ($hl->setting_val(CrayonSettings::ERROR_MSG_SHOW)) { + $error = $hl->setting_val(CrayonSettings::ERROR_MSG); + } + $error = self::split_lines(trim($error), 'crayon-error'); + return self::print_code($hl, $error, $line_numbers, $print); + } + + // Delimiters ============================================================= + + public static function format_mixed_code($code, $language, $hl) { + self::$curr = $hl; + self::$delim_pieces = array(); + // Remove crayon internal element from INPUT code + $code = preg_replace('#' . CrayonParser::CRAYON_ELEMENT_REGEX_CAPTURE . '#msi', '', $code); + + if (self::$delimiters == NULL) { + self::$delimiters = CrayonResources::langs()->delimiters(); + } + + // Find all delimiters in all languages + if (self::$delim_regex == NULL) { + self::$delim_regex = '#(' . implode(')|(', array_values(self::$delimiters)) . ')#msi'; + } + + // Extract delimited code, replace with internal elements + $internal_code = preg_replace_callback(self::$delim_regex, 'CrayonFormatter::delim_to_internal', $code); + + // Format with given language + $formatted_code = CrayonFormatter::format_code($internal_code, $language, $hl); + + // Replace internal elements with delimited pieces + $formatted_code = preg_replace_callback('#\{\{crayon-internal:(\d+)\}\}#', 'CrayonFormatter::internal_to_code', $formatted_code); + + return $formatted_code; + } + + public static function delim_to_internal($matches) { + // Mark as mixed so we can show (+) + self::$curr->is_mixed(TRUE); + $capture_group = count($matches) - 2; + $capture_groups = array_keys(self::$delimiters); + $lang_id = $capture_groups[$capture_group]; + if (($lang = CrayonResources::langs()->get($lang_id)) === NULL) { + return $matches[0]; + } + $internal = sprintf('{{crayon-internal:%d}}', count(self::$delim_pieces)); + // TODO fix + self::$delim_pieces[] = CrayonFormatter::format_code($matches[0], $lang, self::$curr); + return $internal; + } + + public static function internal_to_code($matches) { + return self::$delim_pieces[intval($matches[1])]; + } + + // Auxiliary Methods ====================================================== + /* Prepares code for formatting. */ + public static function clean_code($code, $escape = TRUE, $spaces = FALSE, $tabs = FALSE, $lines = FALSE) { + if (empty($code)) { + return $code; + } + /* Convert <, > and & characters to entities, as these can appear as HTML tags and entities. */ + if ($escape) { + $code = CrayonUtil::htmlspecialchars($code); + } + if ($spaces) { + // Replace 2 spaces with html escaped characters + $code = preg_replace('#[ ]{2}#msi', '  ', $code); + } + if ($tabs && CrayonGlobalSettings::val(CrayonSettings::TAB_CONVERT)) { + // Replace tabs with 4 spaces + $code = preg_replace('#\t#', str_repeat(' ', CrayonGlobalSettings::val(CrayonSettings::TAB_SIZE)), $code); + } + if ($lines) { + $code = preg_replace('#(\r\n)|\r|\n#msi', "\r\n", $code); + } + return $code; + } + + /* Converts the code to entities and wraps in a
*/ + public static function plain_code($code, $encoded = TRUE) { + if (is_array($code)) { + // When used as a preg_replace_callback + $code = $code[1]; + } + if (!$encoded) { + $code = CrayonUtil::htmlentities($code); + } + if (CrayonGlobalSettings::val(CrayonSettings::TRIM_WHITESPACE)) { + $code = trim($code); + } + return '
' . $code . '
'; + } + + public static function split_lines($code, $class) { + $code = self::clean_code($code, TRUE, TRUE, TRUE, FALSE); + $class = preg_replace('#(\w+)#m', 'crayon-$1', $class); + $code = preg_replace('#^([^\r\n]+)(?=\r\n|\r|\n|$)#m', '$1', $code); + return $code; + } + + private static function dimension_style($hl, $name) { + $mode = $unit = ''; + switch ($name) { + case CrayonSettings::HEIGHT : + $mode = CrayonSettings::HEIGHT_MODE; + $unit = CrayonSettings::HEIGHT_UNIT; + break; + case CrayonSettings::WIDTH : + $mode = CrayonSettings::WIDTH_MODE; + $unit = CrayonSettings::WIDTH_UNIT; + break; + } + // XXX Uses actual index value to identify options + $mode = $hl->setting_index($mode); + $unit = $hl->setting_index($unit); + $dim_mode = $dim_unit = ''; + if ($mode !== FALSE) { + switch ($mode) { + case 0 : + $dim_mode .= 'max-'; + break; + case 1 : + $dim_mode .= 'min-'; + break; + } + } + $dim_mode .= $name; + if ($unit !== FALSE) { + switch ($unit) { + case 0 : + $dim_unit = 'px'; + break; + case 1 : + $dim_unit = '%'; + break; + } + } + return ' ' . $dim_mode . ': ' . $hl->setting_val($name) . $dim_unit . ';'; + } +} + +?> diff --git a/crayon_highlighter.class.php b/crayon_highlighter.class.php new file mode 100644 index 0000000..72b86e6 --- /dev/null +++ b/crayon_highlighter.class.php @@ -0,0 +1,423 @@ +url($url); + } + + if ($language !== NULL) { + $this->language($language); + } + // Default ID + $id = $id !== NULL ? $id : uniqid(); + $this->id($id); + } + + /* Tries to load the code locally, then attempts to load it remotely */ + private function load() { + if (empty($this->url)) { + $this->error('The specified URL is empty, please provide a valid URL.'); + return; + } + // Try to replace the URL with an absolute path if it is local, used to prevent scripts + // from executing when they are loaded. + $url = $this->url; + if ($this->setting_val(CrayonSettings::DECODE_ATTRIBUTES)) { + $url = CrayonUtil::html_entity_decode($url); + } + $url = CrayonUtil::pathf($url); + $site_http = CrayonGlobalSettings::site_url(); + $scheme = parse_url($url, PHP_URL_SCHEME); + // Try to replace the site URL with a path to force local loading + if (empty($scheme)) { + // No url scheme is given - path may be given as relative + $url = CrayonUtil::path_slash($site_http) . CrayonUtil::path_slash($this->setting_val(CrayonSettings::LOCAL_PATH)) . $url; + } + $http_code = 0; + // If available, use the built in wp remote http get function. + if (function_exists('wp_remote_get')) { + $url_uid = 'crayon_' . CrayonUtil::str_uid($url); + $cached = get_transient($url_uid, 'crayon-syntax'); + CrayonSettingsWP::load_cache(); + if ($cached !== FALSE) { + $content = $cached; + $http_code = 200; + } else { + $response = @wp_remote_get($url, array('sslverify' => false, 'timeout' => 20)); + $content = wp_remote_retrieve_body($response); + $http_code = wp_remote_retrieve_response_code($response); + $cache = $this->setting_val(CrayonSettings::CACHE); + $cache_sec = CrayonSettings::get_cache_sec($cache); + if ($cache_sec > 1 && $http_code >= 200 && $http_code < 400) { + set_transient($url_uid, $content, $cache_sec); + CrayonSettingsWP::add_cache($url_uid); + } + } + } else if (in_array(parse_url($url, PHP_URL_SCHEME), array('ssl', 'http', 'https'))) { + // Fallback to cURL. At this point, the URL scheme must be valid. + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HEADER, FALSE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + // For https connections, we do not require SSL verification + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); + curl_setopt($ch, CURLOPT_FRESH_CONNECT, FALSE); + curl_setopt($ch, CURLOPT_MAXREDIRS, 5); + if (isset($_SERVER['HTTP_USER_AGENT'])) { + curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); + } + $content = curl_exec($ch); + $error = curl_error($ch); + $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + } + if ($http_code >= 200 && $http_code < 400) { + $this->code($content); + } else { + if (empty($this->code)) { + // If code is also given, just use that + $this->error("The provided URL ('$this->url'), parsed remotely as ('$url'), could not be accessed."); + } + } + $this->needs_load = FALSE; + } + + /* Central point of access for all other functions to update code. */ + public function process() { + $tmr = new CrayonTimer(); + $this->runtime = NULL; + if ($this->needs_load) { + $tmr->start(); + $this->load(); + $this->runtime[CRAYON_LOAD_TIME] = $tmr->stop(); + } + if (!empty($this->error) || empty($this->code)) { + // Disable highlighting for errors and empty code + return; + } + + if ($this->language === NULL) { + $this->language_detect(); + } + if ($this->needs_format) { + $tmr->start(); + try { + // Parse before hand to read modes + $code = $this->code; + // If inline, then combine lines into one + if ($this->is_inline) { + $code = preg_replace('#[\r\n]+#ms', '', $code); + if ($this->setting_val(CrayonSettings::TRIM_WHITESPACE)) { + $code = trim($code); + } + } + // Decode html entities (e.g. if using visual editor or manually encoding) + if ($this->setting_val(CrayonSettings::DECODE)) { + $code = CrayonUtil::html_entity_decode($code); + } + // Save code so output is plain output is the same + $this->code = $code; + + // Allow mixed if langauge supports it and setting is set + CrayonParser::parse($this->language->id()); + if (!$this->setting_val(CrayonSettings::MIXED) || !$this->language->mode(CrayonParser::ALLOW_MIXED)) { + // Format the code with the generated regex and elements + $this->formatted_code = CrayonFormatter::format_code($code, $this->language, $this); + } else { + // Format the code with Mixed Highlighting + $this->formatted_code = CrayonFormatter::format_mixed_code($code, $this->language, $this); + } + } catch (Exception $e) { + $this->error($e->message()); + return; + } + $this->needs_format = FALSE; + $this->runtime[CRAYON_FORMAT_TIME] = $tmr->stop(); + } + } + + /* Used to format the glue in between code when finding mixed languages */ + private function format_glue($glue, $highlight = TRUE) { + // TODO $highlight + return CrayonFormatter::format_code($glue, $this->language, $this, $highlight); + } + + /* Sends the code to the formatter for printing. Apart from the getters and setters, this is + the only other function accessible outside this class. $show_lines can also be a string. */ + function output($show_lines = TRUE, $print = TRUE) { + $this->process(); + if (empty($this->error)) { + // If no errors have occured, print the formatted code + $ret = CrayonFormatter::print_code($this, $this->formatted_code, $show_lines, $print); + } else { + $ret = CrayonFormatter::print_error($this, $this->error, '', $print); + } + // Reset the error message at the end of the print session + $this->error = ''; + // If $print = FALSE, $ret will contain the output + return $ret; + } + + // Getters and Setters ==================================================== + function code($code = NULL) { + if ($code === NULL) { + return $this->code; + } else { + // Trim whitespace + if ($this->setting_val(CrayonSettings::TRIM_WHITESPACE)) { + $code = preg_replace("#(?:^\\s*\\r?\\n)|(?:\\r?\\n\\s*$)#", '', $code); + } + + if ($this->setting_val(CrayonSettings::TRIM_CODE_TAG)) { + $code = preg_replace('#^\s*<\s*code[^>]*>#msi', '', $code); + $code = preg_replace('#]*>\s*$#msi', '', $code); + } + + $before = $this->setting_val(CrayonSettings::WHITESPACE_BEFORE); + if ($before > 0) { + $code = str_repeat("\n", $before) . $code; + } + $after = $this->setting_val(CrayonSettings::WHITESPACE_AFTER); + if ($after > 0) { + $code = $code . str_repeat("\n", $after); + } + + if (!empty($code)) { + $this->code = $code; + $this->needs_format = TRUE; + } + } + } + + function language($id = NULL) { + if ($id === NULL || !is_string($id)) { + return $this->language; + } + + if ( ($lang = CrayonResources::langs()->get($id)) != FALSE || ($lang = CrayonResources::langs()->alias($id)) != FALSE ) { + // Set the language if it exists or look for an alias + $this->language = $lang; + } else { + $this->language_detect(); + } + + // Prepare the language for use, even if we have no code, we need the name + CrayonParser::parse($this->language->id()); + } + + function language_detect() { + // Attempt to detect the language + if (!empty($id)) { + $this->log("The language '$id' could not be loaded."); + } + $this->language = CrayonResources::langs()->detect($this->url, $this->setting_val(CrayonSettings::FALLBACK_LANG)); + } + + function url($url = NULL) { + if ($url === NULL) { + return $this->url; + } else { + $this->url = $url; + $this->needs_load = TRUE; + } + } + + function title($title = NULL) { + if (!CrayonUtil::str($this->title, $title)) { + return $this->title; + } + } + + function line_count($line_count = NULL) { + if (!CrayonUtil::num($this->line_count, $line_count)) { + return $this->line_count; + } + } + + function marked($str = NULL) { + if ($str === NULL) { + return $this->marked_lines; + } + // If only an int is given + if (is_int($str)) { + $array = array($str); + return CrayonUtil::arr($this->marked_lines, $array); + } + // A string with ints separated by commas, can also contain ranges + $array = CrayonUtil::trim_e($str); + $array = array_unique($array); + $lines = array(); + foreach ($array as $line) { + // Check for ranges + if (strpos($line, '-') !== FALSE) { + $ranges = CrayonUtil::range_str($line); + $lines = array_merge($lines, $ranges); + } else { + // Otherwise check the string for a number + $line = intval($line); + if ($line !== 0) { + $lines[] = $line; + } + } + } + return CrayonUtil::arr($this->marked_lines, $lines); + } + + function range($str = NULL) { + if ($str === NULL) { + return $this->range; + } else { + $range = CrayonUtil::range_str_single($str); + if ($range) { + $this->range = $range; + } + } + return FALSE; + } + + function log($var) { + if ($this->setting_val(CrayonSettings::ERROR_LOG)) { + CrayonLog::log($var); + } + } + + function id($id = NULL) { + if ($id == NULL) { + return $this->id; + } else { + $this->id = strval($id); + } + } + + function error($string = NULL) { + if (!$string) { + return $this->error; + } + $this->error .= $string; + $this->log($string); + // Add the error string and ensure no further processing occurs + $this->needs_load = FALSE; + $this->needs_format = FALSE; + } + + // Set and retreive settings + // TODO fix this, it's too limiting + function settings($mixed = NULL) { + if ($this->settings == NULL) { + $this->settings = CrayonGlobalSettings::get_obj(); + } + + if ($mixed === NULL) { + return $this->settings; + } else if (is_string($mixed)) { + return $this->settings->get($mixed); + } else if (is_array($mixed)) { + $this->settings->set($mixed); + return TRUE; + } + return FALSE; + } + + /* Retrieve a single setting's value for use in the formatter. By default, on failure it will + * return TRUE to ensure FALSE is only sent when a setting is found. This prevents a fake + * FALSE when the formatter checks for a positive setting (Show/Enable) and fails. When a + * negative setting is needed (Hide/Disable), $default_return should be set to FALSE. */ + // TODO fix this (see above) + function setting_val($name = NULL, $default_return = TRUE) { + if (is_string($name) && $setting = $this->settings($name)) { + return $setting->value(); + } else { + // Name not valid + return (is_bool($default_return) ? $default_return : TRUE); + } + } + + // Set a setting value + // TODO fix this (see above) + function setting_set($name = NULL, $value = TRUE) { + $this->settings->set($name, $value); + } + + // Used to find current index in dropdown setting + function setting_index($name = NULL) { + $setting = $this->settings($name); + if (is_string($name) && $setting->is_array()) { + return $setting->index(); + } else { + // Returns -1 to avoid accidentally selecting an item in a dropdown + return CrayonSettings::INVALID; + } + } + + function formatted_code() { + return $this->formatted_code; + } + + function runtime() { + return $this->runtime; + } + + function is_highlighted($highlighted = NULL) { + if ($highlighted === NULL) { + return $this->is_highlighted; + } else { + $this->is_highlighted = $highlighted; + } + } + + function is_mixed($mixed = NULL) { + if ($mixed === NULL) { + return $this->is_mixed; + } else { + $this->is_mixed = $mixed; + } + } + + function is_inline($inline = NULL) { + if ($inline === NULL) { + return $this->is_inline; + } else { + $inline = CrayonUtil::str_to_bool($inline, FALSE); + $this->is_inline = $inline; + } + } +} +?> \ No newline at end of file diff --git a/crayon_langs.class.php b/crayon_langs.class.php new file mode 100644 index 0000000..ee6c156 --- /dev/null +++ b/crayon_langs.class.php @@ -0,0 +1,544 @@ + 'c', 'PREPROCESSOR' => 'p', 'STRING' => 's', 'KEYWORD' => 'k', + 'STATEMENT' => 'st', 'RESERVED' => 'r', 'TYPE' => 't', 'TAG' => 'ta', 'MODIFIER' => 'm', 'IDENTIFIER' => 'i', + 'ENTITY' => 'e', 'VARIABLE' => 'v', 'CONSTANT' => 'cn', 'OPERATOR' => 'o', 'SYMBOL' => 'sy', + 'NOTATION' => 'n', 'FADED' => 'f', CrayonParser::HTML_CHAR => 'h', CrayonParser::CRAYON_ELEMENT => 'crayon-internal-element'); + const DEFAULT_LANG = 'default'; + const DEFAULT_LANG_NAME = 'Default'; + + const RESOURCE_TYPE = 'CrayonLangsResourceType'; + + // Used to cache the objects, since they are unlikely to change during a single run + private static $resource_cache = array(); + + // Methods ================================================================ + public function __construct() { + $this->set_default(self::DEFAULT_LANG, self::DEFAULT_LANG_NAME); + $this->directory(CRAYON_LANG_PATH); + $this->relative_directory(CRAYON_LANG_DIR); + $this->extension('txt'); + + CrayonLog::debug("Setting lang directories"); + $upload = CrayonGlobalSettings::upload_path(); + if ($upload) { + $this->user_directory($upload . CRAYON_LANG_DIR); + if (!is_dir($this->user_directory())) { + CrayonGlobalSettings::mkdir($this->user_directory()); + CrayonLog::debug($this->user_directory(), "LANG USER DIR"); + } + } else { + CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load languages."); + } + CrayonLog::debug($this->directory()); + CrayonLog::debug($this->user_directory()); + } + + public function filename($id, $user = NULL) { + return $id."/$id.".$this->extension(); + } + + // XXX Override + public function load_process() { + parent::load_process(); + $this->load_exts(); + $this->load_aliases(); + $this->load_delimiters(); // TODO check for setting? + } + + public function load_resources($dir = NULL) { + parent::load_resources($dir); + + } + + // XXX Override + public function create_user_resource_instance($id, $name = NULL) { + return new CrayonLang($id, $name); + } + + // XXX Override + public function add_default() { + $result = parent::add_default(); + if ($this->is_state_loading() && !$result) { + // Default not added, must already be loaded, ready to parse + CrayonParser::parse(self::DEFAULT_LANG); + } + } + + /* Attempts to detect the language based on extension, otherwise falls back to fallback language given. + * Returns a CrayonLang object. */ + public function detect($path, $fallback_id = NULL) { + $this->load(); + extract(pathinfo($path)); + + // If fallback id if given + if ($fallback_id == NULL) { + // Otherwise use global fallback + $fallback_id = CrayonGlobalSettings::get(CrayonSettings::FALLBACK_LANG); + } + // Attempt to use fallback + $fallback = $this->get($fallback_id); + // Use extension before trying fallback + $extension = isset($extension) ? $extension : ''; + + if ( !empty($extension) && ($lang = $this->ext($extension)) || ($lang = $this->get($extension)) ) { + // If extension is found, attempt to find a language for it. + // If that fails, attempt to load a language with the same id as the extension. + return $lang; + } else if ($fallback != NULL || $fallback = $this->get_default()) { + // Resort to fallback if loaded, or fallback to default + return $fallback; + } else { + // No language found + return NULL; + } + } + + /* Load all extensions and add them into each language. */ + private function load_exts() { + // Load only once + if (!$this->is_state_loading()) { + return; + } + if ( ($lang_exts = self::load_attr_file(CRAYON_LANG_EXT)) !== FALSE ) { + foreach ($lang_exts as $lang_id=>$exts) { + $lang = $this->get($lang_id); + $lang->ext($exts); + } + } + } + + /* Load all extensions and add them into each language. */ + private function load_aliases() { + // Load only once + if (!$this->is_state_loading()) { + return; + } + if ( ($lang_aliases = self::load_attr_file(CRAYON_LANG_ALIAS)) !== FALSE ) { + foreach ($lang_aliases as $lang_id=>$aliases) { + $lang = $this->get($lang_id); + $lang->alias($aliases); + } + } + } + + /* Load all extensions and add them into each language. */ + private function load_delimiters() { + // Load only once + if (!$this->is_state_loading()) { + return; + } + if ( ($lang_delims = self::load_attr_file(CRAYON_LANG_DELIM)) !== FALSE ) { + foreach ($lang_delims as $lang_id=>$delims) { + $lang = $this->get($lang_id); + $lang->delimiter($delims); + } + } + } + + // Used to load aliases and extensions to languages + private function load_attr_file($path) { + if ( ($lines = CrayonUtil::lines($path, 'lwc')) !== FALSE) { + $attributes = array(); // key = language id, value = array of attr + foreach ($lines as $line) { + preg_match('#^[\t ]*([^\r\n\t ]+)[\t ]+([^\r\n]+)#', $line, $matches); + if (count($matches) == 3 && $lang = $this->get($matches[1])) { + // If the langauges of the attribute exists, return it in an array + // TODO merge instead of replace key? + $attributes[$matches[1]] = explode(' ', $matches[2]); + } + } + return $attributes; + } else { + CrayonLog::syslog('Could not load attr file: ' . $path); + return FALSE; + } + } + + /* Returns the CrayonLang for the given extension */ + public function ext($ext) { + $this->load(); + foreach ($this->get() as $lang) { + if ($lang->has_ext($ext)) { + return $lang; + } + } + return FALSE; + } + + /* Returns the CrayonLang for the given alias */ + public function alias($alias) { + $this->load(); + foreach ($this->get() as $lang) { + if ($lang->has_alias($alias)) { + return $lang; + } + } + return FALSE; + } + + /* Fetches a resource. Type is an int from CrayonLangsResourceType. */ + public function fetch($type, $reload = FALSE, $keep_empty_fetches = FALSE) { + $this->load(); + + if (!array_key_exists($type, self::$resource_cache) || $reload) { + $fetches = array(); + foreach ($this->get() as $lang) { + + switch ($type) { + case CrayonLangsResourceType::EXTENSION: + $fetch = $lang->ext(); + break; + case CrayonLangsResourceType::ALIAS: + $fetch = $lang->alias(); + break; + case CrayonLangsResourceType::DELIMITER: + $fetch = $lang->delimiter(); + break; + default: + return FALSE; + } + + if ( !empty($fetch) || $keep_empty_fetches ) { + $fetches[$lang->id()] = $fetch; + } + } + self::$resource_cache[$type] = $fetches; + } + return self::$resource_cache[$type]; + } + + public function extensions($reload = FALSE) { + return $this->fetch(CrayonLangsResourceType::EXTENSION, $reload); + } + + public function aliases($reload = FALSE) { + return $this->fetch(CrayonLangsResourceType::ALIAS, $reload); + } + + public function delimiters($reload = FALSE) { + return $this->fetch(CrayonLangsResourceType::DELIMITER, $reload); + } + + public function extensions_inverted($reload = FALSE) { + $extensions = $this->extensions($reload); + $inverted = array(); + foreach ($extensions as $lang=>$exts) { + foreach ($exts as $ext) { + $inverted[$ext] = $lang; + } + } + return $inverted; + } + + public function ids_and_aliases($reload = FALSE) { + $fetch = $this->fetch(CrayonLangsResourceType::ALIAS, $reload, TRUE); + foreach ($fetch as $id=>$alias_array) { + $ids_and_aliases[] = $id; + foreach ($alias_array as $alias) { + $ids_and_aliases[] = $alias; + } + } + return $ids_and_aliases; + } + + /* Return the array of valid elements or a particular element value */ + public static function known_elements($name = NULL) { + if ($name === NULL) { + return self::$known_elements; + } else if (is_string($name) && array_key_exists($name, self::$known_elements)) { + return self::$known_elements[$name]; + } else { + return FALSE; + } + } + + /* Verify an element is valid */ + public static function is_known_element($name) { + return self::known_elements($name) !== FALSE; + } + + /* Compare two languages by name */ + public static function langcmp($a, $b) { + $a = strtolower($a->name()); + $b = strtolower($b->name()); + if ($a == $b) { + return 0; + } else { + return ($a < $b) ? -1 : 1; + } + } + + public static function sort_by_name($langs) { + // Sort by name + usort($langs, 'CrayonLangs::langcmp'); + $sorted_lags = array(); + foreach ($langs as $lang) { + $sorted_lags[$lang->id()] = $lang; + } + return $sorted_lags; + } + + public function is_parsed($id = NULL) { + if ($id === NULL) { + // Determine if all langs are successfully parsed + foreach ($this->get() as $lang) { + if ($lang->state() != CrayonLang::PARSED_SUCCESS) { + return FALSE; + } + } + return TRUE; + } else if (($lang = $this->get($id)) != FALSE) { + return $lang->is_parsed(); + } + return FALSE; + } + + public function is_default($id) { + if (($lang = $this->get($id)) != FALSE) { + return $lang->is_default(); + } + return FALSE; + } +} + +/* Individual language. */ +class CrayonLang extends CrayonVersionResource { + private $ext = array(); + private $aliases = array(); + private $delimiters = ''; + // Associative array of CrayonElement objects + private $elements = array(); + //private $regex = ''; + private $state = self::UNPARSED; + private $modes = array(); + // Whether this language allows Multiple Highlighting from other languages + const PARSED_ERRORS = -1; + const UNPARSED = 0; + const PARSED_SUCCESS = 1; + + function __construct($id, $name = NULL) { + parent::__construct($id, $name); + $this->modes = CrayonParser::modes(); + } + + // Override + function clean_id($id) { + $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) ); + return preg_replace('/[^\w\-+#]/msi', '', $id); + } + + function ext($ext = NULL) { + if ($ext === NULL) { + return $this->ext; + } else if (is_array($ext) && !empty($ext)) { + foreach ($ext as $e) { + $this->ext($e); + } + } else if (is_string($ext) && !empty($ext) && !in_array($ext, $this->ext)) { + $ext = strtolower($ext); + $ext = str_replace('.', '', $ext); + $this->ext[] = $ext; + } + } + + function has_ext($ext) { + return is_string($ext) && in_array($ext, $this->ext); + } + + function alias($alias = NULL) { + if ($alias === NULL) { + return $this->aliases; + } else if (is_array($alias) && !empty($alias)) { + foreach ($alias as $a) { + $this->alias($a); + } + } else if (is_string($alias) && !empty($alias) && !in_array($alias, $this->aliases)) { + $alias = strtolower($alias); + $this->aliases[] = $alias; + } + } + + function has_alias($alias) { + return is_string($alias) && in_array($alias, $this->aliases); + } + + function delimiter($delim = NULL) { + if ($delim === NULL) { + return $this->delimiters; + // Convert to regex for capturing delimiters + } else if (is_string($delim) && !empty($delim)) { + $this->delimiters = '(?:'.$delim.')'; + } else if (is_array($delim) && !empty($delim)) { + for ($i = 0; $i < count($delim); $i++) { + $delim[$i] = CrayonUtil::esc_atomic($delim[$i]); + } + + $this->delimiters = '(?:'.implode(')|(?:', $delim).')'; + } + } + + function regex($element = NULL) { + if ($element == NULL) { + $regexes = array(); + foreach ($this->elements as $element) { + $regexes[] = $element->regex(); + } + return '#' . '(?:('. implode(')|(', array_values($regexes)) . '))' . '#' . + ($this->mode(CrayonParser::CASE_INSENSITIVE) ? 'i' : '') . + ($this->mode(CrayonParser::MULTI_LINE) ? 'm' : '') . + ($this->mode(CrayonParser::SINGLE_LINE) ? 's' : ''); + } else if (is_string($element) && array_key_exists($element, $this->elements)) { + return $this->elements[$element]->regex(); + } + } + + // Retrieve by element name or set by CrayonElement + function element($name, $element = NULL) { + if (is_string($name)) { + $name = trim(strtoupper($name)); + if (array_key_exists($name, $this->elements) && $element === NULL) { + return $this->elements[$name]; + } else if (@get_class($element) == CRAYON_ELEMENT_CLASS) { + $this->elements[$name] = $element; + } + } + } + + function elements() { + return $this->elements; + } + + function mode($name = NULL, $value = NULL) { + if (is_string($name) && CrayonParser::is_mode($name)) { + $name = trim(strtoupper($name)); + if ($value == NULL && array_key_exists($name, $this->modes)) { + return $this->modes[$name]; + } else if (is_string($value)) { + if (CrayonUtil::str_equal_array(trim($value), array('ON', 'YES', '1'))) { + $this->modes[$name] = TRUE; + } else if (CrayonUtil::str_equal_array(trim($value), array('OFF', 'NO', '0'))) { + $this->modes[$name] = FALSE; + } + } + } else { + return $this->modes; + } + } + + function state($state = NULL) { + if ($state === NULL) { + return $this->state; + } else if (is_int($state)) { + if ($state < 0) { + $this->state = self::PARSED_ERRORS; + } else if ($state > 0) { + $this->state = self::PARSED_SUCCESS; + } else if ($state == 0) { + $this->state = self::UNPARSED; + } + } + } + + function state_info() { + switch ($this->state) { + case self::PARSED_ERRORS : + return 'Parsed With Errors'; + case self::PARSED_SUCCESS : + return 'Successfully Parsed'; + case self::UNPARSED : + return 'Not Parsed'; + default : + return 'Undetermined'; + } + } + + function is_parsed() { + return ($this->state != self::UNPARSED); + } + + function is_default() { + return $this->id() == CrayonLangs::DEFAULT_LANG; + } +} + +class CrayonElement { + // The pure regex syntax without any modifiers or delimiters + private $name = ''; + private $css = ''; + private $regex = ''; + private $fallback = ''; + private $path = ''; + + function __construct($name, $path, $regex = '') { + $this->name($name); + $this->path($path); + $this->regex($regex); + } + + function __toString() { + return $this->regex(); + } + + function name($name = NULL) { + if ($name == NULL) { + return $this->name; + } else if (is_string($name)) { + $name = trim(strtoupper($name)); + if (CrayonLangs::is_known_element($name)) { + // If known element, set CSS to known class + $this->css(CrayonLangs::known_elements($name)); + } + $this->name = $name; + } + } + + function regex($regex = NULL) { + if ($regex == NULL) { + return $this->regex; + } else if (is_string($regex)) { + if (($result = CrayonParser::validate_regex($regex, $this)) !== FALSE) { + $this->regex = $result; + } else { + return FALSE; + } + } + } + + // Expects: 'class1 class2 class3' + function css($css = NULL) { + if ($css == NULL) { + return $this->css; + } else if (is_string($css)) { + $this->css = CrayonParser::validate_css($css); + } + } + + function fallback($fallback = NULL) { + if ($fallback == NULL) { + return $this->fallback; + } else if (is_string($fallback) && CrayonLangs::is_known_element($fallback)) { + $this->fallback = $fallback; + } + } + + function path($path = NULL) { + if ($path == NULL) { + return $this->path; + } else if (is_string($path) && @file_exists($path)) { + $this->path = $path; + } + } +} \ No newline at end of file diff --git a/crayon_parser.class.php b/crayon_parser.class.php new file mode 100644 index 0000000..44a2ede --- /dev/null +++ b/crayon_parser.class.php @@ -0,0 +1,265 @@ +)'; // No longer used + const HTML_CHAR = 'HTML_CHAR'; + const HTML_CHAR_REGEX = '<|>|(&([\w-]+);?)|[ \t]+'; + const CRAYON_ELEMENT = 'CRAYON_ELEMENT'; + const CRAYON_ELEMENT_REGEX = '\{\{crayon-internal:[^\}]*\}\}'; + const CRAYON_ELEMENT_REGEX_CAPTURE = '\{\{crayon-internal:([^\}]*)\}\}'; + + private static $modes = array(self::CASE_INSENSITIVE => TRUE, self::MULTI_LINE => TRUE, self::SINGLE_LINE => TRUE, self::ALLOW_MIXED => TRUE); + + // Methods ================================================================ + private function __construct() {} + + /** + * Parse all languages stored in CrayonLangs. + * Avoid using this unless you must list the details in language files for all languages. + * @return array Array of all loaded CrayonLangs. + */ + public static function parse_all() { + $langs = CrayonResources::langs()->get(); + if (empty($langs)) { + return FALSE; + } + foreach ($langs as $lang) { + self::parse($lang->id()); + } + return $langs; + } + + /* Read a syntax file and parse the regex rules within it, this may require several other + files containing lists of keywords and such to be read. Updates the parsed elements and + regex in the CrayonLang with the given $id. */ + public static function parse($id) { + // Verify the language is loaded and has not been parsed before + if ( !($lang = CrayonResources::langs()->get($id)) ) { + CrayonLog::syslog("The language with id '$id' was not loaded and could not be parsed."); + return FALSE; + } else if ($lang->is_parsed()) { + return; + } + // Read language file + $path = CrayonResources::langs()->path($id); + CrayonLog::debug('Parsing language ' . $path); + if ( ($file = CrayonUtil::lines($path, 'wcs')) === FALSE ) { + CrayonLog::debug('Parsing failed ' . $path); + return FALSE; + } + + // Extract the language name + $name_pattern = '#^[ \t]*name[ \t]+([^\r\n]+)[ \t]*#mi'; + preg_match($name_pattern, $file, $name); + if (count($name) > 1) { + $name = $name[1]; + $lang->name($name); + $file = preg_replace($name_pattern, '', $file); + } else { + $name = $lang->id(); + } + + // Extract the language version + $version_pattern = '#^[ \t]*version[ \t]+([^\r\n]+)[ \t]*#mi'; + preg_match($version_pattern, $file, $version); + if (count($version) > 1) { + $version = $version[1]; + $lang->version($version); + $file = preg_replace($version_pattern, '', $file); + } + + // Extract the modes + $mode_pattern = '#^[ \t]*(' . implode('|', array_keys(self::$modes)) . ')[ \t]+(?:=[ \t]*)?([^\r\n]+)[ \t]*#mi'; + preg_match_all($mode_pattern, $file, $mode_matches); + if (count($mode_matches) == 3) { + for ($i = 0; $i < count($mode_matches[0]); $i++) { + $lang->mode($mode_matches[1][$i], $mode_matches[2][$i]); + } + $file = preg_replace($mode_pattern, '', $file); + } + + /* Add reserved Crayon element. This is used by Crayon internally. */ + $crayon_element = new CrayonElement(self::CRAYON_ELEMENT, $path, self::CRAYON_ELEMENT_REGEX); + $lang->element(self::CRAYON_ELEMENT, $crayon_element); + + // Extract elements, classes and regex + $pattern = '#^[ \t]*([\w:]+)[ \t]+(?:\[([\w\t ]*)\][ \t]+)?([^\r\n]+)[ \t]*#m'; + preg_match_all($pattern, $file, $matches); + + if (!empty($matches[0])) { + $elements = $matches[1]; + $classes = $matches[2]; + $regexes = $matches[3]; + } else { + CrayonLog::syslog("No regex patterns and/or elements were parsed from language file at '$path'."); + } + + // Remember state in case we encounter catchable exceptions + $error = FALSE; + for ($i = 0; $i < count($matches[0]); $i++) { + // References + $name = &$elements[$i]; + $class = &$classes[$i]; + $regex = &$regexes[$i]; + $name = trim(strtoupper($name)); + // Ensure both the element and regex are valid + if (empty($name) || empty($regex)) { + CrayonLog::syslog("Element(s) and/or regex(es) are missing in '$path'."); + $error = TRUE; + continue; + } + // Look for fallback element + $pieces = explode(':', $name); + if (count($pieces) == 2) { + $name = $pieces[0]; + $fallback = $pieces[1]; + } else if (count($pieces) == 1) { + $name = $pieces[0]; + $fallback = ''; + } else { + CrayonLog::syslog("Too many colons found in element name '$name' in '$path'"); + $error = TRUE; + continue; + } + // Create a new CrayonElement + $element = new CrayonElement($name, $path); + $element->fallback($fallback); + if (!empty($class)) { + // Avoid setting known css to blank + $element->css($class); + } + if ($element->regex($regex) === FALSE) { + $error = TRUE; + continue; + } + // Add the regex to the element + $lang->element($name, $element); + $state = $error ? CrayonLang::PARSED_ERRORS : CrayonLang::PARSED_SUCCESS; + $lang->state($state); + } + + /* Prevents < > and other html entities from being printed as is, which could lead to actual html tags + * from the printed code appearing on the page - not good. This can also act to color any HTML entities + * that are not picked up by previously defined elements. + */ + $html = new CrayonElement(self::HTML_CHAR, $path, self::HTML_CHAR_REGEX); + $lang->element(self::HTML_CHAR, $html); + } + + // Validates regex and accesses data stored in a CrayonElement + public static function validate_regex($regex, $element) { + if (is_string($regex) && @get_class($element) == CRAYON_ELEMENT_CLASS) { + // If the (?alt) tag has been used, insert the file into the regex + $file = self::regex_match('#\(\?alt:(.+?)\)#', $regex); + if ( count($file) == 2 ) { + // Element 0 has full match, 1 has captured groups + for ($i = 0; $i < count($file[1]); $i++) { + $file_lines = CrayonUtil::lines(dirname($element->path()) . crayon_s() . $file[1][$i], 'rcwh'); + if ($file_lines !== FALSE) { + $file_lines = implode('|', $file_lines); + // If any spaces exist, treat them as whitespace + $file_lines = preg_replace('#[ \t]+#msi', '\s+', $file_lines); + $regex = str_replace($file[0][$i], "(?:$file_lines)", $regex); + } else { + CrayonLog::syslog("Parsing of '{$element->path()}' failed, an (?alt) tag failed for the element '{$element->name()}'" ); + return FALSE; + } + } + } + + // If the (?default:element) function is used, replace the regex with the default, if exists + $def = self::regex_match('#\(\?default(?:\:(\w+))?\)#', $regex); + if ( count($def) == 2 ) { + // Load default language + $default = CrayonResources::langs()->get(CrayonLangs::DEFAULT_LANG); + // If default has not been loaded, we can't use it, skip the element + if (!$default) { + CrayonLog::syslog( + "Could not use default regex in the element '{$element->name()}' in '{$element->path()}'"); + return FALSE; + } + for ($i = 0; $i < count($def[1]); $i++) { + // If an element has been provided + $element_name = ( !empty($def[1][$i]) ) ? $def[1][$i] : $element->name(); + if (($default_element = $default->element($element_name)) != FALSE) { + $regex = str_replace($def[0][$i], '(?:' . $default_element->regex() .')', $regex); + } else { + CrayonLog::syslog("The language at '{$element->path()}' referred to the Default Language regex for element '{$element->name()}', which did not exist."); + if (CRAYON_DEBUG) { + CrayonLog::syslog("Default language URL: " . CrayonResources::langs()->url(CrayonLangs::DEFAULT_LANG)); + CrayonLog::syslog("Default language Path: " . CrayonResources::langs()->path(CrayonLangs::DEFAULT_LANG)); + } + return FALSE; + } + } + } + + // If the (?html) tag is used, escape characters in html (<, > and &) + $html = self::regex_match('#\(\?html:(.+?)\)#', $regex); + if ( count($html) == 2 ) { + for ($i = 0; $i < count($html[1]); $i++) { + $regex = str_replace($html[0][$i], htmlentities($html[1][$i]), $regex); + } + } + + // Ensure all parenthesis are atomic to avoid conflicting with element matches + $regex = CrayonUtil::esc_atomic($regex); + + // Escape #, this is our delimiter + $regex = CrayonUtil::esc_hash($regex); + + // Test if regex is valid + if (@preg_match("#$regex#", '') === FALSE) { + CrayonLog::syslog("The regex for the element '{$element->name()}' in '{$element->path()}' is not valid."); + return FALSE; + } + + return $regex; + } else { + return ''; + } + } + + public static function validate_css($css) { + if (is_string($css)) { + // Remove dots in CSS class and convert to lowercase + $css = str_replace('.', '', $css); + $css = strtolower($css); + $css = explode(' ', $css); + $css_str = ''; + foreach ($css as $c) { + if (!empty($c)) { + $css_str .= $c . ' '; + } + } + return trim($css_str); + } else { + return ''; + } + } + + public static function regex_match($pattern, $subject) { + if (preg_match_all($pattern, $subject, $matches)) { + return $matches; + } + return array(); + } + + public static function modes() { + return self::$modes; + } + + public static function is_mode($name) { + return is_string($name) && array_key_exists($name, self::$modes); + } +} +?> \ No newline at end of file diff --git a/crayon_resource.class.php b/crayon_resource.class.php new file mode 100644 index 0000000..03df8e2 --- /dev/null +++ b/crayon_resource.class.php @@ -0,0 +1,478 @@ +path($id)); + } + + /* Load all the available languages. Doesn't parse them for their names and regex. */ + public function load() { + // Load only once + + if (!$this->is_state_unloaded()) { + return; + } + $this->state = self::LOADING; + $this->load_process(); + $this->state = self::LOADED; + } + + public function load_resources($dir = NULL) { + if ($dir === NULL) { + $dir = $this->dir; + } + + if (!$this->is_state_loading()) { + // Load only once + return; + } + try { + // Look in directory for resources + + if (!is_dir($dir)) { + CrayonLog::syslog('The resource directory is missing, should be at \'' . $dir . '\'.'); + } else if (($handle = @opendir($dir)) != FALSE) { + // Loop over directory contents + while (($file = readdir($handle)) !== FALSE) { + if ($file != "." && $file != "..") { + // Check if $file is directory, remove extension when checking for existence. + + if (!is_dir($dir . $file)) { + $file = CrayonUtil::path_rem_ext($file); + } + if ($this->exists($file)) { + $this->add_resource($this->resource_instance($file)); + } + } + } + closedir($handle); + } + } catch (Exception $e) { + CrayonLog::syslog('An error occured when trying to load resources: ' . $e->getFile() . $e->getLine()); + } + } + + /* Override in subclasses. */ + public function load_process() { + if (!$this->is_state_loading()) { + return; + } + $this->load_resources(); + $this->add_default(); + } + + /* Override in subclasses */ + public function add_default() { + if (!$this->is_state_loading()) { + return FALSE; + } else if (!$this->is_loaded($this->default_id)) { + CrayonLog::syslog('The default resource could not be loaded from \'' . $this->dir . '\'.'); + // Add the default, but it will not be functionable + + $default = $this->resource_instance($this->default_id, $this->default_name); + $this->add($this->default_id, $default); + return TRUE; + } + return FALSE; + } + + /* Returns the default resource */ + public function set_default($id, $name) { + $this->default_id = $id; + $this->default_name = $name; + } + + /* Returns the default resource */ + public function get_default() { + return $this->get($this->default_id); + } + + /* Override in subclasses to create subclass object if needed */ + public function resource_instance($id, $name = NULL) { + return new CrayonResource($id, $name); + } + + public function add($id, $resource) { + if (is_string($id) && !empty($id)) { + $this->collection[$id] = $resource; + asort($this->collection); + CrayonLog::debug('Added resource: ' . $this->path($id)); + } else { + CrayonLog::syslog('Could not add resource: ', $id); + } + } + + public function add_resource($resource) { + $this->add($resource->id(), $resource); + } + + public function remove($name) { + if (is_string($name) && !empty($name) && array_key_exists($name, $this->collection)) { + unset($this->collection[$name]); + } + } + + public function remove_all() { + $this->collection = array(); + } + + /* Returns the resource for the given id or NULL if it can't be found */ + public function get($id = NULL) { + $this->load(); + if ($id === NULL) { + return $this->collection; + } else if (is_string($id) && $this->is_loaded($id)) { + return $this->collection[$id]; + } + return NULL; + } + + public function get_array() { + $array = array(); + foreach ($this->get() as $resource) { + $array[$resource->id()] = $resource->name(); + } + return $array; + } + + public function is_loaded($id) { + if (is_string($id)) { + return array_key_exists($id, $this->collection); + } + return FALSE; + } + + public function get_state() { + return $this->state; + } + + public function is_state_loaded() { + return $this->state == self::LOADED; + } + + public function is_state_loading() { + return $this->state == self::LOADING; + } + + public function is_state_unloaded() { + return $this->state == self::UNLOADED; + } + + public function directory($dir = NULL) { + if ($dir === NULL) { + return $this->dir; + } else { + $this->dir = CrayonUtil::path_slash($dir); + } + } + + public function url($id) { + return ''; + } + + public function get_css($id, $ver = NULL) { + $resource = $this->get($id); + return '' . CRAYON_NL; + } +} + +class CrayonUsedResourceCollection extends CrayonResourceCollection { + + // Checks if any resoruces are being used + public function is_used($id = NULL) { + if ($id === NULL) { + foreach ($this->get() as $resource) { + if ($resource->used()) { + return TRUE; + } + } + return FALSE; + } else { + $resource = $this->get($id); + if (!$resource) { + return FALSE; + } else { + return $resource->used(); + } + } + } + + public function set_used($id, $value = TRUE) { + $resource = $this->get($id); + if ($resource !== NULL && !$resource->used()) { + $resource->used($value == TRUE); + return TRUE; + } + return FALSE; + } + + public function get_used() { + $used = array(); + foreach ($this->get() as $resource) { + if ($resource->used()) { + $used[] = $resource; + } + } + return $used; + } + + // XXX Override + public function resource_instance($id, $name = NULL) { + return new CrayonUsedResource($id, $name); + } + + public function get_used_css() { + $used = $this->get_used(); + $css = array(); + foreach ($used as $resource) { + $url = $this->url($resource->id()); + $css[$resource->id()] = $url; + } + return $css; + } +} + +class CrayonUserResourceCollection extends CrayonUsedResourceCollection { + private $user_dir = ''; + private $curr_dir = NULL; + // TODO better to use a base dir and relative + private $relative_directory = NULL; + // TODO move this higher up inheritance + private $extension = ''; + + // XXX Override + public function resource_instance($id, $name = NULL) { + $resource = $this->create_user_resource_instance($id, $name); + $resource->user($this->curr_dir == $this->user_directory()); + return $resource; + } + + public function create_user_resource_instance($id, $name = NULL) { + return new CrayonUserResource($id, $name); + } + + public function user_directory($dir = NULL) { + if ($dir === NULL) { + return $this->user_dir; + } else { + $this->user_dir = CrayonUtil::path_slash($dir); + } + } + + public function relative_directory($relative_directory = NULL) { + if ($relative_directory == NULL) { + return $this->relative_directory; + } + $this->relative_directory = $relative_directory; + } + + public function extension($extension = NULL) { + if ($extension == NULL) { + return $this->extension; + } + $this->extension = $extension; + } + + public function load_resources($dir = NULL) { + $this->curr_dir = $this->directory(); + parent::load_resources($this->curr_dir); + $this->curr_dir = $this->user_directory(); + parent::load_resources($this->curr_dir); + $this->curr_dir = NULL; + } + + public function current_directory() { + return $this->curr_dir; + } + + public function dir_is_user($id, $user = NULL) { + if ($user === NULL) { + if ($this->is_state_loading()) { + // We seem to be loading resources - use current directory + $user = $this->current_directory() == $this->user_directory(); + } else { + $theme = $this->get($id); + if ($theme) { + $user = $theme->user(); + } else { + $user = FALSE; + } + } + } + return $user; + } + + public function dirpath($user = NULL) { + $path = $user ? $this->user_directory() : $this->directory(); + return CrayonUtil::path_slash($path); + } + + public function dirpath_for_id($id, $user = NULL) { + $user = $this->dir_is_user($id, $user); + return $this->dirpath($user) . $id; + } + + public function dirurl($user = NULL) { + $path = $user ? CrayonGlobalSettings::upload_url() : CrayonGlobalSettings::plugin_path(); + return CrayonUtil::path_slash($path . $this->relative_directory()); + } + + // XXX Override + public function path($id, $user = NULL) { + $user = $this->dir_is_user($id, $user); + return $this->dirpath($user) . $this->filename($id, $user); + } + + // XXX Override + public function url($id, $user = NULL) { + $user = $this->dir_is_user($id, $user); + return $this->dirurl($user) . $this->filename($id, $user); + } + + public function filename($id, $user = NULL) { + return "$id.$this->extension"; + } + +} + +class CrayonResource { + private $id = ''; + private $name = ''; + + function __construct($id, $name = NULL) { + $id = $this->clean_id($id); + CrayonUtil::str($this->id, $id); + ( empty($name) ) ? $this->name( self::clean_name($this->id) ) : $this->name($name); + } + + function __tostring() { + return $this->name; + } + + function id() { + return $this->id; + } + + function name($name = NULL) { + if ($name === NULL) { + return $this->name; + } else { + $this->name = $name; + } + } + + function clean_id($id) { + $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) ); + return preg_replace('#[^\w-]#msi', '', $id); + } + + public static function clean_name($id) { + $id = CrayonUtil::hyphen_to_space( strtolower(trim($id)) ); + return CrayonUtil::ucwords($id); + } + +} + +class CrayonUsedResource extends CrayonResource { + // Keeps track of usage + private $used = FALSE; + + function used($used = NULL) { + if ($used === NULL) { + return $this->used; + } else { + $this->used = ($used ? TRUE : FALSE); + } + } +} + +class CrayonUserResource extends CrayonUsedResource { + // Keeps track of user modifications + private $user = FALSE; + + function user($user = NULL) { + if ($user === NULL) { + return $this->user; + } else { + $this->user = ($user ? TRUE : FALSE); + } + } +} + +class CrayonVersionResource extends CrayonUserResource { + // Adds version + private $version = ''; + + function __construct($id, $name = NULL, $version = NULL) { + parent::__construct($id, $name); + $this->version($version); + } + + function version($version = NULL) { + if ($version === NULL) { + return $this->version; + } else if (is_string($version)) { + $this->version = $version; + } + } +} + +?> \ No newline at end of file diff --git a/crayon_settings.class.php b/crayon_settings.class.php new file mode 100644 index 0000000..9c7acae --- /dev/null +++ b/crayon_settings.class.php @@ -0,0 +1,918 @@ +init(); + } + + function copy() { + $settings = new CrayonSettings(); + foreach ($this->settings as $setting) { + $settings->set($setting); // Overuse of set? + } + return $settings; + } + + // Methods ================================================================ + + private function init() { + global $CRAYON_VERSION; + + crayon_load_plugin_textdomain(); + + self::$cache_array = array(crayon__('Hourly') => 3600, crayon__('Daily') => 86400, + crayon__('Weekly') => 604800, crayon__('Monthly') => 18144000, + crayon__('Immediately') => 1); + + $settings = array( + new CrayonSetting(self::VERSION, $CRAYON_VERSION, NULL, TRUE), + new CrayonSetting(self::THEME, CrayonThemes::DEFAULT_THEME), + new CrayonSetting(self::FONT, CrayonFonts::DEFAULT_FONT), + new CrayonSetting(self::FONT_SIZE_ENABLE, TRUE), + new CrayonSetting(self::FONT_SIZE, 12), + new CrayonSetting(self::LINE_HEIGHT, 15), + new CrayonSetting(self::PREVIEW, TRUE), + new CrayonSetting(self::HEIGHT_SET, FALSE), + new CrayonSetting(self::HEIGHT_MODE, array(crayon__('Max'), crayon__('Min'), crayon__('Static'))), + new CrayonSetting(self::HEIGHT, '500'), + new CrayonSetting(self::HEIGHT_UNIT, array(crayon__('Pixels'), crayon__('Percent'))), + new CrayonSetting(self::WIDTH_SET, FALSE), + new CrayonSetting(self::WIDTH_MODE, array(crayon__('Max'), crayon__('Min'), crayon__('Static'))), + new CrayonSetting(self::WIDTH, '500'), + new CrayonSetting(self::WIDTH_UNIT, array(crayon__('Pixels'), crayon__('Percent'))), + new CrayonSetting(self::TOP_SET, TRUE), + new CrayonSetting(self::TOP_MARGIN, 12), + new CrayonSetting(self::BOTTOM_SET, TRUE), + new CrayonSetting(self::BOTTOM_MARGIN, 12), + new CrayonSetting(self::LEFT_SET, FALSE), + new CrayonSetting(self::LEFT_MARGIN, 12), + new CrayonSetting(self::RIGHT_SET, FALSE), + new CrayonSetting(self::RIGHT_MARGIN, 12), + new CrayonSetting(self::H_ALIGN, array(crayon__('None'), crayon__('Left'), crayon__('Center'), crayon__('Right'))), + new CrayonSetting(self::FLOAT_ENABLE, FALSE), + new CrayonSetting(self::TOOLBAR, array(crayon__('On MouseOver'), crayon__('Always'), crayon__('Never'))), + new CrayonSetting(self::TOOLBAR_OVERLAY, TRUE), + new CrayonSetting(self::TOOLBAR_HIDE, TRUE), + new CrayonSetting(self::TOOLBAR_DELAY, TRUE), + new CrayonSetting(self::COPY, TRUE), + new CrayonSetting(self::POPUP, TRUE), + new CrayonSetting(self::SHOW_LANG, array(crayon__('When Found'), crayon__('Always'), crayon__('Never'))), + new CrayonSetting(self::SHOW_TITLE, TRUE), + new CrayonSetting(self::STRIPED, TRUE), + new CrayonSetting(self::MARKING, TRUE), + new CrayonSetting(self::START_LINE, 1), + new CrayonSetting(self::NUMS, TRUE), + new CrayonSetting(self::NUMS_TOGGLE, TRUE), + new CrayonSetting(self::TRIM_WHITESPACE, TRUE), + new CrayonSetting(self::WHITESPACE_BEFORE, 0), + new CrayonSetting(self::WHITESPACE_AFTER, 0), + new CrayonSetting(self::TRIM_CODE_TAG, TRUE), + new CrayonSetting(self::TAB_CONVERT, FALSE), + new CrayonSetting(self::TAB_SIZE, 4), + new CrayonSetting(self::FALLBACK_LANG, CrayonLangs::DEFAULT_LANG), + new CrayonSetting(self::LOCAL_PATH, ''), + new CrayonSetting(self::SCROLL, FALSE), + new CrayonSetting(self::PLAIN, TRUE), + new CrayonSetting(self::PLAIN_TOGGLE, TRUE), + new CrayonSetting(self::SHOW_PLAIN_DEFAULT, FALSE), + new CrayonSetting(self::SHOW_PLAIN, + array(crayon__('On Double Click'), crayon__('On Single Click'), crayon__('On MouseOver'), crayon__('Disable Mouse Events'))), + new CrayonSetting(self::DISABLE_ANIM, FALSE), + new CrayonSetting(self::TOUCHSCREEN, TRUE), + new CrayonSetting(self::DISABLE_RUNTIME, FALSE), + new CrayonSetting(self::DISABLE_DATE, ''), + new CrayonSetting(self::ERROR_LOG, TRUE), + new CrayonSetting(self::ERROR_LOG_SYS, TRUE), + new CrayonSetting(self::ERROR_MSG_SHOW, TRUE), + new CrayonSetting(self::ERROR_MSG, crayon__('An error has occurred. Please try again later.')), + new CrayonSetting(self::HIDE_HELP, FALSE), + new CrayonSetting(self::CACHE, array_keys(self::$cache_array), 1), + new CrayonSetting(self::EFFICIENT_ENQUEUE, FALSE), + new CrayonSetting(self::CAPTURE_PRE, TRUE), + new CrayonSetting(self::CAPTURE_MINI_TAG, FALSE), + new CrayonSetting(self::MIXED, TRUE), + new CrayonSetting(self::SHOW_MIXED, TRUE), + new CrayonSetting(self::PLAIN_TAG, FALSE), + new CrayonSetting(self::ENQUEUE_THEMES, TRUE), + new CrayonSetting(self::ENQUEUE_FONTS, TRUE), + new CrayonSetting(self::MAIN_QUERY, FALSE), + new CrayonSetting(self::SAFE_ENQUEUE, TRUE), + new CrayonSetting(self::INLINE_TAG, TRUE), + new CrayonSetting(self::INLINE_TAG_CAPTURE, FALSE), + new CrayonSetting(self::CODE_TAG_CAPTURE, FALSE), + new CrayonSetting(self::CODE_TAG_CAPTURE_TYPE, array(crayon__('Inline Tag'), crayon__('Block Tag'))), + new CrayonSetting(self::INLINE_MARGIN, 5), + new CrayonSetting(self::INLINE_WRAP, TRUE), + new CrayonSetting(self::BACKQUOTE, TRUE), + new CrayonSetting(self::COMMENTS, TRUE), + new CrayonSetting(self::DECODE, FALSE), + new CrayonSetting(self::DECODE_ATTRIBUTES, TRUE), +// new CrayonSetting(self::TINYMCE_USED, FALSE), + new CrayonSetting(self::ATTR_SEP, array(':', '_')), + new CrayonSetting(self::EXCERPT_STRIP, FALSE), + new CrayonSetting(self::RANGES, TRUE), + new CrayonSetting(self::TAG_EDITOR_FRONT, FALSE), + new CrayonSetting(self::TAG_EDITOR_SETTINGS, TRUE), + new CrayonSetting(self::TAG_EDITOR_ADD_BUTTON_TEXT, crayon__('Add Code')), + new CrayonSetting(self::TAG_EDITOR_EDIT_BUTTON_TEXT, crayon__('Edit Code')), + new CrayonSetting(self::TAG_EDITOR_QUICKTAG_BUTTON_TEXT, 'crayon'), + new CrayonSetting(self::WRAP_TOGGLE, TRUE), + new CrayonSetting(self::WRAP, FALSE), + new CrayonSetting(self::EXPAND, FALSE), + new CrayonSetting(self::EXPAND_TOGGLE, TRUE), + new CrayonSetting(self::MINIMIZE, FALSE), + new CrayonSetting(self::DELAY_LOAD_JS, FALSE) + ); + + $this->set($settings); + + $nonNegs = array(self::FONT_SIZE, self::LINE_HEIGHT, self::HEIGHT, self::WIDTH, self::START_LINE, self::WHITESPACE_BEFORE, self::WHITESPACE_AFTER, self::TAB_SIZE, self::INLINE_MARGIN); + $intNonNegValid = new CrayonNonNegIntValidator(); + foreach ($nonNegs as $name) { + $this->get($name)->validator($intNonNegValid); + } + } + + // Getter and Setter ====================================================== + + // TODO this needs simplification + function set($name, $value = NULL, $replace = FALSE) { + // Set associative array of settings + if (is_array($name)) { + $keys = array_keys($name); + foreach ($keys as $key) { + if (is_string($key)) { + // Associative value + $this->set($key, $name[$key], $replace); + } else if (is_int($key)) { + $setting = $name[$key]; + $this->set($setting, NULL, $replace); + } + } + } else if (is_string($name) && !empty($name) && $value !== NULL) { + $value = CrayonSettings::validate($name, $value); + if ($replace || !$this->is_setting($name)) { + // Replace/Create + $this->settings[$name] = new CrayonSetting($name, $value); + } else { + // Update + $this->settings[$name]->value($value); + } + } else if (is_object($name) && get_class($name) == CRAYON_SETTING_CLASS) { + $setting = $name; // Semantics + if ($replace || !$this->is_setting($setting->name())) { + // Replace/Create + $this->settings[$setting->name()] = $setting->copy(); + } else { + // Update + if ($setting->is_array()) { + $this->settings[$setting->name()]->index($setting->index()); + } else { + $this->settings[$setting->name()]->value($setting->value()); + } + } + } + } + + function get($name = NULL) { + if ($name === NULL) { + $copy = array(); + foreach ($this->settings as $name => $setting) { + $copy[$name] = $setting->copy(); // Deep copy + } + return $copy; + } else if (is_string($name)) { + if ($this->is_setting($name)) { + return $this->settings[$name]; + } + } + return FALSE; + } + + function val($name = NULL) { + if (($setting = self::get($name)) != FALSE) { + return $setting->value(); + } else { + return NULL; + } + } + + function val_str($name) { + if (($setting = self::get($name)) != FALSE) { + $def = $setting->def(); + $index = $setting->value(); + if (array_key_exists($index, $def)) { + return $def[$index]; + } else { + return NULL; + } + } + } + + function get_array() { + $array = array(); + foreach ($this->settings as $setting) { + $array[$setting->name()] = $setting->value(); + } + return $array; + } + + function is_setting($name) { + return (is_string($name) && array_key_exists($name, $this->settings)); + } + + /* Gets default settings, either as associative array of name=>value or CrayonSetting + objects */ + public static function get_defaults($name = NULL, $objects = TRUE) { + if (self::$default === NULL) { + self::$default = new CrayonSettings(); + } + if ($name === NULL) { + // Get all settings + if ($objects) { + // Return array of objects + return self::$default->get(); + } else { + // Return associative array of name=>value + $settings = self::$default->get(); + $defaults = array(); + foreach ($settings as $setting) { + $defaults[$setting->name()] = $setting->value(); + } + return $defaults; + } + } else { + // Return specific setting + if ($objects) { + return self::$default->get($name); + } else { + return self::$default->get($name)->value(); + } + } + } + + public static function get_defaults_array() { + return self::get_defaults(NULL, FALSE); + } + + // Validation ============================================================= + + /** + * Validates settings coming from an HTML form and also for internal use. + * This is used when saving form an HTML form to the db, and also when reading from the db + * back into the global settings. + * @param string $name + * @param mixed $value + */ + public static function validate($name, $value) { + if (!is_string($name)) { + return ''; + } + + // Type-cast to correct value for known settings + if (($setting = CrayonGlobalSettings::get($name)) != FALSE) { + // Booleans settings that are sent as string are allowed to have "false" == false + if (is_bool($setting->def())) { + if (is_string($value)) { + $value = CrayonUtil::str_to_bool($value); + } + } else { + // Ensure we don't cast integer settings to 0 because $value doesn't have any numbers in it + $value = strval($value); + // Only occurs when saving from the form ($_POST values are strings) + if ($value == '' || ($cleaned = $setting->sanitize($value, FALSE)) == '') { + // The value sent has no integers, change to default + $value = $setting->def(); + } else { + // Cleaned value is int + $value = $cleaned; + } + // Cast all other settings as usual + if (!settype($value, $setting->type())) { + // If we can't cast, then use default value + if ($setting->is_array()) { + $value = 0; // default index + } else { + $value = $setting->def(); + } + } + } + } else { + // If setting not found, remove value + return ''; + } + + switch ($name) { + case CrayonSettings::LOCAL_PATH: + $path = parse_url($value, PHP_URL_PATH); + // Remove all spaces, prefixed and trailing forward slashes + $path = preg_replace('#^/*|/*$|\s*#', '', $path); + // Replace backslashes + $path = preg_replace('#\\\\#', '/', $path); + // Append trailing forward slash + if (!empty($path)) { + $path .= '/'; + } + return $path; + case CrayonSettings::FONT_SIZE: + if ($value < 1) { + $value = 1; + } + break; + case CrayonSettings::LINE_HEIGHT: + $font_size = CrayonGlobalSettings::val(CrayonSettings::FONT_SIZE); + $value = $value >= $font_size ? $value : $font_size; + break; + case CrayonSettings::THEME: + $value = strtolower($value); + // XXX validate settings here + } + + // If no validation occurs, return value + return $value; + } + + // Takes an associative array of "smart settings" and regular settings. Smart settings can be used + // to configure regular settings quickly. + // E.g. 'max_height="20px"' will set 'height="20"', 'height_mode="0", height_unit="0"' + public static function smart_settings($settings) { + if (!is_array($settings)) { + return FALSE; + } + + // If a setting is given, it is automatically enabled + foreach ($settings as $name => $value) { + if (($setting = CrayonGlobalSettings::get($name)) !== FALSE && is_bool($setting->def())) { + $value = CrayonUtil::str_to_bool($value); + } + + // XXX removed height and width, since it wasn't using the global settings for mode if only height was provided + if ($name == 'min-height' || $name == 'max-height' /* || $name == 'height'*/) { + self::smart_hw($name, CrayonSettings::HEIGHT_SET, CrayonSettings::HEIGHT_MODE, CrayonSettings::HEIGHT_UNIT, $settings); + } else if ($name == 'min-width' || $name == 'max-width' /* || $name == 'width'*/) { + self::smart_hw($name, CrayonSettings::WIDTH_SET, CrayonSettings::WIDTH_MODE, CrayonSettings::WIDTH_UNIT, $settings); + } else if ($name == CrayonSettings::FONT_SIZE) { + $settings[CrayonSettings::FONT_SIZE_ENABLE] = TRUE; + } else if ($name == CrayonSettings::TOP_MARGIN) { + $settings[CrayonSettings::TOP_SET] = TRUE; + } else if ($name == CrayonSettings::LEFT_MARGIN) { + $settings[CrayonSettings::LEFT_SET] = TRUE; + } else if ($name == CrayonSettings::BOTTOM_MARGIN) { + $settings[CrayonSettings::BOTTOM_SET] = TRUE; + } else if ($name == CrayonSettings::RIGHT_MARGIN) { + $settings[CrayonSettings::RIGHT_SET] = TRUE; + } else if ($name == CrayonSettings::ERROR_MSG) { + $settings[CrayonSettings::ERROR_MSG_SHOW] = TRUE; + } else if ($name == CrayonSettings::H_ALIGN) { + $settings[CrayonSettings::FLOAT_ENABLE] = TRUE; + $value = CrayonUtil::tlower($value); + $values = array('none' => 0, 'left' => 1, 'center' => 2, 'right' => 3); + if (array_key_exists($value, $values)) { + $settings[CrayonSettings::H_ALIGN] = $values[$value]; + } + } else if ($name == CrayonSettings::SHOW_LANG) { + $value = CrayonUtil::tlower($value); + $values = array('found' => 0, 'always' => 1, 'true' => 1, 'never' => 2, 'false' => 2); + if (array_key_exists($value, $values)) { + $settings[CrayonSettings::SHOW_LANG] = $values[$value]; + } + } else if ($name == CrayonSettings::TOOLBAR) { + if (CrayonUtil::tlower($value) == 'always') { + $settings[CrayonSettings::TOOLBAR] = 1; + } else if (CrayonUtil::str_to_bool($value) === FALSE) { + $settings[CrayonSettings::TOOLBAR] = 2; + } + } + } + + return $settings; + } + + // Used for height and width smart settings, I couldn't bear to copy paste code twice... + private static function smart_hw($name, $set, $mode, $unit, &$settings) { + if (!is_string($name) || !is_string($set) || !is_string($mode) || !is_string($unit) || !is_array($settings)) { + return; + } + $settings[$set] = TRUE; + if (strpos($name, 'max-') !== FALSE) { + $settings[$mode] = 0; + } else if (strpos($name, 'min-') !== FALSE) { + $settings[$mode] = 1; + } else { + $settings[$mode] = 2; + } + preg_match('#(\d+)\s*([^\s]*)#', $settings[$name], $match); + if (count($match) == 3) { + $name = str_replace(array('max-', 'min-'), '', $name); + $settings[$name] = $match[1]; + switch (strtolower($match[2])) { + case 'px': + $settings[$unit] = 0; + break; + case '%': + $settings[$unit] = 1; + break; + } + } + } +} + +/** + * Stores global/static copy of CrayonSettings loaded from db. + * These settings can be overriden by individual Crayons. + * Also manages global site settings and paths. + */ +class CrayonGlobalSettings { + // The global settings stored as a CrayonSettings object. + private static $global = NULL; + /* These are used to load local files reliably and prevent scripts like PHP from executing + when attempting to load their code. */ + // The URL of the site (eg. http://localhost/example/) + private static $site_http = ''; + // The absolute root directory of the site (eg. /User/example/) + private static $site_path = ''; + // The absolute root directory of the plugins (eg. /User/example/plugins) + private static $plugin_path = ''; + private static $upload_path = ''; + private static $upload_url = ''; + private static $mkdir = NULL; + + private function __construct() { + } + + private static function init() { + if (self::$global === NULL) { + self::$global = new CrayonSettings(); + } + } + + public static function get($name = NULL) { + self::init(); + return self::$global->get($name); + } + + public static function get_array() { + self::init(); + return self::$global->get_array(); + } + + public static function get_obj() { + self::init(); + return self::$global->copy(); + } + + public static function val($name = NULL) { + self::init(); + return self::$global->val($name); + } + + public static function val_str($name = NULL) { + self::init(); + return self::$global->val_str($name); + } + + public static function has_changed($input, $setting, $value) { + return $input == $setting && $value != CrayonGlobalSettings::val($setting); + } + + public static function set($name, $value = NULL, $replace = FALSE) { + self::init(); + self::$global->set($name, $value, $replace); + } + + public static function site_url($site_http = NULL) { + if ($site_http === NULL) { + return self::$site_http; + } else { + self::$site_http = CrayonUtil::url_slash($site_http); + } + } + + public static function site_path($site_path = NULL) { + if ($site_path === NULL) { + return self::$site_path; + } else { + self::$site_path = CrayonUtil::path_slash($site_path); + } + } + + public static function plugin_path($plugin_path = NULL) { + if ($plugin_path === NULL) { + return self::$plugin_path; + } else { + self::$plugin_path = CrayonUtil::path_slash($plugin_path); + } + } + + public static function upload_path($upload_path = NULL) { + if ($upload_path === NULL) { + return self::$upload_path; + } else { + self::$upload_path = CrayonUtil::path_slash($upload_path); + } + } + + public static function upload_url($upload_url = NULL) { + if ($upload_url === NULL) { + return self::$upload_url; + } else { + self::$upload_url = CrayonUtil::url_slash($upload_url); + } + } + + public static function set_mkdir($mkdir = NULL) { + if ($mkdir === NULL) { + return self::$mkdir; + } else { + self::$mkdir = $mkdir; + } + } + + public static function mkdir($dir = NULL) { + if (self::$mkdir) { + call_user_func(self::$mkdir, $dir); + } else { + @mkdir($dir, 0777, TRUE); + } + } +} + + +$INT = new CrayonValidator('#\d+#'); + +/** + * Validation class. + */ +class CrayonValidator { + private $pattern = '#*#msi'; + + public function __construct($pattern) { + $this->pattern($pattern); + } + + public function pattern($pattern) { + if ($pattern === NULL) { + return $pattern; + } else { + $this->pattern = $pattern; + } + } + + public function validate($str) { + return preg_match($this->pattern, $str) !== FALSE; + } + + public function sanitize($str) { + preg_match_all($this->pattern, $str, $matches); + $result = ''; + foreach ($matches as $match) { + $result .= $match[0]; + } + return $result; + } +} + +class CrayonNonNegIntValidator extends CrayonValidator { + public function __construct() { + parent::__construct('#\d+#'); + } +} + +class CrayonIntValidator extends CrayonValidator { + public function __construct() { + parent::__construct('#-?\d+#'); + } +} + +/** + * Individual setting. + * Can store boolean, string, dropdown (with array of strings), etc. + */ +class CrayonSetting { + private $name = ''; + /* The type of variables that can be set as the value. + * For dropdown settings, value is int, even though value() will return a string. */ + private $type = NULL; + private $default = NULL; // stores string array for dropdown settings + + private $value = NULL; // stores index int for dropdown settings + + private $is_array = FALSE; // only TRUE for dropdown settings + private $locked = FALSE; + + private $validator = NULL; + + + public function __construct($name, $default = '', $value = NULL, $locked = NULL) { + $this->name($name); + if ($default !== NULL) { + $this->def($default); // Perform first to set type + } + if ($value !== NULL) { + $this->value($value); + } + if ($locked !== NULL) { + $this->locked($locked); + } + } + + function __tostring() { + return $this->name; + } + + function copy() { + return new CrayonSetting($this->name, $this->default, $this->value, $this->locked); + } + + function name($name = NULL) { + if (!CrayonUtil::str($this->name, $name)) { + return $this->name; + } + } + + function type() { + return $this->type; + } + + function is_array() { + return $this->is_array; + } + + function locked($locked = NULL) { + if ($locked === NULL) { + return $this->locked; + } else { + $this->locked = ($locked == TRUE); + } + } + + /** + * Sets/gets value; + * Value is index (int) in default value (array) for dropdown settings. + * value($value) is alias for index($index) if dropdown setting. + * value() returns string value at current index for dropdown settings. + * @param $value + */ + function value($value = NULL) { + if ($value === NULL) { + /*if ($this->is_array) { + return $this->default[$this->value]; // value at index + } else */ + if ($this->value !== NULL) { + return $this->value; + } else { + if ($this->is_array) { + return 0; + } else { + return $this->default; + } + } + } else if ($this->locked === FALSE) { + if ($this->is_array) { + $this->index($value); // $value is index + } else { + settype($value, $this->type); // Type cast + $this->value = $value; + } + } + } + + function array_value() { + if ($this->is_array) { + return NULL; + } + return $this->default[$this->value]; + } + + /** + * Sets/gets default value. + * For dropdown settings, default value is array of all possible value strings. + * @param $default + */ + function def($default = NULL) { + // Only allow default to be set once + + if ($this->type === NULL && $default !== NULL) { + // For dropdown settings + + if (is_array($default)) { // The only time we don't use $this->is_array + + // If empty, set to blank array + + if (empty($default)) { + $default = array(''); + } else { + // Ensure all values are unique strings + + $default = CrayonUtil::array_unique_str($default); + } + $this->value = 0; // initial index + + $this->is_array = TRUE; + $this->type = gettype(0); // Type is int (index) + + } else { + $this->is_array = FALSE; + $this->type = gettype($default); + if (is_int($default)) { + $this->validator(new CrayonIntValidator()); + } + } + $this->default = $default; + } else { + return $this->default; + } + } + + /** + * Sets/gets index. + * @param int|string $index + * @return FALSE if not dropdown setting + */ + function index($index = NULL) { + if (!$this->is_array) { + return FALSE; + } else if ($index === NULL) { + return $this->value; // return current index + } else { + if (!is_int($index)) { + // Ensure $value is int for index + $index = intval($index); + } + // Validate index + if ($index < 0 || $index > count($this->default) - 1) { + $index = 0; + } + $this->value = $index; + } + } + + /** + * Finds the index of a string in an array setting + */ + function find_index($str) { + if (!$this->is_array || is_string($str)) { + return FALSE; + } + for ($i = 0; $i < count($this->default); $i++) { + if ($this->default[$i] == $str) { + return $i; + } + } + return FALSE; + } + + function validator($validator) { + if ($validator === NULL) { + return $this->validator; + } else { + $this->validator = $validator; + } + } + + function sanitize($str) { + if ($this->validator != NULL) { + return $this->validator->sanitize($str); + } else { + return $str; + } + } + +} + +?> \ No newline at end of file diff --git a/crayon_settings_wp.class.php b/crayon_settings_wp.class.php new file mode 100644 index 0000000..640732f --- /dev/null +++ b/crayon_settings_wp.class.php @@ -0,0 +1,1273 @@ += '3.3') { + add_action("load-$admin_page", 'CrayonSettingsWP::help_screen'); + } else { + add_filter('contextual_help', 'CrayonSettingsWP::cont_help', 10, 3); + } + } + + public static function admin_styles() { + global $CRAYON_VERSION; + if (CRAYON_MINIFY) { + wp_enqueue_style('crayon', plugins_url(CRAYON_STYLE_MIN, __FILE__), array('editor-buttons'), $CRAYON_VERSION); + } else { + wp_enqueue_style('crayon', plugins_url(CRAYON_STYLE, __FILE__), array(), $CRAYON_VERSION); + wp_enqueue_style('crayon_global', plugins_url(CRAYON_STYLE_GLOBAL, __FILE__), array(), $CRAYON_VERSION); + wp_enqueue_style('crayon_admin', plugins_url(CRAYON_STYLE_ADMIN, __FILE__), array('editor-buttons'), $CRAYON_VERSION); + } + } + + public static function admin_scripts() { + global $CRAYON_VERSION; + + if (CRAYON_MINIFY) { + CrayonWP::enqueue_resources(); + } else { + wp_enqueue_script('crayon_util_js', plugins_url(CRAYON_JS_UTIL, __FILE__), array('jquery'), $CRAYON_VERSION); + self::other_scripts(); + } + + self::init_js_settings(); + + if (is_admin()) { + wp_enqueue_script('crayon_admin_js', plugins_url(CRAYON_JS_ADMIN, __FILE__), array('jquery', 'crayon_js', 'wpdialogs'), $CRAYON_VERSION); + self::init_admin_js_settings(); + } + } + + public static function other_scripts() { + global $CRAYON_VERSION; + self::load_settings(TRUE); + $deps = array('jquery', 'crayon_util_js'); + if (CrayonGlobalSettings::val(CrayonSettings::POPUP) || is_admin()) { + // TODO include anyway and minify + wp_enqueue_script('crayon_jquery_popup', plugins_url(CRAYON_JQUERY_POPUP, __FILE__), array('jquery'), $CRAYON_VERSION); + $deps[] = 'crayon_jquery_popup'; + } + wp_enqueue_script('crayon_js', plugins_url(CRAYON_JS, __FILE__), $deps, $CRAYON_VERSION); + } + + public static function init_js_settings() { + // This stores JS variables used in AJAX calls and in the JS files + global $CRAYON_VERSION; + self::load_settings(TRUE); + if (!self::$js_settings) { + self::$js_settings = array( + 'version' => $CRAYON_VERSION, + 'is_admin' => intval(is_admin()), + 'ajaxurl' => admin_url('admin-ajax.php'), + 'prefix' => CrayonSettings::PREFIX, + 'setting' => CrayonSettings::SETTING, + 'selected' => CrayonSettings::SETTING_SELECTED, + 'changed' => CrayonSettings::SETTING_CHANGED, + 'special' => CrayonSettings::SETTING_SPECIAL, + 'orig_value' => CrayonSettings::SETTING_ORIG_VALUE, + 'debug' => CRAYON_DEBUG + ); + } + if (!self::$js_strings) { + self::$js_strings = array( + 'copy' => crayon__('Press %s to Copy, %s to Paste'), + 'minimize' => crayon__('Click To Expand Code') + ); + } + if (CRAYON_MINIFY) { + wp_localize_script('crayon_js', 'CrayonSyntaxSettings', self::$js_settings); + wp_localize_script('crayon_js', 'CrayonSyntaxStrings', self::$js_strings); + } else { + wp_localize_script('crayon_util_js', 'CrayonSyntaxSettings', self::$js_settings); + wp_localize_script('crayon_util_js', 'CrayonSyntaxStrings', self::$js_strings); + } + } + + public static function init_admin_js_settings() { + if (!self::$admin_js_settings) { + // We need to load themes at this stage + CrayonSettingsWP::load_settings(); + $themes_ = CrayonResources::themes()->get(); + $stockThemes = array(); + $userThemes = array(); + foreach ($themes_ as $theme) { + $id = $theme->id(); + $name = $theme->name(); + if ($theme->user()) { + $userThemes[$id] = $name; + } else { + $stockThemes[$id] = $name; + } + } + self::$admin_js_settings = array( + 'themes' => array_merge($stockThemes, $userThemes), + 'stockThemes' => $stockThemes, + 'userThemes' => $userThemes, + 'defaultTheme' => CrayonThemes::DEFAULT_THEME, + 'themesURL' => CrayonResources::themes()->dirurl(false), + 'userThemesURL' => CrayonResources::themes()->dirurl(true), + 'sampleCode' => self::SAMPLE_CODE, + 'dialogFunction' => 'wpdialog' + ); + wp_localize_script('crayon_admin_js', 'CrayonAdminSettings', self::$admin_js_settings); + } + if (!self::$admin_js_strings) { + self::$admin_js_strings = array( + 'prompt' => crayon__("Prompt"), + 'value' => crayon__("Value"), + 'alert' => crayon__("Alert"), + 'no' => crayon__("No"), + 'yes' => crayon__("Yes"), + 'confirm' => crayon__("Confirm"), + 'changeCode' => crayon__("Change Code") + ); + wp_localize_script('crayon_admin_js', 'CrayonAdminStrings', self::$admin_js_strings); + } + } + + public static function settings() { + if (!current_user_can('manage_options')) { + wp_die(crayon__('You do not have sufficient permissions to access this page.')); + } + ?> + + + +
+ +
+
+
+

+ Crayon Syntax Highlighter + +

+ +
+ + + + +

+ + +

+
+
+ +
+ + load(); + CrayonResources::themes()->load(); + + // Ensure all missing settings in db are replaced by default values + $changed = FALSE; + foreach (CrayonSettings::get_defaults_array() as $name => $value) { + // Add missing settings + if (!array_key_exists($name, self::$options)) { + self::$options[$name] = $value; + $changed = TRUE; + } + } + // A setting was missing, update options + if ($changed) { + update_option(self::OPTIONS, self::$options); + } + + self::$is_fully_loaded = TRUE; + } + } + + public static function get_settings() { + return get_option(self::OPTIONS); + } + + // Saves settings from CrayonGlobalSettings, or provided array, to the db + public static function save_settings($settings = NULL) { + if ($settings === NULL) { + $settings = CrayonGlobalSettings::get_array(); + } + update_option(self::OPTIONS, $settings); + } + + // Crayon posts + + /** + * This loads the posts marked as containing Crayons + */ + public static function load_posts() { + if (self::$crayon_posts === NULL) { + // Load from db + if (!(self::$crayon_posts = get_option(self::POSTS))) { + // Posts don't exist! Scan for them. This will fill self::$crayon_posts + self::$crayon_posts = CrayonWP::scan_posts(); + update_option(self::POSTS, self::$crayon_posts); + } + } + return self::$crayon_posts; + } + + /** + * This looks through all posts and marks those which contain Crayons + */ +// public static function scan_and_save_posts() { +// self::save_posts(CrayonWP::scan_posts(TRUE, TRUE)); +// } + + /** + * Saves the marked posts to the db + */ + public static function save_posts($posts = NULL) { + if ($posts === NULL) { + $posts = self::$crayon_posts; + } + update_option(self::POSTS, $posts); + self::load_posts(); + } + + /** + * Adds a post as containing a Crayon + */ + public static function add_post($id, $save = TRUE) { + self::load_posts(); + if (!in_array($id, self::$crayon_posts)) { + self::$crayon_posts[] = $id; + } + if ($save) { + self::save_posts(); + } + } + + /** + * Removes a post as not containing a Crayon + */ + public static function remove_post($id, $save = TRUE) { + self::load_posts(); + $key = array_search($id, self::$crayon_posts); + if ($key === false) { + return; + } + unset(self::$crayon_posts[$key]); + if ($save) { + self::save_posts(); + } + } + + public static function remove_posts() { + self::$crayon_posts = array(); + self::save_posts(); + } + + // Crayon legacy posts + + /** + * This loads the posts marked as containing Crayons + */ + public static function load_legacy_posts($force = FALSE) { + if (self::$crayon_legacy_posts === NULL || $force) { + // Load from db + if (!(self::$crayon_legacy_posts = get_option(self::LEGACY_POSTS))) { + // Posts don't exist! Scan for them. This will fill self::$crayon_legacy_posts + self::$crayon_legacy_posts = CrayonWP::scan_legacy_posts(); + update_option(self::LEGACY_POSTS, self::$crayon_legacy_posts); + } + } + return self::$crayon_legacy_posts; + } + + /** + * This looks through all posts and marks those which contain Crayons + */ +// public static function scan_and_save_posts() { +// self::save_posts(CrayonWP::scan_posts(TRUE, TRUE)); +// } + + /** + * Saves the marked posts to the db + */ + public static function save_legacy_posts($posts = NULL) { + if ($posts === NULL) { + $posts = self::$crayon_legacy_posts; + } + update_option(self::LEGACY_POSTS, $posts); + self::load_legacy_posts(); + } + + /** + * Adds a post as containing a Crayon + */ + public static function add_legacy_post($id, $save = TRUE) { + self::load_legacy_posts(); + if (!in_array($id, self::$crayon_legacy_posts)) { + self::$crayon_legacy_posts[] = $id; + } + if ($save) { + self::save_legacy_posts(); + } + } + + /** + * Removes a post as not containing a Crayon + */ + public static function remove_legacy_post($id, $save = TRUE) { + self::load_legacy_posts(); + $key = array_search($id, self::$crayon_legacy_posts); + if ($key === false) { + return; + } + unset(self::$crayon_legacy_posts[$key]); + if ($save) { + self::save_legacy_posts(); + } + } + + public static function remove_legacy_posts() { + self::$crayon_legacy_posts = array(); + self::save_legacy_posts(); + } + + // Cache + + public static function add_cache($name) { + self::load_cache(); + if (!in_array($name, self::$cache)) { + self::$cache[] = $name; + } + self::save_cache(); + } + + public static function remove_cache($name) { + self::load_cache(); + $key = array_search($name, self::$cache); + if ($key === false) { + return; + } + unset(self::$cache[$key]); + self::save_cache(); + } + + public static function clear_cache() { + self::load_cache(); + foreach (self::$cache as $name) { + delete_transient($name); + } + self::$cache = array(); + self::save_cache(); + } + + public static function load_cache() { + // Load cache from db + if (!(self::$cache = get_option(self::CACHE))) { + self::$cache = array(); + update_option(self::CACHE, self::$cache); + } + } + + public static function save_cache() { + update_option(self::CACHE, self::$cache); + self::load_cache(); + } + + // Paths + + public static function admin_init() { + // Load default settings if they don't exist + self::load_settings(); + + // General + // Some of these will the $editor arguments, if TRUE it will alter for use in the Tag Editor + self::add_section(self::GENERAL, crayon__('General')); + self::add_field(self::GENERAL, crayon__('Theme'), 'theme'); + self::add_field(self::GENERAL, crayon__('Font'), 'font'); + self::add_field(self::GENERAL, crayon__('Metrics'), 'metrics'); + self::add_field(self::GENERAL, crayon__('Toolbar'), 'toolbar'); + self::add_field(self::GENERAL, crayon__('Lines'), 'lines'); + self::add_field(self::GENERAL, crayon__('Code'), 'code'); + self::add_field(self::GENERAL, crayon__('Tags'), 'tags'); + self::add_field(self::GENERAL, crayon__('Languages'), 'langs'); + self::add_field(self::GENERAL, crayon__('Files'), 'files'); + self::add_field(self::GENERAL, crayon__('Posts'), 'posts'); + self::add_field(self::GENERAL, crayon__('Tag Editor'), 'tag_editor'); + self::add_field(self::GENERAL, crayon__('Misc'), 'misc'); + + // Debug + self::add_section(self::DEBUG, crayon__('Debug')); + self::add_field(self::DEBUG, crayon__('Errors'), 'errors'); + self::add_field(self::DEBUG, crayon__('Log'), 'log'); + // ABOUT + + self::add_section(self::ABOUT, crayon__('About')); + $image = ''; + self::add_field(self::ABOUT, $image, 'info'); + } + + // Wrapper functions + + private static function add_section($name, $title, $callback = NULL) { + $callback = (empty($callback) ? 'blank' : $callback); + add_settings_section($name, $title, 'CrayonSettingsWP::' . $callback, self::SETTINGS); + } + + private static function add_field($section, $title, $callback, $args = array()) { + $unique = preg_replace('#\\s#', '_', strtolower($title)); + add_settings_field($unique, $title, 'CrayonSettingsWP::' . $callback, self::SETTINGS, $section, $args); + } + + // Validates all the settings passed from the form in $inputs + + public static function settings_validate($inputs) { + + // Load current settings from db + self::load_settings(TRUE); + + global $CRAYON_EMAIL; + // When reset button is pressed, remove settings so default loads next time + if (array_key_exists('reset', $inputs)) { + self::clear_cache(); + return array(); + } + // Convert old tags + if (array_key_exists('convert', $inputs)) { + $encode = array_key_exists('convert_encode', $inputs); + CrayonWP::convert_tags($encode); + } + // Refresh internal tag management + if (array_key_exists('refresh_tags', $inputs)) { + CrayonWP::refresh_posts(); + } + // Clear the log if needed + if (array_key_exists(self::LOG_CLEAR, $_POST)) { + CrayonLog::clear(); + } + // Send to admin + if (array_key_exists(self::LOG_EMAIL_ADMIN, $_POST)) { + CrayonLog::email(get_bloginfo('admin_email')); + } + // Send to developer + if (array_key_exists(self::LOG_EMAIL_DEV, $_POST)) { + CrayonLog::email($CRAYON_EMAIL, get_bloginfo('admin_email')); + } + + // Clear the cache + if (array_key_exists(self::CACHE_CLEAR, $_POST)) { + self::clear_cache(); + } + + // If settings don't exist in input, set them to default + $global_settings = CrayonSettings::get_defaults(); + + $ignored = array(CrayonSettings::HIDE_HELP); + + foreach ($global_settings as $setting) { + // XXX Ignore some settings + if (in_array($setting->name(), $ignored)) { + $inputs[$setting->name()] = CrayonGlobalSettings::val($setting->name()); + continue; + } + + // If boolean setting is not in input, then it is set to FALSE in the form + if (!array_key_exists($setting->name(), $inputs)) { + // For booleans, set to FALSE (unchecked boxes are not sent as POST) + if (is_bool($setting->def())) { + $inputs[$setting->name()] = FALSE; + } else { + /* For array settings, set the input as the value, which by default is the + default index */ + if (is_array($setting->def())) { + $inputs[$setting->name()] = $setting->value(); + } else { + $inputs[$setting->name()] = $setting->def(); + } + } + } + } + + $refresh = array( + // These should trigger a refresh of which posts contain crayons, since they affect capturing + CrayonSettings::INLINE_TAG => TRUE, + CrayonSettings::INLINE_TAG_CAPTURE => TRUE, + CrayonSettings::CODE_TAG_CAPTURE => TRUE, + CrayonSettings::BACKQUOTE => TRUE, + CrayonSettings::CAPTURE_PRE => TRUE, + CrayonSettings::CAPTURE_MINI_TAG => TRUE, + CrayonSettings::PLAIN_TAG => TRUE + ); + + // Validate inputs + foreach ($inputs as $input => $value) { + // Convert all array setting values to ints + $inputs[$input] = $value = CrayonSettings::validate($input, $value); + // Clear cache when changed + if (CrayonGlobalSettings::has_changed($input, CrayonSettings::CACHE, $value)) { + self::clear_cache(); + } + if (isset($refresh[$input])) { + if (CrayonGlobalSettings::has_changed($input, $input, $value)) { + // Needs to take place, in case it refresh depends on changed value + CrayonGlobalSettings::set($input, $value); + CrayonWP::refresh_posts(); + } + } + } + + return $inputs; + } + + // Section callback functions + + public static function blank() { + } // Used for required callbacks with blank content + + // Input Drawing ========================================================== + + private static function input($args) { + $id = ''; + $size = 40; + $margin = FALSE; + $preview = 1; + $break = FALSE; + $type = 'text'; + extract($args); + + echo '', ($break ? CRAYON_BR : ''); + } + + private static function checkbox($args, $line_break = TRUE, $preview = TRUE) { + if (empty($args) || !is_array($args) || count($args) != 2) { + return; + } + $id = $args[0]; + $text = $args[1]; + $checked = (!array_key_exists($id, self::$options)) ? FALSE : self::$options[$id] == TRUE; + $checked_str = $checked ? ' checked="checked"' : ''; + echo ' ', '', ($line_break ? CRAYON_BR : ''); + } + + // Draws a dropdown by loading the default value (an array) from a setting + private static function dropdown($id, $line_break = TRUE, $preview = TRUE, $echo = TRUE, $resources = NULL, $selected = NULL) { + if (!array_key_exists($id, self::$options)) { + return; + } + $resources = $resources != NULL ? $resources : CrayonGlobalSettings::get($id)->def(); + + $return = '' . ($line_break ? CRAYON_BR : ''); + if ($echo) { + echo $return; + } else { + return $return; + } + } + + private static function button($args = array()) { + extract($args); + CrayonUtil::set_var($id, ''); + CrayonUtil::set_var($class, ''); + CrayonUtil::set_var($onclick, ''); + CrayonUtil::set_var($title, ''); + return '' . $title . ''; + } + + private static function info_span($name, $text) { + echo '', $text, ''; + } + + private static function span($text) { + echo '', $text, ''; + } + + // General Fields ========================================================= + public static function help() { + global $CRAYON_WEBSITE, $CRAYON_TWITTER, $CRAYON_GIT, $CRAYON_PLUGIN_WP, $CRAYON_DONATE; + if (CrayonGlobalSettings::val(CrayonSettings::HIDE_HELP)) { + return; + } + echo '
+

Howdy, coder! Thanks for using Crayon. Useful Links: Documentation, GitHub, Plugin Page, Twitter. Crayon has always been free. If you value my work please consider a small donation to show your appreciation. Thanks! X

+ '; + } + + public static function help_screen() { + $screen = get_current_screen(); + + if ($screen->id != self::$admin_page) { + return; + } + } + + public static function metrics() { + echo '
'; + self::checkbox(array(CrayonSettings::HEIGHT_SET, '' . crayon__('Height') . ' '), FALSE); + self::dropdown(CrayonSettings::HEIGHT_MODE, FALSE); + echo ' '; + self::input(array('id' => CrayonSettings::HEIGHT, 'size' => 8)); + echo ' '; + self::dropdown(CrayonSettings::HEIGHT_UNIT); + self::checkbox(array(CrayonSettings::WIDTH_SET, '' . crayon__('Width') . ' '), FALSE); + self::dropdown(CrayonSettings::WIDTH_MODE, FALSE); + echo ' '; + self::input(array('id' => CrayonSettings::WIDTH, 'size' => 8)); + echo ' '; + self::dropdown(CrayonSettings::WIDTH_UNIT); + $text = array(crayon__('Top Margin') => array(CrayonSettings::TOP_SET, CrayonSettings::TOP_MARGIN), + crayon__('Bottom Margin') => array(CrayonSettings::BOTTOM_SET, CrayonSettings::BOTTOM_MARGIN), + crayon__('Left Margin') => array(CrayonSettings::LEFT_SET, CrayonSettings::LEFT_MARGIN), + crayon__('Right Margin') => array(CrayonSettings::RIGHT_SET, CrayonSettings::RIGHT_MARGIN)); + foreach ($text as $p => $s) { + $set = $s[0]; + $margin = $s[1]; + $preview = ($p == crayon__('Left Margin') || $p == crayon__('Right Margin')); + self::checkbox(array($set, '' . $p . ''), FALSE, $preview); + echo ' '; + self::input(array('id' => $margin, 'size' => 8, 'preview' => FALSE)); + echo '', crayon__('Pixels'), '', CRAYON_BR; + } + echo '' . crayon__('Horizontal Alignment') . ' '; + self::dropdown(CrayonSettings::H_ALIGN); + echo '
'; + self::checkbox(array(CrayonSettings::FLOAT_ENABLE, crayon__('Allow floating elements to surround Crayon')), FALSE, FALSE); + echo '
'; + echo '' . crayon__('Inline Margin') . ' '; + self::input(array('id' => CrayonSettings::INLINE_MARGIN, 'size' => 2)); + echo '', crayon__('Pixels'), ''; + echo '
'; + } + + public static function toolbar() { + echo '
'; + self::span(crayon__('Display the Toolbar') . ' '); + self::dropdown(CrayonSettings::TOOLBAR); + echo '
'; + self::checkbox(array(CrayonSettings::TOOLBAR_OVERLAY, crayon__('Overlay the toolbar on code rather than push it down when possible'))); + self::checkbox(array(CrayonSettings::TOOLBAR_HIDE, crayon__('Toggle the toolbar on single click when it is overlayed'))); + self::checkbox(array(CrayonSettings::TOOLBAR_DELAY, crayon__('Delay hiding the toolbar on MouseOut'))); + echo '
'; + self::checkbox(array(CrayonSettings::SHOW_TITLE, crayon__('Display the title when provided'))); + self::span(crayon__('Display the language') . ' '); + self::dropdown(CrayonSettings::SHOW_LANG); + echo '
'; + } + + public static function lines() { + echo '
'; + self::checkbox(array(CrayonSettings::STRIPED, crayon__('Display striped code lines'))); + self::checkbox(array(CrayonSettings::MARKING, crayon__('Enable line marking for important lines'))); + self::checkbox(array(CrayonSettings::RANGES, crayon__('Enable line ranges for showing only parts of code'))); + self::checkbox(array(CrayonSettings::NUMS, crayon__('Display line numbers by default'))); + self::checkbox(array(CrayonSettings::NUMS_TOGGLE, crayon__('Enable line number toggling'))); + self::checkbox(array(CrayonSettings::WRAP, crayon__('Wrap lines by default'))); + self::checkbox(array(CrayonSettings::WRAP_TOGGLE, crayon__('Enable line wrap toggling'))); + self::span(crayon__('Start line numbers from') . ' '); + self::input(array('id' => CrayonSettings::START_LINE, 'size' => 2, 'break' => TRUE)); + echo '
'; + } + + public static function langs() { + echo ''; + // Specialised dropdown for languages + if (array_key_exists(CrayonSettings::FALLBACK_LANG, self::$options)) { + if (($langs = CrayonParser::parse_all()) != FALSE) { + $langs = CrayonLangs::sort_by_name($langs); + self::span(crayon__('When no language is provided, use the fallback') . ': '); + self::dropdown(CrayonSettings::FALLBACK_LANG, FALSE, TRUE, TRUE, $langs); + // Information about parsing + $parsed = CrayonResources::langs()->is_parsed(); + $count = count($langs); + echo '', CRAYON_BR, ($parsed ? '' : ''), + sprintf(crayon_n('%d language has been detected.', '%d languages have been detected.', $count), $count), ' ', + $parsed ? crayon__('Parsing was successful') : crayon__('Parsing was unsuccessful'), + ($parsed ? '. ' : ''); + // Check if fallback from db is loaded + $db_fallback = self::$options[CrayonSettings::FALLBACK_LANG]; // Fallback name from db + + if (!CrayonResources::langs()->is_loaded($db_fallback) || !CrayonResources::langs()->exists($db_fallback)) { + echo '
', sprintf(crayon__('The selected language with id %s could not be loaded'), '' . $db_fallback . ''), '. '; + } + // Language parsing info + echo CRAYON_BR, '
' . self::button(array('id' => 'show-langs', 'title' => crayon__('Show Languages'))) . '
'; + } else { + echo crayon__('No languages could be parsed.'); + } + } + } + + public static function show_langs() { + CrayonSettingsWP::load_settings(); + require_once(CRAYON_PARSER_PHP); + if (($langs = CrayonParser::parse_all()) != FALSE) { + $langs = CrayonLangs::sort_by_name($langs); + echo '', + ''; + $keys = array_values($langs); + for ($i = 0; $i < count($langs); $i++) { + $lang = $keys[$i]; + $tr = ($i == count($langs) - 1) ? 'crayon-table-last' : ''; + echo '', + '', + '', + '', + '', + '', + '', + ''; + } + echo '
', crayon__('ID'), '', crayon__('Name'), '', crayon__('Version'), '', crayon__('File Extensions'), '', crayon__('Aliases'), '', crayon__('State'), '
', $lang->id(), '', $lang->name(), '', $lang->version(), '', implode(', ', $lang->ext()), '', implode(', ', $lang->alias()), '', + $lang->state_info(), '

' . crayon__("Languages that have the same extension as their name don't need to explicitly map extensions."); + } else { + echo crayon__('No languages could be found.'); + } + exit(); + } + + public static function posts() { + echo ''; + echo self::button(array('id' => 'show-posts', 'title' => crayon__('Show Crayon Posts'))); + echo ' '; + echo self::help_button('http://aramk.com/blog/2012/09/26/internal-post-management-crayon/'); + echo '
'; + } + + public static function post_cmp($a, $b) { + $a = $a->post_modified; + $b = $b->post_modified; + if ($a == $b) { + return 0; + } else { + return $a < $b ? 1 : -1; + } + } + + public static function show_posts() { + CrayonSettingsWP::load_settings(); + $postIDs = self::load_posts(); + $legacy_posts = self::load_legacy_posts(); + // Avoids O(n^2) by using a hash map, tradeoff in using strval + $legacy_map = array(); + foreach ($legacy_posts as $legacyID) { + $legacy_map[strval($legacyID)] = TRUE; + } + + echo '', + ''; + + $posts = array(); + for ($i = 0; $i < count($postIDs); $i++) { + $posts[$i] = get_post($postIDs[$i]); + } + + usort($posts, 'CrayonSettingsWP::post_cmp'); + + for ($i = 0; $i < count($posts); $i++) { + $post = $posts[$i]; + $postID = $post->ID; + $title = $post->post_title; + $title = !empty($title) ? $title : 'N/A'; + $tr = ($i == count($posts) - 1) ? 'crayon-table-last' : ''; + echo '', + '', + '', + '', + '', + '', + ''; + } + + echo '
', crayon__('ID'), '', crayon__('Title'), '', crayon__('Posted'), '', crayon__('Modifed'), '', crayon__('Contains Legacy Tags?'), '
', $postID, '', $title, '', $post->post_date, '', $post->post_modified, '', isset($legacy_map[strval($postID)]) ? '' . crayon__('Yes') . '' : crayon__('No'), '
'; + exit(); + } + + public static function show_preview() { + echo '
'; + + self::load_settings(); // Run first to ensure global settings loaded + + $crayon = CrayonWP::instance(); + + // Settings to prevent from validating + $preview_settings = array(self::SAMPLE_CODE); + + // Load settings from GET and validate + foreach ($_POST as $key => $value) { + // echo $key, ' ', $value , '
'; + $value = stripslashes($value); + if (!in_array($key, $preview_settings)) { + $_POST[$key] = CrayonSettings::validate($key, $value); + } else { + $_POST[$key] = $value; + } + } + $crayon->settings($_POST); + if (!isset($crayon_preview_dont_override_get) || !$crayon_preview_dont_override_get) { + $settings = array(CrayonSettings::TOP_SET => TRUE, CrayonSettings::TOP_MARGIN => 10, + CrayonSettings::BOTTOM_SET => FALSE, CrayonSettings::BOTTOM_MARGIN => 0); + $crayon->settings($settings); + } + + // Print the theme CSS + $theme_id = $crayon->setting_val(CrayonSettings::THEME); + if ($theme_id != NULL) { + echo CrayonResources::themes()->get_css($theme_id, date('U')); + } + + $font_id = $crayon->setting_val(CrayonSettings::FONT); + if ($font_id != NULL /*&& $font_id != CrayonFonts::DEFAULT_FONT*/) { + echo CrayonResources::fonts()->get_css($font_id); + } + + // Load custom code based on language + $lang = $crayon->setting_val(CrayonSettings::FALLBACK_LANG); + $path = CrayonGlobalSettings::plugin_path() . CRAYON_UTIL_DIR . '/sample/' . $lang . '.txt'; + + if (isset($_POST[self::SAMPLE_CODE])) { + $crayon->code($_POST[self::SAMPLE_CODE]); + } else if ($lang && @file_exists($path)) { + $crayon->url($path); + } else { + $code = " +// A sample class +class Human { + private int age = 0; + public void birthday() { + age++; + print('Happy Birthday!'); + } +} +"; + $crayon->code($code); + } + $crayon->title('Sample Code'); + $crayon->marked('5-7'); + $crayon->output($highlight = true, $nums = true, $print = true); + echo '
'; + crayon_load_plugin_textdomain(); + exit(); + } + + public static function theme($editor = FALSE) { + $db_theme = self::$options[CrayonSettings::THEME]; // Theme name from db + if (!array_key_exists(CrayonSettings::THEME, self::$options)) { + $db_theme = ''; + } + $themes_array = CrayonResources::themes()->get_array(); + // Mark user themes + foreach ($themes_array as $id => $name) { + $mark = CrayonResources::themes()->get($id)->user() ? ' *' : ''; + $themes_array[$id] = array($name, $name . $mark); + } + $missing_theme = !CrayonResources::themes()->is_loaded($db_theme) || !CrayonResources::themes()->exists($db_theme); + self::dropdown(CrayonSettings::THEME, FALSE, FALSE, TRUE, $themes_array, $missing_theme ? CrayonThemes::DEFAULT_THEME : NULL); + if ($editor) { + return; + } + // Theme editor + if (CRAYON_THEME_EDITOR) { + // echo ''. crayon__('Theme Editor') .'
'; + echo '
'; + $buttons = array('edit' => crayon__('Edit'), 'duplicate' => crayon__('Duplicate'), 'submit' => crayon__('Submit'), + 'delete' => crayon__('Delete')); + foreach ($buttons as $k => $v) { + echo '', $v, ''; + } + echo '', self::help_button('http://aramk.com/blog/2012/12/27/crayon-theme-editor/'), '', crayon__("Duplicate a Stock Theme into a User Theme to allow editing."); + echo '
'; + } + // Preview Box + ?> +
+
+
+
+
+
+ ', '', '', ''); ?> +
+
+
+
+ '; + self::checkbox(array(CrayonSettings::ENQUEUE_THEMES, crayon__('Enqueue themes in the header (more efficient).') . self::help_button('http://aramk.com/blog/2012/01/07/enqueuing-themes-and-fonts-in-crayon/'))); + // Check if theme from db is loaded + if ($missing_theme) { + echo '', sprintf(crayon__('The selected theme with id %s could not be loaded'), '' . $db_theme . ''), '. '; + } + } + + public static function font($editor = FALSE) { + $db_font = self::$options[CrayonSettings::FONT]; // Theme name from db + if (!array_key_exists(CrayonSettings::FONT, self::$options)) { + $db_font = ''; + } + $fonts_array = CrayonResources::fonts()->get_array(); + self::dropdown(CrayonSettings::FONT, FALSE, TRUE, TRUE, $fonts_array); + echo ''; + // TODO(aramk) Add this blog article back. + // echo '', crayon__('Add More'), ''; + echo ''; + self::checkbox(array(CrayonSettings::FONT_SIZE_ENABLE, crayon__('Custom Font Size') . ' '), FALSE); + self::input(array('id' => CrayonSettings::FONT_SIZE, 'size' => 2)); + echo '', crayon__('Pixels'), ',  ', crayon__('Line Height'), ' '; + self::input(array('id' => CrayonSettings::LINE_HEIGHT, 'size' => 2)); + echo '', crayon__('Pixels'), '
'; + if ((!CrayonResources::fonts()->is_loaded($db_font) || !CrayonResources::fonts()->exists($db_font))) { + // Default font doesn't actually exist as a file, it means do not override default theme font + echo '', sprintf(crayon__('The selected font with id %s could not be loaded'), '' . $db_font . ''), '.
'; + } + if ($editor) { + return; + } + echo '
'; + self::checkbox(array(CrayonSettings::ENQUEUE_FONTS, crayon__('Enqueue fonts in the header (more efficient).') . self::help_button('http://aramk.com/blog/2012/01/07/enqueuing-themes-and-fonts-in-crayon/'))); + } + + public static function code($editor = FALSE) { + echo '
'; + self::checkbox(array(CrayonSettings::PLAIN, crayon__('Enable plain code view and display') . ' '), FALSE); + self::dropdown(CrayonSettings::SHOW_PLAIN); + echo ''; + self::checkbox(array(CrayonSettings::PLAIN_TOGGLE, crayon__('Enable plain code toggling'))); + self::checkbox(array(CrayonSettings::SHOW_PLAIN_DEFAULT, crayon__('Show the plain code by default'))); + self::checkbox(array(CrayonSettings::COPY, crayon__('Enable code copy/paste'))); + echo ''; + self::checkbox(array(CrayonSettings::POPUP, crayon__('Enable opening code in a window'))); + self::checkbox(array(CrayonSettings::SCROLL, crayon__('Always display scrollbars'))); + self::checkbox(array(CrayonSettings::MINIMIZE, crayon__('Minimize code') . self::help_button('http://aramk.com/blog/2013/01/15/minimizing-code-in-crayon/'))); + self::checkbox(array(CrayonSettings::EXPAND, crayon__('Expand code beyond page borders on mouseover'))); + self::checkbox(array(CrayonSettings::EXPAND_TOGGLE, crayon__('Enable code expanding toggling when possible'))); + echo '
'; + if (!$editor) { + self::checkbox(array(CrayonSettings::DECODE, crayon__('Decode HTML entities in code'))); + } + self::checkbox(array(CrayonSettings::DECODE_ATTRIBUTES, crayon__('Decode HTML entities in attributes'))); + echo '
'; + self::checkbox(array(CrayonSettings::TRIM_WHITESPACE, crayon__('Remove whitespace surrounding the shortcode content'))); + echo '
'; + self::checkbox(array(CrayonSettings::TRIM_CODE_TAG, crayon__('Remove <code> tags surrounding the shortcode content'))); + self::checkbox(array(CrayonSettings::MIXED, crayon__('Allow Mixed Language Highlighting with delimiters and tags.') . self::help_button('http://aramk.com/blog/2011/12/25/mixed-language-highlighting-in-crayon/'))); + echo '
'; + self::checkbox(array(CrayonSettings::SHOW_MIXED, crayon__('Show Mixed Language Icon (+)'))); + echo '
'; + self::checkbox(array(CrayonSettings::TAB_CONVERT, crayon__('Convert tabs to spaces'))); + self::span(crayon__('Tab size in spaces') . ': '); + self::input(array('id' => CrayonSettings::TAB_SIZE, 'size' => 2, 'break' => TRUE)); + self::span(crayon__('Blank lines before code:') . ' '); + self::input(array('id' => CrayonSettings::WHITESPACE_BEFORE, 'size' => 2, 'break' => TRUE)); + self::span(crayon__('Blank lines after code:') . ' '); + self::input(array('id' => CrayonSettings::WHITESPACE_AFTER, 'size' => 2, 'break' => TRUE)); + } + + public static function tags() { + self::checkbox(array(CrayonSettings::INLINE_TAG, crayon__('Capture Inline Tags') . self::help_button('http://aramk.com/blog/2012/03/07/inline-crayons/'))); + self::checkbox(array(CrayonSettings::INLINE_WRAP, crayon__('Wrap Inline Tags') . self::help_button('http://aramk.com/blog/2012/03/07/inline-crayons/'))); + self::checkbox(array(CrayonSettings::CODE_TAG_CAPTURE, crayon__('Capture <code> as')), FALSE); + echo ' '; + self::dropdown(CrayonSettings::CODE_TAG_CAPTURE_TYPE, FALSE); + echo self::help_button('http://aramk.com/blog/2012/03/07/inline-crayons/') . '
'; + self::checkbox(array(CrayonSettings::BACKQUOTE, crayon__('Capture `backquotes` as <code>') . self::help_button('http://aramk.com/blog/2012/03/07/inline-crayons/'))); + self::checkbox(array(CrayonSettings::CAPTURE_PRE, crayon__('Capture <pre> tags as Crayons') . self::help_button('http://aramk.com/blog/2011/12/27/mini-tags-in-crayon/'))); + + echo '
', sprintf(crayon__("Using this markup for Mini Tags and Inline tags is now %sdeprecated%s! Use the %sTag Editor%s instead and convert legacy tags."), '', '', '', ''), '
'; + self::checkbox(array(CrayonSettings::CAPTURE_MINI_TAG, crayon__('Capture Mini Tags like [php][/php] as Crayons.') . self::help_button('http://aramk.com/blog/2011/12/27/mini-tags-in-crayon/'))); + self::checkbox(array(CrayonSettings::INLINE_TAG_CAPTURE, crayon__('Capture Inline Tags like {php}{/php} inside sentences.') . self::help_button('http://aramk.com/blog/2012/03/07/inline-crayons/'))); + self::checkbox(array(CrayonSettings::PLAIN_TAG, crayon__('Enable [plain][/plain] tag.') . self::help_button('http://aramk.com/blog/2011/12/27/mini-tags-in-crayon/'))); + } + + public static function files() { + echo ''; + echo crayon__('When loading local files and a relative path is given for the URL, use the absolute path'), ': ', + '
', home_url(), '/'; + self::input(array('id' => CrayonSettings::LOCAL_PATH)); + echo '
', crayon__('Followed by your relative URL.'); + } + + public static function tag_editor() { + $can_convert = self::load_legacy_posts(); + if ($can_convert) { + $disabled = ''; + $convert_text = crayon__('Convert Legacy Tags'); + } else { + $disabled = 'disabled="disabled"'; + $convert_text = crayon__('No Legacy Tags Found'); + } + + echo '  '; + self::checkbox(array('convert_encode', crayon__("Encode")), FALSE); + echo self::help_button('http://aramk.com/blog/2012/09/26/converting-legacy-tags-to-pre/'), CRAYON_BR, CRAYON_BR; + $sep = sprintf(crayon__('Use %s to separate setting names from values in the <pre> class attribute'), + self::dropdown(CrayonSettings::ATTR_SEP, FALSE, FALSE, FALSE)); + echo '', $sep, self::help_button('http://aramk.com/blog/2012/03/25/crayon-tag-editor/'), '
'; + self::checkbox(array(CrayonSettings::TAG_EDITOR_FRONT, crayon__("Display the Tag Editor in any TinyMCE instances on the frontend (e.g. bbPress)") . self::help_button('http://aramk.com/blog/2012/09/08/crayon-with-bbpress/'))); + self::checkbox(array(CrayonSettings::TAG_EDITOR_SETTINGS, crayon__("Display Tag Editor settings on the frontend"))); + self::span(crayon__('Add Code button text') . ' '); + self::input(array('id' => CrayonSettings::TAG_EDITOR_ADD_BUTTON_TEXT, 'break' => TRUE)); + self::span(crayon__('Edit Code button text') . ' '); + self::input(array('id' => CrayonSettings::TAG_EDITOR_EDIT_BUTTON_TEXT, 'break' => TRUE)); + self::span(crayon__('Quicktag button text') . ' '); + self::input(array('id' => CrayonSettings::TAG_EDITOR_QUICKTAG_BUTTON_TEXT, 'break' => TRUE)); + } + + public static function misc() { + echo crayon__('Clear the cache used to store remote code requests'), ': '; + self::dropdown(CrayonSettings::CACHE, false); + echo '
'; + self::checkbox(array(CrayonSettings::EFFICIENT_ENQUEUE, crayon__('Attempt to load Crayon\'s CSS and JavaScript only when needed') . self::help_button('http://aramk.com/blog/2012/01/23/failing-to-load-crayons-on-pages/'))); + self::checkbox(array(CrayonSettings::SAFE_ENQUEUE, crayon__('Disable enqueuing for page templates that may contain The Loop.') . self::help_button('http://aramk.com/blog/2012/01/23/failing-to-load-crayons-on-pages/'))); + self::checkbox(array(CrayonSettings::COMMENTS, crayon__('Allow Crayons inside comments'))); + self::checkbox(array(CrayonSettings::EXCERPT_STRIP, crayon__('Remove Crayons from excerpts'))); + self::checkbox(array(CrayonSettings::MAIN_QUERY, crayon__('Load Crayons only from the main Wordpress query'))); + self::checkbox(array(CrayonSettings::TOUCHSCREEN, crayon__('Disable mouse gestures for touchscreen devices (eg. MouseOver)'))); + self::checkbox(array(CrayonSettings::DISABLE_ANIM, crayon__('Disable animations'))); + self::checkbox(array(CrayonSettings::DISABLE_RUNTIME, crayon__('Disable runtime stats'))); + echo '' . crayon__('Disable for posts before') . ': '; + self::input(array('id' => CrayonSettings::DISABLE_DATE, 'type' => 'date', 'size' => 8, 'break' => FALSE)); + echo '
'; + self::checkbox(array(CrayonSettings::DELAY_LOAD_JS, crayon__('Load scripts in the page footer using wp_footer() to improve loading performance.'))); + } + + // Debug Fields =========================================================== + + public static function errors() { + self::checkbox(array(CrayonSettings::ERROR_LOG, crayon__('Log errors for individual Crayons'))); + self::checkbox(array(CrayonSettings::ERROR_LOG_SYS, crayon__('Log system-wide errors'))); + self::checkbox(array(CrayonSettings::ERROR_MSG_SHOW, crayon__('Display custom message for errors'))); + self::input(array('id' => CrayonSettings::ERROR_MSG, 'size' => 60, 'margin' => TRUE)); + } + + public static function log() { + $log = CrayonLog::log(); + touch(CRAYON_LOG_FILE); + $exists = file_exists(CRAYON_LOG_FILE); + $writable = is_writable(CRAYON_LOG_FILE); + if (!empty($log)) { + echo '
', '
', $log, + '
', '
', + ' ', + ' ', ' ', + ' ', '
', '
'; + } + echo '', (empty($log)) ? crayon__('The log is currently empty.') . ' ' : ''; + if ($exists) { + $writable ? crayon_e('The log file exists and is writable.') : crayon_e('The log file exists and is not writable.'); + } else { + crayon_e('The log file does not exist and is not writable.'); + } + echo ''; + } + + // About Fields =========================================================== + + public static function info() { + global $CRAYON_VERSION, $CRAYON_DATE, $CRAYON_AUTHOR, $CRAYON_WEBSITE, $CRAYON_TWITTER, $CRAYON_GIT, $CRAYON_PLUGIN_WP, $CRAYON_AUTHOR_SITE, $CRAYON_EMAIL, $CRAYON_DONATE; + echo ''; + $version = '' . crayon__('Version') . ': ' . $CRAYON_VERSION; + $date = $CRAYON_DATE; + $developer = '' . crayon__('Developer') . ': ' . '' . $CRAYON_AUTHOR . ''; + $translators = '' . crayon__('Translators') . ': ' . + ' + Arabic (Djennad Hamza), + Chinese Simplified (Dezhi Liu, Jash Yin), + Chinese Traditional (Arefly), + Dutch (Robin Roelofsen, Chilion Snoek), + French (Victor Felder), + Finnish (vahalan), + German (Stephan Knauß), + Italian (Federico Bellucci), + Japanese (@west_323), + Korean (dokenzy), + Lithuanian (Vincent G), + Norwegian (Jackalworks), + Persian (MahdiY), + Polish (Bartosz Romanowski, Robert Korulczyk), + Portuguese (Adonai S. Canez), + Russian (Minimus, Di_Skyer), + Slovak (webhostgeeks), + Slovenian (Jan Sušnik), + Spanish (Hermann Bravo), + Tamil (KKS21199), + Turkish (Hakan), + Ukrainian (Michael Yunat)'; + + $links = ' + + + + + +
+ +
'; + + echo ' + + + + + + + + + + + + + +
' . $version . ' - ' . $date . '
' . $developer . '
' . $translators . '
' . $links . '
'; + + } + + public static function help_button($link) { + return ' ' . crayon__('?') . ''; + } + + public static function plugin_row_meta($meta, $file) { + global $CRAYON_DONATE; + if ($file == CrayonWP::basename()) { + $meta[] = '' . crayon__('Settings') . ''; + $meta[] = '' . crayon__('Theme Editor') . ''; + $meta[] = '' . crayon__('Donate') . ''; + } + return $meta; + } +} + +// Add the settings menus + +if (defined('ABSPATH') && is_admin()) { + // For the admin section + add_action('admin_menu', 'CrayonSettingsWP::admin_load'); + add_filter('plugin_row_meta', 'CrayonSettingsWP::plugin_row_meta', 10, 2); +} + +?> diff --git a/crayon_themes.class.php b/crayon_themes.class.php new file mode 100644 index 0000000..a452018 --- /dev/null +++ b/crayon_themes.class.php @@ -0,0 +1,45 @@ +set_default(self::DEFAULT_THEME, self::DEFAULT_THEME_NAME); + $this->directory(CRAYON_THEME_PATH); + $this->relative_directory(CRAYON_THEME_DIR); + $this->extension('css'); + + CrayonLog::debug("Setting theme directories"); + $upload = CrayonGlobalSettings::upload_path(); + if ($upload) { + $this->user_directory($upload . CRAYON_THEME_DIR); + if (!is_dir($this->user_directory())) { + CrayonGlobalSettings::mkdir($this->user_directory()); + CrayonLog::debug($this->user_directory(), "THEME USER DIR"); + } + } else { + CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load themes."); + } + CrayonLog::debug($this->directory()); + CrayonLog::debug($this->user_directory()); + } + + // XXX Override + public function filename($id, $user = NULL) { + return CrayonUtil::path_slash($id) . parent::filename($id, $user); + } + +} + +?> \ No newline at end of file diff --git a/crayon_wp.class.php b/crayon_wp.class.php new file mode 100644 index 0000000..ca0d418 --- /dev/null +++ b/crayon_wp.class.php @@ -0,0 +1,1340 @@ + '_2.7.2_beta', + 'Date' => '25th April, 2015', + 'AuthorName' => 'Aram Kocharyan', + 'PluginURI' => 'https://github.com/aramk/crayon-syntax-highlighter', +)); + +/* The plugin class that manages all other classes and integrates Crayon with WP */ + +class CrayonWP { + // Properties and Constants =============================================== + + // Associative array, keys are post IDs as strings and values are number of crayons parsed as ints + private static $post_queue = array(); + // Ditto for comments + private static $comment_queue = array(); + private static $post_captures = array(); + private static $comment_captures = array(); + // Whether we are displaying an excerpt + private static $is_excerpt = FALSE; + // Whether we have added styles and scripts + private static $enqueued = FALSE; + // Whether we have already printed the wp head + private static $wp_head = FALSE; + // Used to keep Crayon IDs + private static $next_id = 0; + // String to store the regex for capturing tags + private static $alias_regex = ''; + private static $tags_regex = ''; + private static $tags_regex_legacy = ''; + private static $tag_regexes = array(); + // Defined constants used in bitwise flags + private static $tag_types = array( + CrayonSettings::CAPTURE_MINI_TAG, + CrayonSettings::CAPTURE_PRE, + CrayonSettings::INLINE_TAG, + CrayonSettings::PLAIN_TAG, + CrayonSettings::BACKQUOTE); + private static $tag_bits = array(); + // Used to find legacy tags + private static $legacy_flags = NULL; + + // Used to detect the shortcode + private static $allowed_atts = array('url' => NULL, 'lang' => NULL, 'title' => NULL, 'mark' => NULL, 'range' => NULL, 'inline' => NULL); + const REGEX_CLOSED = '(?:\[\s*crayon(?:-(\w+))?\b([^\]]*)/\s*\])'; // [crayon atts="" /] + const REGEX_TAG = '(?:\[\s*crayon(?:-(\w+))?\b([^\]]*)\](.*?)\[\s*/\s*crayon\s*\])'; // [crayon atts=""] ... [/crayon] + const REGEX_INLINE_CLASS = '\bcrayon-inline\b'; + + const REGEX_CLOSED_NO_CAPTURE = '(?:\[\s*crayon\b[^\]]*/\])'; + const REGEX_TAG_NO_CAPTURE = '(?:\[\s*crayon\b[^\]]*\].*?\[/crayon\])'; + + const REGEX_QUICK_CAPTURE = '(?:\[\s*crayon[^\]]*\].*?\[\s*/\s*crayon\s*\])|(?:\[\s*crayon[^\]]*/\s*\])'; + + const REGEX_BETWEEN_PARAGRAPH = '(?:[^<]*<(?!/?p(\s+[^>]*)?>)[^>]+(\s+[^>]*)?>)*[^<]*((?:\[\s*crayon[^\]]*\].*?\[\s*/\s*crayon\s*\])|(?:\[\s*crayon[^\]]*/\s*\]))(?:[^<]*<(?!/?p(\s+[^>]*)?>)[^>]+(\s+[^>]*)?>)*[^<]*'; + const REGEX_BETWEEN_PARAGRAPH_SIMPLE = '(]*)?>)(.*?)(]*)?>)'; + + // For [crayon-id/] + const REGEX_BR_BEFORE = '#<\s*br\s*/?\s*>\s*(\[\s*crayon-\w+\])#msi'; + const REGEX_BR_AFTER = '#(\[\s*crayon-\w+\])\s*<\s*br\s*/?\s*>#msi'; + + const REGEX_ID = '#(?url($url); + $crayon->code($content); + // Set attributes, should be set after URL to allow language auto detection + $crayon->language($lang); + $crayon->title($title); + $crayon->marked($mark); + $crayon->range($range); + + $crayon->is_inline($inline); + + // Determine if we should highlight + $highlight = array_key_exists('highlight', $atts) ? CrayonUtil::str_to_bool($atts['highlight'], FALSE) : TRUE; + $crayon->is_highlighted($highlight); + return $crayon; + } + + /* Returns Crayon instance */ + public static function instance($extra_attr = array(), $id = NULL) { + CrayonLog::debug('instance'); + + // Create Crayon + $crayon = new CrayonHighlighter(); + + /* Load settings and merge shortcode attributes which will override any existing. + * Stores the other shortcode attributes as settings in the crayon. */ + if (!empty($extra_attr)) { + $crayon->settings($extra_attr); + } + if (!empty($id)) { + $crayon->id($id); + } + + return $crayon; + } + + /* For manually highlighting code, useful for other PHP contexts */ + public static function highlight($code, $add_tags = FALSE, $output_text = FALSE) { + $captures = CrayonWP::capture_crayons(0, $code); + $the_captures = $captures['capture']; + if (count($the_captures) == 0 && $add_tags) { + // Nothing captured, so wrap in a pre and try again + $code = '
' . $code . '
'; + $captures = CrayonWP::capture_crayons(0, $code); + $the_captures = $captures['capture']; + } + $the_content = $captures['content']; + $the_content = CrayonUtil::strip_tags_blacklist($the_content, array('script')); + $the_content = CrayonUtil::strip_event_attributes($the_content); + foreach ($the_captures as $id => $capture) { + $atts = $capture['atts']; + $no_enqueue = array( + CrayonSettings::ENQUEUE_THEMES => FALSE, + CrayonSettings::ENQUEUE_FONTS => FALSE); + $atts = array_merge($atts, $no_enqueue); + $code = $capture['code']; + $crayon = CrayonWP::shortcode($atts, $code, $id); + $crayon_formatted = $crayon->output(TRUE, FALSE); + $the_content = CrayonUtil::preg_replace_escape_back(self::regex_with_id($id), $crayon_formatted, $the_content, 1, $count); + } + + if ($output_text) { + header('Content-Type: text/plain'); + } else { + header('Content-Type: text/html'); + } + return $the_content; + } + + public static function ajax_highlight() { + $code = isset($_POST['code']) ? $_POST['code'] : null; + if (!$code) { + $code = isset($_GET['code']) ? $_GET['code'] : null; + } + if ($code) { + echo self::highlight($code, FALSE, TRUE); + } else { + echo "No code specified."; + } + exit(); + } + + /* Uses the main query */ + public static function wp() { + CrayonLog::debug('wp (global)'); + global $wp_the_query; + if (isset($wp_the_query->posts)) { + $posts = $wp_the_query->posts; + self::the_posts($posts); + } + } + + // TODO put args into an array + public static function capture_crayons($wp_id, $wp_content, $extra_settings = array(), $args = array()) { + extract($args); + CrayonUtil::set_var($callback, NULL); + CrayonUtil::set_var($callback_extra_args, NULL); + CrayonUtil::set_var($ignore, TRUE); + CrayonUtil::set_var($preserve_atts, FALSE); + CrayonUtil::set_var($flags, NULL); + CrayonUtil::set_var($skip_setting_check, FALSE); + CrayonUtil::set_var($just_check, FALSE); + + // Will contain captured crayons and altered $wp_content + $capture = array('capture' => array(), 'content' => $wp_content, 'has_captured' => FALSE); + + // Do not apply Crayon for posts older than a certain date. + $disable_date = trim(CrayonGlobalSettings::val(CrayonSettings::DISABLE_DATE)); + if ($disable_date && get_post_time('U', true, $wp_id) <= strtotime($disable_date)) { + return $capture; + } + + // Flags for which Crayons to convert + $in_flag = self::in_flag($flags); + + CrayonLog::debug('capture for id ' . $wp_id . ' len ' . strlen($wp_content)); + + // Convert
 tags to crayon tags, if needed
+        if ((CrayonGlobalSettings::val(CrayonSettings::CAPTURE_PRE) || $skip_setting_check) && $in_flag[CrayonSettings::CAPTURE_PRE]) {
+            // XXX This will fail if 
 is used inside another 

+            $wp_content = preg_replace_callback('#(?]*)\bclass\s*=\s*(["\'])(.*?)\2([^>]*))?)([^>]*)>(.*?)<\s*/\s*pre\s*>#msi', 'CrayonWP::pre_tag', $wp_content);
+        }
+
+        // Convert mini [php][/php] tags to crayon tags, if needed
+        if ((CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG) || $skip_setting_check) && $in_flag[CrayonSettings::CAPTURE_MINI_TAG]) {
+            $wp_content = preg_replace('#(? to inline tags
+        if (CrayonGlobalSettings::val(CrayonSettings::CODE_TAG_CAPTURE)) {
+            $inline = CrayonGlobalSettings::val(CrayonSettings::CODE_TAG_CAPTURE_TYPE) === 0;
+            $inline_setting = $inline ? 'inline="true"' : '';
+            $wp_content = preg_replace('#<(\s*code\b)([^>]*)>(.*?)]*>#msi', '[crayon ' . $inline_setting . ' \2]\3[/crayon]', $wp_content);
+        }
+
+        if ((CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG) || $skip_setting_check) && $in_flag[CrayonSettings::INLINE_TAG]) {
+            if (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG_CAPTURE)) {
+                // Convert inline {php}{/php} tags to crayon tags, if needed
+                $wp_content = preg_replace('#(? tags to inline crayon tags
+            $wp_content = preg_replace_callback('#(?]*)\bclass\s*=\s*(["\'])(.*?)\2([^>]*)>(.*?)<\s*/\s*span\s*>#msi', 'CrayonWP::span_tag', $wp_content);
+        }
+
+        // Convert [plain] tags into 
, if needed + if ((CrayonGlobalSettings::val(CrayonSettings::PLAIN_TAG) || $skip_setting_check) && $in_flag[CrayonSettings::PLAIN_TAG]) { + $wp_content = preg_replace_callback('#(?get($theme_id); + // If theme not found, use fallbacks + if (!$theme) { + // Given theme is invalid, try global setting + $theme_id = CrayonGlobalSettings::val(CrayonSettings::THEME); + $theme = CrayonResources::themes()->get($theme_id); + if (!$theme) { + // Global setting is invalid, fall back to default + $theme = CrayonResources::themes()->get_default(); + $theme_id = CrayonThemes::DEFAULT_THEME; + } + } + // If theme is now valid, change the array + if ($theme) { + if (!$preserve_atts || isset($atts_array[CrayonSettings::THEME])) { + $atts_array[CrayonSettings::THEME] = $theme_id; + } + $theme->used(TRUE); + } + + // Capture font + $font_id = array_key_exists(CrayonSettings::FONT, $atts_array) ? $atts_array[CrayonSettings::FONT] : ''; + $font = CrayonResources::fonts()->get($font_id); + // If font not found, use fallbacks + if (!$font) { + // Given font is invalid, try global setting + $font_id = CrayonGlobalSettings::val(CrayonSettings::FONT); + $font = CrayonResources::fonts()->get($font_id); + if (!$font) { + // Global setting is invalid, fall back to default + $font = CrayonResources::fonts()->get_default(); + $font_id = CrayonFonts::DEFAULT_FONT; + } + } + + // If font is now valid, change the array + if ($font /* != NULL && $font_id != CrayonFonts::DEFAULT_FONT*/) { + if (!$preserve_atts || isset($atts_array[CrayonSettings::FONT])) { + $atts_array[CrayonSettings::FONT] = $font_id; + } + $font->used(TRUE); + } + + // Add array of atts and content to post queue with key as post ID + // XXX If at this point no ID is added we have failed! + $id = !empty($open_ids[$i]) ? $open_ids[$i] : $closed_ids[$i]; + //if ($ignore) { + $code = self::crayon_remove_ignore($contents[$i]); + //} + $c = array('post_id' => $wp_id, 'atts' => $atts_array, 'code' => $code); + $capture['capture'][$id] = $c; + CrayonLog::debug('capture finished for post id ' . $wp_id . ' crayon-id ' . $id . ' atts: ' . count($atts_array) . ' code: ' . strlen($code)); + $is_inline = isset($atts_array['inline']) && CrayonUtil::str_to_bool($atts_array['inline'], FALSE) ? '-i' : ''; + if ($callback === NULL) { + $wp_content = str_replace($full_matches[$i], '[crayon-' . $id . $is_inline . '/]', $wp_content); + } else { + $wp_content = call_user_func($callback, $c, $full_matches[$i], $id, $is_inline, $wp_content, $callback_extra_args); + } + } + + } + + if ($ignore) { + // We need to escape ignored Crayons, since they won't be captured + // XXX Do this after replacing the Crayon with the shorter ID tag, otherwise $full_matches will be different from $wp_content + $wp_content = self::crayon_remove_ignore($wp_content); + } + + $result = self::replace_backquotes($wp_content); + $wp_content = $result['content']; + + $capture['content'] = $wp_content; + return $capture; + } + + public static function replace_backquotes($wp_content) { + // Convert `` backquote tags into , if needed + // XXX Some code may contain `` so must do it after all Crayons are captured + $result = array(); + $prev_count = strlen($wp_content); + if (CrayonGlobalSettings::val(CrayonSettings::BACKQUOTE)) { + $wp_content = preg_replace('#(?$1', $wp_content); + } + $result['changed'] = $prev_count !== strlen($wp_content); + $result['content'] = $wp_content; + return $result; + } + + /* Search for Crayons in posts and queue them for creation */ + public static function the_posts($posts) { + CrayonLog::debug('the_posts'); + + // Whether to enqueue syles/scripts + CrayonSettingsWP::load_settings(TRUE); // We will eventually need more than the settings + + self::init_tags_regex(); + $crayon_posts = CrayonSettingsWP::load_posts(); // Loads posts containing crayons + + // Search for shortcode in posts + foreach ($posts as $post) { + $wp_id = $post->ID; + $is_page = $post->post_type == 'page'; + if (!in_array($wp_id, $crayon_posts)) { + // If we get query for a page, then that page might have a template and load more posts containing Crayons + // By this state, we would be unable to enqueue anything (header already written). + if (CrayonGlobalSettings::val(CrayonSettings::SAFE_ENQUEUE) && $is_page) { + CrayonGlobalSettings::set(CrayonSettings::ENQUEUE_THEMES, false); + CrayonGlobalSettings::set(CrayonSettings::ENQUEUE_FONTS, false); + } + // Only include crayon posts + continue; + } + + $id_str = strval($wp_id); + + if (wp_is_post_revision($wp_id)) { + // Ignore post revisions, use the parent, which has the updated post content + continue; + } + + if (isset(self::$post_captures[$id_str])) { + // Don't capture twice + // XXX post->post_content is reset each loop, replace content + // Doing this might cause content changed by other plugins between the last loop + // to fail, so be cautious + $post->post_content = self::$post_captures[$id_str]; + continue; + } + // Capture post Crayons + $captures = self::capture_crayons(intval($post->ID), $post->post_content); + + // XXX Careful not to undo changes by other plugins + // XXX Must replace to remove $ for ignored Crayons + $post->post_content = $captures['content']; + self::$post_captures[$id_str] = $captures['content']; + if ($captures['has_captured'] === TRUE) { + self::$post_queue[$id_str] = array(); + foreach ($captures['capture'] as $capture_id => $capture_content) { + self::$post_queue[$id_str][$capture_id] = $capture_content; + } + } + + // Search for shortcode in comments + if (CrayonGlobalSettings::val(CrayonSettings::COMMENTS)) { + $comments = get_comments(array('post_id' => $post->ID)); + foreach ($comments as $comment) { + $id_str = strval($comment->comment_ID); + if (isset(self::$comment_queue[$id_str])) { + // Don't capture twice + continue; + } + // Capture comment Crayons, decode their contents if decode not specified + $content = apply_filters('get_comment_text', $comment->comment_content, $comment); + $captures = self::capture_crayons($comment->comment_ID, $content, array(CrayonSettings::DECODE => TRUE)); + self::$comment_captures[$id_str] = $captures['content']; + if ($captures['has_captured'] === TRUE) { + self::$comment_queue[$id_str] = array(); + foreach ($captures['capture'] as $capture_id => $capture_content) { + self::$comment_queue[$id_str][$capture_id] = $capture_content; + } + } + } + } + } + + return $posts; + } + + private static function add_crayon_id($content) { + $uid = $content[0] . '-' . str_replace('.', '', uniqid('', true)); + CrayonLog::debug('add_crayon_id ' . $uid); + return $uid; + } + + private static function get_crayon_id() { + return self::$next_id++; + } + + public static function enqueue_resources() { + if (!self::$enqueued) { + + CrayonLog::debug('enqueue'); + global $CRAYON_VERSION; + CrayonSettingsWP::load_settings(TRUE); + if (CRAYON_MINIFY) { + wp_enqueue_style('crayon', plugins_url(CRAYON_STYLE_MIN, __FILE__), array(), $CRAYON_VERSION); + wp_enqueue_script('crayon_js', plugins_url(CRAYON_JS_MIN, __FILE__), array('jquery'), $CRAYON_VERSION, CrayonGlobalSettings::val(CrayonSettings::DELAY_LOAD_JS)); + } else { + wp_enqueue_style('crayon_style', plugins_url(CRAYON_STYLE, __FILE__), array(), $CRAYON_VERSION); + wp_enqueue_style('crayon_global_style', plugins_url(CRAYON_STYLE_GLOBAL, __FILE__), array(), $CRAYON_VERSION); + wp_enqueue_script('crayon_util_js', plugins_url(CRAYON_JS_UTIL, __FILE__), array('jquery'), $CRAYON_VERSION); + CrayonSettingsWP::other_scripts(); + } + CrayonSettingsWP::init_js_settings(); + self::$enqueued = TRUE; + } + } + + private static function init_tags_regex($force = FALSE, $flags = NULL, &$tags_regex = NULL) { + CrayonSettingsWP::load_settings(); + self::init_tag_bits(); + + // Default output + if ($tags_regex === NULL) { + $tags_regex = & self::$tags_regex; + } + + if ($force || $tags_regex === "") { + // Check which tags are in $flags. If it's NULL, then all flags are true. + $in_flag = self::in_flag($flags); + + if (($in_flag[CrayonSettings::CAPTURE_MINI_TAG] && (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG)) || $force) || + ($in_flag[CrayonSettings::INLINE_TAG] && (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG) && CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG_CAPTURE)) || $force) + ) { + $aliases = CrayonResources::langs()->ids_and_aliases(); + self::$alias_regex = ''; + for ($i = 0; $i < count($aliases); $i++) { + $alias = $aliases[$i]; + $alias_regex = CrayonUtil::esc_hash(CrayonUtil::esc_regex($alias)); + if ($i != count($aliases) - 1) { + $alias_regex .= '|'; + } + self::$alias_regex .= $alias_regex; + } + } + + // Add other tags + $tags_regex = '#(? '(\[\s*(' . self::$alias_regex . ')\b)', + CrayonSettings::CAPTURE_PRE => '(<\s*pre\b)', + CrayonSettings::INLINE_TAG => '(' . self::REGEX_INLINE_CLASS . ')' . '|(\{\s*(' . self::$alias_regex . ')\b([^\}]*)\})', + CrayonSettings::PLAIN_TAG => '(\s*\[\s*plain\b)', + CrayonSettings::BACKQUOTE => '(`[^`]*`)' + ); + + foreach ($tag_regexes as $tag => $regex) { + if ($in_flag[$tag] && (CrayonGlobalSettings::val($tag) || $force)) { + $tags_regex .= '|' . $regex; + } + } + $tags_regex .= ')#msi'; + } + + } + + private static function init_tag_bits() { + if (count(self::$tag_bits) == 0) { + $values = array(); + for ($i = 0; $i < count(self::$tag_types); $i++) { + $j = pow(2, $i); + self::$tag_bits[self::$tag_types[$i]] = $j; + } + } + } + + public static function tag_bit($tag) { + self::init_tag_bits(); + if (isset(self::$tag_bits[$tag])) { + return self::$tag_bits[$tag]; + } else { + return null; + } + } + + public static function in_flag($flags) { + $in_flag = array(); + foreach (self::$tag_types as $tag) { + $in_flag[$tag] = $flags === NULL || ($flags & self::tag_bit($tag)) > 0; + } + return $in_flag; + } + + private static function init_legacy_tag_bits() { + if (self::$legacy_flags === NULL) { + self::$legacy_flags = self::tag_bit(CrayonSettings::CAPTURE_MINI_TAG) | + self::tag_bit(CrayonSettings::INLINE_TAG) | + self::tag_bit(CrayonSettings::PLAIN_TAG); + } + if (self::$tags_regex_legacy === "") { + self::init_tags_regex(TRUE, self::$legacy_flags, self::$tags_regex_legacy); + } + } + + // Add Crayon into the_content + public static function the_content($the_content) { + CrayonLog::debug('the_content'); + + // Some themes make redundant queries and don't need extra work... + if (strlen($the_content) == 0) { + CrayonLog::debug('the_content blank'); + return $the_content; + } + + global $post; + + // Go through queued posts and find crayons + $post_id = strval($post->ID); + + if (self::$is_excerpt) { + CrayonLog::debug('excerpt'); + if (CrayonGlobalSettings::val(CrayonSettings::EXCERPT_STRIP)) { + CrayonLog::debug('excerpt strip'); + // Remove Crayon from content if we are displaying an excerpt + $the_content = preg_replace(self::REGEX_WITH_ID, '', $the_content); + } + // Otherwise Crayon remains with ID and replaced later + return $the_content; + } + + // Find if this post has Crayons + if (array_key_exists($post_id, self::$post_queue)) { + self::enqueue_resources(); + + // XXX We want the plain post content, no formatting + $the_content_original = $the_content; + + // Replacing may cause

tags to become disjoint with a

inside them, close and reopen them if needed + $the_content = preg_replace_callback('#' . self::REGEX_BETWEEN_PARAGRAPH_SIMPLE . '#msi', 'CrayonWP::add_paragraphs', $the_content); + // Loop through Crayons + $post_in_queue = self::$post_queue[$post_id]; + + foreach ($post_in_queue as $id => $v) { + $atts = $v['atts']; + $content = $v['code']; // The code we replace post content with + $crayon = self::shortcode($atts, $content, $id); + if (is_feed()) { + // Convert the plain code to entities and put in a
 tag
+                    $crayon_formatted = CrayonFormatter::plain_code($crayon->code(), $crayon->setting_val(CrayonSettings::DECODE));
+                } else {
+                    // Apply shortcode to the content
+                    $crayon_formatted = $crayon->output(TRUE, FALSE);
+                }
+                // Replace the code with the Crayon
+                CrayonLog::debug('the_content: id ' . $post_id . ' has UID ' . $id . ' : ' . intval(stripos($the_content, $id) !== FALSE));
+                $the_content = CrayonUtil::preg_replace_escape_back(self::regex_with_id($id), $crayon_formatted, $the_content, 1, $count);
+                CrayonLog::debug('the_content: REPLACED for id ' . $post_id . ' from len ' . strlen($the_content_original) . ' to ' . strlen($the_content));
+            }
+        }
+
+        return $the_content;
+    }
+
+    public static function pre_comment_text($text) {
+        global $comment;
+        $comment_id = strval($comment->comment_ID);
+        if (array_key_exists($comment_id, self::$comment_captures)) {
+            // Replace with IDs now that we need to
+            $text = self::$comment_captures[$comment_id];
+        }
+        return $text;
+    }
+
+    public static function comment_text($text) {
+        global $comment;
+        $comment_id = strval($comment->comment_ID);
+        // Find if this post has Crayons
+        if (array_key_exists($comment_id, self::$comment_queue)) {
+            // XXX We want the plain post content, no formatting
+            $the_content_original = $text;
+            // Loop through Crayons
+            $post_in_queue = self::$comment_queue[$comment_id];
+
+            foreach ($post_in_queue as $id => $v) {
+                $atts = $v['atts'];
+                $content = $v['code']; // The code we replace post content with
+                $crayon = self::shortcode($atts, $content, $id);
+                $crayon_formatted = $crayon->output(TRUE, FALSE);
+                // Replacing may cause 

tags to become disjoint with a

inside them, close and reopen them if needed + if (!$crayon->is_inline()) { + $text = preg_replace_callback('#' . self::REGEX_BETWEEN_PARAGRAPH_SIMPLE . '#msi', 'CrayonWP::add_paragraphs', $text); + } + // Replace the code with the Crayon + $text = CrayonUtil::preg_replace_escape_back(self::regex_with_id($id), $crayon_formatted, $text, 1, $text); + } + } + return $text; + } + + public static function add_paragraphs($capture) { + if (count($capture) != 4) { + CrayonLog::debug('add_paragraphs: 0'); + return $capture[0]; + } + $capture[2] = preg_replace('#(?:<\s*br\s*/\s*>\s*)?(\[\s*crayon-\w+/\])(?:<\s*br\s*/\s*>\s*)?#msi', '

$1

', $capture[2]); + // If [crayon appears right after

then we will generate

, remove all these + $paras = $capture[1] . $capture[2] . $capture[3]; + return $paras; + } + + // Remove Crayons from the_excerpt + public static function the_excerpt($the_excerpt) { + CrayonLog::debug('excerpt'); + global $post; + if (!empty($post->post_excerpt)) { + // Use custom excerpt if defined + $the_excerpt = wpautop($post->post_excerpt); + } else { + // Pass wp_trim_excerpt('') to gen from content (and remove [crayons]) + $the_excerpt = wpautop(wp_trim_excerpt('')); + } + // XXX Returning "" may cause it to default to full contents... + return $the_excerpt . ' '; + } + + // Used to capture pre and span tags which have settings in class attribute + public static function class_tag($matches) { + // If class exists, atts is not captured + $pre_class = $matches[1]; + $quotes = $matches[2]; + $class = $matches[3]; + $post_class = $matches[4]; + $atts = $matches[5]; + $content = $matches[6]; + + // If we find a crayon=false in the attributes, or a crayon[:_]false in the class, then we should not capture + $ignore_regex_atts = '#crayon\s*=\s*(["\'])\s*(false|no|0)\s*\1#msi'; + $ignore_regex_class = '#crayon\s*[:_]\s*(false|no|0)#msi'; + if (preg_match($ignore_regex_atts, $atts) !== 0 || + preg_match($ignore_regex_class, $class) !== 0 + ) { + return $matches[0]; + } + + if (!empty($class)) { + if (preg_match('#\bignore\s*:\s*true#', $class)) { + // Prevent any changes if ignoring the tag. + return $matches[0]; + } + // crayon-inline is turned into inline="1" + $class = preg_replace('#' . self::REGEX_INLINE_CLASS . '#mi', 'inline="1"', $class); + // "setting[:_]value" style settings in the class attribute + $class = preg_replace('#\b([A-Za-z-]+)[_:](\S+)#msi', '$1=' . $quotes . '$2' . $quotes, $class); + } + + // data-url is turned into url="" + if (!empty($post_class)) { + $post_class = preg_replace('#\bdata-url\s*=#mi', 'url=', $post_class); + } + if (!empty($pre_class)) { + $pre_class = preg_replace('#\bdata-url\s*=#mi', 'url=', $pre_class); + } + + if (!empty($class)) { + return "[crayon $pre_class $class $post_class]{$content}[/crayon]"; + } else { + return "[crayon $atts]{$content}[/crayon]"; + } + } + + // Capture span tag and extract settings from the class attribute, if present. + public static function span_tag($matches) { + // Only use tags with crayon-inline class + if (preg_match('#' . self::REGEX_INLINE_CLASS . '#mi', $matches[3])) { + // no $atts + $matches[6] = $matches[5]; + $matches[5] = ''; + return self::class_tag($matches); + } else { + // Don't turn regular s into Crayons + return $matches[0]; + } + } + + // Capture pre tag and extract settings from the class attribute, if present. + public static function pre_tag($matches) { + return self::class_tag($matches); + } + + /** + * Check if the $ notation has been used to ignore [crayon] tags within posts and remove all matches + * Can also remove if used without $ as a regular crayon + * + * @deprecated + */ + public static function crayon_remove_ignore($the_content, $ignore_flag = '$') { + if ($ignore_flag == FALSE) { + $ignore_flag = ''; + } + $ignore_flag_regex = preg_quote($ignore_flag); + + $the_content = preg_replace('#' . $ignore_flag_regex . '(\s*\[\s*crayon)#msi', '$1', $the_content); + $the_content = preg_replace('#(crayon\s*\])\s*\$#msi', '$1', $the_content); + + if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_PRE)) { + $the_content = str_ireplace(array($ignore_flag . '' . $ignore_flag), array(''), $the_content); + // Remove any tags wrapping around the whole code, since we won't needed them + // XXX This causes tags to be stripped in the post content! Disabled now. + // $the_content = preg_replace('#(^\s*<\s*code[^>]*>)|(<\s*/\s*code[^>]*>\s*$)#msi', '', $the_content); + } + if (CrayonGlobalSettings::val(CrayonSettings::PLAIN_TAG)) { + $the_content = str_ireplace(array($ignore_flag . '[plain', 'plain]' . $ignore_flag), array('[plain', 'plain]'), $the_content); + } + if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG) || + (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG && CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG_CAPTURE))) + ) { + self::init_tags_regex(); + // $the_content = preg_replace('#'.$ignore_flag_regex.'\s*([\[\{])\s*('. self::$alias_regex .')#', '$1$2', $the_content); + // $the_content = preg_replace('#('. self::$alias_regex .')\s*([\]\}])\s*'.$ignore_flag_regex.'#', '$1$2', $the_content); + $the_content = preg_replace('#' . $ignore_flag_regex . '(\s*[\[\{]\s*(' . self::$alias_regex . ')[^\]]*[\]\}])#', '$1', $the_content); + } + if (CrayonGlobalSettings::val(CrayonSettings::BACKQUOTE)) { + $the_content = str_ireplace('\\`', '`', $the_content); + } + return $the_content; + } + + public static function wp_head() { + CrayonLog::debug('head'); + + self::$wp_head = TRUE; + if (!self::$enqueued) { + CrayonLog::debug('head: missed enqueue'); + // We have missed our chance to check before enqueuing. Use setting to either load always or only in the_post + CrayonSettingsWP::load_settings(TRUE); // Ensure settings are loaded + // If we need the tag editor loaded at all times, we must enqueue at all times + if (!CrayonGlobalSettings::val(CrayonSettings::EFFICIENT_ENQUEUE) || CrayonGlobalSettings::val(CrayonSettings::TAG_EDITOR_FRONT)) { + CrayonLog::debug('head: force enqueue'); + // Efficient enqueuing disabled, always load despite enqueuing or not in the_post + self::enqueue_resources(); + } + } + // Enqueue Theme CSS + if (CrayonGlobalSettings::val(CrayonSettings::ENQUEUE_THEMES)) { + self::crayon_theme_css(); + } + // Enqueue Font CSS + if (CrayonGlobalSettings::val(CrayonSettings::ENQUEUE_FONTS)) { + self::crayon_font_css(); + } + } + + public static function save_post($update_id, $post) { + self::refresh_post($post); + } + + public static function filter_post_data($data, $postarr) { + // Remove the selected CSS that may be present from the tag editor. + CrayonTagEditorWP::init_settings(); + $css_selected = CrayonTagEditorWP::$settings['css_selected']; + $data['post_content'] = preg_replace("#(class\s*=\s*(\\\\[\"'])[^\"']*)$css_selected([^\"']*\\2)#msi", '$1$3', $data['post_content']); + return $data; + } + + public static function refresh_post($post, $refresh_legacy = TRUE, $save = TRUE) { + $postID = $post->ID; + if (wp_is_post_revision($postID)) { + // Ignore revisions + return; + } + if (CrayonWP::scan_post($post)) { + CrayonSettingsWP::add_post($postID, $save); + if ($refresh_legacy) { + if (self::scan_legacy_post($post)) { + CrayonSettingsWP::add_legacy_post($postID, $save); + } else { + CrayonSettingsWP::remove_legacy_post($postID, $save); + } + } + } else { + CrayonSettingsWP::remove_post($postID, $save); + CrayonSettingsWP::remove_legacy_post($postID, $save); + } + } + + public static function refresh_posts() { + CrayonSettingsWP::remove_posts(); + CrayonSettingsWP::remove_legacy_posts(); + foreach (CrayonWP::get_posts() as $post) { + self::refresh_post($post, TRUE, FALSE); + } + CrayonSettingsWP::save_posts(); + CrayonSettingsWP::save_legacy_posts(); + + } + + public static function save_comment($id, $is_spam = NULL, $comment = NULL) { + self::init_tags_regex(); + if ($comment === NULL) { + $comment = get_comment($id); + } + $content = $comment->comment_content; + $post_id = $comment->comment_post_ID; + $found = preg_match(self::$tags_regex, $content); + if ($found) { + CrayonSettingsWP::add_post($post_id); + } + return $found; + } + + public static function crayon_theme_css() { + global $CRAYON_VERSION; + CrayonSettingsWP::load_settings(); + $css = CrayonResources::themes()->get_used_css(); + foreach ($css as $theme => $url) { + wp_enqueue_style('crayon-theme-' . $theme, $url, array(), $CRAYON_VERSION); + } + } + + public static function crayon_font_css() { + global $CRAYON_VERSION; + CrayonSettingsWP::load_settings(); + $css = CrayonResources::fonts()->get_used_css(); + foreach ($css as $font_id => $url) { + wp_enqueue_style('crayon-font-' . $font_id, $url, array(), $CRAYON_VERSION); + } + } + + public static function init($request) { + CrayonLog::debug('init'); + crayon_load_plugin_textdomain(); + } + + public static function init_ajax() { + add_action('wp_ajax_crayon-tag-editor', 'CrayonTagEditorWP::content'); + add_action('wp_ajax_nopriv_crayon-tag-editor', 'CrayonTagEditorWP::content'); + add_action('wp_ajax_crayon-highlight', 'CrayonWP::ajax_highlight'); + add_action('wp_ajax_nopriv_crayon-highlight', 'CrayonWP::ajax_highlight'); + if (current_user_can('manage_options')) { + add_action('wp_ajax_crayon-ajax', 'CrayonWP::ajax'); + add_action('wp_ajax_crayon-theme-editor', 'CrayonThemeEditorWP::content'); + add_action('wp_ajax_crayon-theme-editor-save', 'CrayonThemeEditorWP::save'); + add_action('wp_ajax_crayon-theme-editor-delete', 'CrayonThemeEditorWP::delete'); + add_action('wp_ajax_crayon-theme-editor-duplicate', 'CrayonThemeEditorWP::duplicate'); + add_action('wp_ajax_crayon-theme-editor-submit', 'CrayonThemeEditorWP::submit'); + add_action('wp_ajax_crayon-show-posts', 'CrayonSettingsWP::show_posts'); + add_action('wp_ajax_crayon-show-langs', 'CrayonSettingsWP::show_langs'); + add_action('wp_ajax_crayon-show-preview', 'CrayonSettingsWP::show_preview'); + } + } + + public static function ajax() { + $allowed = array(CrayonSettings::HIDE_HELP); + foreach ($allowed as $allow) { + if (array_key_exists($allow, $_GET)) { + CrayonGlobalSettings::set($allow, $_GET[$allow]); + CrayonSettingsWP::save_settings(); + } + } + } + + public static function get_posts() { + $query = new WP_Query(array('post_type' => 'any', 'suppress_filters' => TRUE, 'posts_per_page' => '-1')); + if (isset($query->posts)) { + return $query->posts; + } else { + return array(); + } + } + + /** + * Return an array of post IDs where crayons occur. + * Comments are ignored by default. + */ + public static function scan_posts($check_comments = FALSE) { + $crayon_posts = array(); + foreach (self::get_posts() as $post) { + if (self::scan_post($post)) { + $crayon_posts[] = $post->ID; + } + } + return $crayon_posts; + } + + public static function scan_legacy_posts($init_regex = TRUE, $check_comments = FALSE) { + if ($init_regex) { + // We can skip this if needed + self::init_tags_regex(); + } + $crayon_posts = array(); + foreach (self::get_posts() as $post) { + if (self::scan_legacy_post($post)) { // TODO this part is different + $crayon_posts[] = $post->ID; + } + } + return $crayon_posts; + } + + /** + * Returns TRUE if a given post contains a Crayon tag + */ + public static function scan_post($post, $scan_comments = TRUE, $flags = NULL) { + if ($flags === NULL) { + self::init_tags_regex(TRUE); + } + + $id = $post->ID; + + $args = array( + 'ignore' => FALSE, + 'flags' => $flags, + 'skip_setting_check' => TRUE, + 'just_check' => TRUE + ); + $captures = self::capture_crayons($id, $post->post_content, array(), $args); + + if ($captures['has_captured']) { + return TRUE; + } else if ($scan_comments) { + CrayonSettingsWP::load_settings(TRUE); + if (CrayonGlobalSettings::val(CrayonSettings::COMMENTS)) { + $comments = get_comments(array('post_id' => $id)); + foreach ($comments as $comment) { + if (self::scan_comment($comment, $flags)) { + return TRUE; + } + } + } + } + return FALSE; + } + + public static function scan_legacy_post($post, $scan_comments = TRUE) { + self::init_legacy_tag_bits(); + return self::scan_post($post, $scan_comments, self::$legacy_flags); + } + + /** + * Returns TRUE if the comment contains a Crayon tag + */ + public static function scan_comment($comment, $flags = NULL) { + if ($flags === NULL) { + self::init_tags_regex(); + } + $args = array( + 'ignore' => FALSE, + 'flags' => $flags, + 'skip_setting_check' => TRUE, + 'just_check' => TRUE + ); + $content = apply_filters('get_comment_text', $comment->comment_content, $comment); + $captures = self::capture_crayons($comment->comment_ID, $content, array(), $args); + return $captures['has_captured']; + } + + public static function install() { + self::refresh_posts(); + self::update(); + } + + public static function uninstall() { + + } + + public static function update() { + global $CRAYON_VERSION; + CrayonSettingsWP::load_settings(TRUE); + $settings = CrayonSettingsWP::get_settings(); + if ($settings === NULL || !isset($settings[CrayonSettings::VERSION])) { + return; + } + + $version = $settings[CrayonSettings::VERSION]; + + // Only upgrade if the version differs + if ($version != $CRAYON_VERSION) { + $defaults = CrayonSettings::get_defaults_array(); + $touched = FALSE; + + // Upgrade database and settings + + if (CrayonUtil::version_compare($version, '1.7.21') < 0) { + $settings[CrayonSettings::SCROLL] = $defaults[CrayonSettings::SCROLL]; + $touched = TRUE; + } + + if (CrayonUtil::version_compare($version, '1.7.23') < 0 && $settings[CrayonSettings::FONT] == 'theme-font') { + $settings[CrayonSettings::FONT] = $defaults[CrayonSettings::FONT]; + $touched = TRUE; + } + + if (CrayonUtil::version_compare($version, '1.14') < 0) { + CrayonLog::syslog("Updated to v1.14: Font size enabled"); + $settings[CrayonSettings::FONT_SIZE_ENABLE] = TRUE; + } + + if (CrayonUtil::version_compare($version, '1.17') < 0) { + $settings[CrayonSettings::HIDE_HELP] = FALSE; + } + + // Save new version + $settings[CrayonSettings::VERSION] = $CRAYON_VERSION; + CrayonSettingsWP::save_settings($settings); + CrayonLog::syslog("Updated from $version to $CRAYON_VERSION"); + + // Refresh to show new settings + header('Location: ' . CrayonUtil::current_url()); + exit(); + } + } + + public static function basename() { + return plugin_basename(__FILE__); + } + + public static function pre_excerpt($e) { + CrayonLog::debug('pre_excerpt'); + self::$is_excerpt = TRUE; + return $e; + } + + public static function post_excerpt($e) { + CrayonLog::debug('post_excerpt'); + self::$is_excerpt = FALSE; + $e = self::the_content($e); + return $e; + } + + public static function post_get_excerpt($e) { + CrayonLog::debug('post_get_excerpt'); + self::$is_excerpt = FALSE; + return $e; + } + + /** + * Converts Crayon tags found in WP to
 form.
+     * XXX: This will alter blog content, so backup before calling.
+     * XXX: Do NOT call this while updating posts or comments, it may cause an infinite loop or fail.
+     * @param $encode Whether to detect missing "decode" attribute and encode html entities in the code.
+     */
+    public static function convert_tags($encode = FALSE) {
+        $crayon_posts = CrayonSettingsWP::load_legacy_posts();
+        if ($crayon_posts === NULL) {
+            return;
+        }
+
+        self::init_legacy_tag_bits();
+        $args = array(
+            'callback' => 'CrayonWP::capture_replace_pre',
+            'callback_extra_args' => array('encode' => $encode),
+            'ignore' => FALSE,
+            'preserve_atts' => TRUE,
+            'flags' => self::$legacy_flags,
+            'skip_setting_check' => TRUE
+        );
+
+        foreach ($crayon_posts as $postID) {
+            $post = get_post($postID);
+            $post_content = $post->post_content;
+            $post_captures = self::capture_crayons($postID, $post_content, array(), $args);
+
+            if ($post_captures['has_captured'] === TRUE) {
+                $post_obj = array();
+                $post_obj['ID'] = $postID;
+                $post_obj['post_content'] = addslashes($post_captures['content']);
+                wp_update_post($post_obj);
+                CrayonLog::syslog("Converted Crayons in post ID $postID to pre tags", 'CONVERT');
+            }
+
+            if (CrayonGlobalSettings::val(CrayonSettings::COMMENTS)) {
+                $comments = get_comments(array('post_id' => $postID));
+                foreach ($comments as $comment) {
+                    $commentID = $comment->comment_ID;
+                    $comment_captures = self::capture_crayons($commentID, $comment->comment_content, array(CrayonSettings::DECODE => TRUE), $args);
+
+                    if ($comment_captures['has_captured'] === TRUE) {
+                        $comment_obj = array();
+                        $comment_obj['comment_ID'] = $commentID;
+                        $comment_obj['comment_content'] = $comment_captures['content'];
+                        wp_update_comment($comment_obj);
+                        CrayonLog::syslog("Converted Crayons in post ID $postID, comment ID $commentID to pre tags", 'CONVERT');
+                    }
+                }
+            }
+        }
+
+        self::refresh_posts();
+    }
+
+    // Used as capture_crayons callback
+    public static function capture_replace_pre($capture, $original, $id, $is_inline, $wp_content, $args = array()) {
+        $code = $capture['code'];
+        $oldAtts = $capture['atts'];
+        $newAtts = array();
+        $encode = isset($args['encode']) ? $args['encode'] : FALSE;
+        if (!isset($oldAtts[CrayonSettings::DECODE]) && $encode) {
+            // Encode the content, since no decode information exists.
+            $code = CrayonUtil::htmlentities($code);
+        }
+        // We always set decode=1 irrespectively - so at this point the code is assumed to be encoded
+        $oldAtts[CrayonSettings::DECODE] = TRUE;
+        $newAtts['class'] = CrayonUtil::html_attributes($oldAtts, CrayonGlobalSettings::val_str(CrayonSettings::ATTR_SEP), '');
+        return str_replace($original, CrayonUtil::html_element('pre', $code, $newAtts), $wp_content);
+    }
+
+    // Add TinyMCE to comments
+    public static function tinymce_comment_enable($args) {
+        if (function_exists('wp_editor')) {
+            ob_start();
+            wp_editor('', 'comment', array('tinymce'));
+            $args['comment_field'] = ob_get_clean();
+        }
+        return $args;
+    }
+
+    public static function allowed_tags() {
+        global $allowedtags;
+        $tags = array('pre', 'span', 'code');
+        foreach ($tags as $tag) {
+            $current_atts = isset($allowedtags[$tag]) ? $allowedtags[$tag] : array();
+            // TODO data-url isn't recognised by WP
+            $new_atts = array('class' => TRUE, 'title' => TRUE, 'data-url' => TRUE);
+            $allowedtags[$tag] = array_merge($current_atts, $new_atts);
+        }
+    }
+
+}
+
+// Only if WP is loaded
+if (defined('ABSPATH')) {
+    if (!is_admin()) {
+        // Filters and Actions
+
+        add_filter('init', 'CrayonWP::init');
+
+        CrayonSettingsWP::load_settings(TRUE);
+        if (CrayonGlobalSettings::val(CrayonSettings::MAIN_QUERY)) {
+            add_action('wp', 'CrayonWP::wp', 100);
+        } else {
+            add_filter('the_posts', 'CrayonWP::the_posts', 100);
+        }
+
+        // XXX Some themes like to play with the content, make sure we replace after they're done
+        add_filter('the_content', 'CrayonWP::the_content', 100);
+
+        // Highlight bbPress content
+        add_filter('bbp_get_reply_content', 'CrayonWP::highlight', 100);
+        add_filter('bbp_get_topic_content', 'CrayonWP::highlight', 100);
+        add_filter('bbp_get_forum_content', 'CrayonWP::highlight', 100);
+        add_filter('bbp_get_topic_excerpt', 'CrayonWP::highlight', 100);
+
+        // Allow tags
+        add_action('init', 'CrayonWP::allowed_tags', 11);
+
+        if (CrayonGlobalSettings::val(CrayonSettings::COMMENTS)) {
+            /* XXX This is called first to match Crayons, then higher priority replaces after other filters.
+             Prevents Crayon from being formatted by the filters, and also keeps original comment formatting. */
+            add_filter('comment_text', 'CrayonWP::pre_comment_text', 1);
+            add_filter('comment_text', 'CrayonWP::comment_text', 100);
+        }
+
+        // This ensures Crayons are not formatted by WP filters. Other plugins should specify priorities between 1 and 100.
+        add_filter('get_the_excerpt', 'CrayonWP::pre_excerpt', 1);
+        add_filter('get_the_excerpt', 'CrayonWP::post_get_excerpt', 100);
+        add_filter('the_excerpt', 'CrayonWP::post_excerpt', 100);
+
+        add_action('template_redirect', 'CrayonWP::wp_head', 0);
+
+        if (CrayonGlobalSettings::val(CrayonSettings::TAG_EDITOR_FRONT)) {
+            add_filter('comment_form_defaults', 'CrayonWP::tinymce_comment_enable');
+        }
+    } else {
+        // Update between versions
+        CrayonWP::update();
+        // For marking a post as containing a Crayon
+        add_action('update_post', 'CrayonWP::save_post', 10, 2);
+        add_action('save_post', 'CrayonWP::save_post', 10, 2);
+        add_filter('wp_insert_post_data', 'CrayonWP::filter_post_data', '99', 2);
+    }
+    register_activation_hook(__FILE__, 'CrayonWP::install');
+    register_deactivation_hook(__FILE__, 'CrayonWP::uninstall');
+    if (CrayonGlobalSettings::val(CrayonSettings::COMMENTS)) {
+        add_action('comment_post', 'CrayonWP::save_comment', 10, 2);
+        add_action('edit_comment', 'CrayonWP::save_comment', 10, 2);
+    }
+    add_filter('init', 'CrayonWP::init_ajax');
+}
+
+?>
diff --git a/css/images/crayon_logo.png b/css/images/crayon_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..8988332e9aa17f8e4c0bebefa6a9e3761f90439c
GIT binary patch
literal 12377
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⁣iCK$acI7xP#iAOC(?%Wd
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

literal 0
HcmV?d00001

diff --git a/css/images/crayon_logo_square.png b/css/images/crayon_logo_square.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d5c7e2df2e2d7b0577659f7c715a686f2cf4ebe
GIT binary patch
literal 11427
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

literal 0
HcmV?d00001

diff --git a/css/images/crayon_tinymce.png b/css/images/crayon_tinymce.png
new file mode 100644
index 0000000000000000000000000000000000000000..c88595584075df54c0675e434fd750e1d6f2ef43
GIT binary patch
literal 2235
zcmbVOc~ld39*=kdt|*6F55zPeSP02XAmrEt%qekAjEI8NiZK}>#2h9A30PDJ%b_5#
ziX4g}phYQQky8b0YXpQ95uXPjU_C&A%|hKs6=f$1?(TcO{;~7k%vPQDh4f;
z&@mxIKEPM8ph#(8oEq8~CkPhD$;1>1Ccqy}(@_xuIRuN)I{7YzhN`1uKJZeJz2zE@
zL4QzzWpvC(r$YHcG)t+5&_o>IEe8Amv>%8AeSAqI5*AGWKmZRA@F2k(BvE|`Q~*Fv
zJs8BATC$TG#O6-fLQZr{Bn+#lc)V7t#c6$TN_7Mtq);dp4g$d&(eT#9DqxY$TcL5C
zW?(}av0AEvrAh_b!YJCIjE3nL#M6%<$W?s)Ct`(WDp5$v@H&wS58?p4TyBZ$gSG|^
zg8t*iXSFrKu__231ZkAfYB5reovzbhBzJ#o$fAgNLtU?yB1IAHVk^bba!3L5*mMjc
z!AYbNDgcrJ5G45mBm&?^20@B1k;LF~xlAI1K?YfrX^zifxom(zVEQrqNK6m}IUs|`
z1ehE@E{oyI1vo69X)I5nfkg^2G;LRk*qy>s{t!!LsUZ=pR0k`SyQVup7^#GnnnNNG*+lBwV#pj{cBes`NAV0mA>r%^-kmE|CcmIRrM7LnLCR
zu#*2LXL!UJyrnt*t68S6kPftLKeaw`_%u9_0+|>!G8(Cd+tB1Q^I1_1@>97ofQby`L4De%bc^rx_g1=
za7r6wc!$a^IF5BMOa&Ka*vP&p5Hf%ZHB}8~$_BRLi!a3No(L=C3v_+IjrM5TDW=wy
z`fKP>@?`U*;{@I#@K|>C&};@dD=#mKYy9=s!h|Pve{pqn4fw^pp)bAd-21hrfBn9m
zekQ{{Rx7vDr=KxRsGnt|(mWl0sI07fFcOn#aEm>A=~7o_qU`SJ`SC6*>m8Gi8@o^D
z+gnpR$M1FSb=q2FCqJxv>`?6K>4~e`T3%`pdba=OU%&O%>HekBk*rfGSNi>X)4I~;
z3AF$8rE^!yMO7WVR0T*H7g&%GeuE3RShDi4pQgE3p%
z+u8;TMtJ?5GkGq29I11*KgbqWMySVXB|B{
zF{?YeB|x!j7ghl~+?y(GCOzgwGqLxlxE@a;UW*W9-Scs1vzP-zI!}z>U^)r*Ljq
zAD`r5Z25U?^Sy>Hb9-5GxQQa0$w(Xsje6OAa)8~dXs6_^JDYIK;dbSZH8nNc0&iKp
znQ!ywqqFWWi)5{MWn7%j;Rb3cly+G`C7XL7YWU8Y_E$``ee9I<(X)|T=rZ9dXCd7x
zEX4L=q&`LKOCEZM)^TfmYqrT~-i4BHb_Uh&+4x8*J4j`+r>7P}GqV
z-#>n>hEV0sh8zEP**OF}q33PkUJ+UD9+h@szykfxgI;yV<4xw4HoV-?&)+TYhtA)Szs|iOqS0
zL%<%|(w#Q)89gPzo)HYjHD9-vF=Xe5x5vnJ3I|3x9*e!OxwQI=ZL8+m4kYUDcHh3e
zJu!!qYLtCh6^~iJoJ9%0-}=3GY4O{}<2T*Eaz7->VJEv+^i{uo*q5Ewi{=e9lW#;1
z^BQa4Ek9$k!#tW}*s`$L@p)-!=}=0kWVb?5KKp!0Qmn*SsXF1{vK?vv;Y6=U=iq&b
zb#_&+XY@8bJMjKmccXE|^LO5V;;ia)TzuH$iPhS?FNg7igXMYI4=>Q3qZZE>Ow65i2f<1;UIcb#@howSA8n!^C3^ca|@5EnEJbKll70*Qb}pLnaR{Xx%e-KOMf?VyG>2OPvJ5eNrCN
e&3*cP^8i!~$lCX!`MTcnJHg`!*yYUaiT?)Mo3A+l

literal 0
HcmV?d00001

diff --git a/css/images/docs.png b/css/images/docs.png
new file mode 100644
index 0000000000000000000000000000000000000000..eee67bc03b6c1cfe37cfd4df68ece0b16cf68961
GIT binary patch
literal 1530
zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87
z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$
zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9
zlvO-#x
zp(RYOOMY@`Zfaf$Om7N8uOm*qpu~_{0JPa9wJ5VJHN~wcKUV?lX{$`!ZZXGc9#n4%
zZns$A)TkpMZkppbT>1O%+2?1^%{CV{ijHAZI&maG
z%W(R=>(d`Hv3yAoWBv8^d)msN-^OQI=cmVXY*ue)?@n*~-5AKgw|C}Jsp%7HqwZZN7X%dnEqhwrYQSpVkJnQc|u)4jj1XWsPi;%U?J)Y!GFxy_&a_Hy37P5%0>
zmv`s6s%_dhX>m_?gqjQc+R6XE`T706(eHcCMapR6*+-{?k3{6g|Cv5J&+67|C%^AE
zPukS%DfiW{?TTL#dPr+QUatMR(#yw}fBOIB?e7y;-n4h8eh+!J!MNySn#m;b?Zp%8
zA9>Y9@16WDCR20v!Jy2u%KT#CcP}fu&*9yAGcYTy^HKB{Yo2*)YrciZJ~-xbNHukZ
zSV^6T@J*jp+PAcLf*B{Y`lJ{ydDS9uM=xbY>RZEwYCQ>&-3F^BGMrG_A->WogRL=l
zvw_s~3!fJXUu$QHcFp*7Ak9AOU6JvJ<80sFwY^`*Kk2lrzv#cdRf5YVZ?h`c#&B~@
zRPpk8dm`uB*V`~RJM;Zu{PJacQva!}!}*6EhpRf6ZPwZK;hp!>JJ;jC?rdB#IWT>N
ufdB@Tg+Y0D!~wSZ%LW*q8ECg(%940&t;ucLK6Vth)mi5

literal 0
HcmV?d00001

diff --git a/css/images/donate.png b/css/images/donate.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e6a0b9d5d7a8f2456fd8522ef393808c63970e0
GIT binary patch
literal 3776
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
SJ!^aalqQB}4W8(`hy4e^>9aBb

literal 0
HcmV?d00001

diff --git a/css/images/facebook.png b/css/images/facebook.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe3fce097921ad36a8c84b2cd17a5722b90006b4
GIT binary patch
literal 1214
zcmV;v1VQ_WP)mBROJ#7&t8{_NOKl~T1q%==V%bU+OQf=40e^sXq%M)zu&Km`4Pw(rgaj1`5<%%h
zNrh+vc{EO3C%*Q5%nawuy*5pVn@SzY_8s4u@B7X<-A)n14mlIf8Z6XRK7+VCf4mSKi2%97+-P_P_kU;oBgzCXEo;@@KJB=ipb#QaG
zj$3o<$k8)lg0Tf}h?S&5@1A=y0NSK%;N@7`)sfG;SY2zO
zG>}CcYkJR-=x&O%3FlFR7w5AA`CKkdn2mo{HgM^?-;i+}*p3Cy74R}nf|X(lP3q0O
zPXw&I=|_;U!fFF>Y$qkK(CUO(UiC3PQY51!s)du_B>hHnnA~fGQvI(7R9f9nKYZCt
zBq`yIoB{^gH(J2wAD^J8Tofrqmw#HomFo*A6kHO*42lQ{foh&au&p~4k!nIbGjXEl
zr6`IiViH6JEDh#y_PsZIt-ZXa@y+GC)NC1p$?F9NU^9V?>A~4bVCtiwq7ago6QO*l
zR#HkhPHdudy(~f^H|vRWYLVIFNSWV+kOY}@
zCzvJzt}v&ImDzgRQDG%uZ=CxQQJj!XeR0nGpCd>8a$^zifATd(%7tV(5tT~?+M^66
zOrs$IrE>$y(L44qgLkd0EoDfRW;;p*l(yKMVcMKa++ZAmHYOp0sO=+cKY+iv2G6l~
zJnSq}56Z3Plt@!#8A~d7gpl?H+0fKMr)!xs%#$#}7W-;7RH`q)zTbfB^gpas+ACVc
zCW5%5;pGcBa&iJAdop;qPebaN!=oj5v%f>M=^kj&MYFyO0oR{X6dRXN1f(?#0yOTg
zLj>-Y$Ri@~g#*SG$fmxN6Znu_G~xv8|36ityelk*EnF-a7Ex)D(NVG9dIG67=?
zztz0$+41w0p#jXVZ<_G>T{K*}fK>BY9EFr;s)J8An;**FIzje1P#%D5M__ExYOH;9
zWA@IqW3{6=I5dW~RM?@Z(LJh)gGHk@N7w6E*}?12jH6T#y*ndM>K!_+XKvpFV^fOk
zsik{&Pk-O6PZkS%s>WTGwZnaoeEmG#Hum!<$MY*b{=74XV!=(#ZmeW)v>wcEHX0WM
cVgD<@0KuG`_dQy@ZvX%Q07*qoM6N<$fV!Z

literal 0
HcmV?d00001

diff --git a/css/images/github.png b/css/images/github.png
new file mode 100644
index 0000000000000000000000000000000000000000..81350e4595c188a468e2fb603b672be68689b449
GIT binary patch
literal 2460
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

literal 0
HcmV?d00001

diff --git a/css/images/theme_editor.png b/css/images/theme_editor.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cc35c35180fb6a9c89837a3484c169f0b9e8aab
GIT binary patch
literal 4125
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
UreL`J<=zjwiJ>K?(!eeHKZHF;$^ZZW

literal 0
HcmV?d00001

diff --git a/css/images/thumb_horizontal.png b/css/images/thumb_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcec00ee27610eba254e697896ca58df0c8fd4f1
GIT binary patch
literal 1181
zcmbVMUue}<7!RworB)PVq7%0?W!RxfPI7y1ZnEB8?oFDS&D+-7Tf8uZrpdXzq0OHr
zr@LtfV|44rV3u0f^`&%7AAAstFCto0>XU*B6MRq~geg9WbI>P6@ucmoK6F0pKyv=%
z`~803_nq&{FWsFTTN*xUAP8cMc0kGF*~HI>^|knYZtg39r(LMMhGN#)P
zNzK*=U>@q`=
z(lS%j;dl<@JQxW;^282ThPI%gY=Mgg61lN0t3UhJY=~J88Pbp
z?g&az*wfVzY%iBvCw79hMB$XNq3*F916bRR;##o|P#(T@V?*npFzP`z4+D3^H}HLw
znyX-(yY~x4hS(da%eU~Q=tGKYjM&gYnv$aM7sj+qNfiW@Z6MX}1U5f)_Sb}pF|cvZy6c92msc&GxG075JqSE^Xe36Sm>u&Qfe-8F3Dy;w>1
zp^jX?;JQQA3g|Ao$PLP_N6I~MGN&7s6YZnxS&deKzV!_>Ro}JAmHbN92Kw<#Ov&&(
z$H)IG?p3V$e{#lRXV|DX-YJ&q5w5^!xnBBsv)(+=!5!n{)<~+c8r)X5G$m6A??0X8
z8m@tzsy#e2DQ1_JUKXA=GUEf=j*R^@9)4W+XUFxHg*(gJUmx1{S0jC;?vq{9`yc)=
zmEPQRv#-sp&(xEfn!cY(Z~Oc5AA|Q=K8M=T^ljE)es{x*gV%ER
z_U+X!UX`Y{9$EN}=BM+;({~qZNBfIIxC(-ik-0e%p
zcHC*9UwwM|ymM+|Zsz`XwNuY#d%wPLv+2aV-1p-N2`fkXrnLM)Bata}{rluu?c?Z&
Mp|y7^3)#N$H_q09W&i*H

literal 0
HcmV?d00001

diff --git a/css/images/thumb_vertical.png b/css/images/thumb_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bd81e103808a9984cb2d94c1807b12d47e899dd
GIT binary patch
literal 1213
zcmeAS@N?(olHy`uVBq!ia0vp^qClL&!3HEVGpj!_FfhH#baoE#baqwWn
zs9x2|z&ue*RuivR{
zUE1;F(M7F$u5TBz|8J11`jDdU)f(lhac{Lo(n4|Fk7x6Iwk>^i;9TA3d*<(J^ULlt
z@D^P%`P#tpg!g#RBEig@8mFv39SnVoI2}z?LvO$FQ(<##F8*2l{6-ajV|3Wz>fhy?
z%Gb`iv~3o9%U_2F?z3)cZFnzU$Q3EX)M0afq2}=tj{A>qe0tMw=~r2Ca4WyI?U6{O
z8V6I|bM?MEg3qd6c4+pnnDVtS$ZpQ{?kU%0*)#Lfj-3$L>px-H?lbRJCoP=g_lHKq*8L6pm<3$K4v9v1kpvR^p;-j%!W
zU2ie1H{g@yk>Z)f>k%N}%91!^Lx4k@jg+CurXqXg)ojv}tBp!kvUZmwxomW-HoIfH
zJ#fign|~Tgg;Sija!mT;_)ly7N&lynKTpSOxDob!%G%kpc71waee~(fol>F1z^-9^~aQA6zDy#O)dLw23CVaZ#vnJF2BgGqjf7FeidS<$2kI2!-p`TxQx0FU1
zn%|$FQ*UkiNbkJf)@#LUJG;%pW=~K5o8|HQ-Kss4pN0PPkNf)ZPx{#-$&WM*)yle_
zD|Svls`qiy4e!<5j}mf^bIhIErgknzAn9SYDm;bB(_VGXBPri3OpRd8BpY!0v%w4&`h3^FxrY_AZUdJT9|6=WjZF$*?
z>n#4TMA)nrTN`9LUttfUOj&!C+zZVam#0lTYZ=t8Gk@}~m#30~&IH_c4hp)idOg)!
zZ1c>}q?ctkW?q)flUZo#^!>lFz$zXjubEDT02Z6S`Pdx+$xL=nr9z4YU
z!B=G62Tm7(8qS020^Q6XD|Ozs_w}4(VQ#
zoELZGyAb;vF;_u>A3a+yH#xtWYvx{EO`)mmB9h
zgyTwuG}%>`PrPKaWzuzflYknYzudNWe{-T%#?vvoZ%Rv0{8{an^LB{Ts5Fb+B2

literal 0
HcmV?d00001

diff --git a/css/images/toolbar/buttons.png b/css/images/toolbar/buttons.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ae89bd62d46bd31bdcdd028db861dfceebf282d
GIT binary patch
literal 2236
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
P2>_6tJV+G|yAS;r&-F2n

literal 0
HcmV?d00001

diff --git a/css/images/track_horizontal.png b/css/images/track_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cc7ca989c6b7af9d288ec9b9f2b8a60d55519f0
GIT binary patch
literal 1256
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

literal 0
HcmV?d00001

diff --git a/css/images/wordpress-blue.png b/css/images/wordpress-blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6f3268c6ec10b6c33d7b45c6a1efd0967137e79
GIT binary patch
literal 1692
zcmV;N24ne&P)}<}Q`F;2A8^L}23^JO&J5W-5s;10Wsb(@7
z{&VSg@g=-q&mbDa!O`&0qw(oug05YYWHr-#cvt<^6K~YPZ4#km{y8j)*=3UGZlJY7
z)JUR6=VX=cT6Xz%u$3g4>JA8o5bXm%NsahYo+(2rR%A+4$y
zpNXLVaR{Rm(}=~B9OATFQR*+ohIM6lsi=U?N_19+u4k?F+Dtf7A3)F0=xNDUkYBa9
zoWx8bMH&haNrcsEBIp>}d+#Anm$7eiIqG*bz~i!U0dtE9bcLpHzU>-h$&SXlT5MSB
zMKUQvBN0#2GFI6v@Oj)-k}et2ONo@ElW&-Gqs4+N?e{S`7Q*p2H{5uwIPwb+O~{-#y%@(_EJ=RO(8~(Kk!8eE3V-(VjXr$Yas#9%e!1R(Pu6Ex;G7-ZUKeeGa-+@EhDzU$z8Xf&1wDt@mI5CfWhZVK{LVU8P
z9?p^?%te>U_X_MTBZ?d*bPqnn?rmFPl|(SMsF8bAMMHRY0S-e3o;({`Z$7|sB1!P|
zT+0J52e4yZG1?!F;Zj!+m3}t@1ZUTgSE{jTjR$i}3G7^70vpJ}nFY>dY;uu`3`rUs
z8OO1G+pu?I8PC({Cs@6cPrRoyUmObn>Jv0
zBFveLO#&1swC1Br*hjg$t7a{V3SH3m6ar@B(^`dN$`bK8ZT)l=0QbIJIB9@WdlL2FktQcfPhS_XE&*Lntrp$}2
z6+T#~%l+Cp#P{wDhf(G8-~jclQcoV1k}7`d3Grv=JA!zRGL2og2F75ff@MrzXd0Qp
z^3_Nt{@(i}*NES#Uk8&>!mVJK?*zx^;45&T)LV${l|H1%&(|J|@MlR`LBO9)+spSu
z#4>UhF*Z4i+7taTlHa;Qvj|N^_`&9yQqt7LtM}}!Anaxd0bdrfd*d3osAq*EF|?9}
z%{3*kT1*(3iDFQ#jdrhre)$
z{AwjI8!pu)o?NiK1x|{Q7Yj5$HkTElq{xNS7rXeojKNqsn@Yr%1da6}4M}R(nxs>(
zP57a05cA7v9BvGtd{sXDZU;f~pQ(utn%3ib{{&XK9QgWd2U>0q!C^KdMVhBq+|D$U
zbTwnPl1XXiDsqQJ0TxXLoa-J&-`E0-WTUUpksVblBU7ex^UEo?sW30~jv!2Z$VjtN
zCZI~1XK1vU*jZvrkz^t$Y05^g!-mj8j0ZbAgQs5f$V@VuG`m((32!p|NW_%S%w{EW#4K%zC@Xs{0E8f{FeTr4;q~^
mNEahXWhkbo#~AxB0R{j?xDR~Z0K|d-0000div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme-info .field{font-weight:bold}#crayon-theme-info .field,#crayon-theme-info .value{margin-left:5px}#crayon-theme-info .description.value{font-style:italic;color:#999}#crayon-theme-info .type{text-align:center;min-width:120px;font-weight:bold;border-right:1px solid #ccc;padding-right:5px}#crayon-theme-info .type.stock{color:#666}#crayon-theme-info .type.user{color:#5b9a00}#crayon-editor-table td{vertical-align:top}.small-icon{width:24px;height:24px;display:inline-block;margin:5px 5px 0 0}#twitter-icon{background:url(../images/twitter.png)}#gmail-icon{background:url(../images/google.png)}#docs-icon{background:url(../images/docs.png)}#git-icon{background:url(../images/github.png)}#wp-icon{background:url(../images/wordpress-blue.png)}#donate-icon{background:url(../images/donate.png);width:75px}#crayon-donate,#crayon-donate input{margin:0;display:inline;padding:0}#crayon-theme-editor-info a{text-decoration:none!important;font-style:italic!important;color:#666!important}#crayon-main-wrap .form-table .note{font-style:italic;color:#999}#crayon-change-code-text{width:400px;height:300px}.crayon-syntax{overflow:hidden!important;position:relative!important;direction:ltr;text-align:left;box-sizing:border-box;direction:ltr!important;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-text-size-adjust:none}.crayon-syntax div{background:0;border:0;padding:0;margin:0;text-align:left}.crayon-syntax.crayon-loading{visibility:hidden}.crayon-syntax,.crayon-syntax .crayon-main,.crayon-syntax .crayon-toolbar,.crayon-syntax .crayon-info,.crayon-syntax .crayon-plain,.crayon-syntax .crayon-code{width:100%}.crayon-syntax .crayon-main,.crayon-syntax .crayon-plain{overflow:auto}.crayon-syntax,.crayon-syntax .crayon-main,.crayon-syntax .crayon-plain,.crayon-syntax .crayon-table{padding:0;margin:0}.crayon-syntax-inline{margin:0 2px;padding:0 2px}.crayon-syntax .crayon-table{border:none!important;background:none!important;padding:0!important;margin-top:0!important;margin-right:0!important;margin-bottom:0!important;width:auto!important;border-spacing:0!important;border-collapse:collapse!important;table-layout:auto!important}.crayon-syntax .crayon-table td,.crayon-syntax .crayon-table tr{padding:0!important;border:none!important;background:0;vertical-align:top!important;margin:0!important}.crayon-syntax .crayon-invisible{display:none!important}.crayon-plain-tag{margin-bottom:12px}.crayon-popup .crayon-plain{display:block!important;width:100%!important;height:100%!important;opacity:100!important;position:relative!important}.crayon-popup-window{background:#fff}.crayon-syntax .crayon-num{text-align:center;padding:0 5px;margin:0}.crayon-syntax .crayon-toolbar{position:relative;overflow:hidden;z-index:4}.crayon-syntax .crayon-info{position:absolute;overflow:hidden;display:none;z-index:3;padding:0;min-height:18px;line-height:18px}.crayon-syntax .crayon-info div{padding:2px!important;text-align:center}.crayon-syntax .crayon-toolbar span{padding:0 4px!important}.crayon-syntax .crayon-toolbar .crayon-button{display:inline;float:left!important;position:relative;width:24px;background-repeat:no-repeat;line-height:15px;border:0;text-decoration:none}.crayon-toolbar .crayon-button,.crayon-toolbar .crayon-button:hover,.crayon-toolbar .crayon-button.crayon-pressed:hover{background-position:0 center}.crayon-toolbar .crayon-button.crayon-pressed,.crayon-toolbar .crayon-button:active,.crayon-toolbar .crayon-button.crayon-pressed:active{background-position:-24px 0}.crayon-toolbar .crayon-button.crayon-popup-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-popup-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:hover .crayon-button-icon{background-position:0 0}.crayon-toolbar .crayon-button.crayon-copy-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-copy-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -16px}.crayon-toolbar .crayon-button.crayon-nums-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-nums-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -32px}.crayon-toolbar .crayon-button.crayon-plain-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-plain-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -48px}.crayon-toolbar .crayon-button.crayon-mixed-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-mixed-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -64px}.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon{background-position:0 -80px;background-color:transparent!important}.crayon-toolbar .crayon-button.crayon-expand-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-expand-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -96px}.crayon-toolbar .crayon-button.crayon-wrap-button .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-wrap-button:hover .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:hover .crayon-button-icon{background-position:0 -112px}.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-popup-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:active .crayon-button-icon{background-position:-24px 0}.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-copy-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -16px}.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-nums-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -32px}.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-plain-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -48px}.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-mixed-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -64px}.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon{background-position:-24px -80px;background-color:transparent!important}.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-expand-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -96px}.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-wrap-button:active .crayon-button-icon,.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:active .crayon-button-icon{background-position:-24px -112px}.crayon-syntax .crayon-toolbar .crayon-language{padding-right:8px!important}.crayon-syntax .crayon-title,.crayon-syntax .crayon-language{float:left}.crayon-main::-webkit-scrollbar,.crayon-plain::-webkit-scrollbar{height:6px;overflow:visible;width:6px;background:#EEE}.crayon-main::-webkit-scrollbar-thumb,.crayon-plain::-webkit-scrollbar-thumb{background-color:#CCC;background-clip:padding-box;border:1px solid #AAA;box-shadow:inset 0 0 2px #999;min-height:8px;padding:0;border-width:1px}.crayon-main::-webkit-scrollbar-button,.crayon-plain::-webkit-scrollbar-button{height:0;width:0;padding:0}.crayon-main::-webkit-scrollbar-track,.crayon-plain::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 4px;border:1px solid #BBB;border-right:0;border-bottom:0}.crayon-main::-webkit-scrollbar-corner,.crayon-plain::-webkit-scrollbar-corner{background:#EEE}.crayon-main::-webkit-scrollbar-thumb:hover,.crayon-plain::-webkit-scrollbar-thumb:hover{background:#AAA;border:1px solid #777;box-shadow:inset 0 0 2px #777}.crayon-syntax .crayon-pre,.crayon-syntax pre{color:#000;white-space:pre;margin:0;padding:0;overflow:visible;background:none!important;border:none!important;tab-size:4}.crayon-syntax .crayon-line{padding:0 5px}.crayon-syntax.crayon-wrapped .crayon-line{white-space:pre-wrap!important;height:auto;word-break:break-all}.crayon-syntax-inline .crayon-pre,.crayon-syntax-inline pre{white-space:normal}.crayon-syntax-inline-nowrap .crayon-pre,.crayon-syntax-inline-nowrap pre{white-space:pre}.crayon-syntax{font-family:Monaco,'MonacoRegular','Courier New',monospace;font-weight:500}.crayon-syntax .crayon-toolbar *::selection,.crayon-syntax .crayon-nums *::selection{background:transparent}.crayon-table .crayon-nums-content{white-space:nowrap}.crayon-syntax .crayon-num,.crayon-syntax .crayon-pre .crayon-line,.crayon-syntax .crayon-toolbar *,.crayon-syntax .crayon-pre *{font-family:inherit;font-size:inherit!important;line-height:inherit!important;font-weight:inherit!important;height:inherit}.crayon-syntax .crayon-toolbar .crayon-button .crayon-button-icon{background-image:url('../images/toolbar/buttons.png');height:16px!important;width:100%;position:absolute;left:0;top:50%;margin-top:-8px}.crayon-syntax .crayon-toolbar .crayon-tools{position:absolute;right:0}.crayon-syntax.crayon-expanded{position:absolute!important;margin:0!important}.crayon-syntax.crayon-expanded .crayon-main{overflow:hidden!important}.crayon-placeholder{width:100%!important}.crayon-toolbar-visible .crayon-toolbar{position:relative!important;margin-top:0!important;display:block!important}.crayon-syntax.crayon-expanded .crayon-toolbar .crayon-tools{position:relative;right:auto;float:left!important}.crayon-syntax .crayon-plain-wrap{height:auto!important;padding:0!important;margin:0!important}.crayon-syntax .crayon-plain{width:100%;height:100%;position:absolute;opacity:0;padding:0 5px;margin:0;border:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-shadow:none;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;white-space:pre;word-wrap:normal;overflow:auto;resize:none;color:#000;background:#FFF}.crayon-wrapped .crayon-plain{white-space:pre-wrap}.bbp-body .crayon-syntax{clear:none!important}.crayon-minimized .crayon-toolbar{cursor:pointer}.crayon-minimized .crayon-plain-wrap,.crayon-minimized .crayon-main,.crayon-minimized .crayon-toolbar .crayon-tools *{display:none!important}.crayon-minimized .crayon-toolbar .crayon-tools .crayon-minimize{display:block!important}.crayon-minimized .crayon-toolbar{position:relative!important}.crayon-syntax.crayon-minimized .crayon-toolbar{border-bottom:none!important}.crayon-te *,#crayon-te-bar-content{font-family:"Lucida Grande",Arial,sans-serif!important;font-size:12px}.crayon-te input[type="text"],.crayon-te textarea{background:#f9f9f9;border:1px solid #CCC;box-shadow:inset 1px 1px 1px rgba(0,0,0,0.1);-moz-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.1);-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,0.1);padding:2px 4px;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid}.crayon-te #crayon-code{font-family:monospace!important}#crayon-te-content,#crayon-te-table{width:100%;height:auto!important}#crayon-range,#crayon-mark{width:100px}#crayon-te-table th,#crayon-te-table td{vertical-align:top;text-align:left}.rtl #crayon-te-table th,.rtl #crayon-te-table td{text-align:right}#crayon-te-table .crayon-tr-center td,#crayon-te-table .crayon-tr-center th{vertical-align:middle}#crayon-te-table .crayon-nowrap{white-space:nowrap}#crayon-te-bar{position:absolute;top:0;left:0;width:100%}#crayon-te-bar-content{border:1px solid #666;border-bottom:0;height:26px;line-height:25px;padding:0 8px;padding-right:0;background-color:#222;color:#cfcfcf}#crayon-te-bar-content a{line-height:25px;padding:5px 10px;color:#DDD;font-weight:bold;text-decoration:none!important}#crayon-te-bar-content a:hover{color:#FFF}.crayon-te-seperator{color:#666;margin:0;padding:0}#crayon-te-bar-block{height:34px;width:100%}#crayon-te-title{float:left}#crayon-te-controls{float:right}#crayon-url-th{vertical-align:top!important;padding-top:5px}.crayon-te-heading{font-size:14px;font-weight:bold}#crayon-te-settings-info{text-align:center}.crayon-te-section{font-weight:bold;padding:0 10px}#crayon-te-sub-section{margin-left:10px}#crayon-te-sub-section .crayon-te-section{font-weight:normal;padding:0}#crayon-code{height:200px;white-space:pre}#crayon-code,#crayon-url{width:555px!important}.crayon-disabled{background:#EEE!important}.qt_crayon_highlight{background-image:-ms-linear-gradient(bottom,#daf2ff,white)!important;background-image:-moz-linear-gradient(bottom,#daf2ff,white)!important;background-image:-o-linear-gradient(bottom,#daf2ff,white)!important;background-image:-webkit-linear-gradient(bottom,#daf2ff,white)!important;background-image:linear-gradient(bottom,#daf2ff,white)!important}.qt_crayon_highlight:hover{background:#ddebf2!important}.crayon-tag-editor-button-wrapper{display:inline-block}.mce_crayon_tinymce{padding:0!important;margin:2px 3px!important}.mce-i-crayon_tinymce,.mce_crayon_tinymce{background:url(../images/crayon_tinymce.png) 0 0!important}a.mce_crayon_tinymce{background-position:2px 0!important}.wp_themeSkin .mceButtonEnabled:hover span.mce_crayon_tinymce,.wp_themeSkin .mceButtonActive span.mce_crayon_tinymce{background-position:-20px 0}.wp_themeSkin span.mce_crayon_tinymce{background:none!important}#crayon-te-table{margin-top:26px;padding:10px;border-collapse:separate!important;border-spacing:2px!important}#crayon-te-table th{width:100px}#crayon-te-clear{margin-left:10px;color:#666;background-color:#f4f4f4;border:1px solid #CCC;border-radius:3px;margin-left:8px}#crayon-title{width:360px}#TB_window.crayon-te-ajax{overflow:auto!important}#TB_window.crayon-te-ajax,#TB_window.crayon-te-ajax #TB_ajaxContent,#TB_window.crayon-te-ajax #TB_title{width:680px!important}#TB_window.crayon-te-ajax #TB_ajaxContent{padding:0!important;margin:0!important;width:100%!important;height:auto!important;margin-top:28px!important}#TB_window.crayon-te-ajax #TB_title{position:fixed!important}#TB_window.crayon-te-ajax #TB_title .crayon-te-submit{margin-top:3px!important;float:right!important}#TB_window.crayon-te-ajax a{color:#2587e2;text-decoration:none}#TB_window.crayon-te-ajax a:hover{color:#499ce9}.crayon-te-quote{background:#DDD;padding:0 2px}#crayon-te-submit-wrapper{display:none}#crayon-te-clear{display:none;margin:0;margin-top:10px}.crayon-syntax-pre{background:red;white-space:pre;overflow:auto;display:block;word-wrap:break-word}.crayon-question{padding:1px 4px!important;text-decoration:none!important;color:#83b3cb!important;border-radius:10px!important;height:15px!important;width:15px!important}.crayon-question:hover{background:#83b3cb!important;color:white!important;height:15px!important;width:15px!important}.crayon-setting-changed,.crayon-setting-selected{background:#fffaad!important}.crayon-question:hover{color:white;background:#a6d6ef}#crayon-te-warning{display:none}.crayon-te-info{padding:5px!important;margin:2px 0!important}#crayon-te-submit{margin-bottom:5px}
\ No newline at end of file
diff --git a/css/minify.sh b/css/minify.sh
new file mode 100644
index 0000000..dcfd149
--- /dev/null
+++ b/css/minify.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+BASEDIR=$(dirname $0)
+cd $BASEDIR
+
+source ../util/minify.sh
+
+minify $COLORBOX_PATH/colorbox.css $INPUT_PATH/admin_style.css $INPUT_PATH/crayon_style.css $INPUT_PATH/global_style.css $OUTPUT_PATH/crayon.min.css
diff --git a/css/src/admin_style.css b/css/src/admin_style.css
new file mode 100644
index 0000000..95050aa
--- /dev/null
+++ b/css/src/admin_style.css
@@ -0,0 +1,285 @@
+#crayon-log-wrapper {
+	/*width: 100%;*/
+}
+
+#crayon-main-wrap .form-table th {
+	width: 100px;
+}
+
+#crayon-log {
+	display: none;
+	max-height: 200px;
+	/*width: 100%;
+    /*resize: vertical;*/
+	border-color: #DFDFDF;
+	background-color: white;
+	border-width: 1px;
+	border-style: solid;
+	border-radius: 4px;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	margin: 1px;
+	padding: 3px;
+	overflow: auto;
+	white-space: pre;
+	margin-bottom: 5px;
+}
+
+.crayon-span,.crayon-span-5,.crayon-span-10,.crayon-span-50,.crayon-span-100,.crayon-span-110 {
+	line-height: 24px;
+	display: inline-block;
+}
+
+.crayon-span-5 {
+	min-width: 5px;
+}
+
+.crayon-span-10 {
+	min-width: 10px;
+}
+
+.crayon-span-50 {
+	min-width: 50px;
+}
+
+.crayon-span-100 {
+	min-width: 100px;
+}
+
+.crayon-span-110 {
+	min-width: 117px;
+}
+
+.crayon-span-margin {
+	margin-left: 5px;
+}
+
+#height_mode, #width_mode {
+	min-width: 65px;
+}
+
+.crayon-error {
+	color: #F00;
+}
+
+.crayon-success {
+	color: #00F;
+}
+
+.crayon-warning {
+	color: #FF8000;
+}
+
+.crayon-help {
+	min-height: 30px;
+	padding: 5px 10px;
+}
+
+.crayon-help .crayon-help-close,
+.crayon-help .crayon-help-close:active,
+.crayon-help .crayon-help-close:hover {
+	text-decoration: none;
+	float: right;
+	color: #000;
+}
+
+.crayon-help span,
+.crayon-help a {
+	margin: 0;
+	padding: 0;
+	font-size: 12px;
+}
+
+#crayon-log-text {
+	font: 11px/13px Monaco, 'MonacoRegular', 'Courier New', monospace;
+}
+
+#crayon-log-controls {
+	float: left;
+	margin-right: 5px;
+	/*margin: 5px 0px;*/
+}
+
+.crayon-table {
+	font-size: 12px;
+	border: 1px solid #999;
+	padding: 0;
+	margin: 0;
+	margin-top: 12px;
+}
+
+.crayon-table td {
+	vertical-align: top;
+	border-bottom: 1px solid #AAA;
+	padding: 0px 6px;
+	margin: 0;
+	background: #EEE;
+}
+
+.crayon-table-light td {
+	background: #F8F8F8;
+}
+
+.crayon-table-header td {
+	font-weight: bold;
+	background: #CCC;
+}
+
+.crayon-table-last td,
+.crayon-table tr:last-child td {
+	border: 0;
+}
+
+/*#lang-info {
+	display: none;
+}*/
+
+#lang-info div {
+	padding: 5px 0px;
+}
+
+.crayon-table .not-parsed {
+	color: #F00;
+}
+
+.crayon-table .parsed-with-errors {
+	color: #FF9900;
+}
+
+.crayon-table .successfully-parsed {
+	color: #77A000;
+}
+
+#crayon-live-preview,
+#crayon-log-wrapper {
+	padding: 0px;
+	width: 100%;
+	float: left;
+	clear: both;
+}
+
+#crayon-live-preview {
+	float: none;
+	padding: 0;
+}
+
+#crayon-logo {
+	text-align: center;
+}
+
+#crayon-info,
+#crayon-info td {
+	border: none;
+	padding: 0 5px;
+	margin: 0px;
+}
+
+.crayon-admin-button {
+	display: inline-block;
+	text-align: center;
+}
+
+#crayon-subsection-langs-info {
+	margin-top: 5px;
+}
+
+#crayon-theme-editor-admin-buttons {
+	display: inline;
+}
+
+#crayon-theme-editor-admin-buttons .crayon-admin-button {
+	margin-left: 5px;
+}
+
+#crayon-theme-info {
+    display: table;
+    padding: 0;
+    margin: 0;
+    margin-top: 5px;
+}
+#crayon-theme-info > div {
+    display: table-cell;
+    vertical-align: middle;
+}
+#crayon-theme-info .content * {
+    float: left;
+}
+#crayon-theme-info .field {
+	font-weight: bold;
+}
+#crayon-theme-info .field,
+#crayon-theme-info .value {
+	margin-left: 5px;
+}
+#crayon-theme-info .description.value {
+    font-style: italic;
+    color: #999;
+}
+#crayon-theme-info .type {
+    text-align: center;
+    min-width: 120px;
+    font-weight: bold;
+    border-right: 1px solid #ccc;
+    padding-right: 5px;
+}
+#crayon-theme-info .type.stock {
+    color: #666;
+}
+#crayon-theme-info .type.user {
+    color: #5b9a00;
+}
+
+#crayon-editor-table td {
+	vertical-align: top;
+}
+
+.small-icon {
+	width: 24px;
+	height: 24px;
+	display: inline-block;
+	margin: 5px 5px 0 0;
+}
+
+#twitter-icon {
+	background: url(../images/twitter.png);
+}
+#gmail-icon {
+	background: url(../images/google.png);
+}
+#docs-icon {
+	background: url(../images/docs.png);
+}
+#git-icon {
+	background: url(../images/github.png);
+}
+#wp-icon {
+	background: url(../images/wordpress-blue.png);
+}
+
+#donate-icon {
+	background: url(../images/donate.png);
+	width: 75px;
+}
+
+#crayon-donate,
+#crayon-donate input {
+	margin: 0;
+	display: inline;
+	padding: 0;
+}
+
+#crayon-theme-editor-info a {
+    text-decoration: none !important;
+    font-style: italic !important;
+    color: #666 !important;
+}
+
+#crayon-main-wrap .form-table .note {
+    font-style: italic;
+    color: #999;
+}
+
+#crayon-change-code-text {
+    width: 400px;
+    height: 300px;
+}
diff --git a/css/src/crayon_style.css b/css/src/crayon_style.css
new file mode 100644
index 0000000..cd09b55
--- /dev/null
+++ b/css/src/crayon_style.css
@@ -0,0 +1,530 @@
+/*
+Crayon Syntax Highlighter Structure Style Sheet
+
+- This style sheet is used to structure a Crayon's dimensions and visibility, but does not contain any details regarding
+coloring etc.
+- Attributes, where possible, are kept flexible such that Themes can customise them.
+- Themes are used to add coloring to the Crayon and the syntax highlighting itself.
+- Themes can be considered as layers on top of this style sheet.
+- Several attributes are marked !important where they are required to remain unchanged by CSS precedence,
+  which may occur from conflicts with certain Wordpress Themes.
+- The attributes in Themes are generally all marked !important to ensure styles are not altered by precedence.  
+*/
+
+/* General ========================= */
+.crayon-syntax {
+    overflow: hidden !important;
+    position: relative !important;
+    direction: ltr;
+    text-align: left;
+    box-sizing: border-box;
+    direction: ltr !important;
+    -moz-box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    -webkit-text-size-adjust: none;
+}
+
+.crayon-syntax div {
+    /* Need !important? */
+    background: none;
+    border: none;
+    padding: 0px;
+    margin: 0px;
+    text-align: left;
+}
+
+.crayon-syntax.crayon-loading {
+    visibility: hidden;
+}
+
+.crayon-syntax,
+.crayon-syntax .crayon-main,
+.crayon-syntax .crayon-toolbar,
+.crayon-syntax .crayon-info,
+.crayon-syntax .crayon-plain,
+.crayon-syntax .crayon-code {
+    /* Dimensions of code */
+    width: 100%;
+}
+
+.crayon-syntax .crayon-main,
+.crayon-syntax .crayon-plain {
+    /* TODO a bug in IE8 causes max-height and overflow:auto to set max-height = height
+       http://edskes.net/ie8overflowandexpandingboxbugs.htm */
+    overflow: auto;
+}
+
+.crayon-syntax,
+.crayon-syntax .crayon-main,
+.crayon-syntax .crayon-plain,
+.crayon-syntax .crayon-table {
+    padding: 0px;
+    margin: 0px;
+}
+
+.crayon-syntax-inline {
+    margin: 0 2px;
+    padding: 0 2px;
+}
+
+.crayon-syntax .crayon-table {
+    border: none !important;
+    background: none !important;
+    padding: 0px !important;
+    margin-top: 0px !important;
+    margin-right: 0px !important;
+    margin-bottom: 0px !important;
+    width: auto !important;
+    border-spacing: 0 !important;
+    border-collapse: collapse !important;
+    table-layout: auto !important;
+}
+
+.crayon-syntax .crayon-table td,
+.crayon-syntax .crayon-table tr {
+    padding: 0 !important;
+    border: none !important;
+    background: none;
+    vertical-align: top !important;
+    margin: 0 !important;
+}
+
+.crayon-syntax .crayon-invisible {
+    display: none !important;
+}
+
+.crayon-plain-tag {
+    margin-bottom: 12px;
+}
+
+/* End General ===================== */
+
+/* Popup ========================= */
+.crayon-popup {
+
+}
+
+.crayon-popup .crayon-plain {
+    display: block !important;
+    width: 100% !important;
+    height: 100% !important;
+    opacity: 100 !important;
+    position: relative !important;
+}
+
+.crayon-popup-window {
+    background: #fff;
+}
+
+/* End Popup ========================= */
+
+/* Line Numbers ==================== */
+.crayon-syntax .crayon-num {
+    text-align: center;
+    padding: 0 5px;
+    margin: 0px;
+}
+
+/* End Line Numbers ================ */
+
+/* Toolbar & Info ================== */
+.crayon-syntax .crayon-toolbar {
+    position: relative;
+    overflow: hidden;
+    z-index: 4;
+}
+
+.crayon-syntax .crayon-info {
+    position: absolute;
+    overflow: hidden;
+    display: none;
+    z-index: 3;
+    padding: 0px;
+    /* Must be able to expand! */
+    min-height: 18px;
+    line-height: 18px;
+}
+
+.crayon-syntax .crayon-info div {
+    padding: 2px !important;
+    text-align: center;
+}
+
+/*.crayon-syntax .crayon-toolbar,*/
+/*.crayon-syntax .crayon-toolbar * {*/
+/*height: 18px;*/
+/*line-height: 18px;*/
+/*padding: 0px;*/
+/*}*/
+
+.crayon-syntax .crayon-toolbar span {
+    padding: 0 4px !important;
+}
+
+.crayon-syntax .crayon-toolbar .crayon-button {
+    display: inline;
+    float: left !important;
+    position: relative;
+    width: 24px;
+    background-repeat: no-repeat;
+    /*height: 16px;*/
+    line-height: 15px;
+    /*padding: 0px 2px !important;*/
+    border: none;
+    /*border-radius: 5px;
+    -webkit-border-radius: 5px;
+    -moz-border-radius: 5px;*/
+    text-decoration: none;
+}
+
+.crayon-toolbar .crayon-button,
+.crayon-toolbar .crayon-button:hover,
+.crayon-toolbar .crayon-button.crayon-pressed:hover {
+    background-position: 0px center;
+}
+
+.crayon-toolbar .crayon-button.crayon-pressed,
+.crayon-toolbar .crayon-button:active,
+.crayon-toolbar .crayon-button.crayon-pressed:active {
+    background-position: -24px 0;
+}
+
+.crayon-toolbar .crayon-button.crayon-popup-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-popup-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 0;
+}
+
+.crayon-toolbar .crayon-button.crayon-copy-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-copy-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -16px;
+}
+
+.crayon-toolbar .crayon-button.crayon-nums-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-nums-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -32px;
+}
+
+.crayon-toolbar .crayon-button.crayon-plain-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-plain-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -48px;
+}
+
+.crayon-toolbar .crayon-button.crayon-mixed-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-mixed-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -64px;
+}
+
+.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon {
+    background-position: 0 -80px;
+    background-color: transparent !important;
+}
+
+.crayon-toolbar .crayon-button.crayon-expand-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-expand-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -96px;
+}
+
+.crayon-toolbar .crayon-button.crayon-wrap-button .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-wrap-button:hover .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:hover .crayon-button-icon {
+    background-position: 0 -112px;
+}
+
+/* -- */
+
+.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-popup-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px 0;
+}
+
+.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-copy-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -16px;
+}
+
+.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-nums-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -32px;
+}
+
+.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-plain-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -48px;
+}
+
+.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-mixed-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -64px;
+}
+
+.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon {
+    background-position: -24px -80px;
+    background-color: transparent !important;
+}
+
+.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-expand-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -96px;
+}
+
+.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-wrap-button:active .crayon-button-icon,
+.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:active .crayon-button-icon {
+    background-position: -24px -112px;
+}
+
+/* Language */
+.crayon-syntax .crayon-toolbar .crayon-language {
+    padding-right: 8px !important;
+}
+
+.crayon-syntax .crayon-title,
+.crayon-syntax .crayon-language {
+    float: left;
+}
+
+/* End Toolbar ===================== */
+
+/* Scrollbar ======================= */
+.crayon-main::-webkit-scrollbar,
+.crayon-plain::-webkit-scrollbar {
+    height: 6px;
+    overflow: visible;
+    width: 6px;
+    background: #EEE;
+}
+
+.crayon-main::-webkit-scrollbar-thumb,
+.crayon-plain::-webkit-scrollbar-thumb {
+    background-color: #CCC;
+    background-clip: padding-box;
+    border: 1px solid #AAA;
+    box-shadow: inset 0 0 2px #999;
+    min-height: 8px;
+    padding: 0;
+    border-width: 1px;
+}
+
+.crayon-main::-webkit-scrollbar-button,
+.crayon-plain::-webkit-scrollbar-button {
+    height: 0;
+    width: 0;
+    padding: 0px;
+}
+
+.crayon-main::-webkit-scrollbar-track,
+.crayon-plain::-webkit-scrollbar-track {
+    background-clip: padding-box;
+    border: solid transparent;
+    border-width: 0 0 0 4px;
+    border: 1px solid #BBB;
+    border-right: none;
+    border-bottom: none;
+}
+
+.crayon-main::-webkit-scrollbar-corner,
+.crayon-plain::-webkit-scrollbar-corner {
+    background: #EEE;
+}
+
+.crayon-main::-webkit-scrollbar-thumb:hover,
+.crayon-plain::-webkit-scrollbar-thumb:hover {
+    background: #AAA;
+    border: 1px solid #777;
+    box-shadow: inset 0 0 2px #777;
+}
+
+/* End Scrollbar =================== */
+
+/* Code ============================ */
+.crayon-syntax .crayon-pre,
+.crayon-syntax pre {
+    color: #000;
+    white-space: pre;
+    margin: 0;
+    padding: 0;
+    overflow: visible;
+    background: none !important;
+    border: none !important;
+    tab-size: 4;
+}
+
+.crayon-syntax .crayon-line {
+    padding: 0 5px;
+}
+
+.crayon-syntax.crayon-wrapped .crayon-line {
+    /* width: 500px !important; */
+    white-space: pre-wrap !important;
+    /*    word-wrap:break-word !important;*/
+    height: auto;
+    word-break: break-all;
+}
+
+.crayon-syntax-inline .crayon-pre,
+.crayon-syntax-inline pre {
+    white-space: normal;
+}
+
+.crayon-syntax-inline-nowrap .crayon-pre,
+.crayon-syntax-inline-nowrap pre {
+    white-space: pre;
+}
+
+/* Default Font */
+.crayon-syntax /*,
+.crayon-syntax **/
+{
+    font-family: Monaco, 'MonacoRegular', 'Courier New', monospace;
+    font-weight: 500;
+}
+
+.crayon-syntax .crayon-toolbar *::selection,
+.crayon-syntax .crayon-nums *::selection {
+    background: transparent;
+}
+
+/*
+
+This has been disabled to allow more flexibility in changing font sizes.
+
+.crayon-syntax,
+.crayon-syntax .crayon-nums,
+.crayon-syntax .crayon-plain,
+.crayon-syntax .crayon-pre {
+	font-size: 12px !important;
+	line-height: 15px !important;
+}
+*/
+
+.crayon-table .crayon-nums-content {
+    white-space: nowrap; /* Prevent wrapping line numbers in some themes */
+}
+
+.crayon-syntax .crayon-num,
+.crayon-syntax .crayon-pre .crayon-line,
+.crayon-syntax .crayon-toolbar *,
+.crayon-syntax .crayon-pre * {
+    font-family: inherit;
+    font-size: inherit !important;
+    line-height: inherit !important;
+    font-weight: inherit !important;
+    height: inherit;
+}
+
+.crayon-syntax .crayon-toolbar .crayon-button .crayon-button-icon {
+    background-image: url('../images/toolbar/buttons.png');
+    height: 16px !important;
+    width: 100%;
+    position: absolute;
+    left: 0;
+    top: 50%;
+    margin-top: -8px;
+}
+
+.crayon-syntax .crayon-toolbar .crayon-tools {
+    position: absolute;
+    right: 0;
+}
+
+.crayon-syntax.crayon-expanded {
+    position: absolute !important;
+    margin: 0 !important;
+}
+
+.crayon-syntax.crayon-expanded .crayon-main {
+    overflow: hidden !important;
+}
+
+.crayon-placeholder {
+    width: 100% !important;
+}
+
+.crayon-toolbar-visible .crayon-toolbar {
+    position: relative !important;
+    margin-top: 0 !important;
+    display: block !important;
+}
+
+.crayon-syntax.crayon-expanded .crayon-toolbar .crayon-tools {
+    position: relative;
+    right: auto;
+    float: left !important;
+}
+
+.crayon-syntax .crayon-plain-wrap {
+    height: auto !important;
+    padding: 0 !important;
+    margin: 0 !important;
+}
+
+.crayon-syntax .crayon-plain {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    opacity: 0;
+    padding: 0 5px;
+    margin: 0px;
+    border: none;
+    box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-shadow: none;
+    border-radius: 0px;
+    -webkit-box-shadow: none;
+    -moz-box-shadow: none;
+    /*white-space: pre-wrap;*/
+    white-space: pre;
+    word-wrap: normal;
+    overflow: auto;
+    resize: none;
+    color: #000;
+    background: #FFF;
+}
+
+.crayon-wrapped .crayon-plain {
+    white-space: pre-wrap;
+}
+
+.bbp-body .crayon-syntax {
+    clear: none !important;
+}
+
+/* End Code ======================== */
+
+/* Minimize ================= */
+.crayon-minimized .crayon-toolbar {
+    cursor: pointer;
+}
+
+.crayon-minimized .crayon-plain-wrap,
+.crayon-minimized .crayon-main,
+.crayon-minimized .crayon-toolbar .crayon-tools * {
+    display: none !important;
+}
+
+.crayon-minimized .crayon-toolbar .crayon-tools .crayon-minimize {
+    display: block !important;
+}
+
+.crayon-minimized .crayon-toolbar {
+    position: relative !important;
+}
+
+.crayon-syntax.crayon-minimized .crayon-toolbar {
+    border-bottom: none !important;
+}
+
+/* End Minimize ============= */
diff --git a/css/src/global_style.css b/css/src/global_style.css
new file mode 100644
index 0000000..82b6061
--- /dev/null
+++ b/css/src/global_style.css
@@ -0,0 +1,302 @@
+/* TinyMCE */
+.crayon-te *, #crayon-te-bar-content {
+    font-family: "Lucida Grande", Arial, sans-serif !important;
+    font-size: 12px;
+}
+
+.crayon-te input[type="text"], .crayon-te textarea {
+    background: #F9F9F9;
+    border: 1px solid #CCC;
+    box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
+    -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
+    -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
+    padding: 2px 4px;
+    -webkit-border-radius: 3px;
+    border-radius: 3px;
+    border-width: 1px;
+    border-style: solid;
+}
+
+.crayon-te #crayon-code {
+    font-family: monospace !important;
+}
+
+#crayon-te-content, #crayon-te-table {
+    width: 100%;
+    height: auto !important;
+}
+
+#crayon-range, #crayon-mark {
+    width: 100px;
+}
+
+#crayon-te-table th, #crayon-te-table td {
+    vertical-align: top;
+    text-align: left;
+}
+
+.rtl #crayon-te-table th, .rtl #crayon-te-table td {
+    text-align: right;
+}
+
+#crayon-te-table .crayon-tr-center td, #crayon-te-table .crayon-tr-center th {
+    vertical-align: middle;
+}
+
+#crayon-te-table .crayon-nowrap {
+    white-space: nowrap;
+}
+
+#crayon-te-bar {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+}
+
+#crayon-te-bar-content {
+    border: 1px solid #666;
+    border-bottom: none;
+    height: 26px;
+    line-height: 25px;
+    padding: 0px 8px;
+    padding-right: 0;
+    background-color: #222;
+    color: #CFCFCF;
+}
+
+#crayon-te-bar-content a {
+    line-height: 25px;
+    padding: 5px 10px;
+    color: #DDD;
+    font-weight: bold;
+    text-decoration: none !important;
+}
+
+#crayon-te-bar-content a:hover {
+    color: #FFF;
+}
+
+.crayon-te-seperator {
+    color: #666;
+    margin: 0;
+    padding: 0;
+}
+
+#crayon-te-bar-block {
+    height: 34px;
+    width: 100%;
+}
+
+#crayon-te-title {
+    float: left;
+}
+
+#crayon-te-controls {
+    float: right;
+}
+
+#crayon-url-th {
+    vertical-align: top !important;
+    padding-top: 5px;
+}
+
+.crayon-te-heading {
+    font-size: 14px;
+    font-weight: bold;
+}
+
+#crayon-te-settings-info {
+    text-align: center;
+}
+
+.crayon-te-section {
+    font-weight: bold;
+    padding: 0 10px;
+}
+
+#crayon-te-sub-section {
+    margin-left: 10px;
+}
+
+#crayon-te-sub-section .crayon-te-section {
+    font-weight: normal;
+    padding: 0;
+}
+
+#crayon-code {
+    height: 200px;
+    white-space: pre;
+    /*white-space: nowrap;
+    overflow: auto;*/
+}
+
+#crayon-code, #crayon-url {
+    width: 555px !important;
+}
+
+.crayon-disabled {
+    background: #EEE !important;
+}
+
+.qt_crayon_highlight {
+    background-image: -ms-linear-gradient(bottom, #daf2ff, white) !important;
+    background-image: -moz-linear-gradient(bottom, #daf2ff, white) !important;
+    background-image: -o-linear-gradient(bottom, #daf2ff, white) !important;
+    background-image: -webkit-linear-gradient(bottom, #daf2ff, white) !important;
+    background-image: linear-gradient(bottom, #daf2ff, white) !important;
+}
+
+.qt_crayon_highlight:hover {
+    background: #ddebf2 !important;
+}
+
+.crayon-tag-editor-button-wrapper {
+    display: inline-block;
+}
+
+/* TinyMCE v4 */
+.mce_crayon_tinymce {
+    padding: 0 !important;
+    margin: 2px 3px !important;
+}
+.mce-i-crayon_tinymce,
+.mce_crayon_tinymce {
+    background: url(../images/crayon_tinymce.png) 0 0 !important;
+}
+
+/* TinyMCE v3 - deprecated */
+a.mce_crayon_tinymce {
+  background-position: 2px 0 !important;
+}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_crayon_tinymce,
+.wp_themeSkin .mceButtonActive span.mce_crayon_tinymce {
+  background-position: -20px 0;
+}
+.wp_themeSkin span.mce_crayon_tinymce {
+  background: none !important;
+}
+
+#crayon-te-table {
+    margin-top: 26px;
+    padding: 10px;
+    border-collapse: separate !important;
+    border-spacing: 2px !important;
+}
+
+#crayon-te-table th {
+    width: 100px;
+}
+
+#crayon-te-clear {
+    margin-left: 10px;
+    color: #666;
+    background-color: #f4f4f4;
+    border: 1px solid #CCC;
+    border-radius: 3px;
+    margin-left: 8px;
+}
+
+#crayon-title {
+    width: 360px;
+}
+
+#TB_window.crayon-te-ajax {
+    overflow: auto !important;
+}
+
+#TB_window.crayon-te-ajax, #TB_window.crayon-te-ajax #TB_ajaxContent, #TB_window.crayon-te-ajax #TB_title {
+    width: 680px !important;
+}
+
+#TB_window.crayon-te-ajax #TB_ajaxContent {
+    padding: 0 !important;
+    margin: 0 !important;
+    width: 100% !important;
+    height: auto !important;
+    margin-top: 28px !important;
+}
+
+#TB_window.crayon-te-ajax #TB_title {
+    position: fixed !important;
+}
+
+#TB_window.crayon-te-ajax #TB_title .crayon-te-submit {
+    margin-top: 3px !important;
+    float: right !important;
+}
+
+#TB_window.crayon-te-ajax a {
+    color: #2587e2;
+    text-decoration: none;
+}
+
+#TB_window.crayon-te-ajax a:hover {
+    color: #499ce9;
+}
+
+.crayon-te-quote {
+    background: #DDD;
+    padding: 0 2px;
+}
+
+#crayon-te-submit-wrapper {
+    display: none;
+}
+
+#crayon-te-clear {
+    display: none;
+    margin: 0;
+    margin-top: 10px;
+}
+
+.crayon-syntax-pre {
+    background: red;
+    white-space: pre;
+    overflow: auto;
+    display: block;
+    word-wrap: break-word;
+}
+
+.crayon-question {
+    padding: 1px 4px !important;
+    text-decoration: none !important;
+    color: #83b3cb !important;
+    border-radius: 10px !important;
+    height: 15px !important;
+    width: 15px !important;
+}
+
+.crayon-question:hover {
+    background: #83b3cb !important;
+    color: white !important;
+    height: 15px !important;
+    width: 15px !important;
+}
+
+.crayon-setting {
+
+}
+
+.crayon-setting-changed, .crayon-setting-selected {
+    background: #fffaad !important;
+}
+
+.crayon-question:hover {
+    color: white;
+    background: #a6d6ef;
+}
+
+#crayon-te-warning {
+    display: none;
+}
+
+.crayon-te-info {
+    padding: 5px !important;
+    margin: 2px 0 !important;
+}
+
+#crayon-te-submit {
+    margin-bottom: 5px;
+}
+
diff --git a/fonts/adobe-source-sans.css b/fonts/adobe-source-sans.css
new file mode 100644
index 0000000..955d247
--- /dev/null
+++ b/fonts/adobe-source-sans.css
@@ -0,0 +1,14 @@
+@font-face {
+    font-family: 'AdobeSourceSansSemibold';
+    src: url('adobe-source-sans/SourceSansPro-Semibold.eot');
+    src: url('adobe-source-sans/SourceSansPro-Semibold.eot?#iefix') format('embedded-opentype'),
+         url('adobe-source-sans/SourceSansPro-Semibold.otf.woff') format('woff'),
+         url('adobe-source-sans/SourceSansPro-Semibold.ttf.woff') format('truetype'),
+         url('adobe-source-sans/SourceSansPro-Semibold.svg#AdobeSourceSansSemibold') format('svg');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.crayon-font-adobe-source-sans * {
+    font-family: AdobeSourceSans, 'AdobeSourceSansSemibold', 'Courier New', monospace !important;
+}
\ No newline at end of file
diff --git a/fonts/adobe-source-sans/SourceSansPro-Semibold.eot b/fonts/adobe-source-sans/SourceSansPro-Semibold.eot
new file mode 100644
index 0000000000000000000000000000000000000000..cba2a52fcfa7266d345083245b3e358f94dfa041
GIT binary patch
literal 149976
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%0Dxdk}{`4fE1 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

GW}R*6;wNZ5 z(&EKa=X?^~;Zfqh!1U$DHQAaQ(t#)0oo96zx_{InZSi<)rs?7=x5n5Os*zAVsgZC) zO6w8)ue=KQt2w+3Buh%r>~o6JQdz%@>`-Rf0kY|60`Y`VtlF?pxoKP2 zoNeN+aa~|ZwIZw5i1oW!g%IRPtRZEsa+$z-$6*}t?pm_$s6@9okk_n6$@wrYYt_;#`LqZ z=UM)D<8j085H!jI2#x8$EVX#|77Wp6-HBqX!EqT3;a9!zW;rXc%#qhl#^wG9!{_ZM zY}}4paV+Du4{d5%h5ONr5pd!3#p>t*vAt>7dULno5_hv}7@z8CWbpnZj`EzTprNw~ zn@`rh@b*Bv<=1Guw(2SS=s%|N%tPGndxTi=9)g;jM%h$#lM-BC-K6_v56aJ`kZMwO zqEAwl;bxNBbQk%^^CzU!E_N;6%y!S6;&jo2e0im}q$t>3-QJ;C5iq#2Rwv~w8uhgE zJf1zBFrP4MWF=*5HOC?^)*g0@XJK_T&7vw+7RH1G;u!zOBH6EpbjxAJF}^rmZ5$Xz zgoFT0mlK2bl~*z(EcGo;4_vvaqaR}(zm?uN6PzuHb$$MzJp1kf@jvU!#|H$Y=L+Ez zs{-Vg?;+cnk4?qBK|z0^f8rw+4t}*Vsfxf}iW|c7K{g_V!@>VX6c7gm5C6OQ2Rt1e zKK^^ch+pQog<*YtF?_t9@{vp^U;V{>0Og-&3J#Kg;X+OlRe-lG=0ER|gvg<`H8ZC* zbNCKMbMhSzNS_07pNsO31Rv{MN7%0D-zF}3ZX(RjSQP|}GhYy}4Yo#Y*F5`ItDBwA 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

5upF*Od6hbeN(IoPY;$og|<&t+U{!>KC)MQ3aO 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 NGLoP%n24*}{{aozR*nDw literal 0 HcmV?d00001 diff --git a/fonts/consolas/consolas-webfont.svg b/fonts/consolas/consolas-webfont.svg new file mode 100644 index 0000000..a475e42 --- /dev/null +++ b/fonts/consolas/consolas-webfont.svg @@ -0,0 +1,261 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : 2005 Microsoft Corporation All Rights Reserved +Designer : Lucas de Groot +Foundry : Microsoft Corporation +Foundry URL : httpwwwmicrosoftcomtypographyctfonts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/consolas/consolas-webfont.ttf b/fonts/consolas/consolas-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a6914c807251a202e07c9669bdcb37a3578d21a GIT binary patch literal 37732 zcmc${d0-S}nm=A|RUf(2XS&m!q`T8eI#;KY?i@6^LqdRXgn$qr+z@WVAtE3uA}S~% zq6{*q41?$>gH@e~$~X!-GtP|T&d+tlue0N-GwaTDDfkK^Cqp1)q(w{-D+o6p=U2zMREJAAlq@eS)mw|JW%?8Beny>{`s z<^CTw9>wtqoIka`Z_{-zJzjfB5cYTC`z`A?E?-|3%E}Og`|ii}|A0Rl4dGXN`YLGq zYG}rp`1UM6lZGQFwFn|V{v4keHyq)1y7}y0K`#jUBl-w#q4(6BqWN-hD1@+ zNuutUApU2Q;O(H>(7!1&yj}qf-{|z84t|QU_znAwR}dbdbJB-;H#S~82M6)LEPf;~ z16rs(3-9pn*jC~?onRAg5-zg}HiO+D{zCkf_&f3U((~RVug&Z7=6G|x1>TT%taqVz zm-mz}H#hS=;TzrM%lNieIEHU^UG*)&Yw|k1S@Ca0@vWW1-(r_9U;g9emo6W;yy5Z` zRTzAH@T0*G2UFkswIIBA{=IYW{q()F@5SEx(R;h!TlQYvyRZDqBJaQJ|6O}?JZ<#9 zoY4(e9rp=u3KxX8g#UwaHN+Ya24g~EQgTXaTDr+>vD)kz4rivz zot2&A@%nQ8dHDr_!lL4m(qLJrydoT_tg5aV6CGPySKrXs)Z8)-bl*N<;-rqrQ>ISq zoZdBK<~6fsch8wSuV?;(g^Lyox8Jenu7igk{^9WxCm((6M^8R+>c>x=mX-de2hKeE z%=16_=?lWfWy@E+d&3Xbueo^rYT?c!!X`mjv4y|n+8c$(&+c4$Egh`e@!pbKcYp8Y zpS|^ee*ezfzk5zN|8wEbfB55nd?;-F=YJ7yyL;EZz5DMyaL)sWg!_*^^!=B9@yiW@ z@X9uPQSFUW#sOiMaF=jMI3gSqPBM!S6HeprIpLtNUpOkr!i%7VhlRt!x}ELc0_;?8b)()Dv>!QbeV4JF<6b9md1Io^MgnYGLrlv%0wcXCQeP!>x&y1Lu^ zb9_NrDqZFD%1xc!KDlX5P}Y^wSABlpw(fV_ug!7ey6!>uM|0eMpR6zGmd9T|ho6`; z2lvyLruNJY%7#)Um)(h{d++S&amxa3V=PtjcvI7GQ$nf5?2U$ka$>1>2R-CxxW8AH z@+bPevaVo~EOd77UA}j*mv+XueZD#Fz5J+4JE8|BX>Vt8n|ydka;f(pd3RDuy&>6H z($nqrw)@8~UhVDnE?c7Ag04%YC*#rHz25e{;}`q)diVPIp5t z1AHfqKdJtL)8})0FYLuI;7b$nZr8-$4ey7`(o6l`3-O2hz1E4SDP4w^e zd-qP<>t9T7LfxTHdLI)_g9X!IrVh}KWmE_7qW2I=SB$hBa z9Fm0#1G-efqAQVgCMAQF4A}WmEW=KhWh5q+$aYh|#a@_JqIgp;%HEJth>hK(xNvcL zs*sJZrkfN!jwJq7CBjM+dxqJf(0u(tk8a7iWs&JCBEf5#0}o%?6`T-p52jeW&a_BAU4w66OhtC;^2g$U zez#y19KvEDmX2{$^vM^Q?BoNHlrESsblRprBS}ao8E~WumFS@(G?1a~WtjQ{8TPc2 z0b9Bdz!_U;z|QxSO!Pa$fqtj!(eLt#eBPyaPthl9MDnv!_Pp{ece&qg_m{h~%Jb~* zH{3@yxGVDP_Ph#r{DeOA&DZq4q9jYp@V+$nje;zNWJ6>?NEQ-ly29~2CMSes>4G9+ zT11m##9J6rFDi-H8b!Pf)A6@q^mO_Y-^n_`R^mgyTP=~JnNFjZmA676iD9oc2-7hOhcNx#HD4fKh-_a|m1 zU6-qWp({PqE;X4% zi8^jF)5wt2EF1MtZgPP>tW^=KAAb?ahrfv3&;R^ZzvQ>p_^iH?KjgjfUhaK9Cgk4l zf9qfU|M+hH{rQ*i_X8&QFAJ>iR<__)Hc350f48c~Z&eSlKKesD&8Z~xUA937dP^u0 z%7rNVxgh6-lt5u5qEsYYR3u$EESH7k%!rb1yeL~ROJhTF(gmeB{i0lKQVK8?`P%5` zn-mj{%-WIJq*Q{qJn0veT5SeCJ#_w2KJbNQX|ixmuSkhsrOE8v*~aVs`WT(i$pvMy zxlArFDf#BFWZc1I{_5-emx!P`_pM7 z=YtjHn=#~>^m(>%{a^R+i(GW5@6V$R-6O#7@%ifW>HPkJslP}l9C25=CaB%GZ0N=n zSKl&9hcUbsv2?#7&1{Lra1+|#m98|(!DtNEqFr`Hg{BmN=}l%=enBuQ7LA;C)?^Ww zPM>bcbmawtWff6TD!l3f?P8DyQ#_Sew;6Wgo@EuZ>xo9?bhB&+7pn;p9H7awO6fbBljUV+F zrg^~(>a@_Qi)@W2|tutFjaD!M?S>Vr26WM=z)+QZ3d8zkcLHqKC`o(SeL)(K* z(d?kdq3C(@eLj@hzPVS!RDr?N= zpO^0DCp&QRTDquj#VHs2 z6N@3)l$sR2%$qQLR_t0$iaWVP$x6AXOhi*nF-BA$m7B~1Y5AeBGtUu~t(I73ZUx3v z&N3?=AB}A&AD87u<#Fbx6RmnrxE9xevth_;0%f2+66%@+G_vYI#AYx${DCy)hd8XU z<=|uuOOrsZ9@YSg=HneLY@Jh)F{Y+$&aRo$w{;aoW~>>*#8OGFEdTYNy4#=XU3{pw z>gn9ZdC^;!s4wM4iyZ3UXsO= zT=r&@_FC!c{yWu|&$AQ%#(vLkT%%qy_?NYR{;#iZBE9m2SS7uT zewhWq8e}zkDI(=NQkgN|>bL4ou!#Cv8*@ANXEOJA^*1css{YBbKSOOd(y5$sm^Duir zU2|An$pBo?JAAA@A->L9giN7KkTXMyU;w?lLbCn>X=zzdll3;-STh z*N?~iB(UE~3&c%Wg}Ky!g(Y32KPKz&9^g_^x?t2n&D5s9%4cT@;w<*t6DRQ9-Oxv0 zXSJY|Doq<5&?gJ2cwN#=QSAJ7qcu#n+ZC+y=hg>Zu3&wxzb@!H z=&vtxxytJOxj4W{ZM-&JE|Om1v@JNm|2B!IPY!myW$5_|Ko9Yg?#my;<_O}wd_qW= z6xWmk#)~mMR6!-%i0+kh%C>=X*i1?(I7SkPyaL-&o7vKzu6O2w6$nap07prJBQ(qy zh8Tjz12P<}Od>XG&5`0vH_%u2l32LFqU3ns%E(u`!S)fk+4L&y5V!G!XT-iBG<+t8eZ3Dj)43fOWv!LcsZsU{^F1gnzVyh0>buwzp98_fKu^EL`}l-^6=K;$PoAsk$xCmT zM)YJhUL3HbWT%0cEW~DVLvrc`#gck4W=W+tvzTBgT1?!$#iCLC8a;jS(YceO>B*we zlgIMa*}uMW?#`Nn@6(7Ape9gfoY(MIGEW1maq34$x@ zi58GTHdtK>(S-9VIw&Y%TzUbu%IZ<$;E)QK;}bA$i7aY5{^Yi1t&<#pNP zS{fftO@XS|xUEk-dRRS>d(Hl}i;rz;lJtOWX{$8xy<&P~AJN z23;+)6LU^ySNO{n-A$u(I=|gjx9ovm@7{U$=2O=-B!Igy-6OKyhERACu#<8K=Y>f|K5W=>``x!(U%BexHOn7dS$Xs3vCAeEwQf7Pc+C&59rJvk zbwN$lg0@0u!^+Oq`BA4er*T2^hHH0hSigf++;FZk*Z0(vbZ#8K@mO8<_*tu) zXYA}QE1z}!j9^>2GXo#_<6B$ve9hw~h<62A#*WFZ+BA92>{+0-Wqizoz#JpO5+MdB z7hjy31`yI+9B}8G^q@62(OM-RG%p6tYf_3aLe4PP2dXeIUa$?A`>+~{&9Mxyt%b$|G)n5MfD?P=Hbfa2j&ye zt=zw;e$lwRG^f|H^T(@7^V?Sv=5_=+*=v#t-G?mKVNEOzT3IIHtNvsG`%EsRF3Yws zX=G@SbB6YmqVLqrG=TF88pw_~i)*}|F~ymg#bZ3)nqueZ<2y#36bDB&aGvlrbl-RI zzL`Q$SS7?f^o~XR9fvhxfINR&6NdUG=Yfz1Tv|U|p@BTUr-U$hd0177r--;i5#}+b zPq$(I$}7H8alSH#fOf&@zWxqH`q=1R{teAqclKMIWx}4zpGb#vUF0XUGDjja?h%iz z8+=#vtrLA>MW5QF*1|U=3cFdc^uCmd6>k(=npUoZtr1f6w89erH}ENfbzx`t+b#86 zIwAG2;)4fS&p{|`#B*N9v)<93Rg=i@|LdY}@ZGiIvB5<~rgh>?zQ|1h((ghcIqkwgD#t2fX-xbcNTl+wFmMxFKXTQznConqCrn`8wpt*a=s_^m0lD}X#yUN>2CT^Ts_|2W8 zfN6|vlDbIOtv?`45atQb3bFA5`b&_GBP5$6%4F=7gym~OiVu7FVYw=#7zx|yq2)3J z;M8&Nfie*W;6xL3k}zL55|sIxG;eJFqK!-Qe5ii~=ajC5ujJ|Hgjm7!E|S9i`Pxny zm%rr`&6a13K3ic`W6OBXdK<@sxr~d-4zt`6Rj!!~3&dqBufsXnXO{Db+Z0&1M#e1m zG*}-6Rm5ltz?^mPK{#rpGqr}ni@om|k}uwX%|Cp>XkQ$b7m&Q2&@S@x`Oz>zm~$DG!i*Uf44za-B&GNbFn z+{=Gqr<}PdPPfBQ=Xq`HnQ&TG5aS!ziZ0kXVfpAIQ5sK6FXa{wC_7ybJNY6 z=Tut~J%e91%`CUpZhwB~y?=OkM%#|3{^|4E)ECs3i;8v@6tJ7v_ZH1e%C0PCXHu-i zF@O7g} z(SaCY9FZABuzTH~Kb)YqT32-T)iIjR-JSQia`t?aV zXy`^$zrmOU5I2E7sXdX}B|%PthQ&m^0ZQl<4GX3gfpmV!Cs}<`5{rG#PQ5g5@V%b> z?Cd+_{bAYaAKCNbPiWmr@Yo8{m*}S%p8X;?=VE4Bk#JX+O+ zDGXZxwEHl-o;|&MW7Wb5#S`y%ar24iA3RjtxoN_gSpCxWfU~Z5>a%*c`qJvd`AOxI zS2iy=u&naX#;xJbnw_pzVvY%k4#Ms97CC{)p9|Xz0**OO*xCm%Qa@LpUvTRFt+PT$*kA5CcYPJc=2w_^8Sjt`1e6=8O5)I* z!*U(abJ|w)^fEx8@G^;b8G@gp!D{)zBgUG`3J&f zWxgj@36xB_BbO_iQH@!VJp+Kx!}lhwyIxHfPlkJstPD)=XsPWFR_@** zes<*2bu+)Wz9re}#ycRsOXt8lB*8~`^*HMyLjnNM9s#ys{DQ(rotF~1?*xO&B8f1z z%tvGF-8Tj=iSGAQ+-&d%;=;j$gI(gz!JBDpFJf%p#xwK+@FW~#=HhFU!Lp*oD4~xM zUx@^|krSJ*2U-yqpBCYl{$@vfy;b0Su?7VT-dua%1dT2f(GbBKTlxI}7=WA0W>RdK z7No#JR!0p!{K?EH`K3TIt7v*dj@CT)cH?PRa{c-3 z&(_nptG1IT*@s_$Aca`;%;1;o^IxmaU3wQ|gor2Ds%{`Sz$$6XkjVHqw(E8ZTO4ux?DiX$D9YSg4s+<{fXFn}c50qQ)=)-R6T(OGxX z&+a^a^5G{Rz5k5fU9#x#y3U7goT8S9>-OG#)9o~l>S6fhfIZ(83NwwStSn zLZb+z6twRrb;G0tPc3B*}*d z77id%TB~au+6V{AB+bQk1*RDu6;ki#}@t1=l##b6u80^{Q-wBp8|v)C|>F+Oqcf^kt;BlkgRK1kb63UEg;)jg zEbwMRNFAgtBWS{lLk~m(a5l^EBob381rfm#ARYOW=g$9*GZMnM**T>$=_|xXoc;9G z^AA$9UiP3p8vzrU7BHBsbHkAkXFpfZeU3|#DQv}+nFT%B17O>ejUC|HRYK*rph~n+ zZ~`tK0dM0QgkLr#ayZ+SQ&|;Ptii;FFz!rOj%P&s5MN6K4fdxx0u|h*@&epcETzOu zC;}l4a~p>6EKQX(*ljuZ)8tQI$4|D*+B(HwyJ-6@+ZWZ2x&FCZd{d@P@l820;lX?3 zjg#+uaZ}}rg)`l!vb^r9$rV){wH1~1GuBTTckA*7LvmWeu?$D=tg6X%6_pLwY@9m( z?)ha2DJCwjXMxU4pfjT|R`ca(t6bn-3LX<>xS;4ER`doEoq8x+F@v6V4TNZ4K>*0N zI7>RK?ikSRI(+z>9lBlo{_8ORU*rA`p+<;VY5o)9GD}VY1J<|)#1^?MpuQ0!;SpfT z5(w4G9Yhe1+{X>Mj6H2s*2S`0R!zR=j#&NmPxftlVoe1*CG}l;WXg3@3r{>CExdGU z?Ni&wHEkwG9FLCHEx|h^2-gX*1iV8G22P2>^d#sK`Ql+<9*l?IDF)D8l16tgr+m1B z)16?F6JVP$6U3MnV{EBvCI5}e3;0kToh&&n^anK`{P4aM~*)rTb zqzusDrAFmsGnf?s8?qO<#TC~ENF^X`04hQ7@kn~(!`si)>nb1V{?qYb=+L_u+dDr0 zE&E{b%Toi=bFge*f8YmdEl2_5Y{58B#W*Jm1y}R|a_Y!>5JO6cE1il++L|HumA*p1~f`H24Xgfq#%!ab1vmjc6MA z1Aqi1YJmsj1x-jqza;9Qwo_hVjxa|JXa$SuEv8%4&5XZM0|U@+a?hP+pImxY4YId* zKS;0t0?$YUUZ&}SM)*T@MAs78ut_0WPJ&`YPoUc>I$BQ#V)<2!v}t%Z`@}~EH%Ti8 zmy3_@mOejz_a%qsw`6nFUTM7kaqxr)?oG&)-VnbxBbXY2l90E0IFs~T*VH5EfD~Je z8ECE=JYf#|NPUjAtG&jSyT7_{Hw_CDj=^XCx#ly+y6_)638%S!H+jq%^WwRwL(etR za}j|Mlc-O+_;c9>ipq>J&Wsp6R~mjUHxtZ0=4EZ_Pw;H3`kA5l?k`{9&)q5><>O@# z{BT3zmK2GChyr~7it~e1Pi{n8X}Kn{t?b%+*v`}HyXq%2&4WAHU({r+ABca~^{QWB zVsoI*@^^&?X=sOsEoiX{WQ^*1zd53QaWBbrWK)Po(SMK#ECqn617fmJOh~vsB(ngByjIlek+J zv5x}0ju|L6@!J8ZB+E>O9zlp&#DNbC&u1cClPoOF=G^^>kRP-1RpJeO&pN*TZ zd9>R%eeRO*y!)0{AJujJX#T8i)AFCS6gHLBeSg+F%?s+XS<3gG?4Glx!2eK+!;)Os zb>qyz$#+bjP&#Ghxa_JT=fr6-SNS*^gJYLJhm4_k!_I})orRHxX{Z!pn?+i;5k3}Zu5ruIXNE(Pi)#oUBbn|)zK4REVfoG7 zDaK=`6FQz;GV9jv(zct=Y@Bm;Mr3t)-MSeSj_}lKU+cu_WwrWA>h`nCXH3}j+{PV0 z-!n1ykj+sr=is_&w=Jl$S4>A#2@@WMEqhA(TF54B%1sk#LkINKlN3_7bNK5MHszt^ zZHqgA{ysK^SiCs$Dm*;t_Ot7!-r3N6$AocP=2j{XweN0d-9Pzb^)mZ#%S(GZGBQu* zdLoPV&OY|_*at^(s2Slg$a76(&Hg`LNQ`jNi z5$O(&H;~LJjNHviik+16!~_$fo-yDaXr_t)t54ROuR_-_?pMf&_rgqgn_=Dfolp0b z&ksIz)G+ahrL%U;E{&~O(sFQm$;!w*kFfV|d1X&~N-8_~_4XH5_fFXL?DjML*I&o} z(Pn>^_hmEs@(I>W4s2=o8z@d&G1J@ANEaF|4tUaBgaUbJ$prbJr(wx>xQ#;!HpS_b zVe5roA*MIGusUF2#8NW|ArurdfrcvAk zutYZ3Z+>F!s^fi8Q5A`nM#(FJOc z&W8D@6($Rdgx7?aohG73f04Tj6*pe5CZsePE+PO^DTQ{5XxA>9o5kqJ1!W3ea*9c= zqt_QOPlzC^!=}z87f}-d6!2FSVKc>~%*M3k;0vvEDvZlA!^#r0)getwNtVFdW=}C& zni8G(WsPpEcq#wND~|42RF|&taO5Uw}wXJ3@{1Iq{elGV3{Mzy=HCYmV%pfEc2V z1+DF_0%uBnu{GPC99?msJHOS%*8U*N6J2>=cH^~Pt7~E%OX#?HUS#anv$t$}^4joo z_un>SLtDEi3FP2#ZN#ZqtH>aW~AX4zw+t(B7O=(dermt53`*E-8^b<(*?Z{<^8fw9TuX zN@T}`W0+iuk#h=D;`&x<1fU=0mV60`oRShbW6tD@%&9SEge|9GMu5yvf{cHU-N{uX#^v0CyGB2L`^o{iW%I1pk9+=rTgP)_oprl)%G)*0GcBTK}qy)|LmsR-3m z+<>+PMNfLTog*o<+#M8aI1()_2#oH`E>C;MMsd`jP^E7aXQMtCxI;=nas`80DZ5gGN{qKpjR2 zCJ>~-RH$+q_!=}(-j0?_W+F3Cv0|-Itbs3xNlKs~e$vit76c&)N`Q~X5Qyo}77l%8 zGOQj==oo1s4eid|o#3jdtj(J~(^*#4RQ%Ip#&n0-mKz9pA2Ft5HF^W(KIy|3qn#Cw z)qTWD)OQB+#n(f1{xoOxoaVvp;tMsc1!=a*x#I`75Agx?*8z{WHg_pnZ+TZKUTp{r zfG(;?m`I0-Y%wJThm;bQij**P3zC&s07WRlArbG$NDlCQV`&#S!1o_H-96h|-!i3K z`tW#VTd`SN|JQFAvHp92&nDrWuEJ-BbO1lSQ5>IztQf*)A@!j%|4n>$NV;n%#c1HL zr{%`jhP6*_X&lbA;`WtF9ag{Z_jrgRFekZ?xP{?#M; zIX~`xsIvofRov-s@0f`-_S~99%NO*grX?m^Kc+6TW>!5`J-yc%=-EHPdsR_pcm!Iu zT#1-fa5X6`3#5NBxZX2poRRC8jrJ@J3pQU+DCQE8f|Q9_iua6T!Jqy3{0dH@Jmi^2 zJX^jZ^so{Es-NF;K7pUi0^sE$`gH*9%De&ygRAsA9hm^Ih9jN-dmI=SUm@e6Fz2T; zU82(+$ACEij0TCa6u$!iHX<^#KQ*H;!p)p)81*ru83-_jSc8B$J;TkQfxuUJh9P00 zBkB-TbEfi`CZkkyhSa9ry+Iy#V9jtDiQ{%Kpd%Naro9xSL=$gMI)cd6E zSf;DB(OnWKcH1K37c>F_rfOz$Sxy=NF`B1F*qy%u zPVW%r$8p*ea6-b9G?}DFtTPveoK0t3m3hKbNh$M$LS!?z3paznVeSG-v4XTrQCTqa z>}6O8X85{c8IXz_w@3@B%#AD)qFJrqw7z^}L+wq?KRqkWy^q;~>WlZO;@UOorbFqe zPby*xz3Va1)GN}5h?1Bt#L~zLwUPM-Jx6=jWFUE3qy)(kkOrZpnv;(b;RxbL3sKmF zl0+DW4Rp^Cpr^ebVa%FCp4*)i)^zOjX>a|wDdne+8iLb1rw70PFzXTT9lYsJkR|ov zkxMo%V5mw5VhgYiv+-^Tu#w|fGZ8m|iwNDvivaAS+y@?FtD%|5ZU4m=RW+Z#s9yg| z>BGU5$4`p)U$Ws|`M6gL?qv}^y9yH~w$A=OCcOR2ptev<@)b3Isa20W(r;nH z=eB-Xi<2XP-+%qEgSY&D0)C$+h<6C|WzT3wSI}O~@B2T8dh?%{X(_pH$3wyNsi*FH z<3P6WuGcVLvkvbD;f&k8PkicyX?;8$SSd zAhq;($;6&YTj9I|t0vX{`HeUKt#;D+=QC>NwXv`7a#l>P{AlJK3nO>GfAMpVeNcVk zgS(%8mUUN5sY0C^_P*LH?l$xSWypf=iT)5gOVSYRf&ay`%CPj=`zO@i1mR1*mOsEa z{CsE}3TPY%k4_mH2ZyVG#sNqpM-`Sm9P)${`AJ1AJp;Q_q3Ii zOq`EVnS0-=N$O|sv$>z=I4*raz5f$+o{x-roQ4K8)55xS`Qm4YMV}!6-%$|k6ieX+ zDpDvNBnze@xeicd0Au69gnCRo7{Y{MB4Z;RNgRrv=Tj4SrwEi!jU3iQn6!BJ0V2rh%YMfA6?X|L(-XsoZxZLB`VawiNQ)<)TZ$vYQT<&S9@li$-jdFKLc zcfoS#xh#fxJIi%5hcH`+*)Ri|Va_e`?`t=F4PBb!&m>6 zfN&!%flG7CX8~WzGLf{QA{bPJ0fr6WeTtRA5!DCa)faB~>o18f>ttt{Y%G%jfH;t? zg?Lee?yIwn8~=KQvtcKqKb;1sFVJHW98{Yjoj&#bCVr4XpI2R-NmuuK_@|dXV`#ae z(a0Vcihx|BG292fI#OPnlBjY~I*Ju}yrigW|JXD7gmhEJh&E#1f?`665{OXDKNc^! z<%TlpNw^!R2tyeIoP|VsX~+0mVrxq74;D_&FP>Gpp#8SS+YgOB5PkCLGt1`9tz9v> zL_DzmncF&aY_fVvZ%sX6%SssR$o4#3q4q%i{`ieuKg<ofOIXz1I^MEMvy-tIUXOuHy(uY#Y7HW z4~3rrq!tuADF#qq5X8reuT()RsEQ1!YDO*TQiD2u_MT(Mj@7RF{^He-*DZEcMq3K2 zyBl)ZfI3;Mxt~3?e_;7TYoi@CeHngdN^Z;IrkD1s)9(lU%tG$3N%t}OQUNpoP?M66 zpok!Rkrds6>N2`vWw;p25O6v#4wDPFP(OTNK7uEU5zUhB_R_8$(4)oa;_7C84z6)B z?L^S5*ePp2)zWWFO1I#G@`^@A*)-KPff{aWIcgjTf1w0Bhmj|k2aHH7*T6@v{?9t? z4-^-kIdZU|r@D8_z6Z3!2k*z>ijIA^uAW!fQJ#U%NfjA~KZxv^HTAAB|26O5G93B; zGVkg`an7#W$~zX6?b;RUSO9j5Ijw=rrkFIBaD(Q>;qGtfP6Jk(S-@PTL=-FH;nTtc z4kvF&h$s#;Bw=#h2%LwjAv4UAiWFmVI2<#XX@X5@U~Y&&G@IzijFKlXleyo=L{1*= ze(5O|wOnFea{p|Qv}4UKhZ ztOE!R@|lYh2_%Ffl|Z|lZRkCU6x5lUl2WZ%WznXIlV;2$QkrIw3&{Pam|)uqO0*0Y zMkurG=>$_zEPMOCf9uIVOjB`1sSC_AuTjxAvPRj^Xdvj~Yj%}VacTG!SXGcq> ztE+s*mMM9gn~1ubEnu9t=n9^^0drDNZj9hoL#ZZ!2xr z?*N_JghFJ!$)=E;hgkn)!3~y<)Lm_l$wl0ao6Pg&DUKF7C<7jTL>XNIU=EC7Ay%Gw zbe75JH1rQGIYkafkq7meXq#hUr$@KI59}Rz#pv@m#=ECn{zNxdU&3*&M&b4$lmosM z9!lreUmR$Nrjxg;0lUEn-$h{&CN~jX4cIif1-J;>%RseeK~?jB#epPEiZz3va*(=r zCSC6jhH4u)^NBW~t94O1Vm^~(%PADfDTPlCQpT?)F0MFJza7bliV|>?3?eZRSpw)aO@Jcc!s!uzaO+O4M%^a7{d3A>n7zZ5VWDo_Bl4V*d;M@1nj9fopY9H#}d#+oDNI)Q3X z2{Un&X&P{8z^w}j+_Wqy5G);#mmDz1Qmi?^17w%xT*?E_Rx**`2ahiXF#SpK&Ij+=FYJ+Cm12lH1}cV( zG0AGwKKCY zXy{<5$E#YvX~JWdF=$|fz#E7~>&RfxVwVXn@S8VFvz|b?3bmO9ASeD8wIX!FYEh6b zfsYdATMKUbBO&I;tPbe;1j^~5flO_0Y-pfPs|Po>j$UePA>>A77>TU|#k`%#Z9}Vr zqM_rfqgJZ|R~MFRO$v&_30<$P6`#KUgq;OR4Z15@MN$`B65egxS%gMcS^OaO25^3m&_1!h{d6tPgZzWb zSrPRY>5qb46o%o@r3(pKvpqL_k_|ER#`2L&XXVL*aSNTGdfVojJvD$nv zQ|K1MnD$T<2Z6Cza#|FJrsn$yh8>EX{w{2O7)yS$a>1@?Gj`4n^6f3%!Q=L__VC;# z8Nv2&aC~{Du6DwXo+=a>m>A!7mQ1S7xprR3#Oj>v%1OMxNPLx4-OE@d>4YU~`8$x( z@p3NM``hJQAWr@Vq_xH8>sh@Pn^Z{i_4i|wXx3^X zdiLt4m(=sphmU>s8J>3xu~AjhhZX~&($MSHL3jB8_sxc;OCff^qbbG+S)?&14<&WN zPL7AR3}kYWpfG02Av0o5$#t3uWhIu94zK{r!5sDyZ*2Z%!m1N}W1GhADjR#x zK3!t?$Y`^%n_zw64YTO^7hG5@04vB~Y}ovnkqkycz$L^(izxk( z^p%7dPwrX)nJ^e*Y@p@TEcI;`P~XPQF*kn%E%fQ{0WEwGpLa=k2Xbx??x_uY^eM9@lvefPox_1fdPpFA}` zO?;<(?yebAw_j5hn!B@W>WC)$f*JE>)2HqpZTDv;8b{g@UqmWZ?4aun*tAuRheExa#;>F#}qJGRu-hO)z6IJ-v zC$RPj>IQXv6YFGC+thXHYK#x~6hH>lTsweyNP;ijDQwrQOW7Ksh!}X;GQffe=GF>( zrV`;Iasf_tkSdw$6p@Q6j@CHN9FAFSBtEQW*q1gQLt{gd9FJ-+5)cf%+h$f$Ga&!1 z6y=9hKEM7JXsj3>|E7`H*pg)qG?y{$3c}LFcL5xP35Ebf#KgQ>^Cc-ljlpIK=s9^G* z3sI4tu^5<0I5sxQC4WUC%50VjIj}%c@+AT1^i-;c8U{>p#jidjC!<;qXuw8ZEogu- z8;?4)r9*EBn0UpW+VDV)Mi($nYsS#cYpO7?V`^x3Ob7#ux)_Qt8RM51RmPz9g;FsV zBUnTEX@W8~iWB7&bOg0pNhk6N@ZvdnKoTvA3$^6r95X`GX*S{m&a(_OB>*5R?a&}s zkz+NkEySaczKg_`IO?+-tIDhA&J6kUgPv+vZbxw0s)FJ%W04Xv-qXY$8$o^2q%C?w zz9-kc!S8bTk_{VDk|sA-Hkp%Ks*A^0W*Y~KMo=ZK*H>ZWRsr9moPX3@Abd|T13~u^ zid{_MD#-c=6iJE1Dd2J#8Vde3a3#?|cDw;m=!Wmg{^u$G1_1Bzl>cH_`fy;;sMJ(e zqu`^J9LUJC(7@F)-DtM`>eD|;IF!Ou{p*qH?{qDH?6$>C9u}fp|Dl|J+WLR+c=8wO zPUQNRPTVlHhzbBKT_x=ug%xt%OAMyRu-#GsoKP?sg#RSc1Wz8_{>k5H|MaT%JBIJ` z*;VaV?*Cs`wf|=L`p>Cd5HAB*(A5KPNr#82OVd|~DwE-&ZHb|7w4reH`WYQ?HSJ59RjW6 ziMojC9dK*x%bi6_%k2cQz!W1C+nt4FLxqO^@AJ9=W)_IwmD>Htv97}{zrHXkxBHTM ziE_Kui!4yY+A-wXTuU;ifx^)=a8>&V8n~)`1Pxr(K4Pw=v;6+0-@5#9@UIciD$otCIEYCb}19oL7;{ryRqt!1YZ$A79>D*sz1_0#-4wp_- zVul!rrE`D|A@7t>!pn6~>L6w*o_1-3vjHk5Kv$nvOKSHa2A;SWRRbV_co#}4RWQH1 zVcCI~cc_o?tKoG- zd7FF;!&i^tsP^G89MwKNhP<8buifWw-CrA9hKl(+r8lJWupa~~bQcFIvm~+rJGhyJ zSa1!Jo+~!1ud8pYWz0#fRqDT8a5S|%#EkrML36br(f)MAVF%lP_)~`QHoTwC#Htbu9cZa5bZ#shWJ!! zYG{4VRWFH^V#~&kEphBvQ{=akz5w`3~bKU zPxB4t?OiM9m+BQ1UMV*oEF z(P7nmxfG$x(?J`mnhs38c{`=wdd6hc-#7WD8=tFbWNvF9gR*Y_%Uo!mxpi8>n8tYi zZOZGa+M&Mod!B=<*Z-CY6Iji~`~J`(ozm-(gFE;=y+kRw_x($&#y1f2@HMB&F{5en zs`e2yc~$!en!Kug1mDp0^83Rafo$UU!FnI617d=At3%V7wDg&DGtU7=&FcXP3GfgQ z-0z&l=?P`M6w!>r*rqE*c(Q3#Q=tR|^77~+`;ZDa3{>zEAF&rk<^&f{zitw;f?qCM zdURdqv0FM-cIf`Q;S^&vk&P z3s6Gw^0_6PYJH}DuMY+95UJFkms>!Dn@^h<4z3Vr4A)R5TrAg{2dZQP9xs0WgVQG` zMN5RLoaF?{YwAIaN-6Lk!u^o`mH|OkPkLZ-CRgc3)W1U6A}U>^8ND1;r>xyF9o657 zTUK`S!KRHzd#>5t6AFxN9UG{e)-$a#Fz22Xk(rsvdBvsHswoxD%Bek5EBWc=i>hZe z_@vKPA6*eHoV2RBZe~MysJft_p`odBX;an8uF6E|h%Uh(*>Z!f(1fO@j)hHQI_pCf z(LmRvoaWy4O9@=YfmV?x0=@^@1uY>-XPAaZwqO4@+JEsk+JAXf`;OuJbJLAvD}U}g z!|kuo_0ae|;KPj+g9a3-gQ_j@IJB||ccJ9NLZh${q#`H5)NMxr{)UJZ63oYI@5{}Q zV3RpfSA%wdde?z64B>%XO_6U7Q;b>*=qCqI#T0C-$*+={235Sy980oB$S}%9@$qtO zTg)iAUe->iUXCT^D@4Ws<~NGjmy4ou0}9L(;xb+=B!|ZmA_vlnTHCM=HI(D(6swHk z_{exR3B^+(sDyj&M!>;_d|!1LPb~2Srr*?kL)*;g%?-}_mhrxM+g<*?iBs3Lc|}oe zoxe7^zSvRM(&~9>QslPDH|#i3SzbK9X2 zo4lmg4d*wxxnAc+*a){xH7`HUcS2oPSO9Uo4lHCKOVjJJvPp@^itBZ#?y6)_xs@E! z>;A8EqL4-kFZFk(McrNx&F-}ForzIS27NV9@XZj-f5K@VnD;1}AK5;V=0~=Vr1?+u zMBCbZhG`pwjM#LvzjXEeN3{>%e^mSM{dqgxU%L;#KluDIteua6(dEH9en*ITNv|u0 zA;1$Msx()lMR&13)nWyQL~J1cnFCBsJ~$|T*noT*#5Zd-zL}bPem>`$sb#XYjH+v- zn7^Xp=ob87LF!B%!kG-Cu0J`&3g(Fngf!f_q~A=R)NZ486ne8^v4e?GhE?JidIn~Ccu7n%#(R_tH68t`F%(ZuDo zZ7W)HtD?nC*)y+e_p*1^y?k(%C}y|$>+TC2SXqCdX!$dbADvXSWz(wZq4ry!**g37 zd1X}#Z=XKv^s+=_!>YYQwgGZwFgMfr9FO34x+LD-b@kkXuZ?UUp8HYl!*f5X{p$M@ zO=$PmXhK3watCUXmwHwhSgrjU;}?v2My z77bCdj|i9lUXS7eJ9n9Q4j-i%(a-HrTo$G4m6@MO&|BN&_L1eO%%%5Az|4dF1y&1P=HdzYq8a zFn^wdYlnCIO)YvuwnUUnh*W1hCxNHqBCR53z_p&($*i!!u5B5J!gd3I_oe zJA$7G{k9A%PeowJX>d4+eQ?&1LvdnS8Za-uqa^^tzcwlXIG&HdwJt7QN2LHGAz^e1 zFp}XtSLFZ?B_&*y2Tb$G$C<`o8)t1z#&eW-+$SmuL7pNG6U=!;#u|lw{_nDsv?Mdk zsRzG@F&=(_EUf<9wA^yp#YW z{|AJU|wTmb3@ z7cAG31?AL;QiGXj2@lj|cxfc+2vz4UVx7J&Kpy3mo=}_>#r%Wve)2`x8;W1Z7uBMZ7=VcG;?lIbI{Rn!|A^KP|6P;bD9s> zGH1`ZX5QExFYQ}?&zvH*dBy&@MI}A=fW@_W4{Mm%Rkr6a)&&1?ANNNZ!Of|7H1{1N zf(nHa;5w!sgh1#N3U^^tc&Qbn5uids!1(3o`#)Fq?c)x~t-NM6`J$8b?|@0#fQ(F| z_?`GqxgjiYzz|3A5zdTT!}CENeQ+XDIFYhWE_57oi*st<*vRC?2I2@S9ah7(x=YG?WD-YT>p(zLbwk z*endH-lsJpIy{S(J2>ueE`|oxYvhaK-bBj|wwgsmlO=ECcq_xO$m!!`OwH8Mw7Mt<|KUPsp<$n`T^1u2n>MOq~ zy^pvU(y!uiF%%m^{@(Zxosh2-WtB<)!7mwJVsGkJ|F_pmxL&8bR=b`Z62F$V0w3YO z=YrLPDlYLnumLST4OwnvMJ1zFV84)z7;s7kBhN9#UfByY2Z^T8l!@$6-PWhKj;KYQ z*Hn=$U7T@b^Y}f?R?<{l94Uuz`HtU{5x?Fe+Ud#oL7AeAAbwD$HvWS$+VlT^`#l>`SSk5|!&2WP z6m5_4jQAZX#I5jJXS~ik%|Rg?tfS|Ef(DT{LS?M!biRwGDBnXvlwXV?LNR#Kt-ouE zcm(0-d0QFndvtB-jOId@*Ol%m_xb9|++yk&tuZj7QKy@_|Js(F%vx9%2$UCx0=5#r zBWuje=yx|`h{2PhD8ob;T)dwMb#VdtM?c-bP0&wmuBjuV=bHE{3TX_4w0?R+)K9OA z`svNT($DWA1>biyMo0A#-DW>1nb|b5-_gDkl7FXYE36L$LdE3)TQPcAbB)%+?{20( zs>niMMMHgryB{16KiSALv(ZPbDm?XZ^zS24XcEF#2FkQPddkp8!IOtRHhCh$ef-WU z@cG}d1pMF8$F(Q}_^nQ^{kdo>`qnJ=wV>Kz&H0`W@mF4&Ct@g!FEfALA`5oGY;fvM>$$-YFG=Afog@?uD}E+h^~;- zBXav*9se~t+IIADt;JL7a+Ol_t+r)5hxUfH-)`y6EcIEf-e9JaZ%Z@(&M~ba#=OE3 zDOGwG@sSz$tutQ9m4bb!4wM!JsriDKm#w&6{b!bcyXa#tELMN0{%{HZ{v3RNJpaCL z==+ekq#?y`p-?ddiXgzRss6u}T?tfER~o)ABq4+l5<WX<1V%?Ks%0O)jBQ54anRZGW`g6(Doaj3$+;cK(y}zg_zi)PaQgKaD zo3QcP<|#+*Y3B5)%($0%va1v0&JB{fi}|R%wOOLgyE3O zO`JeHjH{5t)&TytG=y+%kVO0-oP7#x%=6qaTv(Ge@Y zgfy72fD%%|{wO{1c$i^aCWF4>6m;(--G6eSIl2lJIXbv9lu-rhAg)-2nDnKkcechl zW|dUWD5$XMwU#2AcZofIZ25$g$97eW%^H^%=bGO&FS*2%r<<-)6?@{X=ID+3WUJAT z8W$C#-4!0GQrufNxjs>yl3QZ+&AlU2hT{^SH#ca8UqJ@P&33RJC!IyJ!M(xd1mjd+ z!N#pq2Rix~?3EaaOc?fv;D{uV(oSkEuz8Yf3uZT6P6LsSji0WF<>?e6K41uL&>Js6 z!Y+YG5Ys`2abl3{T%tIyI1r~sD3)`<80ed^&`r{F-Xcip&>2V)r^YeJn8wxY7~$b# zDC%9xvbsBDGFjJ=xP}c+HCFAIP`+cy*Q3@( zbKAcngE2P(M%`pEiq@;r=}p|kFXUM8&Q$P2$E}ra`W0L|_jQJHT>xyMeLC@&0@eqj znY`LK*vILwYDoD;4g}&8uK42y`d_*8(r1KL_)Yl%T%iJ|4QLXt1k{l#BK&E5k3%WP~oPYR72ou4=N@52X=k;1Y#mV+Z7c5g7w-zgyh;8V1cw(76*yCCD210 zb}{TC-a-tz%+tay4jTx7#u*E7ui<-!;RgM8km|*%_Q$(PU6x5ymlXpIVBmal^PN$J zHH-;M;EJ+H1Qw#730&wk0n{xL;=@ZaKzcW%dAangq`e@D&x<0Ul0!j(dY~6p!bCc_ zCJMHY$!OROWGmq4_OMqS8KI%U5}wC=MQEbLf#btwBnc+6t)RWGj0*ZAASW7n?RJiJCWbWJTAqTvXQ$sRr? zOC&y_o5my-7rl5@(DCA?(J(+DIDwXUJnW=@Z(vCOC226lzyvg*#_P~{QEdkF6%%Du zKiUbjn@Fk3WH1cUvT*c#_VI+y+0UhvSaxhVcaC@A{!=HT^jG)DuPVaUuiMy3T@dLD znuCf?ot4c{y$!0Rl}(j5!Bw)UBF&UBDSq}3pq!8$M`WMlD{4O z@`df&d09;u4XM0C%I)xT`T`_`K~?CDkQ+f?;5?%Lo4x=Z&YwVEP?$fI$P3kyi+b@y zD$HSPc%Nc$7bVJBr9;k&4-j24h(50L8l)PWp{)2A#E}Vl$NQ2+Szn0MN^(|2G}Pbx z<(GByhhEm8KFMk_S(Ej6=b7x|gyTGHOVaC;YzQmNmrYW@WKGhKv)>d#lf^d6hLu=Z zpexo98O~76c(p? zr{K zIse3yg&PAbr(<|ru&(4y!ZQFF{JDUofLK5=aIXOJ0CI%80X2X@gjIm8@UH;W0k#7k z1yC9)qX+OHU=`qgzyhS-5BDly2Y~Xv3!DS4T7pAx=K$^loC3T9r~puV&^~q?Z~*WX zpa4MSqK%C5k$Vh4X=?#g2DRA^hyhSP5hv8cJq*_Zca4OnIBE~@ye!H~?I!$O0O6_r z%>Zfx`5OR)r}mOdd8o}4Uk)G~wLKG12^b5Yv3U}8{}t}%0E%Y_(^x$Opt7j#MN*nw z@FSjS0F-AB0PUi&XNv(8cMi}D7y>@jPpTX35s+W#gZ~2HV*rgE&1(qWf}hH`1&mO+ z)Sg?!{b(Gm2bz~#l|gex@wbX2Tq=Ol+%7(Z$GW<08d|Hj>%(CwAI&AzWtGCAa>+f6 zvo@Y3Y#)*<1FwwG3rH7%L106`-4B~bZQ#!Y%?;Ml$S}ft;m5PWf#!(D0>GcMv6K&f z3!t9LL>$diXdd10t8s@!cn(o6dZI-?J-avj9bw`xD0pNkVGXzsJ|X`=!4x({m7+^= zMlq<&QI;r=DE|^(qDoXXMkpgTMI2F=s$Y!MMQ)4SA9*73jAlwyM$|s7Qd_NkOnW9; z8NDvLFM3et)HUkbb;J4+{XYFCF?BH~3_A@c48hncqul5`14-(nresa>vg8vf9VuU=dQuxw|82>!G+Xvs zf@z6qo6^pwolnnC|8mT%G4ExRWX#L7WUkLj%sQ0yQq~t%xwYSV-sZBcx3$~4Y{zXc zWyfb%WpByeoqZ`MHfMb<%Y73<$+Pkr@|yD6^48})ocDo!qP@yK$KGsTY2RSqY2Rn> z&R6G~^3(AxR+3+tU!A|wG0)NJc)+p6(cw7Y_}Y2g`Kt4@^Stv5=Ot&b;B}YNRqC4J zs&UP8wYnZ~ZE-SwP_7y))vUsOI(+g7_!j^~ zzW`p~1(ILJw9v6H;=|zIB>CldFLp?N1->r)l3$6uCnf($wuF5Ec}xqqWu5pH!Z#Cg z0r#*rXhm27XhPW*d=o4MW*PrKAD9;SmOz5Q!X`i$L@V5C;1;oF#I4|=g>V-l&uaW% zfRt3i5?*2}`nv+@7b5*Cm^%I6V+}(-3w6{l|%iZHi9C=*5Ln2o;Z)$QNIIYP=I-KGY>|@3(XEb z@D-JS(pL(-)@86oH6F87fzh4FCZTte!R<5^7Sg9f`|nIx_@2$Gzyni_-qyh4OD(j& z)L~UNK&o;M^pnkHcVkzaFUZ(axR>6FbJ|{TfNo>E*(2;AR!}#j7akVmY%_aQPzXx4 zO9*G}f{J}2M1Y_57`x2AWkc*q_8Z72{+>OHvAzf6w1B;Zkvz%XWPf09Lj&3n77rK-LD~Q zwHEXEAbSY9*A&g8=(2R{h7=?SCn#g-8MN6)@KtE$9S2 z%ncZXSivZmaMRz*j#UDG&)$Fq_NRq7_7Zzph=)0yMA(-|Vmra1N20$LAx%h! zF{un8Q^*pm;j5OkIGq!mHS*F3ELEZXr+SDhS1M*X49d`JDwk-s$A| zfam$(dL+D<-|6&9;UdZPNp7gT31YaQK;6``XjR+71@l)lizrv6=oU(@PpZ-(?W(L0+Xa^=g3H?l*P~k0x@K9kyPzoKDV990f{@1>^7tf=8(+9D3L{(n z!Y(%5ud1qpu=4KuK&3LbF3qp2pYD&XhG#>4vR|1yrw&^DEtC9VxfA_L%cLIp%Q6@h zKtO?ja+VYbrC?*;?wU37q)ca#`b^Bk{ojq6p literal 0 HcmV?d00001 diff --git a/fonts/consolas/consolas-webfont.woff b/fonts/consolas/consolas-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..2a1d6e01847945ac725a987b9ac76643338808c5 GIT binary patch literal 23784 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 C$L&A> literal 0 HcmV?d00001 diff --git a/fonts/courier-new.css b/fonts/courier-new.css new file mode 100644 index 0000000..074d4cd --- /dev/null +++ b/fonts/courier-new.css @@ -0,0 +1,3 @@ +.crayon-font-courier-new * { + font-family: 'Courier New', monospace !important; +} \ No newline at end of file diff --git a/fonts/droid-sans-mono.css b/fonts/droid-sans-mono.css new file mode 100644 index 0000000..c05817c --- /dev/null +++ b/fonts/droid-sans-mono.css @@ -0,0 +1,14 @@ +@font-face { + font-family: 'DroidSansMonoRegular'; + src: url('droid-sans-mono/droid-sans-mono-webfont.eot'); + src: url('droid-sans-mono/droid-sans-mono-webfont.eot?#iefix') format('embedded-opentype'), + url('droid-sans-mono/droid-sans-mono-webfont.woff') format('woff'), + url('droid-sans-mono/droid-sans-mono-webfont.ttf') format('truetype'), + url('droid-sans-mono/droid-sans-mono-webfont.svg#DroidSansMonoRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +.crayon-font-droid-sans-mono * { + font-family: Droid Sans Mono, 'DroidSansMonoRegular', 'Courier New', monospace !important; +} \ No newline at end of file diff --git a/fonts/droid-sans-mono/droid-sans-mono-webfont.eot b/fonts/droid-sans-mono/droid-sans-mono-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..47f5e159fdf755caa83129e5c5d9a91acf516f01 GIT binary patch literal 24758 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 2006 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/droid-sans-mono/droid-sans-mono-webfont.ttf b/fonts/droid-sans-mono/droid-sans-mono-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7996ca2983c701512bdc9cea29a248d81bb76bdf GIT binary patch literal 24524 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 EKXH%jg8%>k literal 0 HcmV?d00001 diff --git a/fonts/inconsolata.css b/fonts/inconsolata.css new file mode 100644 index 0000000..a750f0c --- /dev/null +++ b/fonts/inconsolata.css @@ -0,0 +1,14 @@ +@font-face { + font-family: 'InconsolataRegular'; + src: url('inconsolata/inconsolata-webfont.eot'); + src: url('inconsolata/inconsolata-webfont.eot?#iefix') format('embedded-opentype'), + url('inconsolata/inconsolata-webfont.woff') format('woff'), + url('inconsolata/inconsolata-webfont.ttf') format('truetype'), + url('inconsolata/inconsolata-webfont.svg#InconsolataRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +.crayon-font-inconsolata * { + font-family: Inconsolata, 'InconsolataRegular', 'Courier New', monospace !important; +} \ No newline at end of file diff --git a/fonts/inconsolata/inconsolata-webfont.eot b/fonts/inconsolata/inconsolata-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..eabeb697f805ddb225737151ba52ebde2b6a25e7 GIT binary patch literal 25846 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 literal 0 HcmV?d00001 diff --git a/fonts/inconsolata/inconsolata-webfont.svg b/fonts/inconsolata/inconsolata-webfont.svg new file mode 100644 index 0000000..f079d08 --- /dev/null +++ b/fonts/inconsolata/inconsolata-webfont.svg @@ -0,0 +1,147 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Created by Raph Levien using his own tools and FontForge Copyright 2006 Raph Levien Released under the SIL Open Font License httpscriptssilorgOFL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/inconsolata/inconsolata-webfont.ttf b/fonts/inconsolata/inconsolata-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9246862069b94108b1bf7992bc3d22744d1a0f59 GIT binary patch literal 25644 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 literal 0 HcmV?d00001 diff --git a/fonts/inconsolata/inconsolata-webfont.woff b/fonts/inconsolata/inconsolata-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..ad764304f22b293033a736b1e5836c2718446ece GIT binary patch literal 17080 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data 2007 Ascender Corporation All rights reserved +Designer : Steve Matteson +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/liberation-mono/liberation-mono-webfont.ttf b/fonts/liberation-mono/liberation-mono-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c468528c5b45ea3d4a5e4a6e02385eb595f333c4 GIT binary patch literal 32808 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 S)*E8Bih4AzO{P7TUGWzgxM<%1 literal 0 HcmV?d00001 diff --git a/fonts/liberation-mono/liberation-mono-webfont.woff b/fonts/liberation-mono/liberation-mono-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e4e6db8662fd47e630c3f9ab1477ffac40f22020 GIT binary patch literal 21144 zcmY&$KmgxOITe8X-_xJ!f8_t(|8El)|0M?ifLMRCxZl9jvUkgo5ET>u=EA>a z{BIBengHMmDvT`OT*q=p=xsiI zUvpDK697Q&zqv4fgX1d=Y1jOl{N_5oWukA8{m6s&HMeng|K`@eePDk3AhAZ5YqhpB z{??Pf|K`BI@#B}WlbVg8`?p_(=l``O0;vRVvNg0Z1ppMWzI8ypaZO7s&Sr1t^gUlC zylaKyQk=db%k&&s9p=M7{gMfeDE+^OzEFMT+RxT#0cc7uiXLYtzmJPa!I4D@( z``Z#WmIj^XhQIU=EG&?2V&t0t8Q;JF=x=}xDGrI;0=CZ__(BH{<==o91R6ikr#MvO zZ^+!I9GVP&hSkKhL~TzUP9;e*OhZLoLVZlzPg|k%%d_V?;DmGR>q|%%R%jurr)()u zm6ZybN|I_gw-oq3@%;7mHS~q_A^7~&^VRv~_ObP9)*Dm-Rf?2IK*ksDf&4;r9WeW0 z^@N751+Jx`oy$Om!&JxI)5ydE0z=^pAyi#oQ&;O`@91!MeR~534GR+$9vLAcDJ?ZN zJUT*4MMGU)QdVkZZfS9Le0qY5g@c`unx3Yup{2RDyt=~6#lzj+($?zb?&x=QWx+CPyu5RkwE`j?5gSAW!}#e-gja7YqWG5i~LHRcvx zjnUaR(&>RxBvJ}`w1PCJQYn-RiiaZ;2v7+BoyH!K&&JDJ?=+dlDl?i;=4R1(RO*Bw zxnmmy%K7=vlj5?Q_oQc$N#L zowh*`YgDrX!}bbbLhk7!SY$+kgO+KSh5O0Egyp&2>IA731rmdq?Gk4vTMR1$9QN6n zN+#y;y2gPjYuaHeZLm$;wI$I1 zyJ~j>d=AU6**s-RpklJR`CdJJxiM0w^T;cW!@QdP5aBKXDHA4^)~#79Ay8wtUIiu5 z9^PgPYHKiPRzW##zWWPS3J1T!nk8A}nbf9!&yugsH#tpN_Csz)Q2TKPs$3v4-#k6^ zP*ppE&$#3fzQxJk4Lec=6K`=2PwS$!kut)9zvnnwbdIs}+VMG0 zeP>X;N$Hte(qJ$Rt|^Lk%8+`&-~nP#ocr3Ucz7;V2Cl)yY!zqdbVCm6;vp@30=UBs zo&8hbU)=muzJ$K|)G`A@PHr4yPR~^S?2m!$rsPs+bde?HWDG17a%A|kHoYCJWmmQq zLoZ_CX8Rb+fi)a*FAiywg-B#e`66XF*HFB@HKXU$4W2`1_J7PK4OV}{e-(6_I$WPK z%F^VvMgJiPI%C#yXFYGRw!glO9g7Oe`5Mr4WLh?E@row0gWS%|;Kbc756LOk#`AT_ zCa%P97EjG_3*}yhzP+n50J8>vei`(~mEV>+Bd_$=_LdLN1XE{ED&Njdc=gdbdy3d~ zI$S$78?+Z>otI^Gg*tL(Z^8AbMurYe@1svxG}o>;Qh&!1p$EA8X+6nU%v7^J7eJAT z!-q%j59LH3W6lY#-oou?wi-ijKu)-AQ4u%2HnTz%m&eKCX9`5vt||Nc;P>RkS&y4k zd)l4)JdJ8rf69}%fqG@GWcqdU(Z0Oblv0X6Pd`sN0~}4Aj<$M$D2^Egu{f7frO0G( z@ipJ&DYjfM#Mbor+0>HHtD0cb)58k4~u8@<@{Dm-ad3ThLcf` z-h#R5XjYmB`6cA*dX$x8ZGXg39U%A`DJbZ5v?|{N&0M&H`=m=&@CBl(GUuR#@S!PBOC1*$+7;>(LDGV2 zAM@0$ftPRCP-0Q;b?6|IB1S((>&u`%TG&g!jAWFZA6!nhPC2jG-Yn+ z#Djq#Fb3f+^()C@t3@ztM%gii$_xq?E$J!S{bHGa3;tS~?j((YGU-JeiAQPnt*z)# zk!!Zp!iU>gR{oxHtzQv3k5ed-xS#Vm-FrqOEK$-fd)SPVDsakm%g1?m32o{xr5HQ$ zkP!i)ZWa(?5$!f&C)iQKWB*f>1-15T=6l^qH{Hdi#(=r8W_<-qw_7EnQID<9{<~;T zl8vo4uQ)%~Z;aEZH2-E-zttqCO#chFF)ck$K=C*%kSq=*GBd8fCfBCE-!PgJjR=u{F*}SC%J2%(>I!mm z9m>mi(R8NP$6mACr9@RbTnn{9e8R`?_TwwKH0`GlKQMpdOdAX-fNuBzl zg%pltv11QdZRczMra?d`GKYPv1gPaiYS!;$cmf z$ao&;m*rA+%)V-a2WkB0LfNb`<>1s;HO6}YG0iQ025XvgN(VF6x!NPa++1BEmT|V{ z@#uMp`n6a-b1nBjIK9b(hY(U5N3zj72FkX;YQEGlYw59#0OWHj3m+!0j9L7aB?vR| zd>iH2sdgPuB=v#c2K|)onwIJo8VO>XbM#x?R+QGXbyG`4>wc!iHuoEFbgFF}7!G|3 zWUe+AqBH5*Sq#m*cq_R&9;Y6TMN0+FNXZ86+BYxzRhK)Icb%4SIzj&uh9NJOb+8y5 zcFuk-mR@xa2w31214~8b%@k9_MBti{J=9hLPb_*K#fz}zb+|N1lURdgZ5s+#Vmd~^ z91A0yim*h7#(J%ERwMQOwtv44QGRj55ou8t|n*5`xzbZq6 z-Q9BZ_HjjqZR(+dMf15lb-7cvavOrlnYF3-X{@6u6YFT)!ULfG;qHSxU<^=(26n8k z5)Tzk26wX~qoLtP{MzdI#5X=Mk$J}6BptjT_s7CqD*_O%Xs@oZvOm>Lq4B574w4$~ zyM}=?W2C6o((muhY$hlRY+$Od7AW^-!;eYl>8tPc*64>1%#Q3RbJYK|q8%yPweKo6 zJAdqym}d=hB^)QyTy+r~TG7=Z8V}1L{fQhGbGazV!(C^}lO`*fs9^8VQ9Xj+YV{P9 z6d`eP76ye1_L0{VPGWa%9`m~G97lV8c3Ft*8HQb~Ps*VeX1cR5&TCR*Wz9P$ZY^fi z-Fer?#k^4?D`wutGl3U$CT2;hx>FOfoKIW;mehU%L4SELfst#(U>a&TmBvDTChuZ7 zZPnsDZyNEd0EvzMS=rL!{vF|Mo zkEiKsIHAvsfXjRT(x=<^__FT}2~WUbh=2csV*3NJ?``1v?dJJ|3PC$)S^7`~2;Xf4 zJ7$S!9S*D^7Crl@Qj34}Y>cFMM2K}I2Mr{;r&_zs(MTttFO6{L%li}Qv~aTb7VEP+ zyb(so<@7w9;4}32aroKSyydZ0{9g zEbahU#UuPhpff7~S)2HbMi_VEHi6^DiBEhn1#Q)NYDY;a`P}cu^Vmm<<(t~{a}CoUv<%1s5*Fi>oKa)d?M%y=^bvrxz%8%l>&Q0-QguXNS-ZEg z_qmMZs=&$1(A84cWZf7RgH1Z4oK1*vtJWs~hI24Fw+q2VtM~b%vptacRkA$dHy^m2 zyLcX2Pk-8t9S?3~ zR=Yp~jFU!TDkI~{lDjU%IZl5bA-DD{1frZ%^1Bg9F&A8z;+_*$Q; zWI=vevE}gAK=nNlUw=IYePM#PSImY>T!1*b6oo%E`n8NPG7XsbHv-L z@AKfgv~LIK#SV8x^oUX01s*mZp$JW?sMh|W#6fi*fn8^F_bB{%MTLOQo&o?~*mz#riU=dkX6^#<(Jr`EPd6O=&A?t4Xub$^cVTE-@NeA|~n?iy!=->-XF6KWYF$$M!-NuKA zDA5nQ&x@4R_%wsZR|MHBn%U_x`=c+8hJ4LRRuQdy!($T0mMnX?*wo~6^fQOU_s7Hc z>;3!eNoi<(A_KQU!Ar4V)iEH^#U*IJ4z%En5e+H~vD}t7HJ~A@7W}aSvDTN+fIq-h`V3<(K0B8E8m=;g(6u|zD(14S*U@{XF;4|&I64yt zR|3CQHopYva;3;_R6a_HO-I1NWG(zHP&?uX&R9joZ9<;FI`-MeQD-Vv_TbhaCA`*q zM{vvMwty3UKcBf_E2Fbk_x>$3(hbvV-hBDObN%8{p}!e#_;A|bQgN80LZ`ei4m4UQ`}4t}=pr z8_JNsENm(ols{kkj5|!Z3!bfGAq{+<^I$A>R;fx`fHF{JBF*BBaBHZ45~pMcI4uJd z*)v@<*U6WghyGzRi-19oh7jajO%N~C>+jQ*BJg;+yDPj9viUP)ifO27{cGhEuH;(N zGeAp()zmVTM@kivX@V;N$ip--EX0bN4#ndS3hbSz2@Zs;H1@66d9ycMHQ zLx9C?M@o@N%d7|%4nG=bNhE7{4js~lva>%`9!|W)G_=Ra#rKLjK-$$sJj-i z>wWRD&NRv2cES=8bFD2nvG#O?=(CnlxwXLEHkk~AI_nX*>=juPV&j$o1LQgQOJ z$@OhmA~v>^lAMqA^Xn9m9$_8Q}!PI|<(Jl$U zqjShO(ziYkM8$;KG#%E?-|@2BLHxGguyd$-rjI^o?~v-i98|e8G;b(>h2AUYHwJqM zc&kgXkCiMtvehv9x#-O**mY247GM5qxh*#)VtiF=8|^buzipLWa4tkWY;V4tGC11s z(wKrhRwu@{_+UL}8l8jpMPExu-<^XgSPQ{)RT}|1 z7X%bSpC(x9Gi`uk6zbMAo}Qem&W4D0;;j7y!rHHX4#0wdi5S>hb?m36@|ud1B&hO5 zurNKUN?hOk1f`!A(s-+BsYYrxzxx{kYe)x~%V54G8NM>Vmd0*~nPzrM{*9!k&UyHY z_jajk*~q%0FB2uDu;E%OW*Vj~7A}Nd9D5krsia3!1JW-as>vt@>N01`Qb%Q(VdWAp zqIC#?xa^JGCQ*Jqb1Ws*BoXyNJs))Y0yV#X0ygcEABYchuYM(?C>5PHT+vNqqZIqh zNj@XuFg@knrSy1Yoqz3v?eu4(5nlgEREU`M{P{#fjec%H_kH2AqX4n-wA}G6-}Bv! zCUP;%><^E2*j$J8B3;~swgY7~ifErUA2^HFs=5oaYo~Ma0*_v)CBH)oAQS91aRvd# zuFu`km~J{19;tc*m-O|lo5S~@?eO$iE_Y%S=;;wZk1v>DNaJqq)&|A>g~g@X@tdPU z6uumxxL-YdKWC=Ci0{7yET(pwK>4kNC%SXkCxNu~8|hs$6}9v-2(1!LF$ACUM^m3W zkF^qhem0+|2<+a^D8iZvZ=GFmO|kD)L1taS^uZ2S@9YPR-Y6MKqy~bi|0HUZK8xb~ z9cCn5bW||R1Y#A&ykaUvR~m93YLC*r7K3h`_5BE>9(qi|#N2(#C+{L{%FLVxck;kM zOa3CM@CTHG&E+L$?ADuW_K1&;D&;!fO4!!#Qf=Em+@sm?IT}q>84*)}Vh1Cw3^@>Z@rRZs1g1S+X*nP5W8vih@oh@ydprs6T;s|5r|tG~N^1TFn&zHVmXks}^~k#hwM2}wGc<2QMoU};2| zO`7!4B}=G20Ks#ynri%C!Rh*FoqZUUSp_{s>=zorO_sp<-3&V>yIVSt$Sk~j4{UE= zarn!*G1E1-8uM`yB_&WvS$q?E?@OI6hBt%#d$y5OyTdj;PUde1RHh2-1jk=mAlq>P zSE%PP6&uFQ$y>UjL*9y|?~ zhTq`L{`_vzK_>%g&#JnTtVoJnefxn$M6=xD862m6OPOG`| zYt_F1deVsOT>Hg?$<3C^>zT#WwHSe|eT)L#GFOAeIxxfld~a}PyX@IgX~9rA^$l3W zO3=ay9B$LlwvMh4ipZ;(Me@%3`AAl)h%guKxW-+OsF=2D#}a-un#&a*;8kDizIf{a zwt`k-((3lTkMw#NX|?W+^5>y23$0~d$+f7YN~{jA$6e`%myB3xmcY|;>0Ui+1h{+0 zz_=taGp#FluvO&22Gk{Y<5`blsSK>d8aw-(`ndd$rysD|HLPU4ldmO%NiwdOpCT1(!aBbh_ZC#kbc%~yuCZG*?)KevL6=v96 z_2?*pWz>e-*`*3^@#sq?nb_pmK?3jJushrzH3O45bLi|CQIfI`)iX#Nq^F8iTy-D& z*&72!@RCm_XhSigB&erS)|0V7#Qi&bBW$dluG6&zPOhq%gB=_5-G~D_drLB`+v}72 z$=1Cby&{<8Y0*526MUYZafWl4SeU(t_0lK^01_Tkw)l5Kh72bF@e&LO=FW*8%qnHK zc)Omv;S0XD$4kcjUpLH?pfMz^sW%M1IFhL~t%9HDR$MCR+A(DC5|Mn-6orZovo5P( zOO?V&4LC8zh1ch+P9VPl^1>Kf!mX!cvTd&{qx^%O1YYNz`UbD8n|@I*1bp?$ZJ}ks zXU<#w8d7K`qSc6zUOT)gPTrW_J~%6xkkV8g_{RN^VNE&mEGt(<)F;202I9{WT!4)Wn6H&)3dr$^@%^XfYxl|=B_Kb4xez37d4JqU zhg1MVl#7zoJtXhaOVq9`jt=QtF7W-G8CPaF1#SCj9!Cnu!_cEwsHm{P+Rrap|>31grQtUsi=wQ4W2l9 zedpj>G?aexR33Xwd8%y5B-N*@O}*B5iktMV*d@>=@cWMEb3vyLzR-w+;+D!7gDdj( zQr%`huQ<6PU2Q*ym(LjMzt1GG(Ko%|Y+yB`dp_Cec)&n)zG>I54}z5~+jc z+PCd7JLo#=5`_KY_|}m9;ugooKfnOD!$W3q*b`IdR|~BsD|7W=NP${nbCpS1_U)G{ zv?UB>(!p$|GQ;JA90&PtQOmaYjo-if7yHoWPISm_%i~>NpLb5uoOzt-Qp7SZ+;m*M zxPD7V|FCsDODolth!wcmap#k9{6KY~RJ}o)*ei(0`J%s(XAl5DH;E7j=Ueb`P%0K|o z-S4AHmlvw8mg@F}gCh1qIOi?nv`Y}+-t8^vLDk`` zvZG?l_mZ@;M~zTLmwyTG95?PQHHvC2seSp>B#G*DXa|sGX+b9KH!K}PCDQq$*9zr* zj^Dq|ntqgNbj*rW6Zdtw3_zAcjI)o;!e;azb9l-LOPm~Mx=*4(lm8a>Ez=k!n?F>P zolQEpH!0Elaa)I>Ao}kofz+shp{3(iLc~ZAzVdeYrBI28ET#CMV>;>{KfMzBhT9hY zYp;~%sdW_kDDTtfqV~emOkw6)u516hKpgMtY5~Sj8)`!M6k5%iE@I9QW=uqF1y7rq zd7<`zm_F}q2s4WJ$R8#RLA_?IO(Lrhd2%clnab?!1{}c_m%n`ZW+Y1Yc(q`ImcATm z=tlY(d#qSiBq1M(7GU-NfJ49#gyNTTjt+|`%mc7_%l;|I%^vvY1HXoqN=t*`Mn zJJcLeP{A(L0q4WA6}nLUYE~5aS=Ro3CNOpfXikVqBXrP^Q^`JljCre6?z_M>{u0XK zzjN41_nuvgI0Ta$Eq9nnDqQU$pS(`jqc0mpw`|n2DtpEQys5Xzj2q2vO~2#BmEgFX zIWGgvD{fv9($)wScj4#k_03VldK}-{W6Pl_(kIc*pCs1D_)6ZEP2Z zCEzT>mZH7t-q@`vO4+g~Pqs<$M;gdzSc84GcGA}ySN9{J2y?)4u^%ba%{;M$M5AkH zc+THD;uxDhJ!6)DA0QZa}qu(2InwF!wY{gSwt1mC%Dqu z(gH@{noW?BsIV3Bs*L1Hqz$RHjd$hB&Rj>%^I~18{flq%{jt*+c8aK`K^& zrW5!=zT)9THhrPhGxF!#h(=IB>~v-^Rn`!jxH;)#IAEH_Dj48@6Gm`OtRZ^p57lU% zcQi>8*gb`ao@O{E7lz+%&a)ReYE>f2`8!YKz*^r83|ll-E$slfD`#k+^a&bXVPtML zviD}5pZJ32R5Cux_4i%u3b-qeeit5A^zKaCKWoquSi@Op{e0Ku>Yf|BearQb)}9TP zv=bDb>uKhM>{w^-pfqEfSn(!2xK>A2J)q9FKF>kYjW4z>=W2%79oTG&EtnEpJN3UV zo1bP77bkBrMb2w@Jr*IL9(|z5M(%cWU8h?7$~4zWT8+J}YX;Ej3%1HX(>oV%ZCt1s zx;E%_N!vt1gvgdq2~DN181mm*;wfi&u&mzJ`)ZpevRiof%QmA-lHF1iD)~?G{LlCKLk9IZt^$7d*`06ry0+XiN>Wi+;EDxM=z4kVj7nkSc>E|j0=E*V=YBNl~9Hg9HdqQpx zD0PFVv4mn`EannvfKnZ;#zQhJH0_*x=ly#q;E)|Pkv$)v1fK&A5LG&Q=@$|kqCOHA zErz2Ps zz7sJsjgqAVjmxNaO`LoB$M8L-J^6wQQ1WPJ0kfNR!Es68ri!RsdVvdvM2n;QM`|?S zbSiameZx_Faeez63%}vOMDSGl(Jm$xP4xtiqF_5>mP8;Am17q>}l z)VrKqVp!`EaLlfatE(I!`587;4QDZ}F}GrRvG|xmO?==H`5;Gez_c^G6bZrFf<1Br z!?}a6u~L(n;{j>vq6E%0uSE3pU%9VsABS_@d=SQ55g02h+k^5O;+mgaRa1HsTSw2` z?ExLUpwWsleK4=*nA8DMgn$T zhu>BlENL5)Ug=b+4a?+qJ?hqAh9}$=XiTk-FxhBr=yw|$Q}DF5s~96V08r){eF9VxK`VBMUC1F!e}uv zwAmnzot^ozJXFN7hgcVta3uXhLCQ24aM3$k*RqhC<|eIZ!T0#Z_`yq{?(}kIHn?RS z8(Eh=gDw^6y4rne9dkTVJF}+0*-Xj2?NkfWBqAG(R)z=5?vCYENSYpfbgNC+ZF_6Q zDK7_)x$oZd)WMg&n79Kiea;v+%raG&k;KZXGNT@_5})92&KhsbfgKKW9{af6Z$ zMB>KAz>7@Hl%znb`*HAck_JWj7+IUWFT~&5A8bH{KkT)a!!m9Yu6sU;}y6ZAreeEzIZZQB0fjc}M~&>Rab zcYLbVT5feh!zSmKmS^+2KVIG0;KkYIGPQKo=1Vgo#2JJWq8OGqZaev8k$=3yPr#f$ zFC8M+Mh6FqzkQyV+cvbEqiR-HCC^K_f>gG8qM+`l<@0fm&E6H31d5MX1(8Yq$CYqR zpvcmfn96!Ib`p=T&W0{2I#@)wTY%kSzyPEPJNJWbK|xg+tE7(HiOW-NrHj23RQ*5& zC^TqGe-&fbLKD;MI%+fYnkG~DUXi_BU3@KHaw>T;c%tnV6L-jxxc`}6tii?7PE9Mb z&B<|-m^gC9RnvIxwYfrE9JM5S+4XhEpBAu4h5t5d^A`1DPKLKxVmpbsQE!1SMsl*h zKiu_Eko2Kx-#+{L(~VmH*Mt3!(g>TS%~zP*0+p+;U<5Gy(w-9{5K^X94`S4(5;&gH z`AT;Uor#zguad!OQj>Eo&4z^eRIJ+HE1>bqko#yW#}7U$o5$DvP?9Iv1ikxYpcn8S zjEabUVY-(MLj7Y{T%OsNqz=+}-sH^7{_|m0Z0)()B+=4u>Xt6GHYt~++%q^#3VA9| z=U7V?o&mt)J9s$0LIqg@50?`Kes8v>c8$w9i4TF7bh(krmo5`{sxXXWHs!r$aa1V= zp@QPgJCDSeK86uQud2bCxFqnjwXO0zB1=IQp5*zYiJi_l6$vDt8{?lK6%$?K&k`WE zg^%dwg<+#gghezPsnY*2lDU{_UgecpoCTQ>08-5MQ%vYu~-&+4Z8K|AZ zs>#grKsXIba>$p|A;vd4szQxJFGuq-=Mw=d4pyL%F6HXJn}4WZ@uu=Vh}=#pnpl}R zuOKPXjcYHGl+VE1@;YwK>mc*Z+B}t(EkB8)oK31#)AIG+`po+$q=TQaT>sS^h_3{&M(ZL{|qqbzCtS{Es9;MY2De zQ3uMuMQV9CQvbLan+cfZcoL}?@N6mZ@2YuK4vOLP6a@LkM55AR@L2QvMN*t{w4Xs_ zMBt<4P*S3?72&7=bQteUVb^Ud8^=>ud8^1meyJya{!7`WLNJ1~37c8wpShgn0gS9i zQ=+bMe-bU3MC%)Zya3QJzPeSCYzga&_J^ZCoU)GxpvqXSqw&EqF8Aguf00Y7um^8h zSLzU1!BJaTMK#qF3^Kn#uQr3ld4sx}@Tz&h7{t<33%Tc0Ml}+;LfJj~q}}%GaF6r2 z+rkj)V)8-R_TFL)ZY}8x@g$Uk!lMuARaJQnWY#rNSoj=R@!J>NQ}a99fIfoV6moF* zZch_Z3T>{M2T%4r*+6v(wwsF16)-vTTKYz}e3!{PhMbiFm zG-1w?rFA5W4&1rvJjq8qhn#ml4Y|mDw_O_;3E(=4TGfRYfg`E{BdV(IxJ?pq+lg3; zFkxV+>i_6+BzD@1(vn3p;)@ftXlXb)WE~P8WX~Fc@JM&vSk5C|qY(T94dZhX#x%hX z#TIt3ByL&vhY?Pj!#re2Bf&B{rDTjQ>9EIsMG}~{3m&=>gtq0M5INBrARCoZ)3%qn zqJ@DxH*Q1UDK9y0Mjqh%yWIPeb^^=4Pa4CWxK6!WQTL439P1SZ9wDUHTbr1;gysBK<0 zWzNbGEMDc{Rtz1EvQD+TsQMw3P=uCnL<4d+SSqx;xIUQ0njlIg`xG???o%h$Jkx;2 z^u@!3+RB_oFr?h#a>m>*OnmLnQ_d+SW&?j#jwd)qjfXmeq?GL}p58(4KV=QdjZ`j} zR;AMK!k}^siL?&N7ldRTF?%;G)+1VCh>2o+@7M1Le@Z_lKa0MM#435+3w%ZjJ6rHv z3Ftt(dHze>tXY8)TmN}wadu|1rWdWXof0O^*cn5Ryx*R^j3Osv@GQ1!ewnPle9?e!KN(mRaeS(Fc))s< z#oOTG&CxrHcV@EjI0s-B?NseE1akrE>fx$Ti?65ebGTmUQlHN+C9Y{C+H*PW5Usf^ z>9t?5FFNYe586yKbY$vFo<$HSa4(x&>`#`r(A_vdS<)wyo%HD`D&VzI4n>EO|x* z4nsXwzRaxGS4_o&Fe$Iz!9Zv?O-(&8_JFUm&+!`hxC#H^d?-9hc7$W@gGeD=gy^8X zQyl(Cs42i~Zrc*kkXgY)Zioxzj%Sht;)338IbiQYSERKETL}Wich^)DN zIH&FnC0Ho39n_m_9$n@#y4;ti|1HwSkz}cWV&l^6+%>MfxU%MF0DaxM|Bu*b@X3(L z88)MOyrC820Qq8y!J@^Qsi21a%CwSH8~d<8PFwsHxWKa&7+uw(>-qkd16KFqY7vrh z1G2=BgxUkjw9-1>6UQ<6l&IxJbh>JgX72d)WU@a?Gdw^Caipji2-5{EX`{^aPNHJm zZIPN4s{^yzi>zv5#*a(=N+QOvge5JJ&Fl8HFPHrTwS<&%(&}cA_#;RYYN?*=c48~T zGCzdBpoBsT)wA$cOv>D0$XFP)H5J3HCLTsIhQ`9r{^`#wAYF4Xma_vc?TIUre0aC0 zE_ulkPu?YM8c^ox&rAh?Bch@`%VrAeoF>gG;wZz8T44G;N^Ot~i%7=`jQzlkNT&KF zd~eSRM+FM!?uu(>^2iZ=^&qVdzl@~|u*DG_AdlDm6w@3>Kz$Tux9nlQHM!CoNaaKS zqpL~KgDeLhDI^{_alvHEzLaqeA5+*F{>Ard{6u9TC-aj~yUA6uL?n>;yYSP|+LD0` zx=Z`--#Gl7RQcl;aeYY&%Hjw?oh)F~Ik;-B>n?W*DuLY!4&&b{j{wx3;d zs2?fg4IeR#q+Wf4o5bgE#g*7*m5s~bhdOvRgimVgi9*pqb>O+ja*4r*fpe9%)^cth2XpXT!-ye5tkCt@Ut%#r z{a_%aHq0BT?3WmOd-`R^-(cz-bh`UbKy0zY8gA(-QFj3wm-kW)Y@7JykAC}Elz;G| zq*_jT%SF|{;A{km{ldo?&F|lN{~%~ySiL)m5(TAXfLz(JkOdgSAl_UB5c!rqu%5GM)-!n@g$BGFU%zKm+o-~2#VsDOm&Tu+##!$dQAl8T0nS65_%I^rnPy`plS^uf; z#x*7d5^)!@fp@WY?pQ#3!TYX&4G#1 z%S7$^7@D>c|Eu1*Nx`NdE{rRJ?#ECX8NnQUs)4(F+5m?e_+c$p-ML{_s8aDkW?=`n|+jrMjTT;*~OOwrWUCMXo8;4lq+UFeUNMkWLkMrrE zsnX&{XW3`k*9#&S2{zoelS_rE%V|lz3i+v`X)JebhzpNzNQ-t7oL!xnlCn}aS(&xz zfV;Ph#wYnX&GngMgqC2%Y=pZXnQ>?<_E9C26ohH1mb=DEx*G(NqNEqDyq>?JM12ga zVvvGYi-MAjbChq`?BZl1|FZX7ENy;q-&NT}p5|}n(U3HW;r7m1^uc5HA&At;|0yIz zLD1VJMQuUM#FJzTq1hnUpp^CDx{4M3~$aLOB@ZFqg3Sunz1M+wSqdXOC) z_IJlY-lWn>VxnSJ2;0mGg8Qp|6ete32klJ^ zjErYI&7X%GbJU?G*>wgPL-oUM^@|^nTfx`H; zEvX8zlh)MU^O!#wtSL@p9Y7XISJ!ri~mfck`y(r{4DwdNhk^dNtrsjB^m=T zNq4DdVC-2Y2KSb9Z`AUPnP9-Y_#_%~yH*x3hiD@pquA|6E$56roe-xmJEWudyxa42|J-?v{fIc4Pu`syW>L1qKn zyzRlYbS60+dmVe`-VBPlS81{+X&SR>4WZ{c0Yj`4rXC=%o5l6~dj+=R>h;!ASxp#0 z%zW`XegF0@O!OnRf3@hcC4JhtwtzG36%&r1hsyb(D9bU$NH_a)sj8c1F2bssJ_cnN zzRtq06QdnzYJpq~FS>tT?c{D6Q5^N~s75H48xkJxk5k)~-;TiIKr5eoI)w`O6PA9v z`{0$~g`Dl=-u*O^58Uv}$Tg&|lS(Q1RrVuvo;hX=Ce~d)DQ;5TD#d~AJsFqhWvBYI z-;|Z_mJmy3tfe)(;S6s!qYvQtBd8JczPtUA?!sWt`XA; z$xre^?83LZ?9u3A$ItCz0M9eub18=yy|h~GN?4&&>qG0|tU=nVj5CjszPs~X_ujiP zct;hS_v=RwZ7j$4?ai{LT`a`W_&OaE>uK2q(7v9jugUN0zDU6$oEoXVxJ-`r7B>eU ze(fu}4s;y5G87xZlqCKWCuEBhhUV+(4N0tRFCJ#iNP}tZpT*(s_XzH8n{rx6|1azj z6YgofxW%g>3qj2F0o)o2hwpl6hfhJmzwB77f-P+cQlevhSANXY;H7hy1^b5z>%*$o!{6a z#=Rkqwzu#bVo5b$efnTLaXKW#7pBkY^=gCZ+3B zee1SaC}6(|Ns{=?YqOKSP)zAaD5@fL#X^G16^OLT%4>)NppS=yaHJ!iOk^^NWL#9#ktjtQ&KZi78|{F$4lOo zbu{E9)5%{pd`t5UP9nQV%R7mDa;}w69$aclU2rydc%Q7SEC#ZE-%4`Caa1ZoWwWL& zh*!{WSt0n9;8SRAp?zT8)XO>_9LVHK6W!gBzDUy7g7~ zY}-v`sJkc}lt}0}9El09w+)j}uLdL()M}oy(U7WeBtgVE@w#i9h^^lO&yYpe8=4Dj9cfb6QUhxL$mbQ`KVOmX8wI zm;u@RkZqRQMjfl=S8||J1zaPz!S=?2tAP?4RYTKpnZA)s%`23^siZKSyJWairjBO> zr7Ajyfu<*cH94KY&tmkb+dU)6qQbyxy zooREe&h*#+=2MoB#Dnp(QfB(wR_|(=sm&@gWhhX&s6yL5L)n?$M zzl!#u1Fux~pyBEXyl_LMdLO!%hV3C+dHM77ZOgkK`1Aws-29$Z7)7l81(^ge5Wz^z?mOYnoI-z_fgiXNI&zap4ss?pL^wxE=;I#O`SgX@1>dLXPKen2lj0) z_^VH%$?CJnP~+pJPU!C`DwkNpl@_u9YVItH$Du|KR| zht4o_OrgGBKB>E>e)X#6AmSNx25tJ(e`4myk`V|!0M{4)t=E%P(I0pQHB`S@y8)@! zF_<|vQv1J5Z8fjKrq^y{u&K3c+`${@@G(&4*fY%x?rYisTdqt3lM0leL zSq2d0&LL<0y;j!4KojUe<{0xl)k^hKSgL?W3b?C%)t07MXd(!$eOb#^Fs<`++j`YCogW+OE&!ji$iqsqmg*sIY_;{}@CFpa|Ukry(P>{t<_>`;|_k|L& zbP(&w!(cniP~RuxY@oK+Y%-Pu!vS#a#~^p6QY-5&`dM{t36E93L#nVG*8G!()pbI^ z2CaV%8*iTf*|Xm#KbDU^`~F+(Zm( zsgMp%U+AM$x2r)SYl_&w`#y zYxzxwcg_^D-Le~9d?4zQRaf}T8%K`V?Ows->pY!^M3ILVm2Cdz(=r$4r1+WXbWu?S z0dZh}c`~z{|>?K zROh+YE~PV+!oD8ByY}xGK72who_hpju+VF%z+N7&9ESge57uloKk*y;fBF>BY)X&E z*tldiwc!b+ON+T9KfS*856Dbc6K6Cnc}zJ5$GVp4*VLwbHsJ`Fb#{Z%#Lx3hEjTbn zT0d!nqz#cajN8R;%>MMhlJht6^W7UsRGYLLNUP$u0(V}MSA-+AX^2+*8J@DnZS|6g zk-=J|ni}#nH2K4FcYGu74Td(TSBKAhE_}R&gqJ_`l$8Wk6gzfOwkDhLGT+Fn`*ApJ zkhWHFt}X3>$xOftdsw;0fR{zDK6?nwJbnSEog!ocAh-~x&fZ4Wr~CTs{Vvw+h%mN; zJ9jRBpO)csqN;I?oW1Pk?VbkK!*FPN`8eA3grBq199>PI={A?>Eqc_dTAM$-iQNRU zg7S)9k=^v(H}Qw8kvs**Wb*$`WGYVGOOZ($Mu%QeSZi&t`39wn!>hZj)JB^TNhcB& z|GTqj3WrmTc2XdX|NBTwsuF9*WEG17Sv939?J>O9j)^Qr5@AMHiX{BIQ#cB1cEncx zHAu~;t8;Lm=E!+a6zO${dKr*QQ;)hmVKJE*3vG=1!_k&_IO6uWzx&+<`sBjG0(0TM zW4Tl=st6&LwVh&Fx7#n|k3?Oz!0 zKi0EAE(Ze>NE84-VGP;;004N}V_;-pU|aQf1_J|M+W&9=zw`cM0E(c14gkD^2s(J$ zU6G+n1W^!&XP0L&TsW?qv=~LaeBpwKD2Txza$(yAm5Xv1E^LtFu!zB6l1sAblEtR` zU&u8T5fp=<-|YJ#hYKI`o4503=FNoC`o@=z%|hvjUq{}@i-9EQ+`O!fkXWa{R*ej*+1)jZp3;v zue^(5o%)xt=cE?<`uRqW)Ni4@xq8m^rirZg`>cPRnfOAn?{EWmy3>Y+-q_NNo|tuA zab5N2`PN_s7UFCxJ4&Z!a}VrEHhF;~7WW}0_)FMr&r|J0*qFEZ?tJb;&92ZMdw$3B zp!XnzW~FzWT4uTBzkjZz<^XuwV_;w~g2FV0IgB+-=a@gSMzB_}o?sJUb75;^TgG;T z?G3vE`yBQU9E&)UIQMX+a7%H=@ucv|@cQvq@gCxR!l%XeL*SHPgy0LIB%y6WpM*7p z4+#GdF%oGLc_hjq`bEr3Y@IlV_#_DqNghcX$v(+LGAuH4WIoC2$;Qb}kUb#BBc~zf zBQGO=O2I+lj$)eP4W$Lj0?JX!pHxCrx>PIFbkvrpr)kJ&Jkq?N)uGL&?WJ=_H%iY; zuS{P;-$MVEL5V?$A&cQUBMW0aV;>VMlQWb0001q0IvWA0BisR00IC300ICO000311C{^-00DT~ zg^)2$!$1&4pGks9lR8Bd?FlTPNsU0Efd&x$Iv8UK#RNM+q{>O?kvIV-;3yn}zhgTH zgoIYJ^JnJ&+1Ua1xTQnX?E@QGjU&d2YP`dMmj-u)-x}N{=Doo^hI}@7mr>OA`CuN6 zI3XvKRkAfHH#nJB?1f%shwST2gpMegi8B`?%)2=E%hj{|{R^{h=KunBP_XyjC9!Ta(QpSEW7~QY?yPrbr2I?2Wb$NY zG5Ii&%dej`{>wvV1QP|ADa3-6B8stLrvwL1N^wy}ITg6^;KfHJRa8?$Ep=j|o(39e z!cQ|Tw9-a99dyz~H$C*yhlY+pfFL3I2@@g80D}xM%m|~55hKnx6C_A7$rRJfFv}eC zEU?HD%dD`P>A%hfn{2Vo4!i8J&jE)Vk&*&#x#N{5G4sfa6pBTxQY6J<6T6g%L!447 zE-908-ud90A3piwo;Rrww|ICKulS@=s-)VQzP!)^;Y3a?rYR?~8k(jlb)}&UD1*w7 zvR@fiMwC%yEU&Kq>bmXp;w*iAa-6z3&!3EB-cZtBc%WU literal 0 HcmV?d00001 diff --git a/fonts/monaco.css b/fonts/monaco.css new file mode 100644 index 0000000..5f88241 --- /dev/null +++ b/fonts/monaco.css @@ -0,0 +1,14 @@ +@font-face { + font-family: 'MonacoRegular'; + src: url('monaco/monaco-webfont.eot'); + src: url('monaco/monaco-webfont.eot?#iefix') format('embedded-opentype'), + url('monaco/monaco-webfont.woff') format('woff'), + url('monaco/monaco-webfont.ttf') format('truetype'), + url('monaco/monaco-webfont.svg#MonacoRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +.crayon-font-monaco * { + font-family: Monaco, 'MonacoRegular', 'Courier New', monospace !important; +} \ No newline at end of file diff --git a/fonts/monaco/monaco-webfont.eot b/fonts/monaco/monaco-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..cb241204f679eb9bb61988290d31817169f9b097 GIT binary patch literal 18525 zcmZs>RZtvW@FhHh4nDZMySw|~?(Xgm!QI^h!Gc3@2oT)eH6geKcV~b9{a(JU-P2X4 z?>*HI{nT~q^fiJ20N-T+0I2^02Jl}-g8h&G2S7jy5b&R-sQUli|8EZY)8_hrtEd1a zfD6DGU04)lD_!wjQByM^+2D?dLVmIUC8rcJ0Rg$PW^t<&c%_D5s$aO76RUKG; zbMd;elj)WKMKA8Kxq*EVJ>8eTbz8?P%NuJ-p@s7lv5`weQaF?UZ^SJ{pSdxjOVx>B zC}9H=QTEh)zCU+X1x(u?Tge=s7B_2jinOyBgG$^T?MH4&vERh&L(57`;S(#Fz z48`S1MU&}rMu1CXrqbHcc-#O>ADQDE=%aER8mbTbZew# znk;3KG#m`{44M128*9@mup_mnl2tYt#5!Z7*t=tq4r_jSv7Kk8D_9$Ie~^j?hRVQ1 ztn`~DtxNoE$fpSH#1EAkgBc|WzAM|#fG`T!+x3t)#T36&m0_HP0xky3Cr|}sabpR| z&Q-_YaJaN1D!yB@d9ajj+P!kOu!t9=O;mMd`qs_lOv3ddPr5mvo zHl2J7I!EZ1kfdrqvy`lGsqBj&pA>D6CpU=r@1z(#Um!0OfH1 zoD(A<@=g8r2s6TEBu^>=BD|YWB66B|esU6r@8ViIxMC((*}|1y#063)M?<+2@s)jM zr12t5%tW798Y7n{2_``-J1l!;v}>`0Y(oLB1&E8 z@!~}d?hu&GvM*mGDKKVuU>Q4F-#*#&}!2;{khe4wsiz zrMD_Zh;p1Wode}#95zl<16>ij%J7JvydNV7y$FhD& z#*yaC?j%4`80Vh|eVbF=O`lTvRq(iVsX#6tPY^RdP-rWAKBgxY&tXno7i3NxBlESK zWfe=iNa8B|g!2l2w2p+T#rXM;fjy@eL**o*O+&?>KdSzGt~X?%HiaWnZ@l4OKzc$Rer*GadNtAH)-WS<(Y5k|*JOw9ge7W=($W_e3TE-%)Jq5W68dh3}CK(JYwE%c%s2&DsATGUg6YX5v*d*3$l^{QsyFl}W zo=VTv(m{9_sGEG4*MJp}7H_VVXwJuyJ(UHqrVgh~sIs#E@{Tw^A}2z*8&CZMow#Yp zY{VST_avOukP!>}?jO0D+=TX0=CMGWF=4b#3O?38W7vgcJ24VtSXAI3{jjl?G6BuV zRBuo!O33)m_{@VRV{PXoXNlk3ad&sam%*9iAgr6$9uCoOBr&B8wqR+sho4N9s~4Vx zVYg$k-#$$4%(DwDLA7tAFkvx)gnE39^t6Qj@c zj(uILp1k-wr!NtUQ{fygddjQ&IwgO%B zqDrku#jV%(L~frZEE9m=4yF>Td`hSQLaEFr2# zOmTYGuX_O)4!QI3L?lK*(SSsRCY?;IZs}n{bWY#EF?f@%3A(8P!&SRhKlye#+wQ~{4g<$Qz zBt>7DeubW^W4{#v=`+bHxk$g^6bi7xDae-*g9UxbHRn;19{zm^B?73fg}1y)?S`F= z^@J@$d6&n998){B55Pbr;Rg@$!+Hw}^CZBr_+&URgu@8(D0oB_OQ&RF?={UT#v_gh zrKrXdKnt&Cl}HlP1WDtNVTmOd3q^NJK(3sKZOSj>bsyZvyfdB@l0Ltn3Z4G-R3|dj zqpy|tz=DU$6HLdl5wMCxVDUO7yE2`_qw0f&og#rcjq1;5#eF}?Su+9lVd)oMv&CN4 z#>AXHapK3FWoYOPVt3|LHh%J1O@Uxh_DFGHt_FN5Og|tCLHHN~Dw6p>qKsAeEh6~2 zMct5W-!s^L)5h}K`hL|8V{4eMKaAjp;x7hUifERO zlulS$dF5D&bs+{cGg zpK`z;%&v`-YEVYA*kg2(FRwPnOuHTu-MeMWx?Z39++x^i>9)gFaQl;yYn+V?;UjtF z$tN(WL484kLcId9`9#Cu_i3!@?i*J&>06d0$_ByS?LtSddz{ui*+EE9TnNn8Sn4*N z!v|wAzv#_VNk|TPdE@Fk{<krC97j$ucWWYG8Xm!O6z5Rts7L?j>QuV z7wZ}4YM)u6H=b(Av7O&({)o--La4-(l=`toATEbpSsEnFNqL`fP z;H$q$-%`hO$NYpesbv$TlHlcc26pGB+zPx=M1_FkVlQQJE)0{{;+i^1-#TK5$YQPB zor44E`YRJqI^U+(+!)r~X#@M964?~k!0M4FFB7+7$AHobtBY!XC=undZQ+?MK zv}*|JGF6%7PUJDvsXfj;(-y`Dw0jk?(!|FQPp!6?^lk@RdRwU}+7p&z9d=GZjzBfPSbb zLR!!<%Y3+|5c8Pn$IAN+SarXvOs(M>7J`YltX}{jSv0xpt7;2qF6RyT)hf?N+UA%f zk2I>Y7yBSi-T?9k0n36qLj42k$Zzve$`JH1I(oCXoaDNh3dOofB*z$R@TA{RPF{J| zL%?+@6I-F=`Mq+BP7;pG_S{VIC=Q*x#<)SpyY%V7!t(Jc3+ZuxhGS)ML3?8I11t-I&;C~&ZvbTJl2|) zSkrm)O>{O&qwTDfh^~?`^OY|}BKNa=J%x#y2P9#z%p*_;I)sB`1YhrG%!kD9*t3k# zJN?EIMX@1^Wl+IseH85VjNx@ZMm+j7nu85Zh4TN{s>zxw9u>>7l1uar;HYhy>>dyV zIKaPucc(5>Y46Z8q+NlL=Q;s}|55|+v&vbZyGtB&&GxO*4HCSqt5Ez%YtyJ{_5z3g zl*(K=+UBd@i6%SEZWE^f>HK*Tsplq%&4Q%~Z6**jry6I{_+f{xg-4SuYf_Sncxeaj z=!n_uS6JMUkMZM~i>(aH-PgFwi=|v!hX`WdIqIfiVISP1sZ22-#jgtTE=Qe>H}ShC z5yBiDrSpNA>1X01c+ubFi4kQQA%-M>uwRK7C`QVuLVXYjPQ5tW+aKFQtl`sG&sSt{ zP^cDg@}| zul}+#jpOcLT!<$zk*=VJDBC`r`15{X6KZ;A@90aoLk`2(PdXu!52Ivd_mo5uCs7Ew zip)lgl$eKPKiFXpLB=oTc*ZyqPvweMq>SI8B#y8*4=nBMOH?cS*&TsT#gyQsehfw7 z>F-iV1zz8Q{HO#3pfuIy4$@#MxcKvsjv)hjOlTaGNBiCRv{xQT72C^lVV?Q`n& z*QWG>Jt8$;65c?RPJKt1^##|>qBBD4sGEyxbzr1hH+i`9kY^+oytMh^RZ-C1k1Bn+ zGg)e|pmjmKP_Zss!m1sV2P&FgqMNK_`wBm)+@I|@(G=?3+OxL{GAgd=1XogpV+nm~ zXkT2fn4@EE$6X!p{h{c`cAGM`iD&v9}qIP0*e5R(dQB61QLU3wnzwB%e=xXpl?yRdJ zX}Vc%c`wrCTXo*9h}lRO!jQo*Qq`n>by8$soU7;ry@|e2goQjD35cK^P`MHd(z4;E zo{1^dnX5vC2`Xdqjh_lH91r2TdYc*sg_l25`da>Y^Y6mePts!?WrHy#(1pBeL(9&g zW3BO0h|roEw=DR(mV%fXGz22Ei&sy6>88L&Jn|-3nsME@+Usf%-$p9n!QbGUrb4(> zmfl?ws7I=*cqLwF7>fFqsy~@@5qGt7@MYs&l}u`h(FKT zzz#RTN{`-xK`Uy1hKD_P(vmwvHCt2et-hh---|$2un#<1L7R82I*9c0xHL66)_svr zfccE|9g+II{ig}lg1mL<5@>77T-k^kZ;a~VG(3)rXN`W^8it%PJUg zt`JIC^mnuhav!(~)A~z(3^F5$Y>r%7y`BtkD{p(4RVRFna(6XzIFZBR#z2+`#W=s6 zFS>Q3t~;%*?O&kv7K4&^Qe#ga`Q?xerTmS76y`qBVph;GuF{W%dI96iw4 zi&JBr6z;mgLaja2a?ZypGvWa8Wn?)3WE|7jz!CEU2A^J#(E&gaJ^nSga)x{YQ$T0% zvo>F_?>h@!4&%YH3mO~ZhyI{H2iC|idq$&eQHh?oz4vD0QjN6@n!S|z+oR zT?-DI-^K7s+juE51XCwrEzo`C5%YBWoN3Bqg@wQHkO}eCMLvgWz2%k3xx*=p5&R5y zM}MQE;h1%Uu`}l9fgPLq7pk_=bW}89x>2O30~5O!X`LI1!GnlsY$H)*>8HBiu`q>R zQ$Yk@kEPJN^w%ZJiW+FNmh~s+Ffz)`&}iyrlV6EQU2I|T%HUpNoluv`lo)$Cw=6M_ zLToa(Ge4I^QfT|fqQcK<4d6$xvQz<4fM2ju*If!@9Bu!W`&+pUYk$GUyeg zi=mdU?${H?9Lz@&QM>kI4A}}Q-(t>j%&c66UOV$jq#R}SbH{j6wnd@DWRSA*^2Neb z%b&6hg?Ol@9$^?lXjHq&eAI>vre!hd5SuWR%mDnV_-$Bt^ip;SM94Wgxd*)3Zb({Z2)9iv`?umJjWHHMBoTtWp$H%e!p|w_Q8s0xWL?|GN zB>Z=hXgw@I@tmq9j<)s{K!KF#`~x|NDu)EQ5DLvU9XECFX^t72p~=7sGt%It+FqRX zCp2wDzy>E)p|K`Zv2BmCvnd)9!9SOHRB!AW$!TE3@*hF0AELMNF6h1B-*gV>;nNCA z&#QB8U$NX4ACd}H9nG0fG&3UphAu%dZ}O^BP9!LgQfuB-N_K<6m`Y+Hs3}b9=^sLe zJrjiNOVd$~LfY%6O_p6x?lC0-UKClIk7oSZRPB_aH-yCI+cwhbZPtZ$`h`e>d}lZ+ zW*vA}Qj6}RA_$RzENtDC_AEczbbd_@HY9~O?NgRr*4ons_A-6N{PKe!g86kmj>H~Q zBCF80BZfviIs9tCQUvWfy7VLB8lWyEdlw@C5xubTx?Ew7jWAn7*%pqa$}2;r zzLW2;$Z-H;eqy5YqKZq6Iq;J;(B)TR?zB5|;5(#})9&@SRkj{yvLqfZorXIEX0H7^ zHVEm68fzRuAt@mjp9?fZBS7(Y1Qm0|)+jc%UOP}-QYu_y{OwneT^pqdVd@HDE@Yv9RBLwzF+T}N20 zRl=dR8{;}lg8Ro^D93af9d>Q<3M+@I?lusT*Fa|hA7HQtonqIIl5p$Ot1l2bqr8wV zYp4Cz&_5L}iqB;>M*8vxjb<&5?@G`& z*%@o*I^)-)gs8TACX~bnQly;KlUvf>7MG70uYQ(-nIFw5=||0XsT{P+e?`i`V1N9pLPP?DxM2WTp_B4eqY z#JcqHA5-@q7m$slHNa&qDCsPV#F`o^6^0yo_1cQ@M17;dYvl$CWR?G`R3*m&^RgTC z+pazgI&-ai_NtneNDLpcyN)z~R7=Asi|AtNp+U0!YN`~)h)L&6 zo;8jmUGCfX+CgQX{exWDs2CdRX`+R?C9d&2GF;Co<7TP|HuxYgJgq-XYP?njph@@h zIaUEZQHKuG+g4oQ1UbwC>y}9&W~H{{rPsS6qeis)H5OD;))_{bLNh7k6~drgP{!OU zhDn3=3(mBjZSR&t~ai*5iBmIIQyWLho7E!DKp^c!tTmqUWt@-7lx@MvEXM;JZSw-|lmJ)I+R zQRPiblPs$b-tR%OBs(RKF!F}7=*f)@R!EaG;{2|(5et*t0kS8*7w-f;b;K{-8m`nA zh+at=rt}Vj?D0%tJ>oP(ySJ?=Ij;S-ab%&pQd4bF9Xd}Pv(yCn%eCt7skm!|b;~VW zxlh!MZVLyvd-;FL@BNcyPQ;y|WxNSyCvSSSlAnSov7wbUaiaksTgRR3nB*2;kB z8fj&y1hHGO;#063AI=QalSTao3YyeS{iG!_jbe@~Mq4^3dLwLna_fBFlDdC{Ld8WS zXV4`_hPDiYXy(Kv$;Eb6Y1;JA)Zbm5A2qt^+ww-nv@3O!Ed=M`k=o;t9KH-ii$epQ zHBu{h30?R2;Y38!|FtYrQcMq$9vG2+Qaxmsst4%~`B4v3c`FQlRlBY{O@zD9B#1sO z*x&t+mAhUllYi@4vW7H>vil|OkBEVuxBI5DYT|#(aGHKjd~w=hyt~Iwm~}5_`lH9g z#iUp%hbqA#y-$EaKe|oXw{GHCFRQQ3s!q4?*Dc;Fe$jz&NO$yP7)MCkU{|LIHGckj z>!F3C=#H#(Bh1TM7cD$yxN8XuiJIf-8z^#bo6HCPa#|G#SP(GgO^FVO!!iV2_dC}h z1R@K5-y?$Uy6HmE<=qdX9+2mlttVomFiC9&(pNm^pF}Hu>LieibX@FiAi$0r<+@?L zS1?yV5Q5~B~XqSqt-@(UkWd*gv+)C{1Wjb6i> zx1!KCjUHb93@f$_G_%ddf=YmgLj8tZCZ>Df{iHa9j!<4%o4VU-b9Kfnio*O|MU^S- zgDf*rGsVVTx~_&R;9ky(*}Js4U5CE3`!bc7kXkK8=Go5r=I^|RvryZc`1TU2ZS$bK zWD$6u%5G*USe5_Vpb)beqHmQgJ1*L9n>SK2Am>(tQ_DztqYl zUFvdXtN;4B3nA1(yFro_m@>Fef^168V*cs%!_Dg5us{i)b#`PPVRt&`r|>j0OQ@Zydf0YXz*OQobfcd=r`y~GNcRbsR8vuEz6qy<(b=S=H%#ssDNiN)Cc7F==2tNv_b z;!ms2CY-U0-GjD{YRyN=)eO=Q+?4UJu2%FbFI5U9e;$+wu$FTo+b3m06Edm2-aWqM zZo_f|8xir8*j!(Ski!rMcrvAaqiiwCCT5 zJVP){=OP$Oi`?g>{s|vR#q9MGAL^qg8maXVxkkZFNW9Ivwbwz_LZ{psA8im((MPAF zEVUVcWW_ycjdA+qwqG zJ(7}f+dQK%T0<+REl281)XJ;qF=gMnSZHoV6WmAvKMj5IvQ)Q1`{}<Z1&}13`-f?zhJ8yPnsxXYh+gZ=0ZPdQ{5esY^U0H)=)ig`ts zb>Van4}XMk0&B$El@q4p`M3A!C2?1@hfaGw^G}7csOjb=yImb8A&hcF?bJx1QXws& zcOGR5w!Uxj28Dn3rOzXXXJdqf+}J9Hqd~JG7@Fxo6Tm{dlvs%fjgBoiunm$rScAUk zb9N&-RvLalVwT(Gz>C}j=D-s3{A-_1yTj!WGrt$I#&MfzXORqiUPE)AVP;@8y^YgT zVzfm?Jc$r~jV=;sDr$kV6P4ik_pW8*53^XA*nT_$%H;)DH{OM0}yDW6gGx9GJCEGX?H6bo6xogE1bvZ5k z%I-Ma)$10uVdqSLY&jz@S&BQPys$ZH<-i9n1YPO8JDAo4=(pX#nTclv@K*1eve9ofl|B15v`9YrFAO0 z2@FBZt|VeqG)7z-M65GRB|*hfJ z&)^hfENTc`*!lC+l=7PGma!%phf%7^&biGIbDk2|B$*^ z&RAIf0cz`QC9{cckk%Mgz2q59NI9E&pMu1A?ZUgUH-vB`=p3-rX5g*iOTU&xBg_^b z5pGv8v`9Kw7ER5hph8^~wrt6V*E1hSAST5`J^!U!aw`10S+QO9Jz|Xp3Tml;+ZxJq zluZ<|8D6Z+Z~D$%7dtT}dN|_??YLItqkSu2{(BOuU?x6Uz5q7*G_{($sMS!jLOXtj zuznfr!Y>M5flQ?gs(rZMQX%6dV5I$%cb=vWoi8zGN`M0Xayri|A|*Z}#aBkL-P=}9 z>B#*?9*C60Rl1{Yxb(z@z;-GNydqs%huF;;SPo8H5cbuxnPZISwZ|2m-%fW*zC=LK zF<#mNmZ5D^fB#2Gz3iRD*~PQHZX?xSCdL#6#YBx(5<`2FlSRSt^vn0Pjtg{BLwPOC zddOLQCOe$q-wLva8FLmocl$rO7;tHQf_I@>`iDB%l_P ze0dOOR7Jjy-ABlQX2en1+W%~XS^~JVkXZL7G`I8G&Se=P;4iL0(Oh0?h&eFixwYuv z$+tV{RMGyxdql(tO;a=~p@P-xBR>fi@2r%FYh{PfrO7}PTAG-I0@Soe4$39lw)bM| z>riGg8Q9GvmQ8$q@7|oRJN|!4(y7ls5X@S?sTChrAR3CZunqW3K58a|t*{hp2o-Y+ zYF%1#ik^LY#$bCmW34%?4Mm-oh*?nGxTs(3pz;G>&f(B7mU{JB4$HA}*O9Ws4dLO4 zEGE3Te)~B5{4P^MP;2WuB{M;~F>FI#EzI_Hdc{x*1Q`Y|u`40Bw`eQ`*Z9;zj3Qml z|4za(4K>`m8{<%C{ml8R@hMGCZE)&WS*&GNRTZk}#j$j&WT8AC$U1(e%u?u5OlLXM zYP@1k%wjiWG*&(`1)Co$kU{<<7G5Ch%}+p%yC^E$ot-Y2EG+TPVvb=fPdN5k*~Kz{ zfpcpH?RSd!1z*PQV0qH4Xlwjrj~m(L9=|)IR>0Mw4p zJVj7_$1H?&2-+&UySb(?OL+p>Xwb-oiektFB(hQ?cRww|AyM@)0jkag ztE6#8C66?uWj-S6p0WadPo2VeGwR5mm{G%u*Ue(cX%Tbadu(W=e@C1fr=M98uxo0> zF;0ZN3ON8BlQv9OSkU3S#jIWDEU1hD_&{50} zVy$?3)CS+a=Sf2^bK93kE4xOhj3F=7|7`v191LN!UH>|(L@oR+P&2n%8eSn~l8|-a zdR1$Nr?**-CrY_;p!7o)n9Ha#JxNoJd+tYiM;gA(87$>XYJq&d|K4PNmf zk}Y$G#wcLxN8x3nQpw;HJBO^+Y$9#rQ3Ub}vFIOt)r7UD(P_-mLXJnH$EBz1NJpySS(Ux>wn-R zO*)IL;x;;--VmU3@q~j-8-4-Q1`RpX7p>RbV~3zt6`<&f)0B4}FEdMr6ujJ9J8}yzWb#0%@@9ZrEEt2h7r*~w{vh(dHHo!GyGsLuU}w~ zPRTPwPo~3^yb11}K6N!P4hET*7bo*<1~Sk+)vV9{P=HIF!Qv-$J?pm&W`N+s`E`xPnFD_!?)V=s`=PWNjD==GVk#G%6n)?0}YB3ge z-xtH1V!m145&0JlxDm^NE)L>>Yh1UnzB>b4P%`BA(B!^BL#YPa+P0}F>vmz8+)*#= z*7wFtBQ6Tv?JowfF!UR9LC+H-VtwESfL2&Dir0wv*EX{e`j&IBHjdAT+pj9xR(tKW^ec#6*Qu@~#|x57z}YGXr?ERy1N7?U0g~w`iDumW`Gj6ni%gXoAz^;xI(w`xmG>FpH=NMZ?9%@m z@LByY(BaX|7?Ip<;j$t8nBW*fq;|Qx>SS4>?0n2?q=~)s*bo3 z)bP1g2b88{05zAn$dx(t$bXK}W?xwDrh4^ zL>*$>F&YRrs~>+dpps&r=KGYws(&sA!7a*@+GyRb{b(pA^? ztgR&7vBdra_AS+wFkNl)B9TtZ`Z-6ZbbkEvd>TlUYRpz(vy555iIY+I`PZRwZW5GV zOShzObCZDR!N1b3*szycomKbGwrEfa9q&Oe;ZId>L-gMP`@Nt=Iyy2Cu8fPyhL1&@ zzO5f2#*;V{oL$B=t6Sq6%!ZKmlxOiR?-GA9Uz!BXwZp17EYL2v2V_W@7B2S}njMk- zY58*b9nt_=28)kyI z*IQ)pnZ7{P%4MAulC@#qU|xX@_m_%(-LnTzk%^l@@gYjmI35K(|KX(V-jEb&r1TYM zT!=3EIR`|RzSPO@>$qk`e18s&{p^Y-@8baM>A(g%@$rdqfn+q04Q0pQJC0|Cq?FE)NOxSR014IN6*x^MBpa&Mr+$lAC?lLRkm}J-Y)&-)LLNKrfkH zlQj&7++$t;Sog?(wF*;it{|sL&oCe-2co-gftTUoC1kF`Yz%ya+gJ#88@71Q1dEb~ z{z>!j;$10>VSZB?6F;7H6u0xfjo5A+n|yTq;zur$mGIsn!NG%nn)0g|oyVXIhT}Y^ z7$SphuS`GtNPc|iVW{v$dYmlo>FMr>z?iSQ1QiN?E&oLWBe1XDv-R{S#rxn+d;GjKlavWKJ_gb zqfYO)qh22)QtJp?2hZRLv&N)Xz4>vv*N?P=AID;->|^dDPahXCV#@t^4H>L`a!U)C zGx6{?;>Ga}V}xrZTQJULmqhxAc@wn=Xblgj0=Bka#?7|N!&+3ijZ+s&waZA`{~>@H z$D+zeg3iFLd7~vhy1NDwb1^Z0lI{A0XrH4)IxCswVZ~2dW{RtyP7LSj zqzR2m?h%V58^5T%EM!>)t!;?iWm0o)?o7yAwApm)ia>&Pf~mhF$LqmCy&5>9% z;T5gPdfHJU-+!86M)n!& zFnsJw*&0jrrC8uhmwe7m4)yI;Fha310+H7L`c)vTYNUq~QZwxc+JEizizPU10w%$L z$2gJ*ayAldZ)2}3QO3+P`E_@SmU56?ZK56h$WOq~uxB*_hZsP&IRtX$6A>g+s}@UX z)UN}jIdJR~8ya0jb4DEE-CxQ%pFgm-e8&)IR2`^v!e|+@7}av$+x6rR(j~+RGb$8~ zXVN;{0r{0EKVO=!o^2uTxBWuNkkuomTG3*VXgHZdK9k}v>S3FkjCxY_#!@$@|MnF< zUP&X9u>zgkPcKvirR;M1Ppec0bn1cOnom6osy%#n>K8t|rz9RcsQBVs7%(cd1WmQE z;_Q1DJh4c^5-C98?yxxgqT9&CzR57w!{0VbGn<$wUGRi@rOJ}Y<#i|2ktp;Xg4KhZ zoM1mV0WFJ7HCQD3V(oiE13StP0DgQ)D{blwCAg?F8rQrWNQ6AD2YAy4`I{^UG=Y=$ zvYvJ-C4kWU^o3SPZ~mc5_+`1yiqR8l z9ZhgTMMTJd$-CpgtotH`pXSN<`;J;KXv`oc%ZLHORDN?(MbDK?TrCr#NIhx^$_oD- zdK{V5j9G35Ez9O)H7KS54MHeoSe6$zNVeT*c;e;`(w*=xOxHhb1jw z=rEbQDGFzM(bF@<1ogy?LcC8l(C)tvR-%>Nz+bN(_?(%Vyn~45nmn@QZ~(?d@hIN| zq3ypGc)9SQ4Msjc(5+p8mK%?Bo)aIqr(jVkVBAf5jksu2$4W0OzL1duSTmskzW0yl zkJz-x(y|YgL6DR`OewA$zn%m)1sffR;1bCI0^k!>gx`>%OhZTrtS>TNj>dOZX|}IZ zM1Pvm8TQFnb|6J$sZYv7WjJ4p%j^ANU1e*MzPSP0H>B!#Xsf$6xNOHL<+wAP#BEn%h(^Zko5V3~MlcC5ht(Y`O?iAhR4axr$Cp0xVBpse{_@UHAe zitx~{$yS9XekC{|#kw`eNy%E-tTM(B2VMi!f7msx6DBepapBQ7IEMTR?KAB6^VMtM z;G$kjqIkvvochbJbySwTJ?%WT{P6A3JvBPo0T#$GyQ;7%o&48=f+5eRnR$;(`DyVX zQzNn@+~uEk@jJc!IP7UH=%f5OlL^4<`PE)Ni!U01(~dz;Q1D0W`HsJ$zZ@H5MInFF z7cxq|sro?C)}m~4THwl|=w|M-;~9j?_k4Z5xH*@}QcQs1x>eS)XLU9x;5xCT)zNv$#!X zaE2Z5S@leGFjA1NN0*2h+(G{>61dfO(83;V2wl#G)Dz|bT6&DTjNv%1K)TTry45Y) zzH(KVGc0pqa>Edj7iCHw4uIbst|`{?8p}irESXttVa}Y`a-o?o2~yQ-`g|qP%%c6X zGI%ojOVdfLc90V_7<*(kZWHSeh5G`AIuN74ft))X&YIdIoc8)lw2x%gF$$fXk^8rN zL%j^F!as0c%vP>kbGNW;J+!H_``zIWoq||Gu<%{MUi$o9pH%FN(P$ z_cKNzE#^~%~>)>tv4rO6)4^+fs86?;#&V*~g18u&e0w~@Hg{-|su4_v&q!7oaYVOq! z)M29o<5MA#6dK)Rjfn|!sTFOBZ(yjeLGOA)4%U$a@;2B2!yZ>!nmNW6{;_sM(IJTX zTztc+ckL4TJ>Lrpu1XmP2$gIJDvt@8mz@9BhA_LUnQvo#dtqAo*4LNoBmsS<+a2+w z^B7Zzdk`;;X~-EyrQ4?VJoaU7MHZ|M!eGt9q{LJzls+2 zxf$BUR8boqkBH1g-#)$swKs2ux^B52Grmk-GhSudwA8YT4m;1pBfkWeGUxG$$v!MC<=72{Lz z#lW$)#Q_4KzDnGXn+y~rWq$;jsLpt%GT*8%2$%4w$Jsb0cn$H-t$*#zQ#xgB*B%FH zLAB!x2K!IYzG&HxW_){ZG1=R8S{GPl`9Zv*m;MBc_qbX2mQQ~NfZBh~-}*?3=R#=C zHqL<%PIaiK+__VhXZMPy6R*k+tF6OT5s_+;`qWQm`9>_vf3$PM@{b9)k_VTcQoVA`7bajg>-^3INCP}T#=p8 zqM69juZLD|OTCSGGB)#2w9#m45`SJl@mCr*5~LYaTk|agk+IZCret0#QJR|H1(R;3wm4omXp9IrUFGm zcgFEhGeqnvnl8giDBgiRhrV(WG%UQ<0fq5>T1phIl+^vm(BX-5!XV7CqCB1KZQmw^ zp^R}8tT5PkH|PaSI^Ew-o8XiQ^!m`xDd|~$$o^mw8 zw+);qLHk((i#3R9T^m^8Z(2?#pgZ3;KuKY;Nb#^ZRr-tfjye8Sm^ua*wPR*(7@u8{DvFp>Fg&NZ?mw5yL! zQ~?!Uxun7~c16z77C;yiPk6C&AcRqbb_mj;wr6Y2^F@kNVwEpG?TL76^Jm0b{-< zV6k~H*J)sq5$g*BFUi10I#@6VgTSnij%d^M2x1`2)~bheMj$cg38y??H!i0$r{G`4 z6dD0#VP9djh=*j^h+e)}Sj^}SUU>vqE^<}Y_anOj%E{tCv1k^v0GJo0IZc2vrs+`% zwZoGQHkAoHZuv0PrKkxw$QRChEvUN4U|Ws=`I0Rpx+l@vagvpiF+ClxjI@rf|Nm|8 zrbrl(8_TI{?CM$_yFetzkeS_uvvg&VR!qAzJV?vE_+v+ErdN^`dJlcGD`k@uZW0Jt z!axBS0P+%*9NIOyRzs^H4b@_KU4&gbsr>nyroO@#D&_9soPV5W-%O- zG<^X_`F{hR9%mx_z@4ya3?L7La3qER+kBxH_yHjJ$9eL1sbD?Gl&&RSC9P24)n|u{ zM5^$nPfVAlFs$j&f9P+^NEsom=wzp_{$X(2xp1PE3Ma5qR6~$>4G>=f(WzN#()6l@ z0fd>A3x{5XmIg7xZs!DHaT~;WPa$na45#+l%LZ#_R-Yk7@nUU0n>PgfG>p8ntw@r1 z3(t<{k%xp0f%fte^peqYIGS_ro){+si-?* z8saio7}to49e!&7Z49~mYGeX#Q-`_#6vKyJt0{0#E3tG?7g~9IkpkN@rWfn|Svvsd z{Z5Vp6mUhW$QeeZy^1ZrrIhhpLaSLfgsQK6YCbylfj3(fJ*7#~1dawY?ROa9qDrLN z1RL#4id#~FlC<+>mBB$OYZwzmCN2Pnv7suA3qkk>06@n0M9Lmh&7L4%{9U6KZOKm$ zwO1aV7(oprm7x156=nnqrhIt{lVSkB5K*ajhjrNydQsMm4=Fd(u+ z|0P6t+qy)*BoIhwsiE4SM5$KzrHhiUX~GOw@(`3pKoFn=4F)RZ2q_fD+hE4_=4 z^os9dZcva=aEa3s7VE4)00?V9Rwz!O+LV({z9oq3q@C_G64;X1LIJ{)L96eyS_|7q z?8IOwZd!G~zv!JZ%@B_}r)GCPp*>yr$oK3P746GWT9%@8f^-MiPhgjISwOY)yLzk) z5ZDi{j~-w*(8e=k>^Zf(3ePK89kls_SIlvy)7%O{)dF~5W;<#iMmnG_W#Jr-7i1_R zTDx8pKHZ66WsZn*SQmC!=o_Y9?lGt`L-VAhVtZ4AC+bicturP}8gNo*VoiMYf;})y z_gC2(>Xe__j^L&++mJoPf_Nb2pX>)NX$v4}4G2hI&7fg>x@s7PYtYK(LKuS~F$GnY z`pmL{IJr@$x2c%_J)hXA#r07!?f#)akeF6t!hS;lWr6X5U`B;!8-OzZ#AE29{}v6p z0GF#k2Uzx@zy!y;1Xa=`D2MSp|i#iDN>-BhI%p zVohVZw0MWp%ZUTP@1Zi}<=}CAvbm}KfC#w^shVSwUUP2;!%8&ISK?H!i`2jwzDoB4 z2MPoAa{EFJxNMwmXsze`77x8gTt*+*I0QXyATuNRW0$3eAVPic$_^qg*C9~WGk}X5 z3gUs&2sog_{e6#EG(gX7U(FQ3cY$t&mMwf@37dDqogzVJe_sIS*WFpUbd|C_&ng<2Wrf@yf3di*1LXRIF@es7ZE9s_&a+gHb7R17gEbIu) z$2v+wlr@-tGRCopl9_j0e(AQY&;m9gYn2m&qHj*u^B&*nAzcCr6GN`D3^kHmg(MpW td`oe6S6h9Cf~CNnYF-2&h};@$U=NXmm{3gs*eDn;dj1i0X{|%{n4ab--R%GX literal 0 HcmV?d00001 diff --git a/fonts/monaco/monaco-webfont.svg b/fonts/monaco/monaco-webfont.svg new file mode 100644 index 0000000..7478d44 --- /dev/null +++ b/fonts/monaco/monaco-webfont.svg @@ -0,0 +1,239 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : 199091 Apple Computer Inc 199091 Type Solutions Inc 199091 The Font Bureau Inc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/monaco/monaco-webfont.ttf b/fonts/monaco/monaco-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..376bdab2eb442945cba9b3e62fb2454c2a1ee685 GIT binary patch literal 34812 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 literal 0 HcmV?d00001 diff --git a/fonts/monospace.css b/fonts/monospace.css new file mode 100644 index 0000000..68c389c --- /dev/null +++ b/fonts/monospace.css @@ -0,0 +1,3 @@ +.crayon-font-monospace * { + font-family: monospace !important; +} \ No newline at end of file diff --git a/fonts/sourcecodepro.css b/fonts/sourcecodepro.css new file mode 100644 index 0000000..444cb9a --- /dev/null +++ b/fonts/sourcecodepro.css @@ -0,0 +1,14 @@ +@font-face { + font-family: 'source_code_proregular'; + src: url('sourcecodepro/sourcecodepro-regular-webfont.eot'); + src: url('sourcecodepro/sourcecodepro-regular-webfont.eot?#iefix') format('embedded-opentype'), + url('sourcecodepro/sourcecodepro-regular-webfont.woff') format('woff'), + url('sourcecodepro/sourcecodepro-regular-webfont.ttf') format('truetype'), + url('sourcecodepro/sourcecodepro-regular-webfont.svg#MonacoRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +.crayon-font-sourcecodepro * { + font-family: Source Code Pro, 'source_code_proregular', Arial, sans-serif !important; +} diff --git a/fonts/sourcecodepro/sourcecodepro-regular-webfont.eot b/fonts/sourcecodepro/sourcecodepro-regular-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..040c2d9c750c38281f3288d83dc5d41177678af3 GIT binary patch literal 21505 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcecodepro/sourcecodepro-regular-webfont.svg b/fonts/sourcecodepro/sourcecodepro-regular-webfont.svg new file mode 100644 index 0000000..489e0b9 --- /dev/null +++ b/fonts/sourcecodepro/sourcecodepro-regular-webfont.svg @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcecodepro/sourcecodepro-regular-webfont.ttf b/fonts/sourcecodepro/sourcecodepro-regular-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7f283ccc389f3df43f3f44741e502bdbd1f3592c GIT binary patch literal 44432 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 Pox{_Vu6c0tDW(1wD_~7v literal 0 HcmV?d00001 diff --git a/fonts/sourcecodepro/sourcecodepro-regular-webfont.woff b/fonts/sourcecodepro/sourcecodepro-regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..89489a40537fe39bce5576e18648651c509160b8 GIT binary patch literal 25172 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 Hdcgny@|u-8 literal 0 HcmV?d00001 diff --git a/fonts/sourcecodepro/sourcecodepro-regular-webfont.woff2 b/fonts/sourcecodepro/sourcecodepro-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..98023e8db60f5b9032562586003d81c8140e5b8d GIT binary patch literal 19180 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Copyright 2011 Canonical Ltd Licensed under the Ubuntu Font Licence 10 +Designer : Dalton Maag Ltd +Foundry : Dalton Maag Ltd +Foundry URL : httpwwwdaltonmaagcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/ubuntu-mono/ubuntu-mono-webfont.ttf b/fonts/ubuntu-mono/ubuntu-mono-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..75526078feca1bcf52b38bf817e186b404e1526c GIT binary patch literal 23688 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 BB8mV2 literal 0 HcmV?d00001 diff --git a/fonts/verdana.css b/fonts/verdana.css new file mode 100644 index 0000000..cffa746 --- /dev/null +++ b/fonts/verdana.css @@ -0,0 +1,3 @@ +.crayon-font-verdana * { + font-family: Verdana, Arial, sans !important; +} \ No newline at end of file diff --git a/global.php b/global.php new file mode 100644 index 0000000..3a2ad0e --- /dev/null +++ b/global.php @@ -0,0 +1,250 @@ +"); +define('CRAYON_NL', "\r\n"); +define('CRAYON_BL', CRAYON_BR . CRAYON_NL); +define('CRAYON_DASH', "=============================================================================="); +define('CRAYON_LINE', "------------------------------------------------------------------------------"); + +// Load utilities + +require_once (CRAYON_UTIL_PHP); +require_once (CRAYON_TIMER_PHP); +require_once (CRAYON_LOG_PHP); + +// Turn on the error & exception handlers +//crayon_handler_on(); + +// GLOBAL FUNCTIONS + +// Check for forwardslash/backslash in folder path to structure paths +function crayon_s($url = '') { + $url = strval($url); + if (!empty($url) && !preg_match('#(\\\\|/)$#', $url)) { + return $url . '/'; + } else if (empty($url)) { + return '/'; + } else { + return $url; + } +} + +// Returns path using forward slashes, slash added at the end +function crayon_pf($url, $slash = TRUE) { + $url = trim(strval($url)); + if ($slash) { + $url = crayon_s($url); + } + return str_replace('\\', '/', $url); +} + +// Returns path using back slashes +function crayon_pb($url) { + return str_replace('/', '\\', crayon_s(trim(strval($url)))); +} + +// Get/Set plugin information +function crayon_set_info($info_array) { + global $CRAYON_VERSION, $CRAYON_DATE, $CRAYON_AUTHOR, $CRAYON_WEBSITE; + if (!is_array($info_array)) { + return; + } + crayon_set_info_key('Version', $info_array, $CRAYON_VERSION); + crayon_set_info_key('Date', $info_array, $CRAYON_DATE); + crayon_set_info_key('AuthorName', $info_array, $CRAYON_AUTHOR); + crayon_set_info_key('PluginURI', $info_array, $CRAYON_WEBSITE); +} + +function crayon_set_info_key($key, $array, &$info) { + if (array_key_exists($key, $array)) { + $info = $array[$key]; + } else { + return FALSE; + } +} + +function crayon_vargs(&$var, $default) { + $var = isset($var) ? $var : $default; +} + +// Checks if the input is a valid PHP file and matches the $valid filename +function crayon_is_php_file($filepath, $valid) { + $path = pathinfo(crayon_pf($filepath)); + return is_file($filepath) && $path['extension'] === 'php' && $path['filename'] === $valid; +} + +// Stops the script if crayon_is_php_file() returns false or a remote path is given +function crayon_die_if_not_php($filepath, $valid) { + if (!crayon_is_php_file($filepath, $valid) || crayon_is_path_url($filepath)) { + die("[ERROR] '$filepath' is not a valid PHP file for '$valid'"); + } +} + +function crayon_is_path_url($path) { + $parts = parse_url($path); + return isset($parts['scheme']) && strlen($parts['scheme']) > 1; +} + +// LANGUAGE TRANSLATION FUNCTIONS + +function crayon_load_plugin_textdomain() { + if (function_exists('load_plugin_textdomain')) { + load_plugin_textdomain(CRAYON_DOMAIN, false, CRAYON_DIR . CRAYON_TRANS_DIR); + } +} + +function crayon__($text) { + if (function_exists('__')) { + return __($text, CRAYON_DOMAIN); + } else { + return $text; + } +} + +function crayon_e($text) { + if (function_exists('_e')) { + _e($text, CRAYON_DOMAIN); + } else { + echo $text; + } +} + +function crayon_n($singular, $plural, $count) { + if (function_exists('_n')) { + return _n($singular, $plural, $count, CRAYON_DOMAIN); + } else { + return $count > 1 ? $plural : $singular; + } +} + +function crayon_x($text, $context) { + if (function_exists('_x')) { + return _x($text, $context, CRAYON_DOMAIN); + } else { + return $text; + } +} + +?> \ No newline at end of file diff --git a/js/jquery-colorpicker/.gitignore b/js/jquery-colorpicker/.gitignore new file mode 100644 index 0000000..90ec22b --- /dev/null +++ b/js/jquery-colorpicker/.gitignore @@ -0,0 +1 @@ +.svn diff --git a/js/jquery-colorpicker/README b/js/jquery-colorpicker/README new file mode 100644 index 0000000..038e717 --- /dev/null +++ b/js/jquery-colorpicker/README @@ -0,0 +1,231 @@ +jQuery.colorpicker v0.9.3 + +Copyright (c) 2011-2012 Martijn W. van der Lee +Licensed under the MIT. + +Full-featured colorpicker for jQueryUI with full theming support. +Most images from jPicker by Christopher T. Tillman. +Sourcecode created from scratch by Martijn W. van der Lee. + +IE support; make sure you have a doctype defined, or the colorpicker will not +display correctly. + +Options: + alpha: false + Whether or not to show the inputs for alpha. + + altAlpha: true + Change the opacity of the altField element(s) according to the alpha + setting. + + altField: '' + Change the background color of the elements specified in this element. + + altOnChange: true + If true, the altField element(s) are updated on every change, otherwise + only upon closing. + + altProperties: 'background-color' + Comma-separated list of CSS properties to set color of in the altField. + The following properties are allowed, all others are ignored. + background-color + color + border-color + outline-color + + autoOpen: false + If true, the dialog opens automatically upon page load. + + buttonColorize: false + If a buttonimage is specified, change the background color of the + image when the color is changed. + + buttonImage: 'images/ui-colorpicker.png' + Same as jQueryUI DatePicker. + + buttonImageOnly: false + Same as jQueryUI DatePicker. + + buttonText: null + Same as jQueryUI DatePicker. If null, use language default. + + closeOnEscape: true + Close the window when pressing the Escape key on the keyboard. + + closeOnOutside: true + Close the window when clicking outside the colorpicker display. + + color: '#00FF00' + Initial color. Formats recognized are: + #rrggbb + rrggbb (same as previous, but without the #) + rgb(rrr,ggg,bbb) + rgba(rrr,ggg,bbb,a.a) + rgb(rrr%,ggg%,bbb%) + rgba(rrr%,ggg%,bbb%,aaa%) + w3c-defined color name + + colorFormat: 'HEX' + Specifies the format of the color string returned in callbacks. + You can either specify one of the predefined formats: + #HEX #112233 + #HEX3 #123 if possible, otherwise false. + HEX 112233 + HEX3 123 if possible, otherwise false. + RGB rgb(123,45,67) if opaque, otherwise false. + RGBA rgba(123,45,67,0.123%) + RGB% rgb(12%,34%,56%) if opaque, otherwise false. + RGBA% rgba(12%,34%,56%,0.123%) + HSL hsl(123,45,67) if opaque, otherwise false. + HSLA hsla(123,45,67,0.123%) + HSL% hsl(12%,34%,56%) if opaque, otherwise false. + HSLA% hsla(12%,34%,56%,0.123%) + NAME Closest color name + EXACT Exact name if possible, otherwise false. + or specify your own format... + Each color channel is specified as a pair of two characters. + The first character determines the color channel: + a Alpha + r, g, b RGB color space; red, green and blue + h, s, v HSV color space; hue, saturation and value + c, m, y, k CMYK color space; cyan, magenta, yellow and black + L, A, B LAB color space; Luminosity, *A and *B. + The second character specifies the data type: + x Two-digit hexadecimal notation. + d Decimal (0-255) notation. + f Floating point (0-1) notation, not rounded. + p Percentage (0-100) notation, not rounded. + If you prefix a valid pair with a backslash, it won't be replaced. + All patterns are case sensitive. + For example, to create the common hex color format, use "#rxgxbx". + For an rgba() format, use "rgba(rd,gd,bd,af)" + + You can also specify an array of formats where the first non-FALSE one + is returned. Note that the only formats able to return FALSE are the + predefined formats HEX3 and EXACT. For example, this array will output + HEX3 format if possible or HEX format otherwise: + ['HEX3', 'HEX'] + + dragggable: true + Make the dialog draggable if the header is visible and the dialog is + not inline. + + duration: 'fast' + Same as jQueryUI DatePicker. + + hsv: true + Whether or not to show the inputs for HSV. + + layout: { ... } + Set the position of elements in a table layout. + You could create any layout possible with HTML tables by specifying + cell position and size of each part. + @todo document how this works. + + limit: '' + Limit the selectable colors to any of the predefined limits: + '' No limitations, allow 8bpp color for a palette of + all 16 million colors. + 'websafe' Set of 216 colors composed of 00, 33, 66, 99, cc + and ff color channel values in #rrggbb. + 'nibble' 4 bits per color, can be easily converted to #rgb + format. + The palette is limited to 4096 colors. + 'binary' Allow only #00 or #ff as color channel values for + primary colors only; only 8 colors are available + with this limit. + 'name' Limit to closest color name. + + modal: + Ensures no other controls on screen can be used while the dialog is + opened. + Also look at showCancelButton and closeOnEscape to use in combination + with the modal option. closeOnOutside is redundant when used with modal. + + mode: 'h' + Determines the functionality of the map and bar components. Allowed + values are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation, + luminosity, red, green, blue and alpha respectively. + + parts: '' + Determine which parts to display. + Use any of the preset names ('full', 'popup' or 'inline') or specify + an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'hsv', + 'rgb', 'alpha', 'lab', 'cmyk', 'preview', 'swatches', 'footer']). + If an empty string is given, the parts will be automatically chosen as + preset 'popup' or 'inline' depending on the context in which the + colorpicker is used. + + rgb: true, // Show RGB controls and modes + Whether or not to show the inputs for RGB. + + regional: '', + Sets the language to use. Note that you must load the appropriate + language file from the i18n directory. '' is included by default. + + showAnim: 'fadeIn' + Same as jQueryUI DatePicker. + + showCancelButton: true + Show the Cancel button if buttonpane is visible. + + showCloseButton: true + Show the Close button if the header is visible. + If the dialog is inline, the close button is never shown. + + showNoneButton: false + Show the None/Revert button if buttonpane is visible. + + showOn: 'focus' + Same as jQueryUI DatePicker. + + showOptions: {} + Same as jQueryUI DatePicker. + + swatches: null + 'null' to show swatches of HTML colors or provide your own object + with colornames and {r:1, g:1, b:1} array. + For example { 'red': {r:1, g:0, b:0}, 'blue': {r:0, g:0, b:1} } + + title: null + Title to display in the header. If null, use language default. + +Events: + init: null + Triggered on initially setting the color. Called only once. + Callbacks recieve same data as select event. + + close: null + Triggered when the popup is closed. + Callbacks recieve same data as select event and an additional number + of fields containing the current color in all supported color spaces. + These are rgb{}, hsv{}, cmyk{}, lab{}, hsl{} and a. + Most values are floating point numbers in range [0,1] for accuracy. + The a and b values in the lab color space have range [-1,1]. + + select: null + Triggered on each change, confirmation (click on OK button) and + cancellation (click on Cancel, outside window or window close button) + respectively. + + The event recieves a jQuery event object and a data object containing + the elements 'formatted' (with the color formatted according to + formatColor). + + Note that select may be triggered in rapid succession when dragging + the mouse accross the map or bar and may be triggered without a change + in color upon specific user interactions. + +Methods: + open + Open the dialog + + close + Close the dialog + + destroy + Destroy the widget + + setColor + Set the current color to the specified color. Accepts any + CSS-confirmant color specification. \ No newline at end of file diff --git a/js/jquery-colorpicker/TODO b/js/jquery-colorpicker/TODO new file mode 100644 index 0000000..6916720 --- /dev/null +++ b/js/jquery-colorpicker/TODO @@ -0,0 +1,20 @@ +Fix the weird one-pixel vertical shift bug. + Caused by ui-widget class. + Only happens in Chrome and only on some, not all. + Disappears and re-appears at different zoom levels. +In hex input, accept (and strip) '#' symbol on copy/past. +Completely destroy object when closed. +Enabled/disabled +isRTL? What to RTL, besides button? +Disable selection in MSIE: this.dialog.on('selectstart', function(event) { return false; }) +Special rendering mode for color_none? Use [X] images? +Fix parsing from input with websafe colors +Recognize "transparent" color name. +Limit number of events triggered. +Small size variant (128x128) +isRTL? What to RTL, besides button? +Undo/redo memory? +ARIA support. +Allow only set (dec/hex) characters in inputs +Most-recently-used swatches +HSL/HSV distance calculations should take into account cyclic hue. \ No newline at end of file diff --git a/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-en.js b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-en.js new file mode 100644 index 0000000..82ff967 --- /dev/null +++ b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-en.js @@ -0,0 +1,27 @@ +jQuery(function($) { + $.colorpicker.regional['en'] = { + ok: 'OK', + cancel: 'Cancel', + none: 'None', + button: 'Color', + title: 'Pick a color', + transparent: 'Transparent', + hsvH: 'H', + hsvS: 'S', + hsvV: 'V', + rgbR: 'R', + rgbG: 'G', + rgbB: 'B', + labL: 'L', + labA: 'a', + labB: 'b', + hslH: 'H', + hslS: 'S', + hslL: 'L', + cmykC: 'C', + cmykM: 'M', + cmykY: 'Y', + cmykK: 'K', + alphaA: 'A' + }; +}); \ No newline at end of file diff --git a/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-fr.js b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-fr.js new file mode 100644 index 0000000..e981edf --- /dev/null +++ b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-fr.js @@ -0,0 +1,27 @@ +jQuery(function($) { + $.colorpicker.regional['fr'] = { + ok: 'OK', + cancel: 'Annuler', + none: 'Aucune couleur', + button: 'Couleur', + title: 'Choisir une couleur', + transparent: 'Transparent', + hsvH: 'T', + hsvS: 'S', + hsvV: 'V', + rgbR: 'R', + rgbG: 'V', + rgbB: 'B', + labL: 'L', + labA: 'a', + labB: 'b', + hslH: 'T', + hslS: 'S', + hslL: 'L', + cmykC: 'C', + cmykM: 'M', + cmykY: 'J', + cmykK: 'N', + alphaA: 'A' + }; +}); diff --git a/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-nl.js b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-nl.js new file mode 100644 index 0000000..48fa7eb --- /dev/null +++ b/js/jquery-colorpicker/i18n/jquery.ui.colorpicker-nl.js @@ -0,0 +1,27 @@ +jQuery(function($) { + $.colorpicker.regional['nl'] = { + ok: 'OK', + cancel: 'Annuleren', + none: 'Geen', + button: 'Kleur', + title: 'Kies een kleur', + transparent: 'Transparant', + hsvH: 'H', + hsvS: 'S', + hsvV: 'V', + rgbR: 'R', + rgbG: 'G', + rgbB: 'B', + labL: 'L', + labA: 'a', + labB: 'b', + hslH: 'H', + hslS: 'S', + hslL: 'L', + cmykC: 'C', + cmykM: 'M', + cmykY: 'Y', + cmykK: 'K', + alphaA: 'A' + }; +}); \ No newline at end of file diff --git a/js/jquery-colorpicker/images/bar-alpha.png b/js/jquery-colorpicker/images/bar-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..2950daeb877f9e917f841953f29c64266b691fcc GIT binary patch literal 2195 zcmV;E2yFL>P)aJ?Ae{j(ALGd;^ML+jlf&n5{$#Vs zrZ+RiC)5X~u5V|`WI(@iGkwD0dj$?<<$Pz#OHbMvP~RmEPftGIcoSUt4TtYHY_<>Zbp9~d6&y<8@9BUQc-!C}Y{kG+WrOd(yMn_k2WdCj zytwNvgPvtQy8`$PhaXHv^#^=AU1fbFS|b~>>3V`&uU5IUNYHaoUY>oI+3aL zM_s|;rNFxqV7*{!dXI-6GOkkKFmj>8l)Vx6%4^1SqC536z}kYXtcplkJVcyZ6C7&B z4_6`L0H=zkoK2f82K5w_gDt@v%*!9mQ+P>!XifW-RKyy8?A;*T@s!zyN^cXu4_ z#!k457F;LI%i86C6`L4jD!vdaHO50$K>Er}HXMHZK)vkGHq|VAb;4FF9$Lrgn>Y3` zeK7JQ-i+Y4cxdy9Xp?77ZNPVP0!lW|<4C1Q@I@G@N6Z&EXg!S?#lXJ%$;v~n= zynK}w>nYk4Nxhq56$MyN@UBAl76 zR-Vu|9DbVM%mJ5K;)k8;(*dJs)ytXxY9~omi=qwYu+L!5%QEHVN^{-+CgONBJitNy zLQAvga?AzU=Tkg1uzFe~_(NX)tWn#c^J!l0L=kO7BAgKjh9 z@BonsXBxQ9os(&IVn*jy(xp~pzT!4s zs7>+QEgpUWaOQ~y;fc*DozsG8Wj;O62FiU(0xhF1I{UH|te~p*>>dvfcMf@1V?8|C zG-?znb8s@f4*&51jN2*8vcs}fu7a%-P2v_0znm{f^g{>dTRJvMr;&$CS9WIUlciai zfo+6k*+Qhz8HaP;wUCz&i0Om`3i7m z2b!!Wnrs@eD|@y21f!rDi2g<@VwLu#N#v0t;OeZ~WOYcU%lPEGn&p^5+^Mo(>Pbju zVZ;de`0W}?>|sRcQNm*Nj>E6#pc!z6_#v#P5y!4<29;tI9Hg;GiU_A>0F}BopDyM| z>JR}rL_?0b`?h6ySqeodW3Z02FD;~GZE!`+bk~SQP5za&-iE_(5?w}Iew+Y5ifGMrSx<%W zke4(5XQA)sA#XdX0+dh=M)|1R*Qt?>^;ky16omMHOXIqtWSLhCww4mRDx7pmTw zyD4jBN-_m2bj36!402cRNO`Px>WDgNVHY?`RH{m!$Ns0~-OL&ai1Cv73`sW|3#_ryLd|aB3yJ(yTVLK_q}! zKX+P5Qnl2P%&e#nV}T21i(^Uhk2Q_WdHIK+WqFcgl<3&bqKz~ZV}u4p{LqRtKno<+ zdDMoobh;_p2g~$B0i68gdP1g%Gzdqohb~e=;Y7%0JR!+S37Ajbvf=Q@;JZkdk)-yE z{7^?Tt942@K{~cHMRG^M0rrl|bj%kV^MK4(k}ktIj%jbaf~ zvZRe1f^Kl*hd(7Y^AHaush2%F&nhW2Wnt?406d224$h|CeJ=pn_#9xTIz&QWPZIuT zq&HxwtdPR4h&QH!qzdlIJ1ZKaFm8bLv*IzUP;Ytp=LBaSdQc8}0}^cN)qWeqtp)T0 zlr2gn2S`=xNu%-<5S>o@ZAADUB~9{n>iewoC=IuiY|1OmRw>BoX`h2HRQ72DXT#wy zz-C#zi+k8ldpf(^MjGki&>Kb0&XRj74-TeDceqT%CfWy^zZbzI5O# zt6U9wE_^_LxzfUf;jmKQI#X}edX+n-Zn*NkUaJ?d;qVQ~%h}#xYSWdkU(f~;%0$0f zqWS8J`AVwPgKndMt7M#8iA*U#z7~WNfSx!;X;*cso5AsJBtkE5dzWtFE}z6%yaa_dVrs$#JdYA!8m|3^H0w*&ekH~B|^0RX$t V%b6gctv3Jw002ovPDHLkV1n&mGJ=pF!M-AOCP@J!(+klQmE(u|Nrg9=jPdZ eb6Ybo@h~`D<0uF}a@rE8hr!d;&t;ucLK6Vi2PWG9 literal 0 HcmV?d00001 diff --git a/js/jquery-colorpicker/images/bar-pointer.png b/js/jquery-colorpicker/images/bar-pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..6e980cfa770d279c7efc37fb0bdff1deff63a357 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W}!3HEbPUl(xDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH!whjv*Ddl5{jr{W{;ka>tfgQqqILdi#3!i|3h?c2zGw z#Ol?(`M+?s#t8$Hy*xfIx*WJJS4eRme=Qg|T=*M0u-BGwpK*Z!m t%!!uM22OEoD;Zb1viDr+OKo6aX2?F7d|uo8wGz-y22WQ%mvv4FO#oNUKbZgk literal 0 HcmV?d00001 diff --git a/js/jquery-colorpicker/images/bar.png b/js/jquery-colorpicker/images/bar.png new file mode 100644 index 0000000000000000000000000000000000000000..80eb2bbe76b26159a17b1cc19aca8e39da447e3e GIT binary patch literal 382 zcmV-^0fGLBP)}1*%UwHVKz(1$>|B5)7j`^u&Pnwz>oj`>(>aS jpPwhotNJUGfy02oX)8y=1{2rcK#dHZu6{1-oD!M<2x%(! literal 0 HcmV?d00001 diff --git a/js/jquery-colorpicker/images/map-pointer.png b/js/jquery-colorpicker/images/map-pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..64992968bc5b4d8e96312a6f7ea541e220a17401 GIT binary patch literal 344 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%0A&S-# z)QXxDC(7y)Nk-xk^(ZZ208LNXV1FBrhRT7o=WJQ8mY`)(q>6EVl7iR@e7UA?u7v(V zuqUWeejO*~xyXhUb{hk+H}4yz07m0)^KQUN_&MrKpd% zLx9xgl;JY1_9-%U@DN;o(ULycnCLc69D8_ZdYmwC97YAO~u*(y+l zhkgD&%W4;T6!>P@tCrXrI;4<$Q*OQ09GhVbmlieQNFawW>GV{n#*3d0|IirO9Hxt5 zU~zb*@>_Llg*Q(IA+m8L@GHA!ec`P&D)}c1Ko<$tM(LVqg%a_(azT`M2f}y+ALb|d zP}Y&l3T>$j<~wM0g4^r@s6@HON5YH;5Dj~o0xAA(s|}s1SoY~_>rkp=5P7q}v+=?S zYdgX)60Ad}V8r?7m%`5iG+o%@AA24OrX!fv^t0#ew?u)TMe0{(F<`5HvY04fPHIxb zXj3YPBM%TYeXR}R_=!iuFauWck`+Ps<}0LfQy9SQf5I7Qm?Bk2W*TDyrp37y=>@|+ zDY-?G7O=@oPpj7*sErBWulg;;&#%Wn z?m4pu{M&zutX2W%a}P|Ms^SglRO|9IYA;wYZOxUAa_BR70G%)rUGlSyB1uWwKogFe=mzrS-ba|AnxgLjE6SKnWE-kCo z7dd-?p1Uy)#JDmQcczOzdomFD+dGT%{`5MeGk2cDMHgfwU&yDgdU9q>zqG-?o{ym)ubSUYPfAtu71E@4qk5!{S ziT&V42UF1%9Qxz#%>YSGIFyu7I50iY6smql>Td7%%?XWSE^v%gVE5;VVvJ3v8GUYbmHU#o|PoaOYEOm+>7ca zkER^Xm=*4ms3opFn%(Su`~)5^g8jU0T=8fBQ>=ZrC>d1|F_%JO=EN?>3~St}xBLG4 zPS&8=Z{Uv!Wf@9313cC3<&*C^N>DX??V0t@kY(S#>Hge5Ubhttf00dW!q5yqh>Pj~ zhArV*WmF*6;4si!bJV~y>9}>T#m!{lxtKMscMyVV1eA3B>&ZJ2K)p!Q@q3MBNHf*; zIk}JA=ZR3`*ISV^)}zVJb%Q(zCj)@h3*EOIF&Bt@PZUU^7c*$=mhxo7WQ-0|^6 zQgME{>6Ly7>SYEA9ujL2W5W&t zKGDpRlb*bEo%QBeaic>XlzC5a6H^%AS9opxO3R?Mjn!$Ues$tN(9Hkt9 zkjJ#@iEjQ6tWEOb&pG^K4xT#WaRWVDAM^6hE=q>Ntm-%_fxTm7VE-`p4>rOR(dvA8 z{25U)1>e_Mv`e5isS}c>*BgNp1(gPLu=Zl)8-8DS^})wv4cRa#sWY_?!j8#bJym=2 z5LzsL4;Wu`r202fRAYEyPeu)d#ufGzb`Ld8OzSb^6yp@IQG0r>q@Uniy=Pg?8ux5P z7i;)Fr3kefk8`dValZrTYOB`*QYh5Ep913_qA-4>b~NrNHI2u7BDlB5n&CQzss0a$blWH%h^Rcz;A2FT{0wlYBR?>1$)qE@7{GwDs!ofDWou#6_B8 zEIU-1uOF%uw_G$`&>saQYJB+`YxPOR z0>@0tHP39gN$^(J@rxTTUvc}oWuBkRNF&P@=CYgc7;x}Uv*J&1gOl|^5H%&P?nE@5 zBXxH^Z7+cUa!YzfJJh?o0Jn9o9ZYVT6CP8^kB(s+k|cv~QCssbObU@dC4dqCoL;}w z3HsP9A$e4w}YdBkHY!`*xI=dtBLo zg73q>)5g<-e3G$gwib+RKG%f^^?sh1qGe7!!19N4)tw+5k)9$&(qm^o@>@J^-FVa; zA`SbO{c%GI0KBE~*7Hb?98kST(DE1Nfo6JQshnu)q>iRmMS7H$>D}1CD6oQurMj8A zYRtzbs-xtg*FKHX=}KOKM;Aa!&JVogRUgV&>LUzkdCMJ5`RNGL`_38FPAY@{WU(=} zzD1PB3}*~K7>yW=PjA)N5@iyec5FGoUhV^$_m3~?V_o7i5DnfXP9H25-mJb-k5uro ztWuRNFu~D5#FO`2U%>i=UYqrCjevQRxv;300Qm@X!q*CdZ4?RI`<$yxUF25hf=KC))E?qV^{#bc3U%bLBD1q5S8~mg7;RNn*l$iKk9v-UAb6WS6#CLd9IJR` zfvM7%E@e>GL45v$(cWa{1h&!mjqIy94ft-lnL!=c1)>9;dyq{e?VO83dqXZuA85jE zFsK_tO7@fezT0I>RhsT|YM2wMzg+kgUvXev{=u)G zJ*io@|F1=?01XJstJ@xk(`DLAc(wg_=Ob%ysxo54s!MgDC7wH zD(S9HC~P`4e}QpTGmyfFzhRuZ*&zs^pVW5Yh*0efGjQHVI`f`@NDbmnDouZJbp=qQ z;4_-1z^X#izws7n7PK!4Um@#%<#+XO>|2)&$w$AwD`s{puQ*n`jOpkF<7X3e-s(l` zeN%Y-8CUyDYeVL9;=%dt)$&EmSG%6tmj-$wachcm=8tB7Nv%j5LyPE6OIj$>8~7f3 zC!zD!75XLZ5COkAfyLw9ZVP%){DOa-LD8BYWQWYC> z=oU$akV*Cr65qkIhz2`A;X0>$o#7%JaAU!B-Q)4Svx;H6Jb&^o8s}J4!kmRf8v~6W zQeit#G`%eq6!E=Msi(p>(wtVX#;g9_j%y2o>u~w7VdJ=>{s~n&;k7)LnGF?f0{_Vp zQ4u^Q=^Q~L+Hq?{qNICEZGz{f5&2c;!z7V2JbWl-JIlg{U3j|os*(}TbG6US80LP$arfBe*@G-#MMfN)%73@zpLNxwVNtg0&NZ`CFZuEU;!}3KtX#wA zy{s-KKIW7h9zUfwPqIefo{D?M!fmk!n~Sh!cHd-ILHkw#W>AJiAWF{9MX9=jyozp$ z6EefpmYO(f87$Cx93!s#yYyeX7TUV%hl}{jB=1cM(!e+pEUn_vGctrWUc)jNYJPe@ zKzt8DP?Ai603P>b8Mhb1nwO|E))JSu6@kZE$|V9ap*^(D5G89?ul|C&J71bA9c%#5 zhf6NI5Nb#2Qd+3^MRodO#vO#hNMF+jI+{+^SjJqZPkuO7!qK%_Jte0&XHj4KT{i4Z zmF`cG=hH2n2oxKfE1`8?!f@lBifO3%_kKiJvt!Q`f27Q$rO!XRTgl>W+9R(J#(drH zH^)NdvaBVAeR|QQ;35ift!)2OjND zHvW=A?7f5$4sKMS67C#2nYCzQF?2?2FA%12CGP%+cum+7`Y`l}-7~tc7!LhTE{Gh?<`WxA6N_ny zU{(!&dmHKjpq;rw4r!L@ixjaD#!e&~f2!mat}5HF@^g-LpO zimvb<^w4+XJbO=H3l<_4Rk9cSICsx3UXWDyA_H{`ujH^#zI$=g^1lN~zCZImj7Td2 zXsC$AaO7xwag(YS*0iz=V%C0m0*m(m z=0*V&?Kv)o7&U;Fx6kiRA_CZZs@tTssgw=Hf93Xw?WGg&HbavUoi}7~@fjDYj?#AM zXHozObELjG!!%spJvKP6{RD0JOzqayfIPr4D)$MX`6ucovw5UfVB97nT_UK}D-_M6 z7G)v?FzO{4!B*xurD}15op%8*9<)9A!Fqb}ECX&NWPN<&Fv`O3C53>Z?UV;1@vGOP zS&^?N&e>A2Bp!g7j#=il;v?$%qw~9IaL!?dzx``6_C8)>s^WMK`B|YyupJV@l<(kQ z71t1D$Htb*@5T(M-&3ivm)X<7X&lgTpj2Nt`s|v05Qwr(L{+;$54ujx|Nx3)uy3Sl(n)G$;lB(@= zAw%7J;loVzo!j^yOr}K+-Za&z?5ODOJ666`(V^qZbzJlCo8EinH^xQ`S!>PDDRTOP z9!;xj1moQ10G%a%ZHGi$r8n+%ZEqB*{)ZHr6Uvpm07Sz5&{Em=UUw?Ij+n}C;b^C9 zC+EeH8FHFUpVMqL6`~OL6w2VWvntUhK*`izI!eHw?Pd#POa3vhC?<{w0G0av%n=yF zP3}8W(<@oL#@Q0$3e)Z8^Ya0vF)pUWCtN6C+G=cYhY!;PnscyGzWE=4;SpQ`rAnd< zzI0(`B*}hBXRU_r0P2?wb((iGi4U5ipYU@oR7S^i*gC^k;LQQyvr?SkvlAy#C2t3s zOav-!JL!GX;T57EK}uAxd%mKE&BLa5*$&gZr=z3Zc)REve|=l~m*!x5bu}ioW7Cw5 zYuEWCc?HV-*N-QRoe9LE=%hh#T->>DsZ=IX`{KHP6~s%A8n(aGto$5Dq6K|s=v)`e zlWf%cnQkBav;VgR0|)ne6slB8yJf(E^8uDZM&Xl|`OmxNqe0x^imWZ9ne=g@3(t{7 zIcU7p;yX61!1}GPjHMLo9&>lC%Ok3tOza~_hCKJppWY|c_{3!0zaM=hpuS3EzN>Kg zOA1m(uWp7M)NJM8exS^09hs4MX;Jm#WHxp<)f%|ErTl@y%zN(IRSs+0Y{T+9jIgQl zFb}OSH8;8l46AJVfdL0xHh=-#Y$_8SXjty@eg~0Ws?m2M!l$R+t$FDz0|8WuTwTMr zuJv!+Yj)5RQu;-ii6(6aw*B$_q;>-a z3NB`v+2LdS;b^aEo-_yWptNtnuLZq+w*xx^33$?mtrNmROJzltwS~9MrtZtt(rco4 zuA&qp1ETkhRB7m6_GiUFE!F)j`nZMX^&>sL_q>4Rsj!$w2Jr8Hl8ZrjaJ=A&ORPmBuO(KqI`lia0BvK)B z%PwRlmg-g9wB!QmzfCVtQ<4bA(GVw?#zPY|I0GOWH;KADs%!BsOAb_OB%WWH`^hv~ z3w3CU+-iUE^yn;JbDBk~Xf(c!3b#miPxWx#;T$exOkh zNV)*oVlOufbRH0g`cW{yt~B@+B|SM6P{pG=MHG`9RI#tw+n$y+r$(Om?YelHOk4%1 z{_aYPDft$|hCYKabcp8Q1}S+$Y#y#exW(JEc!?iUq5x{`HUD(B6k)yb47L@h0qT->AdDI$6Y{zDuQ_lofYgnXa@3S zBZ2c?bj+%{{cw+Cbe7l;O|u3hJXHTvfT%gi+4HzfYe&WX_{XvANBSNCmRN6g#zScH z#2Pzu*bLJ(k`2q>_4^4IwY|8h=k(q!bA(zwsUWz56+9aL&e)N9;W>qJC_@cXO&K#J zMN#wKxnpLEX&B3HS#x#%%4*Wf>uima!;fSbI+UhqXM701<$BDDg@T%TZ^LH1P+^SY zaYxcfFRUJHX*gRsISiG{gmIf6GWzEVeER+UeGBNXffDIgZ49x~KA;2njS@0%yvi3L zzYOt%6@D;PSlB8t>xGBIxweTrVxLHk0oG43QOvNHF2HLBVvn9X&5JRT*g33k1^b1Nx^Al!rXny!qnQO_C71KhS#F)qQh zVDCezAEG~N;hu4XQ->aw!6YMc_#&t^+g3(2dt%WdzM3(TytbMz65pR;q)6P2A>wqf z`dP+l5h>nYZOXiRD(a)pe;-V5t(ouoyX^$4pHyARCVjX6V~X-tivA#xdu zqpBruQGKSKk3t>Pu)o8U;^^Yu?!I&fjYdU2Gy&9Up@df)pd}l7Pd>Bga-Nqh(GGYT z=ApH5V3qVAKF6=IKYtp`V(MSoWtR?@bi@SsU{bJ1?jfEFshn=Yed~LmCplRu+Du3m zSl1<2yAYQE7Y)^@JKmHc9sl+}m{gl8_>0M@1^D%GR3ctY8k5 zYGibhr-XUfi(C5Xe)xfYA~;zVQO&t%&QCTqiQ%%L2{Oev2nyAl$j$n+Uo zYO=()jh#gNCX6^dwhJf6vmwc)Q%i`(f<7Ku4FHJk)sNqrd~kl2tNkas3IuqTJjxQEWRo?!5@sH;{LY%7?Zq zo)O-#ZddEh`&hiTg!PtJZ;NjAwq4xpo5VQ5-W2=yF_AkzI1eI#X09`msDrU4APGIH zFI)HfAuem1`J-BobFG}9Cw;eg#)jc`_>cMNh5%6nC#N@; zSU#G|8|q=|Cm;;Ihc%lhFyV@a1y(iW@(~oRLb!?4xETVeLY0K>iWdQHOI%ahp?pn~ z39w%u!5wTGkISF(9%hhAls!IzZ

^m(L~pIE4v{JJ6sFjTx7 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 literal 0 HcmV?d00001 diff --git a/js/jquery-colorpicker/images/preview-opacity.png b/js/jquery-colorpicker/images/preview-opacity.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd9a2f8b9d2a8ff3f52bf7ca4c772196a5dd8d6 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih{( zJaZG%Q-e|yQz{EjrrH1%X?nUihE&{2vMGMX!z^TAX6E+H$nXKH$<(wz|Nq+?{eN?F gbMw(m21Yi9jg}lG!VlE;12r*ty85}Sb4q9e04Z`PuJ3|JkpZKt2f0_1>B8UAzk*LrsvW-|w#t9LM=i;QKzqOSCMDT-Uuo zkummb0H}e}YPD!E7*M<2mUn1btya69PN%nKy#E}eYBU-*tXM3b=W@B@U4AAphkInj k12|Bt+U6kg>PvtD0M + + + jQuery Colorpicker + + + + + + + + + + +

jQuery ColorPicker

+ +
+ + Basic <input> example, without any options: + +
+ + Basic <div> example, without any options: + + +
+ + Fully-featured example: + + +
+ + Localized to Dutch (nl): + + +
+ + Limit to websafe colors: + + +
+ + Alternative field class: + +
Background-color on outside, text color here
+
+ + +
+ + Events: +
+ + +
+ + Output formatting HSLA: + + + +
+ + Output format list: + + + +
+ + Dialog with Colorpicker popup (demonstrates z-index): + +
+ Basic <input> example, without any options: +
+ Basic <div> example, without any options: +
+ + +
+ + Modal (and showCancelButton, closeOnEscape, showCloseButton): + + +
+ + Input formatting: + + + diff --git a/js/jquery-colorpicker/jquery.colorpicker.css b/js/jquery-colorpicker/jquery.colorpicker.css new file mode 100644 index 0000000..8487cdc --- /dev/null +++ b/js/jquery-colorpicker/jquery.colorpicker.css @@ -0,0 +1,199 @@ +.ui-colorpicker, +.ui-dialog.ui-colorpicker { + width: auto; + white-space: nowrap; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.ui-colorpicker-inline { + position: static; +} + +.ui-colorpicker-buttonset { + float: left; + margin-left: .4em; +} + +.ui-colorpicker-buttonset .ui-button { + margin: .5em 0 .5em 0; + cursor: pointer; +} + +.ui-colorpicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} + +.ui-colorpicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} + +.ui-colorpicker-buttonpane button.ui-colorpicker-current { + float: left; +} + +.ui-colorpicker table { + font-size: 100%; /* Reset browser table font-size */ + margin: 0; +} + +.ui-colorpicker table td { + vertical-align: top; +} + +.ui-colorpicker-padding-left { + padding-left: 10px; +} +.ui-colorpicker-padding-top { + padding-top: 10px; +} + +.ui-colorpicker-border { + border: 1px inset; + display: inline-block; +} + +/* Bar & map */ +.ui-colorpicker-map > *, +.ui-colorpicker-bar > * { + position: absolute; + cursor: crosshair; +} + +.ui-colorpicker-map-pointer, +.ui-colorpicker-bar-pointer { + position: absolute; +} +/* Map */ +.ui-colorpicker-map, +.ui-colorpicker-map > * { + display: block; + width: 256px; + height: 256px; + overflow: hidden; +} + +.ui-colorpicker-map-layer-1, +.ui-colorpicker-map-layer-2 { + background: url(images/map.png) no-repeat; +} + +.ui-colorpicker-map-layer-alpha { + background: url(images/map-opacity.png); +} + +.ui-colorpicker-map-pointer { + display: inline-block; + width: 15px; + height: 15px; + background: url(images/map-pointer.png) no-repeat; +} + +/* Bar */ +.ui-colorpicker-bar, +.ui-colorpicker-bar > * { + display: block; + width: 20px; + height: 256px; + overflow: hidden; + background-repeat: repeat-x; +} + +.ui-colorpicker-bar-layer-1, +.ui-colorpicker-bar-layer-2, +.ui-colorpicker-bar-layer-3, +.ui-colorpicker-bar-layer-4 { + background: url(images/bar.png) repeat-x; +} + +.ui-colorpicker-bar-layer-alpha { + background: url(images/bar-opacity.png); +} + +.ui-colorpicker-bar-layer-alphabar { + background: url(images/bar-alpha.png); +} + +.ui-colorpicker-bar-pointer { + display: inline-block; + width: 20px; + height: 7px; + background: url(images/bar-pointer.png) no-repeat; +} + +/* Preview */ +.ui-colorpicker-preview { + text-align: center; +} + +.ui-colorpicker-preview-initial { + cursor: pointer; +} + +.ui-colorpicker-preview-initial, +.ui-colorpicker-preview-current { + width: 50px; + height: 20px; + display: inline-block; +} + +.ui-colorpicker-preview-initial-alpha, +.ui-colorpicker-preview-current-alpha { + width: 50px; + height: 20px; + display: inline-block; + background: url(images/preview-opacity.png) repeat; +} + +/* Inputs */ +.ui-colorpicker-rgb label, +.ui-colorpicker-hsv label, +.ui-colorpicker-hsl label, +.ui-colorpicker-lab label, +.ui-colorpicker-cmyk label, +.ui-colorpicker-alpha label { + width: 1.5em; + display: inline-block; +} + +.ui-colorpicker-number { + margin: .1em; + width: 4em; +} + +/* Hex */ +.ui-colorpicker-hex { + text-align: center; +} + +/* Swatches */ +.ui-colorpicker-swatches { + width: 84px; + height: 256px; + overflow: auto; + background-color: #f8f8f8; +} + +.ui-colorpicker-swatch { + cursor: pointer; + float: left; + width: 11px; + height: 11px; + border-right: 1px solid black; + border-bottom: 1px solid black; +} \ No newline at end of file diff --git a/js/jquery-colorpicker/jquery.colorpicker.js b/js/jquery-colorpicker/jquery.colorpicker.js new file mode 100644 index 0000000..e19db7b --- /dev/null +++ b/js/jquery-colorpicker/jquery.colorpicker.js @@ -0,0 +1,2552 @@ +/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */ +/*globals jQuery,Color */ + +/* + * ColorPicker + * + * Copyright (c) 2011-2012 Martijn W. van der Lee + * Licensed under the MIT. + * + * Full-featured colorpicker for jQueryUI with full theming support. + * Most images from jPicker by Christopher T. Tillman. + * Sourcecode created from scratch by Martijn W. van der Lee. + */ + +(function ($) { + "use strict"; + + $.colorpicker = new function() { + this.regional = []; + this.regional[''] = { + ok: 'OK', + cancel: 'Cancel', + none: 'None', + button: 'Color', + title: 'Pick a color', + transparent: 'Transparent', + hsvH: 'H', + hsvS: 'S', + hsvV: 'V', + rgbR: 'R', + rgbG: 'G', + rgbB: 'B', + labL: 'L', + labA: 'a', + labB: 'b', + hslH: 'H', + hslS: 'S', + hslL: 'L', + cmykC: 'C', + cmykM: 'M', + cmykY: 'Y', + cmykK: 'K', + alphaA: 'A' + }; + }; + + var _colorpicker_index = 0, + + _container_popup = '', + + _container_inline = '
', + + _parts_lists = { + 'full': ['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'lab', 'cmyk', 'preview', 'swatches', 'footer'], + 'popup': ['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'], + 'draggable': ['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'], + 'inline': ['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview'] + }, + + _intToHex = function (dec) { + var result = Math.round(dec).toString(16); + if (result.length === 1) { + result = ('0' + result); + } + return result.toLowerCase(); + }, + + _formats = { + '#HEX': function(color) { + return _formatColor('#rxgxbx', color); + } + , '#HEX3': function(color) { + var hex3 = _formats.HEX3(color); + return hex3 === false? false : '#'+hex3; + } + , 'HEX': function(color) { + return _formatColor('rxgxbx', color); + } + , 'HEX3': function(color) { + var rgb = color.getRGB(), + r = Math.round(rgb.r * 255), + g = Math.round(rgb.g * 255), + b = Math.round(rgb.b * 255); + + if (((r >>> 4) == (r &= 0xf)) + && ((g >>> 4) == (g &= 0xf)) + && ((b >>> 4) == (b &= 0xf))) { + return r.toString(16)+g.toString(16)+b.toString(16); + } + return false; + } + , 'RGB': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('rgb(rd,gd,bd)', color) + : false; + } + , 'RGBA': function(color) { + return _formatColor('rgba(rd,gd,bd,af)', color); + } + , 'RGB%': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('rgb(rp%,gp%,bp%)', color) + : false; + } + , 'RGBA%': function(color) { + return _formatColor('rgba(rp%,gp%,bp%,af)', color); + } + , 'HSL': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('hsl(hd,sd,vd)', color) + : false; + } + , 'HSLA': function(color) { + return _formatColor('hsla(hd,sd,vd,af)', color); + } + , 'HSL%': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('hsl(hp%,sp%,vp%)', color) + : false; + } + , 'HSLA%': function(color) { + return _formatColor('hsla(hp%,sp%,vp%,af)', color); + } + , 'NAME': function(color) { + return _closestName(color); + } + , 'EXACT': function(color) { //@todo experimental. Implement a good fallback list + return _exactName(color); + } + }, + + _formatColor = function (formats, color) { + var that = this, + text = null, + types = { 'x': function(v) {return _intToHex(v * 255);} + , 'd': function(v) {return Math.round(v * 255);} + , 'f': function(v) {return v;} + , 'p': function(v) {return v * 100;} + }, + channels = color.getChannels(); + + if (!$.isArray(formats)) { + formats = [formats]; + } + + $.each(formats, function(index, format) { + if (_formats[format]) { + text = _formats[format](color); + return (text === false); + } else { + text = format.replace(/\\?[argbhsvcmykLAB][xdfp]/g, function(m) { + if (m.match(/^\\/)) { + return m.slice(1); + } + return types[m.charAt(1)](channels[m.charAt(0)]); + }); + return false; + } + }); + + return text; + }, + + _colors = { + 'black': {r: 0, g: 0, b: 0}, + 'dimgray': {r: 0.4117647058823529, g: 0.4117647058823529, b: 0.4117647058823529}, + 'gray': {r: 0.5019607843137255, g: 0.5019607843137255, b: 0.5019607843137255}, + 'darkgray': {r: 0.6627450980392157, g: 0.6627450980392157, b: 0.6627450980392157}, + 'silver': {r: 0.7529411764705882, g: 0.7529411764705882, b: 0.7529411764705882}, + 'lightgrey': {r: 0.8274509803921568, g: 0.8274509803921568, b: 0.8274509803921568}, + 'gainsboro': {r: 0.8627450980392157, g: 0.8627450980392157, b: 0.8627450980392157}, + 'whitesmoke': {r: 0.9607843137254902, g: 0.9607843137254902, b: 0.9607843137254902}, + 'white': {r: 1, g: 1, b: 1}, + 'rosybrown': {r: 0.7372549019607844, g: 0.5607843137254902, b: 0.5607843137254902}, + 'indianred': {r: 0.803921568627451, g: 0.3607843137254902, b: 0.3607843137254902}, + 'brown': {r: 0.6470588235294118, g: 0.16470588235294117, b: 0.16470588235294117}, + 'firebrick': {r: 0.6980392156862745, g: 0.13333333333333333, b: 0.13333333333333333}, + 'lightcoral': {r: 0.9411764705882353, g: 0.5019607843137255, b: 0.5019607843137255}, + 'maroon': {r: 0.5019607843137255, g: 0, b: 0}, + 'darkred': {r: 0.5450980392156862, g: 0, b: 0}, + 'red': {r: 1, g: 0, b: 0}, + 'snow': {r: 1, g: 0.9803921568627451, b: 0.9803921568627451}, + 'salmon': {r: 0.9803921568627451, g: 0.5019607843137255, b: 0.4470588235294118}, + 'mistyrose': {r: 1, g: 0.8941176470588236, b: 0.8823529411764706}, + 'tomato': {r: 1, g: 0.38823529411764707, b: 0.2784313725490196}, + 'darksalmon': {r: 0.9137254901960784, g: 0.5882352941176471, b: 0.47843137254901963}, + 'orangered': {r: 1, g: 0.27058823529411763, b: 0}, + 'coral': {r: 1, g: 0.4980392156862745, b: 0.3137254901960784}, + 'lightsalmon': {r: 1, g: 0.6274509803921569, b: 0.47843137254901963}, + 'sienna': {r: 0.6274509803921569, g: 0.3215686274509804, b: 0.17647058823529413}, + 'seashell': {r: 1, g: 0.9607843137254902, b: 0.9333333333333333}, + 'chocolate': {r: 0.8235294117647058, g: 0.4117647058823529, b: 0.11764705882352941}, + 'saddlebrown': {r: 0.5450980392156862, g: 0.27058823529411763, b: 0.07450980392156863}, + 'sandybrown': {r: 0.9568627450980393, g: 0.6431372549019608, b: 0.3764705882352941}, + 'peachpuff': {r: 1, g: 0.8549019607843137, b: 0.7254901960784313}, + 'peru': {r: 0.803921568627451, g: 0.5215686274509804, b: 0.24705882352941178}, + 'linen': {r: 0.9803921568627451, g: 0.9411764705882353, b: 0.9019607843137255}, + 'darkorange': {r: 1, g: 0.5490196078431373, b: 0}, + 'bisque': {r: 1, g: 0.8941176470588236, b: 0.7686274509803922}, + 'burlywood': {r: 0.8705882352941177, g: 0.7215686274509804, b: 0.5294117647058824}, + 'tan': {r: 0.8235294117647058, g: 0.7058823529411765, b: 0.5490196078431373}, + 'antiquewhite': {r: 0.9803921568627451, g: 0.9215686274509803, b: 0.8431372549019608}, + 'navajowhite': {r: 1, g: 0.8705882352941177, b: 0.6784313725490196}, + 'blanchedalmond': {r: 1, g: 0.9215686274509803, b: 0.803921568627451}, + 'papayawhip': {r: 1, g: 0.9372549019607843, b: 0.8352941176470589}, + 'orange': {r: 1, g: 0.6470588235294118, b: 0}, + 'moccasin': {r: 1, g: 0.8941176470588236, b: 0.7098039215686275}, + 'wheat': {r: 0.9607843137254902, g: 0.8705882352941177, b: 0.7019607843137254}, + 'oldlace': {r: 0.9921568627450981, g: 0.9607843137254902, b: 0.9019607843137255}, + 'floralwhite': {r: 1, g: 0.9803921568627451, b: 0.9411764705882353}, + 'goldenrod': {r: 0.8549019607843137, g: 0.6470588235294118, b: 0.12549019607843137}, + 'darkgoldenrod': {r: 0.7215686274509804, g: 0.5254901960784314, b: 0.043137254901960784}, + 'cornsilk': {r: 1, g: 0.9725490196078431, b: 0.8627450980392157}, + 'gold': {r: 1, g: 0.8431372549019608, b: 0}, + 'palegoldenrod': {r: 0.9333333333333333, g: 0.9098039215686274, b: 0.6666666666666666}, + 'khaki': {r: 0.9411764705882353, g: 0.9019607843137255, b: 0.5490196078431373}, + 'lemonchiffon': {r: 1, g: 0.9803921568627451, b: 0.803921568627451}, + 'darkkhaki': {r: 0.7411764705882353, g: 0.7176470588235294, b: 0.4196078431372549}, + 'beige': {r: 0.9607843137254902, g: 0.9607843137254902, b: 0.8627450980392157}, + 'lightgoldenrodyellow': {r: 0.9803921568627451, g: 0.9803921568627451, b: 0.8235294117647058}, + 'olive': {r: 0.5019607843137255, g: 0.5019607843137255, b: 0}, + 'yellow': {r: 1, g: 1, b: 0}, + 'lightyellow': {r: 1, g: 1, b: 0.8784313725490196}, + 'ivory': {r: 1, g: 1, b: 0.9411764705882353}, + 'olivedrab': {r: 0.4196078431372549, g: 0.5568627450980392, b: 0.13725490196078433}, + 'yellowgreen': {r: 0.6039215686274509, g: 0.803921568627451, b: 0.19607843137254902}, + 'darkolivegreen': {r: 0.3333333333333333, g: 0.4196078431372549, b: 0.1843137254901961}, + 'greenyellow': {r: 0.6784313725490196, g: 1, b: 0.1843137254901961}, + 'lawngreen': {r: 0.48627450980392156, g: 0.9882352941176471, b: 0}, + 'chartreuse': {r: 0.4980392156862745, g: 1, b: 0}, + 'darkseagreen': {r: 0.5607843137254902, g: 0.7372549019607844, b: 0.5607843137254902}, + 'forestgreen': {r: 0.13333333333333333, g: 0.5450980392156862, b: 0.13333333333333333}, + 'limegreen': {r: 0.19607843137254902, g: 0.803921568627451, b: 0.19607843137254902}, + 'lightgreen': {r: 0.5647058823529412, g: 0.9333333333333333, b: 0.5647058823529412}, + 'palegreen': {r: 0.596078431372549, g: 0.984313725490196, b: 0.596078431372549}, + 'darkgreen': {r: 0, g: 0.39215686274509803, b: 0}, + 'green': {r: 0, g: 0.5019607843137255, b: 0}, + 'lime': {r: 0, g: 1, b: 0}, + 'honeydew': {r: 0.9411764705882353, g: 1, b: 0.9411764705882353}, + 'mediumseagreen': {r: 0.23529411764705882, g: 0.7019607843137254, b: 0.44313725490196076}, + 'seagreen': {r: 0.1803921568627451, g: 0.5450980392156862, b: 0.3411764705882353}, + 'springgreen': {r: 0, g: 1, b: 0.4980392156862745}, + 'mintcream': {r: 0.9607843137254902, g: 1, b: 0.9803921568627451}, + 'mediumspringgreen': {r: 0, g: 0.9803921568627451, b: 0.6039215686274509}, + 'mediumaquamarine': {r: 0.4, g: 0.803921568627451, b: 0.6666666666666666}, + 'aquamarine': {r: 0.4980392156862745, g: 1, b: 0.8313725490196079}, + 'turquoise': {r: 0.25098039215686274, g: 0.8784313725490196, b: 0.8156862745098039}, + 'lightseagreen': {r: 0.12549019607843137, g: 0.6980392156862745, b: 0.6666666666666666}, + 'mediumturquoise': {r: 0.2823529411764706, g: 0.8196078431372549, b: 0.8}, + 'darkslategray': {r: 0.1843137254901961, g: 0.30980392156862746, b: 0.30980392156862746}, + 'paleturquoise': {r: 0.6862745098039216, g: 0.9333333333333333, b: 0.9333333333333333}, + 'teal': {r: 0, g: 0.5019607843137255, b: 0.5019607843137255}, + 'darkcyan': {r: 0, g: 0.5450980392156862, b: 0.5450980392156862}, + 'darkturquoise': {r: 0, g: 0.807843137254902, b: 0.8196078431372549}, + 'aqua': {r: 0, g: 1, b: 1}, + 'cyan': {r: 0, g: 1, b: 1}, + 'lightcyan': {r: 0.8784313725490196, g: 1, b: 1}, + 'azure': {r: 0.9411764705882353, g: 1, b: 1}, + 'cadetblue': {r: 0.37254901960784315, g: 0.6196078431372549, b: 0.6274509803921569}, + 'powderblue': {r: 0.6901960784313725, g: 0.8784313725490196, b: 0.9019607843137255}, + 'lightblue': {r: 0.6784313725490196, g: 0.8470588235294118, b: 0.9019607843137255}, + 'deepskyblue': {r: 0, g: 0.7490196078431373, b: 1}, + 'skyblue': {r: 0.5294117647058824, g: 0.807843137254902, b: 0.9215686274509803}, + 'lightskyblue': {r: 0.5294117647058824, g: 0.807843137254902, b: 0.9803921568627451}, + 'steelblue': {r: 0.27450980392156865, g: 0.5098039215686274, b: 0.7058823529411765}, + 'aliceblue': {r: 0.9411764705882353, g: 0.9725490196078431, b: 1}, + 'dodgerblue': {r: 0.11764705882352941, g: 0.5647058823529412, b: 1}, + 'slategray': {r: 0.4392156862745098, g: 0.5019607843137255, b: 0.5647058823529412}, + 'lightslategray': {r: 0.4666666666666667, g: 0.5333333333333333, b: 0.6}, + 'lightsteelblue': {r: 0.6901960784313725, g: 0.7686274509803922, b: 0.8705882352941177}, + 'cornflowerblue': {r: 0.39215686274509803, g: 0.5843137254901961, b: 0.9294117647058824}, + 'royalblue': {r: 0.2549019607843137, g: 0.4117647058823529, b: 0.8823529411764706}, + 'midnightblue': {r: 0.09803921568627451, g: 0.09803921568627451, b: 0.4392156862745098}, + 'lavender': {r: 0.9019607843137255, g: 0.9019607843137255, b: 0.9803921568627451}, + 'navy': {r: 0, g: 0, b: 0.5019607843137255}, + 'darkblue': {r: 0, g: 0, b: 0.5450980392156862}, + 'mediumblue': {r: 0, g: 0, b: 0.803921568627451}, + 'blue': {r: 0, g: 0, b: 1}, + 'ghostwhite': {r: 0.9725490196078431, g: 0.9725490196078431, b: 1}, + 'darkslateblue': {r: 0.2823529411764706, g: 0.23921568627450981, b: 0.5450980392156862}, + 'slateblue': {r: 0.41568627450980394, g: 0.35294117647058826, b: 0.803921568627451}, + 'mediumslateblue': {r: 0.4823529411764706, g: 0.40784313725490196, b: 0.9333333333333333}, + 'mediumpurple': {r: 0.5764705882352941, g: 0.4392156862745098, b: 0.8588235294117647}, + 'blueviolet': {r: 0.5411764705882353, g: 0.16862745098039217, b: 0.8862745098039215}, + 'indigo': {r: 0.29411764705882354, g: 0, b: 0.5098039215686274}, + 'darkorchid': {r: 0.6, g: 0.19607843137254902, b: 0.8}, + 'darkviolet': {r: 0.5803921568627451, g: 0, b: 0.8274509803921568}, + 'mediumorchid': {r: 0.7294117647058823, g: 0.3333333333333333, b: 0.8274509803921568}, + 'thistle': {r: 0.8470588235294118, g: 0.7490196078431373, b: 0.8470588235294118}, + 'plum': {r: 0.8666666666666667, g: 0.6274509803921569, b: 0.8666666666666667}, + 'violet': {r: 0.9333333333333333, g: 0.5098039215686274, b: 0.9333333333333333}, + 'purple': {r: 0.5019607843137255, g: 0, b: 0.5019607843137255}, + 'darkmagenta': {r: 0.5450980392156862, g: 0, b: 0.5450980392156862}, + 'magenta': {r: 1, g: 0, b: 1}, + 'fuchsia': {r: 1, g: 0, b: 1}, + 'orchid': {r: 0.8549019607843137, g: 0.4392156862745098, b: 0.8392156862745098}, + 'mediumvioletred': {r: 0.7803921568627451, g: 0.08235294117647059, b: 0.5215686274509804}, + 'deeppink': {r: 1, g: 0.0784313725490196, b: 0.5764705882352941}, + 'hotpink': {r: 1, g: 0.4117647058823529, b: 0.7058823529411765}, + 'palevioletred': {r: 0.8588235294117647, g: 0.4392156862745098, b: 0.5764705882352941}, + 'lavenderblush': {r: 1, g: 0.9411764705882353, b: 0.9607843137254902}, + 'crimson': {r: 0.8627450980392157, g: 0.0784313725490196, b: 0.23529411764705882}, + 'pink': {r: 1, g: 0.7529411764705882, b: 0.796078431372549}, + 'lightpink': {r: 1, g: 0.7137254901960784, b: 0.7568627450980392} + }, + + _exactName = function(color) { + var name = false; + + $.each(_colors, function(n, color_b) { + if (color.equals(new Color(color_b.r, color_b.g, color_b.b))) { + name = n; + return false; + } + }); + + return name; + }, + + _closestName = function(color) { + var rgb = color.getRGB(), + distance = null, + name = false, + d; + + $.each(_colors, function(n, color_b) { + d = color.distance(new Color(color_b.r, color_b.g, color_b.b)); + if (d < distance || distance === null) { + name = n; + if (d == 0) { + return false; // can't get much closer than 0 + } + distance = d; + } + }); + + return name; + }, + + _parseHex = function(color) { + var c, + m; + + // {#}rrggbb + m = /^#?([a-fA-F0-9]{1,6})$/.exec(color); + if (m) { + c = parseInt(m[1], 16); + return new Color( + ((c >> 16) & 0xFF) / 255, + ((c >> 8) & 0xFF) / 255, + (c & 0xFF) / 255 + ); + } + + return false; + }, + + _parseColor = function(color) { + var name = $.trim(color).toLowerCase(), + m; + + if (color == '') { + return new Color(); + } + + if (_colors[name]) { + return new Color(_colors[name].r, _colors[name].g, _colors[name].b); + } + + // rgba(r,g,b,a) + m = /^rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return new Color( + m[1] / 255, + m[2] / 255, + m[3] / 255, + parseFloat(m[4]) + ); + } + + // hsla(r,g,b,a) + m = /^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return (new Color()).setHSL( + m[1] / 255, + m[2] / 255, + m[3] / 255).setAlpha(parseFloat(m[4])); + } + + // rgba(r%,g%,b%,a%) + m = /^rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return new Color( + m[1] / 100, + m[2] / 100, + m[3] / 100, + m[4] / 100 + ); + } + + // hsla(r%,g%,b%,a%) + m = /^hsla?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return (new Color()).setHSL( + m[1] / 100, + m[2] / 100, + m[3] / 100).setAlpha(m[4] / 100); + } + + // #rrggbb + m = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color); + if (m) { + return new Color( + parseInt(m[1], 16) / 255, + parseInt(m[2], 16) / 255, + parseInt(m[3], 16) / 255 + ); + } + + // #rgb + m = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color); + if (m) { + return new Color( + parseInt(m[1] + m[1], 16) / 255, + parseInt(m[2] + m[2], 16) / 255, + parseInt(m[3] + m[3], 16) / 255 + ); + } + + return _parseHex(color); + }, + + _layoutTable = function(layout, callback) { + var bitmap, + x, + y, + width, height, + columns, rows, + index, + cell, + html, + w, + h, + colspan, + walked; + + layout.sort(function(a, b) { + if (a.pos[1] == b.pos[1]) { + return a.pos[0] - b.pos[0]; + } + return a.pos[1] - b.pos[1]; + }); + + // Determine dimensions of the table + width = 0; + height = 0; + $.each (layout, function(index, part) { + width = Math.max(width, part.pos[0] + part.pos[2]); + height = Math.max(height, part.pos[1] + part.pos[3]); + }); + + // Initialize bitmap + bitmap = []; + for (x = 0; x < width; ++x) { + bitmap.push([]); + } + + // Mark rows and columns which have layout assigned + rows = []; + columns = []; + $.each(layout, function(index, part) { + // mark columns + for (x = 0; x < part.pos[2]; x += 1) { + columns[part.pos[0] + x] = true; + } + for (y = 0; y < part.pos[3]; y += 1) { + rows[part.pos[1] + y] = true; + } + }); + + // Generate the table + html = ''; + cell = layout[index = 0]; + for (y = 0; y < height; ++y) { + html += ''; + for (x = 0; x < width; x) { + if (typeof cell !== 'undefined' && x == cell.pos[0] && y == cell.pos[1]) { + // Create a "real" cell + html += callback(cell, x, y); + + for (h = 0; h < cell.pos[3]; h +=1) { + for (w = 0; w < cell.pos[2]; w +=1) { + bitmap[x + w][y + h] = true; + } + } + + x += cell.pos[2]; + cell = layout[++index]; + } else { + // Fill in the gaps + colspan = 0; + walked = false; + + while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) { + if (columns[x] === true) { + colspan += 1; + } + walked = true; + x += 1; + } + + if (colspan > 0) { + html += ''; + } else if (!walked) { + x += 1; + } + } + } + html += ''; + } + + return '' + html + '
'; + }, + + _parts = { + header: function (inst) { + var that = this, + e = null, + _html =function() { + var title = inst.options.title || inst._getRegional('title'), + html = '' + title + ''; + + if (!inst.inline && inst.options.showCloseButton) { + html += '
' + + 'close'; + } + + return '
' + html + '
'; + }; + + this.init = function() { + e = $(_html()).prependTo(inst.dialog); + + var close = $('.ui-dialog-titlebar-close', e); + inst._hoverable(close); + inst._focusable(close); + close.click(function(event) { + event.preventDefault(); + inst.close(); + }); + + if (!inst.inline && inst.options.draggable) { + inst.dialog.draggable({ + handle: e + }); + } + }; + }, + + map: function (inst) { + var that = this, + e = null, + mousemove_timeout = null, + _mousedown, _mouseup, _mousemove, _html; + + _mousedown = function (event) { + if (!inst.opened) { + return; + } + + var div = $('.ui-colorpicker-map-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + if (x >= 0 && x < width && y >= 0 && y < height) { + event.stopImmediatePropagation(); + event.preventDefault(); + e.unbind('mousedown', _mousedown); + $(document).bind('mouseup', _mouseup); + $(document).bind('mousemove', _mousemove); + _mousemove(event); + } + }; + + _mouseup = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + $(document).unbind('mouseup', _mouseup); + $(document).unbind('mousemove', _mousemove); + e.bind('mousedown', _mousedown); + }; + + _mousemove = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + + if (event.pageX === that.x && event.pageY === that.y) { + return; + } + that.x = event.pageX; + that.y = event.pageY; + + var div = $('.ui-colorpicker-map-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + x = Math.max(0, Math.min(x / width, 1)); + y = Math.max(0, Math.min(y / height, 1)); + + // interpret values + switch (inst.mode) { + case 'h': + inst.color.setHSV(null, x, 1 - y); + break; + + case 's': + case 'a': + inst.color.setHSV(x, null, 1 - y); + break; + + case 'v': + inst.color.setHSV(x, 1 - y, null); + break; + + case 'r': + inst.color.setRGB(null, 1 - y, x); + break; + + case 'g': + inst.color.setRGB(1 - y, null, x); + break; + + case 'b': + inst.color.setRGB(x, 1 - y, null); + break; + } + + inst._change(); + }; + + _html = function () { + var html = '
' + + ' ' + + ' ' + + (inst.options.alpha ? ' ' : '') + + '
'; + return html; + }; + + this.update = function () { + switch (inst.mode) { + case 'h': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).hide(); + break; + + case 's': + case 'a': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + break; + + case 'v': + $(e).css('background-color', 'black'); + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).hide(); + break; + + case 'r': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); + break; + + case 'g': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); + break; + + case 'b': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); + break; + } + that.repaint(); + }; + + this.repaint = function () { + var div = $('.ui-colorpicker-map-layer-pointer', e), + x = 0, + y = 0; + + switch (inst.mode) { + case 'h': + x = inst.color.getHSV().s * div.width(); + y = (1 - inst.color.getHSV().v) * div.width(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 's': + case 'a': + x = inst.color.getHSV().h * div.width(); + y = (1 - inst.color.getHSV().v) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.getHSV().s); + break; + + case 'v': + x = inst.color.getHSV().h * div.width(); + y = (1 - inst.color.getHSV().s) * div.width(); + $('.ui-colorpicker-map-layer-1', e).css('opacity', inst.color.getHSV().v); + break; + + case 'r': + x = inst.color.getRGB().b * div.width(); + y = (1 - inst.color.getRGB().g) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().r); + break; + + case 'g': + x = inst.color.getRGB().b * div.width(); + y = (1 - inst.color.getRGB().r) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().g); + break; + + case 'b': + x = inst.color.getRGB().r * div.width(); + y = (1 - inst.color.getRGB().g) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().b); + break; + } + + if (inst.options.alpha) { + $('.ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + } + + $('.ui-colorpicker-map-pointer', e).css({ + 'left': x - 7, + 'top': y - 7 + }); + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-map-container', inst.dialog)); + + e.bind('mousedown', _mousedown); + }; + }, + + bar: function (inst) { + var that = this, + e = null, + _mousedown, _mouseup, _mousemove, _html; + + _mousedown = function (event) { + if (!inst.opened) { + return; + } + + var div = $('.ui-colorpicker-bar-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + if (x >= 0 && x < width && y >= 0 && y < height) { + event.stopImmediatePropagation(); + event.preventDefault(); + e.unbind('mousedown', _mousedown); + $(document).bind('mouseup', _mouseup); + $(document).bind('mousemove', _mousemove); + _mousemove(event); + } + }; + + _mouseup = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + $(document).unbind('mouseup', _mouseup); + $(document).unbind('mousemove', _mousemove); + e.bind('mousedown', _mousedown); + }; + + _mousemove = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + + if (event.pageY === that.y) { + return; + } + that.y = event.pageY; + + var div = $('.ui-colorpicker-bar-layer-pointer', e), + offset = div.offset(), + height = div.height(), + y = event.pageY - offset.top; + + y = Math.max(0, Math.min(y / height, 1)); + + // interpret values + switch (inst.mode) { + case 'h': + inst.color.setHSV(1 - y, null, null); + break; + + case 's': + inst.color.setHSV(null, 1 - y, null); + break; + + case 'v': + inst.color.setHSV(null, null, 1 - y); + break; + + case 'r': + inst.color.setRGB(1 - y, null, null); + break; + + case 'g': + inst.color.setRGB(null, 1 - y, null); + break; + + case 'b': + inst.color.setRGB(null, null, 1 - y); + break; + + case 'a': + inst.color.setAlpha(1 - y); + break; + } + + inst._change(); + }; + + _html = function () { + var html = '
' + + ' ' + + ' ' + + ' ' + + ' '; + + if (inst.options.alpha) { + html += ' ' + + ' '; + } + + html += '
'; + + return html; + }; + + this.update = function () { + switch (inst.mode) { + case 'h': + case 's': + case 'v': + case 'r': + case 'g': + case 'b': + $('.ui-colorpicker-bar-layer-alpha', e).show(); + $('.ui-colorpicker-bar-layer-alphabar', e).hide(); + break; + + case 'a': + $('.ui-colorpicker-bar-layer-alpha', e).hide(); + $('.ui-colorpicker-bar-layer-alphabar', e).show(); + break; + } + + switch (inst.mode) { + case 'h': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 's': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 'v': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 'r': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); + break; + + case 'g': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); + break; + + case 'b': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show(); + break; + + case 'a': + $('.ui-colorpicker-bar-layer-1', e).hide(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + } + that.repaint(); + }; + + this.repaint = function () { + var div = $('.ui-colorpicker-bar-layer-pointer', e), + y = 0; + + switch (inst.mode) { + case 'h': + y = (1 - inst.color.getHSV().h) * div.height(); + break; + + case 's': + y = (1 - inst.color.getHSV().s) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.getHSV().v); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 'v': + y = (1 - inst.color.getHSV().v) * div.height(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 'r': + y = (1 - inst.color.getRGB().r) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().b - inst.color.getRGB().g))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().g - inst.color.getRGB().b))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().b, inst.color.getRGB().g)); + break; + + case 'g': + y = (1 - inst.color.getRGB().g) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().b - inst.color.getRGB().r))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().r - inst.color.getRGB().b))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().r, inst.color.getRGB().b)); + break; + + case 'b': + y = (1 - inst.color.getRGB().b) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().r - inst.color.getRGB().g))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().g - inst.color.getRGB().r))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().r, inst.color.getRGB().g)); + break; + + case 'a': + y = (1 - inst.color.getAlpha()) * div.height(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + } + + if (inst.mode !== 'a') { + $('.ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + } + + $('.ui-colorpicker-bar-pointer', e).css('top', y - 3); + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-bar-container', inst.dialog)); + + e.bind('mousedown', _mousedown); + }; + }, + + preview: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + return '
' + + '
' + + '
' + + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-preview-container', inst.dialog)); + + $('.ui-colorpicker-preview-initial', e).click(function () { + inst.color = inst.currentColor.copy(); + inst._change(); + }); + + }; + + this.update = function () { + if (inst.options.alpha) { + $('.ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha', e).show(); + } else { + $('.ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha', e).hide(); + } + + this.repaint(); + }; + + this.repaint = function () { + $('.ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex()); + $('.ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.getAlpha()); + $('.ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex()); + $('.ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + }; + }, + + hsv: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
°
' + + '
%
' + + '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-hsv-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setHSV( + $('.ui-colorpicker-hsv-h .ui-colorpicker-number', e).val() / 360, + $('.ui-colorpicker-hsv-s .ui-colorpicker-number', e).val() / 100, + $('.ui-colorpicker-hsv-v .ui-colorpicker-number', e).val() / 100 + ); + inst._change(); + }); + }; + + this.repaint = function () { + var hsv = inst.color.getHSV(); + hsv.h *= 360; + hsv.s *= 100; + hsv.v *= 100; + + $.each(hsv, function (index, value) { + var input = $('.ui-colorpicker-hsv-' + index + ' .ui-colorpicker-number', e); + value = Math.round(value); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + }, + + rgb: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.rgb) { + html += '
' + + '
' + + '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-rgb-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setRGB( + $('.ui-colorpicker-rgb-r .ui-colorpicker-number', e).val() / 255, + $('.ui-colorpicker-rgb-g .ui-colorpicker-number', e).val() / 255, + $('.ui-colorpicker-rgb-b .ui-colorpicker-number', e).val() / 255 + ); + + inst._change(); + }); + }; + + this.repaint = function () { + $.each(inst.color.getRGB(), function (index, value) { + var input = $('.ui-colorpicker-rgb-' + index + ' .ui-colorpicker-number', e); + value = Math.round(value * 255); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + }, + + lab: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
' + + '
' + + '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + var data = 0; + + part = $(html()).appendTo($('.ui-colorpicker-lab-container', inst.dialog)); + + $('.ui-colorpicker-number', part).on('change keyup', function (event) { + inst.color.setLAB( + parseInt($('.ui-colorpicker-lab-l .ui-colorpicker-number', part).val(), 10) / 100, + (parseInt($('.ui-colorpicker-lab-a .ui-colorpicker-number', part).val(), 10) + 128) / 255, + (parseInt($('.ui-colorpicker-lab-b .ui-colorpicker-number', part).val(), 10) + 128) / 255 + ); + inst._change(); + }); + }; + + this.repaint = function () { + var lab = inst.color.getLAB(); + lab.l *= 100; + lab.a = (lab.a * 255) - 128; + lab.b = (lab.b * 255) - 128; + + $.each(lab, function (index, value) { + var input = $('.ui-colorpicker-lab-' + index + ' .ui-colorpicker-number', part); + value = Math.round(value); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + this.repaint(); + }; + + }, + + cmyk: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
%
' + + '
%
' + + '
%
' + + '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo($('.ui-colorpicker-cmyk-container', inst.dialog)); + + $('.ui-colorpicker-number', part).on('change keyup', function (event) { + inst.color.setCMYK( + parseInt($('.ui-colorpicker-cmyk-c .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-m .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-y .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-k .ui-colorpicker-number', part).val(), 10) / 100 + ); + inst._change(); + }); + }; + + this.repaint = function () { + $.each(inst.color.getCMYK(), function (index, value) { + var input = $('.ui-colorpicker-cmyk-' + index + ' .ui-colorpicker-number', part); + value = Math.round(value * 100); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + this.repaint(); + }; + + }, + + alpha: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.alpha) { + html += '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-alpha-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setAlpha($('.ui-colorpicker-a .ui-colorpicker-number', e).val() / 100); + inst._change(); + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + + this.repaint = function () { + var input = $('.ui-colorpicker-a .ui-colorpicker-number', e), + value = Math.round(inst.color.getAlpha() * 100); + if (!input.is(':focus') && input.val() !== value) { + input.val(value); + } + }; + }, + + hex: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.alpha) { + html += ''; + } + + html += ''; + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-hex-container', inst.dialog)); + + // repeat here makes the invalid input disappear faster + $('.ui-colorpicker-hex-input', e).bind('change keydown keyup', function (a, b, c) { + if (/[^a-fA-F0-9]/.test($(this).val())) { + $(this).val($(this).val().replace(/[^a-fA-F0-9]/, '')); + } + }); + + $('.ui-colorpicker-hex-input', e).bind('change keyup', function () { + // repeat here makes sure that the invalid input doesn't get parsed + inst.color = _parseHex($(this).val()).setAlpha(inst.color.getAlpha()); + inst._change(); + }); + + $('.ui-colorpicker-hex-alpha', e).bind('change keydown keyup', function () { + if (/[^a-fA-F0-9]/.test($(this).val())) { + $(this).val($(this).val().replace(/[^a-fA-F0-9]/, '')); + } + }); + + $('.ui-colorpicker-hex-alpha', e).bind('change keyup', function () { + inst.color.setAlpha(parseInt($('.ui-colorpicker-hex-alpha', e).val(), 16) / 255); + inst._change(); + }); + }; + + this.update = function () { + this.repaint(); + }; + + this.repaint = function () { + if (!$('.ui-colorpicker-hex-input', e).is(':focus')) { + $('.ui-colorpicker-hex-input', e).val(inst.color.toHex(true)); + } + + if (!$('.ui-colorpicker-hex-alpha', e).is(':focus')) { + $('.ui-colorpicker-hex-alpha', e).val(_intToHex(inst.color.getAlpha() * 255)); + } + }; + }, + + swatches: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + $.each(inst.options.swatches, function (name, color) { + var c = new Color(color.r, color.g, color.b), + css = c.toCSS(); + html += '
'; + }); + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo($('.ui-colorpicker-swatches-container', inst.dialog)); + + $('.ui-colorpicker-swatch', part).click(function () { + inst.color = _parseColor($(this).css('background-color')); + inst._change(); + }); + }; + }, + + footer: function (inst) { + var that = this, + part = null, + id_transparent = 'ui-colorpicker-special-transparent-'+_colorpicker_index, + id_none = 'ui-colorpicker-special-none-'+_colorpicker_index, + html = function () { + var html = ''; + + if (inst.options.alpha || (!inst.inline && inst.options.showNoneButton)) { + html += '
'; + + if (inst.options.alpha) { + html += ''; + } + if (!inst.inline && inst.options.showNoneButton) { + html += ''; + } + html += '
'; + } + + if (!inst.inline) { + html += '
'; + if (inst.options.showCancelButton) { + html += ''; + } + html += ''; + html += '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo(inst.dialog); + + $('.ui-colorpicker-ok', part).button().click(function () { + inst.close(); + }); + + $('.ui-colorpicker-cancel', part).button().click(function () { + inst.color = inst.currentColor.copy(); + inst._change(inst.color.set); + inst.close(); + }); + + //inst._getRegional('transparent') + $('.ui-colorpicker-buttonset', part).buttonset(); + + $('.ui-colorpicker-special-color', part).click(function () { + inst._change(); + }); + + $('#'+id_none, part).click(function () { + inst._change(false); + }); + + $('#'+id_transparent, part).click(function () { + inst.color.setAlpha(0); + inst._change(); + }); + }; + + this.repaint = function () { + if (!inst.color.set) { + $('.ui-colorpicker-special-none', part).attr('checked', true).button( "refresh" ); + } else if (inst.color.getAlpha() == 0) { + $('.ui-colorpicker-special-transparent', part).attr('checked', true).button( "refresh" ); + } else { + $('input', part).attr('checked', false).button( "refresh" ); + } + + $('.ui-colorpicker-cancel', part).button(inst.changed ? 'enable' : 'disable'); + }; + + this.update = function () {}; + } + }, + + Color = function () { + var spaces = { rgb: {r: 0, g: 0, b: 0}, + hsv: {h: 0, s: 0, v: 0}, + hsl: {h: 0, s: 0, l: 0}, + lab: {l: 0, a: 0, b: 0}, + cmyk: {c: 0, m: 0, y: 0, k: 1} + }, + a = 1, + arg, + args = arguments, + _clip = function(v) { + if (isNaN(v) || v === null) { + return 0; + } + if (typeof v == 'string') { + v = parseInt(v, 10); + } + return Math.max(0, Math.min(v, 1)); + }, + _hexify = function (number) { + var digits = '0123456789abcdef', + lsd = number % 16, + msd = (number - lsd) / 16, + hexified = digits.charAt(msd) + digits.charAt(lsd); + return hexified; + }, + _rgb_to_xyz = function(rgb) { + var r = (rgb.r > 0.04045) ? Math.pow((rgb.r + 0.055) / 1.055, 2.4) : rgb.r / 12.92, + g = (rgb.g > 0.04045) ? Math.pow((rgb.g + 0.055) / 1.055, 2.4) : rgb.g / 12.92, + b = (rgb.b > 0.04045) ? Math.pow((rgb.b + 0.055) / 1.055, 2.4) : rgb.b / 12.92; + + return { + x: r * 0.4124 + g * 0.3576 + b * 0.1805, + y: r * 0.2126 + g * 0.7152 + b * 0.0722, + z: r * 0.0193 + g * 0.1192 + b * 0.9505 + }; + }, + _xyz_to_rgb = function(xyz) { + var rgb = { + r: xyz.x * 3.2406 + xyz.y * -1.5372 + xyz.z * -0.4986, + g: xyz.x * -0.9689 + xyz.y * 1.8758 + xyz.z * 0.0415, + b: xyz.x * 0.0557 + xyz.y * -0.2040 + xyz.z * 1.0570 + }; + + rgb.r = (rgb.r > 0.0031308) ? 1.055 * Math.pow(rgb.r, (1 / 2.4)) - 0.055 : 12.92 * rgb.r; + rgb.g = (rgb.g > 0.0031308) ? 1.055 * Math.pow(rgb.g, (1 / 2.4)) - 0.055 : 12.92 * rgb.g; + rgb.b = (rgb.b > 0.0031308) ? 1.055 * Math.pow(rgb.b, (1 / 2.4)) - 0.055 : 12.92 * rgb.b; + + return rgb; + }, + _rgb_to_hsv = function(rgb) { + var minVal = Math.min(rgb.r, rgb.g, rgb.b), + maxVal = Math.max(rgb.r, rgb.g, rgb.b), + delta = maxVal - minVal, + del_R, del_G, del_B, + hsv = { + h: 0, + s: 0, + v: maxVal + }; + + if (delta === 0) { + hsv.h = 0; + hsv.s = 0; + } else { + hsv.s = delta / maxVal; + + del_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta; + del_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta; + del_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta; + + if (rgb.r === maxVal) { + hsv.h = del_B - del_G; + } else if (rgb.g === maxVal) { + hsv.h = (1 / 3) + del_R - del_B; + } else if (rgb.b === maxVal) { + hsv.h = (2 / 3) + del_G - del_R; + } + + if (hsv.h < 0) { + hsv.h += 1; + } else if (hsv.h > 1) { + hsv.h -= 1; + } + } + + return hsv; + }, + _hsv_to_rgb = function(hsv) { + var rgb = { + r: 0, + g: 0, + b: 0 + }, + var_h, + var_i, + var_1, + var_2, + var_3; + + if (hsv.s === 0) { + rgb.r = rgb.g = rgb.b = hsv.v; + } else { + var_h = hsv.h === 1 ? 0 : hsv.h * 6; + var_i = Math.floor(var_h); + var_1 = hsv.v * (1 - hsv.s); + var_2 = hsv.v * (1 - hsv.s * (var_h - var_i)); + var_3 = hsv.v * (1 - hsv.s * (1 - (var_h - var_i))); + + if (var_i === 0) { + rgb.r = hsv.v; + rgb.g = var_3; + rgb.b = var_1; + } else if (var_i === 1) { + rgb.r = var_2; + rgb.g = hsv.v; + rgb.b = var_1; + } else if (var_i === 2) { + rgb.r = var_1; + rgb.g = hsv.v; + rgb.b = var_3; + } else if (var_i === 3) { + rgb.r = var_1; + rgb.g = var_2; + rgb.b = hsv.v; + } else if (var_i === 4) { + rgb.r = var_3; + rgb.g = var_1; + rgb.b = hsv.v; + } else { + rgb.r = hsv.v; + rgb.g = var_1; + rgb.b = var_2; + } + } + + return rgb; + }, + _rgb_to_hsl = function(rgb) { + var minVal = Math.min(rgb.r, rgb.g, rgb.b), + maxVal = Math.max(rgb.r, rgb.g, rgb.b), + delta = maxVal - minVal, + del_R, del_G, del_B, + hsl = { + h: 0, + s: 0, + l: (maxVal + minVal) / 2 + }; + + if (delta === 0) { + hsl.h = 0; + hsl.s = 0; + } else { + hsl.s = hsl.l < 0.5 ? delta / (maxVal + minVal) : delta / (2 - maxVal - minVal); + + del_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta; + del_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta; + del_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta; + + if (rgb.r === maxVal) { + hsl.h = del_B - del_G; + } else if (rgb.g === maxVal) { + hsl.h = (1 / 3) + del_R - del_B; + } else if (rgb.b === maxVal) { + hsl.h = (2 / 3) + del_G - del_R; + } + + if (hsl.h < 0) { + hsl.h += 1; + } else if (hsl.h > 1) { + hsl.h -= 1; + } + } + + return hsl; + }, + _hsl_to_rgb = function(hsl) { + var var_1, + var_2, + hue_to_rgb = function(v1, v2, vH) { + if (vH < 0) { + vH += 1; + } + if (vH > 1) { + vH -= 1; + } + if ((6 * vH) < 1) { + return v1 + (v2 - v1) * 6 * vH; + } + if ((2 * vH) < 1) { + return v2; + } + if ((3 * vH) < 2) { + return v1 + (v2 - v1) * ((2 / 3) - vH) * 6; + } + return v1; + }; + + if (hsl.s === 0) { + return { + r: hsl.l, + g: hsl.l, + b: hsl.l + }; + } + + var_2 = (hsl.l < 0.5) ? hsl.l * (1 + hsl.s) : (hsl.l + hsl.s) - (hsl.s * hsl.l); + var_1 = 2 * hsl.l - var_2; + + return { + r: hue_to_rgb(var_1, var_2, hsl.h + (1 / 3)), + g: hue_to_rgb(var_1, var_2, hsl.h), + b: hue_to_rgb(var_1, var_2, hsl.h - (1 / 3)) + }; + }, + _xyz_to_lab = function(xyz) { + // CIE-L*ab D65 1931 + var x = xyz.x / 0.95047, + y = xyz.y, + z = xyz.z / 1.08883; + + x = (x > 0.008856) ? Math.pow(x, (1/3)) : (7.787 * x) + (16/116); + y = (y > 0.008856) ? Math.pow(y, (1/3)) : (7.787 * y) + (16/116); + z = (z > 0.008856) ? Math.pow(z, (1/3)) : (7.787 * z) + (16/116); + + return { + l: ((116 * y) - 16) / 100, // [0,100] + a: ((500 * (x - y)) + 128) / 255, // [-128,127] + b: ((200 * (y - z)) + 128) / 255 // [-128,127] + }; + }, + _lab_to_xyz = function(lab) { + var lab2 = { + l: lab.l * 100, + a: (lab.a * 255) - 128, + b: (lab.b * 255) - 128 + }, + xyz = { + x: 0, + y: (lab2.l + 16) / 116, + z: 0 + }; + + xyz.x = lab2.a / 500 + xyz.y; + xyz.z = xyz.y - lab2.b / 200; + + xyz.x = (Math.pow(xyz.x, 3) > 0.008856) ? Math.pow(xyz.x, 3) : (xyz.x - 16 / 116) / 7.787; + xyz.y = (Math.pow(xyz.y, 3) > 0.008856) ? Math.pow(xyz.y, 3) : (xyz.y - 16 / 116) / 7.787; + xyz.z = (Math.pow(xyz.z, 3) > 0.008856) ? Math.pow(xyz.z, 3) : (xyz.z - 16 / 116) / 7.787; + + xyz.x *= 0.95047; + xyz.y *= 1; + xyz.z *= 1.08883; + + return xyz; + }, + _rgb_to_cmy = function(rgb) { + return { + c: 1 - (rgb.r), + m: 1 - (rgb.g), + y: 1 - (rgb.b) + }; + }, + _cmy_to_rgb = function(cmy) { + return { + r: 1 - (cmy.c), + g: 1 - (cmy.m), + b: 1 - (cmy.y) + }; + }, + _cmy_to_cmyk = function(cmy) { + var K = 1; + + if (cmy.c < K) { + K = cmy.c; + } + if (cmy.m < K) { + K = cmy.m; + } + if (cmy.y < K) { + K = cmy.y; + } + + if (K == 1) { + return { + c: 0, + m: 0, + y: 0, + k: 1 + }; + } + + return { + c: (cmy.c - K) / (1 - K), + m: (cmy.m - K) / (1 - K), + y: (cmy.y - K) / (1 - K), + k: K + }; + }, + _cmyk_to_cmy = function(cmyk) { + return { + c: cmyk.c * (1 - cmyk.k) + cmyk.k, + m: cmyk.m * (1 - cmyk.k) + cmyk.k, + y: cmyk.y * (1 - cmyk.k) + cmyk.k + }; + }; + + this.set = true; + + this.setAlpha = function(_a) { + if (_a !== null) { + a = _clip(_a); + } + + return this; + }; + + this.getAlpha = function() { + return a; + }; + + this.setRGB = function(r, g, b) { + spaces = {rgb: this.getRGB()}; + if (r !== null) { + spaces.rgb.r = _clip(r); + } + if (g !== null) { + spaces.rgb.g = _clip(g); + } + if (b !== null) { + spaces.rgb.b = _clip(b); + } + + return this; + }; + + this.setHSV = function(h, s, v) { + spaces = {hsv: this.getHSV()}; + if (h !== null) { + spaces.hsv.h = _clip(h); + } + if (s !== null) { + spaces.hsv.s = _clip(s); + } + if (v !== null) { + spaces.hsv.v = _clip(v); + } + + return this; + }; + + this.setHSL = function(h, s, l) { + spaces = {hsl: this.getHSL()}; + if (h !== null) { + spaces.hsl.h = _clip(h); + } + if (s !== null) { + spaces.hsl.s = _clip(s); + } + if (l !== null) { + spaces.hsl.l = _clip(l); + } + + return this; + }; + + this.setLAB = function(l, a, b) { + spaces = {lab: this.getLAB()}; + if (l !== null) { + spaces.lab.l = _clip(l); + } + if (a !== null) { + spaces.lab.a = _clip(a); + } + if (b !== null) { + spaces.lab.b = _clip(b); + } + + return this; + }; + + this.setCMYK = function(c, m, y, k) { + spaces = {cmyk: this.getCMYK()}; + if (c !== null) { + spaces.cmyk.c = _clip(c); + } + if (m !== null) { + spaces.cmyk.m = _clip(m); + } + if (y !== null) { + spaces.cmyk.y = _clip(y); + } + if (k !== null) { + spaces.cmyk.k = _clip(k); + } + + return this; + }; + + this.getRGB = function() { + if (!spaces.rgb) { + spaces.rgb = spaces.lab ? _xyz_to_rgb(_lab_to_xyz(spaces.lab)) + : spaces.hsv ? _hsv_to_rgb(spaces.hsv) + : spaces.hsl ? _hsl_to_rgb(spaces.hsl) + : spaces.cmyk ? _cmy_to_rgb(_cmyk_to_cmy(spaces.cmyk)) + : {r: 0, g: 0, b: 0}; + spaces.rgb.r = _clip(spaces.rgb.r); + spaces.rgb.g = _clip(spaces.rgb.g); + spaces.rgb.b = _clip(spaces.rgb.b); + } + return $.extend({}, spaces.rgb); + }; + + this.getHSV = function() { + if (!spaces.hsv) { + spaces.hsv = spaces.lab ? _rgb_to_hsv(this.getRGB()) + : spaces.rgb ? _rgb_to_hsv(spaces.rgb) + : spaces.hsl ? _rgb_to_hsv(this.getRGB()) + : spaces.cmyk ? _rgb_to_hsv(this.getRGB()) + : {h: 0, s: 0, v: 0}; + spaces.hsv.h = _clip(spaces.hsv.h); + spaces.hsv.s = _clip(spaces.hsv.s); + spaces.hsv.v = _clip(spaces.hsv.v); + } + return $.extend({}, spaces.hsv); + }; + + this.getHSL = function() { + if (!spaces.hsl) { + spaces.hsl = spaces.rgb ? _rgb_to_hsl(spaces.rgb) + : spaces.hsv ? _rgb_to_hsl(this.getRGB()) + : spaces.cmyk ? _rgb_to_hsl(this.getRGB()) + : spaces.hsv ? _rgb_to_hsl(this.getRGB()) + : {h: 0, s: 0, l: 0}; + spaces.hsl.h = _clip(spaces.hsl.h); + spaces.hsl.s = _clip(spaces.hsl.s); + spaces.hsl.l = _clip(spaces.hsl.l); + } + return $.extend({}, spaces.hsl); + }; + + this.getCMYK = function() { + if (!spaces.cmyk) { + spaces.cmyk = spaces.rgb ? _cmy_to_cmyk(_rgb_to_cmy(spaces.rgb)) + : spaces.hsv ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : spaces.hsl ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : spaces.lab ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : {c: 0, m: 0, y: 0, k: 1}; + spaces.cmyk.c = _clip(spaces.cmyk.c); + spaces.cmyk.m = _clip(spaces.cmyk.m); + spaces.cmyk.y = _clip(spaces.cmyk.y); + spaces.cmyk.k = _clip(spaces.cmyk.k); + } + return $.extend({}, spaces.cmyk); + }; + + this.getLAB = function() { + if (!spaces.lab) { + spaces.lab = spaces.rgb ? _xyz_to_lab(_rgb_to_xyz(spaces.rgb)) + : spaces.hsv ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : spaces.hsl ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : spaces.cmyk ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : {l: 0, a: 0, b: 0}; + spaces.lab.l = _clip(spaces.lab.l); + spaces.lab.a = _clip(spaces.lab.a); + spaces.lab.b = _clip(spaces.lab.b); + } + return $.extend({}, spaces.lab); + }; + + this.getChannels = function() { + return { + r: this.getRGB().r, + g: this.getRGB().g, + b: this.getRGB().b, + a: this.getAlpha(), + h: this.getHSV().h, + s: this.getHSV().s, + v: this.getHSV().v, + c: this.getCMYK().c, + m: this.getCMYK().m, + y: this.getCMYK().y, + k: this.getCMYK().k, + L: this.getLAB().l, + A: this.getLAB().a, + B: this.getLAB().b + }; + }; + + this.distance = function(color) { + var space = 'lab', + getter = 'get'+space.toUpperCase(), + a = this[getter](), + b = color[getter](), + distance = 0, + channel; + + for (channel in a) { + distance += Math.pow(a[channel] - b[channel], 2); + } + + return distance; + }; + + this.equals = function(color) { + var a = this.getRGB(), + b = color.getRGB(); + + return this.getAlpha() == color.getAlpha() + && a.r == b.r + && a.g == b.g + && a.b == b.b; + }; + + this.limit = function(steps) { + steps -= 1; + var rgb = this.getRGB(); + this.setRGB( + Math.round(rgb.r * steps) / steps, + Math.round(rgb.g * steps) / steps, + Math.round(rgb.b * steps) / steps + ); + }; + + this.toHex = function() { + var rgb = this.getRGB(); + return _hexify(rgb.r * 255) + _hexify(rgb.g * 255) + _hexify(rgb.b * 255); + }; + + this.toCSS = function() { + return '#' + this.toHex(); + }; + + this.normalize = function() { + this.setHSV(null, 1, 1); + return this; + }; + + this.copy = function() { + var rgb = this.getRGB(), + a = this.getAlpha(); + return new Color(rgb.r, rgb.g, rgb.b, a); + }; + + // Construct + if (args.length > 0) { + this.setRGB(args[0], args[1], args[2]); + this.setAlpha(args[3] === 0 ? 0 : args[3] || 1); + } + }; + + $.widget("vanderlee.colorpicker", { + options: { + alpha: false, // Show alpha controls and mode + altAlpha: true, // change opacity of altField as well? + altField: '', // selector for DOM elements which change background color on change. + altOnChange: true, // true to update on each change, false to update only on close. + altProperties: 'background-color', // comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color' + autoOpen: false, // Open dialog automatically upon creation + buttonColorize: false, + buttonImage: 'images/ui-colorpicker.png', + buttonImageOnly: false, + buttonText: null, // Text on the button and/or title of button image. + closeOnEscape: true, // Close the dialog when the escape key is pressed. + closeOnOutside: true, // Close the dialog when clicking outside the dialog (not for inline) + color: '#00FF00', // Initial color (for inline only) + colorFormat: 'HEX', // Format string for output color format + draggable: true, // Make popup dialog draggable if header is visible. + duration: 'fast', + hsv: true, // Show HSV controls and modes + regional: '', + layout: { + map: [0, 0, 1, 5], // Left, Top, Width, Height (in table cells). + bar: [1, 0, 1, 5], + preview: [2, 0, 1, 1], + hsv: [2, 1, 1, 1], + rgb: [2, 2, 1, 1], + alpha: [2, 3, 1, 1], + hex: [2, 4, 1, 1], + lab: [3, 1, 1, 1], + cmyk: [3, 2, 1, 2], + swatches: [4, 0, 1, 5] + }, + limit: '', // Limit color "resolution": '', 'websafe', 'nibble', 'binary', 'name' + modal: false, // Modal dialog? + mode: 'h', // Initial editing mode, h, s, v, r, g, b or a + parts: '', // leave empty for automatic selection + rgb: true, // Show RGB controls and modes + showAnim: 'fadeIn', + showCancelButton: true, + showNoneButton: false, + showCloseButton: true, + showOn: 'focus', // 'focus', 'button', 'both' + showOptions: {}, + swatches: null, + title: null, + + close: null, + init: null, + select: null, + open: null + }, + + _create: function () { + var that = this, + text; + + ++_colorpicker_index; + + that.widgetEventPrefix = 'color'; + + that.opened = false; + that.generated = false; + that.inline = false; + that.changed = false; + + that.dialog = null; + that.button = null; + that.image = null; + that.overlay = null; + + that.mode = that.options.mode; + + if (that.options.swatches === null) { + that.options.swatches = _colors; + } + + if (this.element[0].nodeName.toLowerCase() === 'input' || !this.inline) { + that._setColor(that.element.val()); + + this._callback('init'); + + $('body').append(_container_popup); + that.dialog = $('.ui-colorpicker:last'); + + // Click outside/inside + $(document).mousedown(function (event) { + if (!that.opened || event.target === that.element[0] || that.overlay) { + return; + } + + // Check if clicked on any part of dialog + if (that.dialog.is(event.target) || that.dialog.has(event.target).length > 0) { + that.element.blur(); // inside window! + return; + } + + // Check if clicked on button + var p, + parents = $(event.target).parents(); + for (p = 0; p <= parents.length; ++p) { + if (that.button !== null && parents[p] === that.button[0]) { + return; + } + } + + // no closeOnOutside + if (!that.options.closeOnOutside) { + return; + } + + that.close(); + }); + + $(document).keydown(function (event) { + if (event.keyCode == 27 && that.opened && that.options.closeOnEscape) { + that.close(); + } + }); + + if (that.options.showOn === 'focus' || that.options.showOn === 'both') { + that.element.focus(function () { + that.open(); + }); + } + if (that.options.showOn === 'button' || that.options.showOn === 'both') { + if (that.options.buttonImage !== '') { + text = that.options.buttonText || that._getRegional('button'); + + that.image = $('').attr({ + 'src': that.options.buttonImage, + 'alt': text, + 'title': text + }); + + that._setImageBackground(); + } + + if (that.options.buttonImageOnly && that.image) { + that.button = that.image; + } else { + that.button = $('').html(that.image || that.options.buttonText).button(); + that.image = that.image ? $('img', that.button).first() : null; + } + that.button.insertAfter(that.element).click(function () { + that[that.opened ? 'close' : 'open'](); + }); + } + + if (that.options.autoOpen) { + that.open(); + } + + that.element.keydown(function (event) { + if (event.keyCode === 9) { + that.close(); + } + }).keyup(function (event) { + var color = _parseColor(that.element.val()); + if (!that.color.equals(color)) { + that.color = color; + that._change(); + } + }); + } else { + that.inline = true; + + $(this.element).html(_container_inline); + that.dialog = $('.ui-colorpicker', this.element); + + that._generate(); + + that.opened = true; + } + + return this; + }, + + _setOption: function(key, value){ + var that = this; + + switch (key) { + case "disabled": + if (value) { + that.dialog.addClass('ui-colorpicker-disabled'); + } else { + that.dialog.removeClass('ui-colorpicker-disabled'); + } + break; + } + + $.Widget.prototype._setOption.apply(that, arguments); + }, + + /* setBackground */ + _setImageBackground: function() { + if (this.image && this.options.buttonColorize) { + this.image.css('background-color', this.color.set? _formatColor('RGBA', this.color) : ''); + } + }, + + /** + * If an alternate field is specified, set it according to the current color. + */ + _setAltField: function () { + if (this.options.altOnChange && this.options.altField && this.options.altProperties) { + var index, + property, + properties = this.options.altProperties.split(','); + + for (index = 0; index <= properties.length; ++index) { + property = $.trim(properties[index]); + switch (property) { + case 'color': + case 'background-color': + case 'outline-color': + case 'border-color': + $(this.options.altField).css(property, this.color.set? this.color.toCSS() : ''); + break; + } + } + + if (this.options.altAlpha) { + $(this.options.altField).css('opacity', this.color.set? this.color.getAlpha() : ''); + } + } + }, + + _setColor: function(text) { + this.color = _parseColor(text); + this.currentColor = this.color.copy(); + + this._setImageBackground(); + this._setAltField(); + }, + + setColor: function(text) { + this._setColor(text); + this._change(this.color.set); + }, + + _generate: function () { + var that = this, + index, + part, + parts_list, + layout_parts; + + // Set color based on element? + that._setColor(that.inline? that.options.color : that.element.val()); + + // Determine the parts to include in this colorpicker + if (typeof that.options.parts === 'string') { + if (_parts_lists[that.options.parts]) { + parts_list = _parts_lists[that.options.parts]; + } else { + // automatic + parts_list = _parts_lists[that.inline ? 'inline' : 'popup']; + } + } else { + parts_list = that.options.parts; + } + + // Add any parts to the internal parts list + that.parts = {}; + $.each(parts_list, function(index, part) { + if (_parts[part]) { + that.parts[part] = new _parts[part](that); + } + }); + + if (!that.generated) { + layout_parts = []; + + $.each(that.options.layout, function(part, pos) { + if (that.parts[part]) { + layout_parts.push({ + 'part': part, + 'pos': pos + }); + } + }); + + $(_layoutTable(layout_parts, function(cell, x, y) { + var classes = ['ui-colorpicker-' + cell.part + '-container']; + + if (x > 0) { + classes.push('ui-colorpicker-padding-left'); + } + + if (y > 0) { + classes.push('ui-colorpicker-padding-top'); + } + + return ' 1 ? ' colspan="' + cell.pos[2] + '"' : '') + + (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '') + + ' valign="top">'; + })).appendTo(that.dialog).addClass('ui-dialog-content ui-widget-content'); + + that._initAllParts(); + that._updateAllParts(); + that.generated = true; + } + }, + + _effectGeneric: function (element, show, slide, fade, callback) { + var that = this; + + if ($.effects && $.effects[that.options.showAnim]) { + element[show](that.options.showAnim, that.options.showOptions, that.options.duration, callback); + } else { + element[(that.options.showAnim === 'slideDown' ? + slide + : (that.options.showAnim === 'fadeIn' ? + fade + : show))]((that.options.showAnim ? that.options.duration : null), callback); + if (!that.options.showAnim || !that.options.duration) { + callback(); + } + } + }, + + _effectShow: function(element, callback) { + this._effectGeneric(element, 'show', 'slideDown', 'fadeIn', callback); + }, + + _effectHide: function(element, callback) { + this._effectGeneric(element, 'hide', 'slideUp', 'fadeOut', callback); + }, + + open: function() { + var that = this, + offset, + bottom, + right, + height, + width, + x, + y, + zIndex; + + if (!that.opened) { + that._generate(); + + offset = that.element.offset(); + bottom = $(window).height() + $(window).scrollTop(); + right = $(window).width() + $(window).scrollLeft(); + height = that.dialog.outerHeight(); + width = that.dialog.outerWidth(); + x = offset.left; + y = offset.top + that.element.outerHeight(); + + if (x + width > right) { + x = Math.max(0, right - width); + } + + if (y + height > bottom) { + if (offset.top - height >= $(window).scrollTop()) { + y = offset.top - height; + } else { + y = Math.max(0, bottom - height); + } + } + + that.dialog.css({'left': x, 'top': y}); + + // Automatically find highest z-index. + zIndex = 0; + $(that.element[0]).parents().each(function() { + var z = $(this).css('z-index'); + if ((typeof(z) === 'number' || typeof(z) === 'string') && z !== '' && !isNaN(z)) { + zIndex = z; + return false; + } + }); + + //@todo zIndexOffset option, to raise above other elements? + that.dialog.css('z-index', zIndex += 2); + + that.overlay = that.options.modal ? new $.ui.dialog.overlay(that) : null; + + that._effectShow(this.dialog); + that.opened = true; + that._callback('open', true); + + // Without waiting for domready the width of the map is 0 and we + // wind up with the cursor stuck in the upper left corner + $(function() { + that._repaintAllParts(); + }); + } + }, + + close: function () { + var that = this; + + that.currentColor = that.color.copy(); + that.changed = false; + + // tear down the interface + that._effectHide(that.dialog, function () { + that.dialog.empty(); + that.generated = false; + + that.opened = false; + that._callback('close', true); + }); + + if (that.overlay) { + that.overlay.destroy(); + } + }, + + destroy: function() { + this.element.unbind(); + + if (this.image !== null) { + this.image.remove(); + } + + if (this.button !== null) { + this.button.remove(); + } + + if (this.dialog !== null) { + this.dialog.remove(); + } + + if (this.overlay) { + this.overlay.destroy(); + } + }, + + _callback: function (callback, spaces) { + var that = this, + data, + lab; + + if (that.color.set) { + data = { + formatted: _formatColor(that.options.colorFormat, that.color) + }; + + lab = that.color.getLAB(); + lab.a = (lab.a * 2) - 1; + lab.b = (lab.b * 2) - 1; + + if (spaces === true) { + data.a = that.color.getAlpha(); + data.rgb = that.color.getRGB(); + data.hsv = that.color.getHSV(); + data.cmyk = that.color.getCMYK(); + data.hsl = that.color.getHSL(); + data.lab = lab; + } + + return that._trigger(callback, null, data); + } else { + return that._trigger(callback, null, { + formatted: '' + }); + } + }, + + _initAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.init) { + part.init(); + } + }); + }, + + _updateAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.update) { + part.update(); + } + }); + }, + + _repaintAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.repaint) { + part.repaint(); + } + }); + }, + + _change: function (set /* = true */) { + this.color.set = (set !== false); + + this.changed = true; + + // Limit color palette + switch (this.options.limit) { + case 'websafe': + this.color.limit(6); + break; + + case 'nibble': + this.color.limit(16); + break; + + case 'binary': + this.color.limit(2); + break; + + case 'name': + var name = _closestName(this.color); + this.color.setRGB(_colors[name].r, _colors[name].g, _colors[name].b); + break; + } + + // update input element content + if (!this.inline) { + if (!this.color.set) { + this.element.val(''); + } else if (!this.color.equals(_parseColor(this.element.val()))) { + this.element.val(_formatColor(this.options.colorFormat, this.color)); + } + + this._setImageBackground(); + this._setAltField(); + } + + if (this.opened) { + this._repaintAllParts(); + } + + // callback + this._callback('select'); + }, + + // This will be deprecated by jQueryUI 1.9 widget + _hoverable: function (e) { + e.hover(function () { + e.addClass("ui-state-hover"); + }, function () { + e.removeClass("ui-state-hover"); + }); + }, + + // This will be deprecated by jQueryUI 1.9 widget + _focusable: function (e) { + e.focus(function () { + e.addClass("ui-state-focus"); + }).blur(function () { + e.removeClass("ui-state-focus"); + }); + }, + + _getRegional: function(name) { + return $.colorpicker.regional[this.options.regional][name] !== undefined ? + $.colorpicker.regional[this.options.regional][name] : $.colorpicker.regional[''][name]; + } + }); +}(jQuery)); \ No newline at end of file diff --git a/js/min/crayon.min.js b/js/min/crayon.min.js new file mode 100644 index 0000000..daa8117 --- /dev/null +++ b/js/min/crayon.min.js @@ -0,0 +1 @@ +var jQueryCrayon=jQuery;(function(a){CrayonUtil=new function(){var c=this;var b=null;c.init=function(){b=CrayonSyntaxSettings;c.initGET()};c.addPrefixToID=function(d){return d.replace(/^([#.])?(.*)$/,"$1"+b.prefix+"$2")};c.removePrefixFromID=function(e){var d=new RegExp("^[#.]?"+b.prefix,"i");return e.replace(d,"")};c.cssElem=function(d){return a(c.addPrefixToID(d))};c.setDefault=function(e,f){return(typeof e=="undefined")?f:e};c.setMax=function(e,d){return e<=d?e:d};c.setMin=function(d,e){return d>=e?d:e};c.setRange=function(e,f,d){return c.setMax(c.setMin(e,f),d)};c.getExt=function(e){if(e.indexOf(".")==-1){return undefined}var d=e.split(".");if(d.length){d=d[d.length-1]}else{d=""}return d};c.initGET=function(){window.currentURL=window.location.protocol+"//"+window.location.host+window.location.pathname;window.currentDir=window.currentURL.substring(0,window.currentURL.lastIndexOf("/"));function d(e){e=e.split("+").join(" ");var h={},g,f=/[?&]?([^=]+)=([^&]*)/g;while(g=f.exec(e)){h[decodeURIComponent(g[1])]=decodeURIComponent(g[2])}return h}window.GET=d(document.location.search)};c.getAJAX=function(d,e){d.version=b.version;a.get(b.ajaxurl,d,e)};c.postAJAX=function(d,e){d.version=b.version;a.post(b.ajaxurl,d,e)};c.reload=function(){var d="?";for(var e in window.GET){d+=e+"="+window.GET[e]+"&"}window.location=window.currentURL+d};c.escape=function(d){if(typeof encodeURIComponent=="function"){return encodeURIComponent(d)}else{if(typeof escape!="function"){return escape(d)}else{return d}}};c.log=function(d){if(typeof console!="undefined"&&b.debug){console.log(d)}};c.decode_html=function(d){return String(d).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")};c.encode_html=function(d){return String(d).replace(/&/g,"&").replace(//g,">")};c.getReadableColor=function(g,f){f=a.extend({amount:0.5,xMulti:1,yMulti:1.5,normalizeHue:[20,180],normalizeHueXMulti:1/2.5,normalizeHueYMulti:1},f);var d=tinycolor(g);var e=d.toHsv();var i={x:e.s,y:1-e.v};i.x*=f.xMulti;i.y*=f.yMulti;if(f.normalizeHue&&e.h>f.normalizeHue[0]&&e.h":">"};return this.replace(/[&<>]/g,function(c){return b[c]||c})};String.prototype.linkify=function(b){b=typeof b!="undefined"?b:"";return this.replace(/(http(s)?:\/\/(\S)+)/gmi,'$1')};String.prototype.toTitleCase=function(){var b=this.split(/\s+/);var c="";a.each(b,function(e,d){if(d!=""){c+=d.slice(0,1).toUpperCase()+d.slice(1,d.length);if(e!=b.length-1&&b[e+1]!=""){c+=" "}}});return c}})(jQueryCrayon);jqueryPopup=Object();jqueryPopup.defaultSettings={centerBrowser:0,centerScreen:0,height:500,left:0,location:0,menubar:0,resizable:0,scrollbars:0,status:0,width:500,windowName:null,windowURL:null,top:0,toolbar:0,data:null,event:"click"};(function(a){popupWindow=function(d,c,f,b){f=typeof f!=="undefined"?f:null;b=typeof b!=="undefined"?b:null;if(typeof d=="string"){d=jQuery(d)}if(!(d instanceof jQuery)){return false}var e=jQuery.extend({},jqueryPopup.defaultSettings,c||{});d.handler=jQuery(d).bind(e.event,function(){if(f){f()}var g="height="+e.height+",width="+e.width+",toolbar="+e.toolbar+",scrollbars="+e.scrollbars+",status="+e.status+",resizable="+e.resizable+",location="+e.location+",menuBar="+e.menubar;e.windowName=e.windowName||jQuery(this).attr("name");var h=jQuery(this).attr("href");if(!e.windowURL&&!(h=="#")&&!(h=="")){e.windowURL=jQuery(this).attr("href")}var i,j;var k=null;if(e.centerBrowser){if(typeof window.screenY=="undefined"){i=(window.screenTop-120)+((((document.documentElement.clientHeight+120)/2)-(e.height/2)));j=window.screenLeft+((((document.body.offsetWidth+20)/2)-(e.width/2)))}else{i=window.screenY+(((window.outerHeight/2)-(e.height/2)));j=window.screenX+(((window.outerWidth/2)-(e.width/2)))}k=window.open(e.windowURL,e.windowName,g+",left="+j+",top="+i)}else{if(e.centerScreen){i=(screen.height-e.height)/2;j=(screen.width-e.width)/2;k=window.open(e.windowURL,e.windowName,g+",left="+j+",top="+i)}else{k=window.open(e.windowURL,e.windowName,g+",left="+e.left+",top="+e.top)}}if(k!=null){k.focus();if(e.data){k.document.write(e.data)}}if(b){b()}});return e};popdownWindow=function(b,c){if(typeof c=="undefined"){c="click"}b=jQuery(b);if(!(b instanceof jQuery)){return false}b.unbind(c,b.handler)}})(jQueryCrayon);(function(f){f.fn.exists=function(){return this.length!==0};f.fn.style=function(B,E,A){var D=this.get(0);if(typeof D=="undefined"){return}var C=D.style;if(typeof B!="undefined"){if(typeof E!="undefined"){A=typeof A!="undefined"?A:"";if(typeof C.setProperty!="undefined"){C.setProperty(B,E,A)}else{C[B]=E}}else{return C[B]}}else{return C}};var d="crayon-pressed";var a="";var n="div.crayon-syntax";var e=".crayon-toolbar";var c=".crayon-info";var w=".crayon-plain";var o=".crayon-main";var m=".crayon-table";var v=".crayon-loading";var h=".crayon-code";var p=".crayon-title";var l=".crayon-tools";var b=".crayon-nums";var j=".crayon-num";var q=".crayon-line";var g="crayon-wrapped";var s=".crayon-nums-content";var u=".crayon-nums-button";var k=".crayon-wrap-button";var i=".crayon-expand-button";var t="crayon-expanded crayon-toolbar-visible";var y="crayon-placeholder";var x=".crayon-popup-button";var r=".crayon-copy-button";var z=".crayon-plain-button";CrayonSyntax=new function(){var I=this;var N=new Object();var ag;var H;var G=0;var Z;I.init=function(){if(typeof N=="undefined"){N=new Object()}ag=CrayonSyntaxSettings;H=CrayonSyntaxStrings;f(n).each(function(){I.process(this)})};I.process=function(aD,aE){aD=f(aD);var ar=aD.attr("id");if(ar=="crayon-"){ar+=X()}aD.attr("id",ar);CrayonUtil.log(ar);if(typeof aE=="undefined"){aE=false}if(!aE&&!aa(ar)){return}var au=aD.find(e);var aC=aD.find(c);var ap=aD.find(w);var aq=aD.find(o);var aB=aD.find(m);var aj=aD.find(h);var aG=aD.find(p);var aA=aD.find(l);var ay=aD.find(b);var av=aD.find(s);var az=aD.find(u);var am=aD.find(k);var ao=aD.find(i);var aF=aD.find(x);var at=aD.find(r);var al=aD.find(z);N[ar]=aD;N[ar].toolbar=au;N[ar].plain=ap;N[ar].info=aC;N[ar].main=aq;N[ar].table=aB;N[ar].code=aj;N[ar].title=aG;N[ar].tools=aA;N[ar].nums=ay;N[ar].nums_content=av;N[ar].numsButton=az;N[ar].wrapButton=am;N[ar].expandButton=ao;N[ar].popup_button=aF;N[ar].copy_button=at;N[ar].plainButton=al;N[ar].numsVisible=true;N[ar].wrapped=false;N[ar].plainVisible=false;N[ar].toolbar_delay=0;N[ar].time=1;f(w).css("z-index",0);var aw=aq.style();N[ar].mainStyle={height:aw&&aw.height||"","max-height":aw&&aw.maxHeight||"","min-height":aw&&aw.minHeight||"",width:aw&&aw.width||"","max-width":aw&&aw.maxWidth||"","min-width":aw&&aw.minWidth||""};N[ar].mainHeightAuto=N[ar].mainStyle.height==""&&N[ar].mainStyle["max-height"]=="";var ak;var ax=0;N[ar].loading=true;N[ar].scrollBlockFix=false;az.click(function(){CrayonSyntax.toggleNums(ar)});am.click(function(){CrayonSyntax.toggleWrap(ar)});ao.click(function(){CrayonSyntax.toggleExpand(ar)});al.click(function(){CrayonSyntax.togglePlain(ar)});at.click(function(){CrayonSyntax.copyPlain(ar)});B(ar);var an=function(){if(ay.filter('[data-settings~="hide"]').length!=0){av.ready(function(){CrayonUtil.log("function"+ar);CrayonSyntax.toggleNums(ar,true,true)})}else{ac(ar)}if(typeof N[ar].expanded=="undefined"){if(Math.abs(N[ar].main.outerWidth()-N[ar].table.outerWidth())<10){N[ar].expandButton.hide()}else{N[ar].expandButton.show()}}if(ax==5){clearInterval(ak);N[ar].loading=false}ax++};ak=setInterval(an,300);C(ar);f(j,N[ar]).each(function(){var aJ=f(this).attr("data-line");var aI=f("#"+aJ);var aH=aI.style("height");if(aH){aI.attr("data-height",aH)}});aq.css("position","relative");aq.css("z-index",1);Z=(aD.filter('[data-settings~="touchscreen"]').length!=0);if(!Z){aq.click(function(){A(ar,"",false)});ap.click(function(){A(ar,"",false)});aC.click(function(){A(ar,"",false)})}if(aD.filter('[data-settings~="no-popup"]').length==0){N[ar].popup_settings=popupWindow(aF,{height:screen.height-200,width:screen.width-100,top:75,left:50,scrollbars:1,windowURL:"",data:""},function(){F(ar)},function(){})}ap.css("opacity",0);N[ar].toolbarVisible=true;N[ar].hasOneLine=aB.outerHeight()
'+I.removeCssInline(I.getHtmlString(ak))+"
"};I.minimize=function(al){var ak=f('
');N[al].tools.append(ak);N[al].origTitle=N[al].title.html();if(!N[al].origTitle){N[al].title.html(H.minimize)}var aj="crayon-minimized";var ai=function(){N[al].toolbarPreventHide=false;ak.remove();N[al].removeClass(aj);N[al].title.html(N[al].origTitle);var am=N[al].toolbar;if(am.filter('[data-settings~="never-show"]').length!=0){am.remove()}};N[al].toolbar.click(ai);ak.click(ai);N[al].addClass(aj);N[al].toolbarPreventHide=true;T(al,undefined,undefined,0)};I.getHtmlString=function(ai){return f("
").append(ai.clone()).remove().html()};I.removeCssInline=function(ak){var aj=/style\s*=\s*"([^"]+)"/gmi;var ai=null;while((ai=aj.exec(ak))!=null){var al=ai[1];al=al.replace(/\b(?:width|height)\s*:[^;]+;/gmi,"");ak=ak.sliceReplace(ai.index,ai.index+ai[0].length,'style="'+al+'"')}return ak};I.getAllCSS=function(){var ak="";var aj=f('link[rel="stylesheet"]');var ai=[];if(aj.length==1){ai=aj}else{ai=aj.filter('[href*="crayon-syntax-highlighter"], [href*="min/"]')}ai.each(function(){var al=I.getHtmlString(f(this));ak+=al});return ak};I.copyPlain=function(ak,al){if(typeof N[ak]=="undefined"){return aa(ak)}var aj=N[ak].plain;I.togglePlain(ak,true,true);T(ak,true);var ai=N[ak].mac?"\u2318":"CTRL";var am=H.copy;am=am.replace(/%s/,ai+"+C");am=am.replace(/%s/,ai+"+V");A(ak,am);return false};var A=function(aj,al,ai){if(typeof N[aj]=="undefined"){return aa(aj)}var ak=N[aj].info;if(typeof al=="undefined"){al=""}if(typeof ai=="undefined"){ai=true}if(L(ak)&&ai){ak.html("
"+al+"
");ak.css("margin-top",-ak.outerHeight());ak.show();Q(aj,ak,true);setTimeout(function(){Q(aj,ak,false)},5000)}if(!ai){Q(aj,ak,false)}};var B=function(ai){if(window.devicePixelRatio>1){var aj=f(".crayon-button-icon",N[ai].toolbar);aj.each(function(){var al=f(this).css("background-image");var ak=al.replace(/\.(?=[^\.]+$)/g,"@2x.");f(this).css("background-size","48px 128px");f(this).css("background-image",ak)})}};var L=function(ai){var aj="-"+ai.outerHeight()+"px";if(ai.css("margin-top")==aj||ai.css("display")=="none"){return true}else{return false}};var Q=function(al,ak,aj,an,am,ap){var ai=function(){if(ap){ap(al,ak)}};var ao="-"+ak.outerHeight()+"px";if(typeof aj=="undefined"){if(L(ak)){aj=true}else{aj=false}}if(typeof an=="undefined"){an=100}if(an==false){an=false}if(typeof am=="undefined"){am=0}ak.stop(true);if(aj==true){ak.show();ak.animate({marginTop:0},ah(an,al),ai)}else{if(aj==false){if(ak.css("margin-top")=="0px"&&am){ak.delay(am)}ak.animate({marginTop:ao},ah(an,al),function(){ak.hide();ai()})}}};I.togglePlain=function(al,am,aj){if(typeof N[al]=="undefined"){return aa(al)}var ai=N[al].main;var ak=N[al].plain;if((ai.is(":animated")||ak.is(":animated"))&&typeof am=="undefined"){return}ae(al);var ao,an;if(typeof am!="undefined"){if(am){ao=ai;an=ak}else{ao=ak;an=ai}}else{if(ai.css("z-index")==1){ao=ai;an=ak}else{ao=ak;an=ai}}N[al].plainVisible=(an==ak);N[al].top=ao.scrollTop();N[al].left=ao.scrollLeft();N[al].scrollChanged=false;C(al);ao.stop(true);ao.fadeTo(ah(500,al),0,function(){ao.css("z-index",0)});an.stop(true);an.fadeTo(ah(500,al),1,function(){an.css("z-index",1);if(an==ak){if(aj){ak.select()}else{}}an.scrollTop(N[al].top+1);an.scrollTop(N[al].top);an.scrollLeft(N[al].left+1);an.scrollLeft(N[al].left)});an.scrollTop(N[al].top);an.scrollLeft(N[al].left);ab(al);T(al,false);return false};I.toggleNums=function(am,al,ai){if(typeof N[am]=="undefined"){aa(am);return false}if(N[am].table.is(":animated")){return false}var ao=Math.round(N[am].nums_content.outerWidth()+1);var an="-"+ao+"px";var ak;if(typeof al!="undefined"){ak=false}else{ak=(N[am].table.css("margin-left")==an)}var aj;if(ak){aj="0px";N[am].numsVisible=true}else{N[am].table.css("margin-left","0px");N[am].numsVisible=false;aj=an}if(typeof ai!="undefined"){N[am].table.css("margin-left",aj);ac(am);return false}var ap=(N[am].table.outerWidth()+J(N[am].table.css("margin-left"))>N[am].main.outerWidth());var aq=(N[am].table.outerHeight()>N[am].main.outerHeight());if(!ap&&!aq){N[am].main.css("overflow","hidden")}N[am].table.animate({marginLeft:aj},ah(200,am),function(){if(typeof N[am]!="undefined"){ac(am);if(!ap&&!aq){N[am].main.css("overflow","auto")}}});return false};I.toggleWrap=function(ai){N[ai].wrapped=!N[ai].wrapped;Y(ai)};I.toggleExpand=function(ai){var aj=!CrayonUtil.setDefault(N[ai].expanded,false);D(ai,aj)};var Y=function(ai,aj){aj=CrayonUtil.setDefault(aj,true);if(N[ai].wrapped){N[ai].addClass(g)}else{N[ai].removeClass(g)}E(ai);if(!N[ai].expanded&&aj){V(ai)}N[ai].wrapTimes=0;clearInterval(N[ai].wrapTimer);N[ai].wrapTimer=setInterval(function(){if(N[ai].is(":visible")){O(ai);N[ai].wrapTimes++;if(N[ai].wrapTimes==5){clearInterval(N[ai].wrapTimer)}}},200)};var ad=function(ai){if(typeof N[ai]=="undefined"){aa(ai);return false}};var J=function(aj){if(typeof aj!="string"){return 0}var ai=aj.replace(/[^-0-9]/g,"");if(ai.length==0){return 0}else{return parseInt(ai)}};var ac=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].numsVisible=="undefined"){return}if(N[ai].numsVisible){N[ai].numsButton.removeClass(a);N[ai].numsButton.addClass(d)}else{N[ai].numsButton.removeClass(d);N[ai].numsButton.addClass(a)}};var E=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].wrapped=="undefined"){return}if(N[ai].wrapped){N[ai].wrapButton.removeClass(a);N[ai].wrapButton.addClass(d)}else{N[ai].wrapButton.removeClass(d);N[ai].wrapButton.addClass(a)}};var W=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].expanded=="undefined"){return}if(N[ai].expanded){N[ai].expandButton.removeClass(a);N[ai].expandButton.addClass(d)}else{N[ai].expandButton.removeClass(d);N[ai].expandButton.addClass(a)}};var ab=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].plainVisible=="undefined"){return}if(N[ai].plainVisible){N[ai].plainButton.removeClass(a);N[ai].plainButton.addClass(d)}else{N[ai].plainButton.removeClass(d);N[ai].plainButton.addClass(a)}};var T=function(aj,ai,al,ak){if(typeof N[aj]=="undefined"){return aa(aj)}else{if(!N[aj].toolbarMouseover){return}else{if(ai==false&&N[aj].toolbarPreventHide){return}else{if(Z){return}}}}var am=N[aj].toolbar;if(typeof ak=="undefined"){ak=N[aj].toolbar_delay}Q(aj,am,ai,al,ak,function(){N[aj].toolbarVisible=ai})};var R=function(ak,ai){var aj=f.extend({},ak);aj.width+=ai.width;aj.height+=ai.height;return aj};var P=function(ak,ai){var aj=f.extend({},ak);aj.width-=ai.width;aj.height-=ai.height;return aj};var U=function(ai){if(typeof N[ai].initialSize=="undefined"){N[ai].toolbarHeight=N[ai].toolbar.outerHeight();N[ai].innerSize={width:N[ai].width(),height:N[ai].height()};N[ai].outerSize={width:N[ai].outerWidth(),height:N[ai].outerHeight()};N[ai].borderSize=P(N[ai].outerSize,N[ai].innerSize);N[ai].initialSize={width:N[ai].main.outerWidth(),height:N[ai].main.outerHeight()};N[ai].initialSize.height+=N[ai].toolbarHeight;N[ai].initialOuterSize=R(N[ai].initialSize,N[ai].borderSize);N[ai].finalSize={width:N[ai].table.outerWidth(),height:N[ai].table.outerHeight()};N[ai].finalSize.height+=N[ai].toolbarHeight;N[ai].finalSize.width=CrayonUtil.setMin(N[ai].finalSize.width,N[ai].initialSize.width);N[ai].finalSize.height=CrayonUtil.setMin(N[ai].finalSize.height,N[ai].initialSize.height);N[ai].diffSize=P(N[ai].finalSize,N[ai].initialSize);N[ai].finalOuterSize=R(N[ai].finalSize,N[ai].borderSize);N[ai].initialSize.height+=N[ai].toolbar.outerHeight()}};var D=function(al,ao){if(typeof N[al]=="undefined"){return aa(al)}if(typeof ao=="undefined"){return}var aj=N[al].main;var aq=N[al].plain;if(ao){if(typeof N[al].expanded=="undefined"){U(al);N[al].expandTime=CrayonUtil.setRange(N[al].diffSize.width/3,300,800);N[al].expanded=false;var ap=N[al].finalOuterSize;N[al].placeholder=f("
");N[al].placeholder.addClass(y);N[al].placeholder.css(ap);N[al].before(N[al].placeholder);N[al].placeholder.css("margin",N[al].css("margin"));f(window).bind("resize",K)}var am={height:"auto","min-height":"none","max-height":"none"};var ai={width:"auto","min-width":"none","max-width":"none"};N[al].outerWidth(N[al].outerWidth());N[al].css({"min-width":"none","max-width":"none"});var an={width:N[al].finalOuterSize.width};if(!N[al].mainHeightAuto&&!N[al].hasOneLine){an.height=N[al].finalOuterSize.height;N[al].outerHeight(N[al].outerHeight())}aj.css(am);aj.css(ai);N[al].stop(true);N[al].animate(an,ah(N[al].expandTime,al),function(){N[al].expanded=true;W(al)});N[al].placeholder.show();f("body").prepend(N[al]);N[al].addClass(t);K()}else{var ar=N[al].initialOuterSize;var ak=N[al].toolbar_delay;if(ar){N[al].stop(true);if(!N[al].expanded){N[al].delay(ak)}var an={width:ar.width};if(!N[al].mainHeightAuto&&!N[al].hasOneLine){an.height=ar.height}N[al].animate(an,ah(N[al].expandTime,al),function(){af(al)})}else{setTimeout(function(){af(al)},ak)}N[al].placeholder.hide();N[al].placeholder.before(N[al]);N[al].css({left:"auto",top:"auto"});N[al].removeClass(t)}ae(al);if(ao){Y(al,false)}};var K=function(){for(uid in N){if(N[uid].hasClass(t)){N[uid].css(N[uid].placeholder.offset())}}};var af=function(ai){N[ai].expanded=false;V(ai);W(ai);if(N[ai].wrapped){Y(ai)}};var M=function(al,aj,am){if(typeof N[al]=="undefined"){return aa(al)}if(typeof aj=="undefined"||am||N[al].expanded){return}var ai=N[al].main;var ak=N[al].plain;if(aj){ai.css("overflow","auto");ak.css("overflow","auto");if(typeof N[al].top!="undefined"){visible=(ai.css("z-index")==1?ai:ak);visible.scrollTop(N[al].top-1);visible.scrollTop(N[al].top);visible.scrollLeft(N[al].left-1);visible.scrollLeft(N[al].left)}}else{visible=(ai.css("z-index")==1?ai:ak);N[al].top=visible.scrollTop();N[al].left=visible.scrollLeft();ai.css("overflow","hidden");ak.css("overflow","hidden")}N[al].scrollChanged=true;C(al)};var C=function(ai){N[ai].table.style("width","100%","important");var aj=setTimeout(function(){N[ai].table.style("width","");clearInterval(aj)},10)};var V=function(ak){var aj=N[ak].main;var ai=N[ak].mainStyle;aj.css(ai);N[ak].css("height","auto");N[ak].css("width",ai.width);N[ak].css("max-width",ai["max-width"]);N[ak].css("min-width",ai["min-width"])};var ae=function(ai){N[ai].plain.outerHeight(N[ai].main.outerHeight())};var O=function(ai){f(j,N[ai]).each(function(){var al=f(this).attr("data-line");var ak=f("#"+al);var aj=null;if(N[ai].wrapped){ak.css("height","");aj=ak.outerHeight();aj=aj?aj:""}else{aj=ak.attr("data-height");aj=aj?aj:"";ak.css("height",aj)}f(this).css("height",aj)})};var ah=function(ai,aj){if(ai=="fast"){ai=200}else{if(ai=="slow"){ai=600}else{if(!S(ai)){ai=parseInt(ai);if(isNaN(ai)){return 0}}}}return ai*N[aj].time};var S=function(ai){return typeof ai=="number"}};f(document).ready(function(){CrayonSyntax.init()})})(jQueryCrayon); \ No newline at end of file diff --git a/js/min/crayon.te.min.js b/js/min/crayon.te.min.js new file mode 100644 index 0000000..1d85a87 --- /dev/null +++ b/js/min/crayon.te.min.js @@ -0,0 +1,8 @@ +var jQueryCrayon=jQuery;(function(a){CrayonUtil=new function(){var c=this;var b=null;c.init=function(){b=CrayonSyntaxSettings;c.initGET()};c.addPrefixToID=function(d){return d.replace(/^([#.])?(.*)$/,"$1"+b.prefix+"$2")};c.removePrefixFromID=function(e){var d=new RegExp("^[#.]?"+b.prefix,"i");return e.replace(d,"")};c.cssElem=function(d){return a(c.addPrefixToID(d))};c.setDefault=function(e,f){return(typeof e=="undefined")?f:e};c.setMax=function(e,d){return e<=d?e:d};c.setMin=function(d,e){return d>=e?d:e};c.setRange=function(e,f,d){return c.setMax(c.setMin(e,f),d)};c.getExt=function(e){if(e.indexOf(".")==-1){return undefined}var d=e.split(".");if(d.length){d=d[d.length-1]}else{d=""}return d};c.initGET=function(){window.currentURL=window.location.protocol+"//"+window.location.host+window.location.pathname;window.currentDir=window.currentURL.substring(0,window.currentURL.lastIndexOf("/"));function d(e){e=e.split("+").join(" ");var h={},g,f=/[?&]?([^=]+)=([^&]*)/g;while(g=f.exec(e)){h[decodeURIComponent(g[1])]=decodeURIComponent(g[2])}return h}window.GET=d(document.location.search)};c.getAJAX=function(d,e){d.version=b.version;a.get(b.ajaxurl,d,e)};c.postAJAX=function(d,e){d.version=b.version;a.post(b.ajaxurl,d,e)};c.reload=function(){var d="?";for(var e in window.GET){d+=e+"="+window.GET[e]+"&"}window.location=window.currentURL+d};c.escape=function(d){if(typeof encodeURIComponent=="function"){return encodeURIComponent(d)}else{if(typeof escape!="function"){return escape(d)}else{return d}}};c.log=function(d){if(typeof console!="undefined"&&b.debug){console.log(d)}};c.decode_html=function(d){return String(d).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")};c.encode_html=function(d){return String(d).replace(/&/g,"&").replace(//g,">")};c.getReadableColor=function(g,f){f=a.extend({amount:0.5,xMulti:1,yMulti:1.5,normalizeHue:[20,180],normalizeHueXMulti:1/2.5,normalizeHueYMulti:1},f);var d=tinycolor(g);var e=d.toHsv();var i={x:e.s,y:1-e.v};i.x*=f.xMulti;i.y*=f.yMulti;if(f.normalizeHue&&e.h>f.normalizeHue[0]&&e.h":">"};return this.replace(/[&<>]/g,function(c){return b[c]||c})};String.prototype.linkify=function(b){b=typeof b!="undefined"?b:"";return this.replace(/(http(s)?:\/\/(\S)+)/gmi,'$1')};String.prototype.toTitleCase=function(){var b=this.split(/\s+/);var c="";a.each(b,function(e,d){if(d!=""){c+=d.slice(0,1).toUpperCase()+d.slice(1,d.length);if(e!=b.length-1&&b[e+1]!=""){c+=" "}}});return c}})(jQueryCrayon);jqueryPopup=Object();jqueryPopup.defaultSettings={centerBrowser:0,centerScreen:0,height:500,left:0,location:0,menubar:0,resizable:0,scrollbars:0,status:0,width:500,windowName:null,windowURL:null,top:0,toolbar:0,data:null,event:"click"};(function(a){popupWindow=function(d,c,f,b){f=typeof f!=="undefined"?f:null;b=typeof b!=="undefined"?b:null;if(typeof d=="string"){d=jQuery(d)}if(!(d instanceof jQuery)){return false}var e=jQuery.extend({},jqueryPopup.defaultSettings,c||{});d.handler=jQuery(d).bind(e.event,function(){if(f){f()}var g="height="+e.height+",width="+e.width+",toolbar="+e.toolbar+",scrollbars="+e.scrollbars+",status="+e.status+",resizable="+e.resizable+",location="+e.location+",menuBar="+e.menubar;e.windowName=e.windowName||jQuery(this).attr("name");var h=jQuery(this).attr("href");if(!e.windowURL&&!(h=="#")&&!(h=="")){e.windowURL=jQuery(this).attr("href")}var i,j;var k=null;if(e.centerBrowser){if(typeof window.screenY=="undefined"){i=(window.screenTop-120)+((((document.documentElement.clientHeight+120)/2)-(e.height/2)));j=window.screenLeft+((((document.body.offsetWidth+20)/2)-(e.width/2)))}else{i=window.screenY+(((window.outerHeight/2)-(e.height/2)));j=window.screenX+(((window.outerWidth/2)-(e.width/2)))}k=window.open(e.windowURL,e.windowName,g+",left="+j+",top="+i)}else{if(e.centerScreen){i=(screen.height-e.height)/2;j=(screen.width-e.width)/2;k=window.open(e.windowURL,e.windowName,g+",left="+j+",top="+i)}else{k=window.open(e.windowURL,e.windowName,g+",left="+e.left+",top="+e.top)}}if(k!=null){k.focus();if(e.data){k.document.write(e.data)}}if(b){b()}});return e};popdownWindow=function(b,c){if(typeof c=="undefined"){c="click"}b=jQuery(b);if(!(b instanceof jQuery)){return false}b.unbind(c,b.handler)}})(jQueryCrayon);(function(f){f.fn.exists=function(){return this.length!==0};f.fn.style=function(B,E,A){var D=this.get(0);if(typeof D=="undefined"){return}var C=D.style;if(typeof B!="undefined"){if(typeof E!="undefined"){A=typeof A!="undefined"?A:"";if(typeof C.setProperty!="undefined"){C.setProperty(B,E,A)}else{C[B]=E}}else{return C[B]}}else{return C}};var d="crayon-pressed";var a="";var n="div.crayon-syntax";var e=".crayon-toolbar";var c=".crayon-info";var w=".crayon-plain";var o=".crayon-main";var m=".crayon-table";var v=".crayon-loading";var h=".crayon-code";var p=".crayon-title";var l=".crayon-tools";var b=".crayon-nums";var j=".crayon-num";var q=".crayon-line";var g="crayon-wrapped";var s=".crayon-nums-content";var u=".crayon-nums-button";var k=".crayon-wrap-button";var i=".crayon-expand-button";var t="crayon-expanded crayon-toolbar-visible";var y="crayon-placeholder";var x=".crayon-popup-button";var r=".crayon-copy-button";var z=".crayon-plain-button";CrayonSyntax=new function(){var I=this;var N=new Object();var ag;var H;var G=0;var Z;I.init=function(){if(typeof N=="undefined"){N=new Object()}ag=CrayonSyntaxSettings;H=CrayonSyntaxStrings;f(n).each(function(){I.process(this)})};I.process=function(aD,aE){aD=f(aD);var ar=aD.attr("id");if(ar=="crayon-"){ar+=X()}aD.attr("id",ar);CrayonUtil.log(ar);if(typeof aE=="undefined"){aE=false}if(!aE&&!aa(ar)){return}var au=aD.find(e);var aC=aD.find(c);var ap=aD.find(w);var aq=aD.find(o);var aB=aD.find(m);var aj=aD.find(h);var aG=aD.find(p);var aA=aD.find(l);var ay=aD.find(b);var av=aD.find(s);var az=aD.find(u);var am=aD.find(k);var ao=aD.find(i);var aF=aD.find(x);var at=aD.find(r);var al=aD.find(z);N[ar]=aD;N[ar].toolbar=au;N[ar].plain=ap;N[ar].info=aC;N[ar].main=aq;N[ar].table=aB;N[ar].code=aj;N[ar].title=aG;N[ar].tools=aA;N[ar].nums=ay;N[ar].nums_content=av;N[ar].numsButton=az;N[ar].wrapButton=am;N[ar].expandButton=ao;N[ar].popup_button=aF;N[ar].copy_button=at;N[ar].plainButton=al;N[ar].numsVisible=true;N[ar].wrapped=false;N[ar].plainVisible=false;N[ar].toolbar_delay=0;N[ar].time=1;f(w).css("z-index",0);var aw=aq.style();N[ar].mainStyle={height:aw&&aw.height||"","max-height":aw&&aw.maxHeight||"","min-height":aw&&aw.minHeight||"",width:aw&&aw.width||"","max-width":aw&&aw.maxWidth||"","min-width":aw&&aw.minWidth||""};N[ar].mainHeightAuto=N[ar].mainStyle.height==""&&N[ar].mainStyle["max-height"]=="";var ak;var ax=0;N[ar].loading=true;N[ar].scrollBlockFix=false;az.click(function(){CrayonSyntax.toggleNums(ar)});am.click(function(){CrayonSyntax.toggleWrap(ar)});ao.click(function(){CrayonSyntax.toggleExpand(ar)});al.click(function(){CrayonSyntax.togglePlain(ar)});at.click(function(){CrayonSyntax.copyPlain(ar)});B(ar);var an=function(){if(ay.filter('[data-settings~="hide"]').length!=0){av.ready(function(){CrayonUtil.log("function"+ar);CrayonSyntax.toggleNums(ar,true,true)})}else{ac(ar)}if(typeof N[ar].expanded=="undefined"){if(Math.abs(N[ar].main.outerWidth()-N[ar].table.outerWidth())<10){N[ar].expandButton.hide()}else{N[ar].expandButton.show()}}if(ax==5){clearInterval(ak);N[ar].loading=false}ax++};ak=setInterval(an,300);C(ar);f(j,N[ar]).each(function(){var aJ=f(this).attr("data-line");var aI=f("#"+aJ);var aH=aI.style("height");if(aH){aI.attr("data-height",aH)}});aq.css("position","relative");aq.css("z-index",1);Z=(aD.filter('[data-settings~="touchscreen"]').length!=0);if(!Z){aq.click(function(){A(ar,"",false)});ap.click(function(){A(ar,"",false)});aC.click(function(){A(ar,"",false)})}if(aD.filter('[data-settings~="no-popup"]').length==0){N[ar].popup_settings=popupWindow(aF,{height:screen.height-200,width:screen.width-100,top:75,left:50,scrollbars:1,windowURL:"",data:""},function(){F(ar)},function(){})}ap.css("opacity",0);N[ar].toolbarVisible=true;N[ar].hasOneLine=aB.outerHeight()
'+I.removeCssInline(I.getHtmlString(ak))+"
"};I.minimize=function(al){var ak=f('
');N[al].tools.append(ak);N[al].origTitle=N[al].title.html();if(!N[al].origTitle){N[al].title.html(H.minimize)}var aj="crayon-minimized";var ai=function(){N[al].toolbarPreventHide=false;ak.remove();N[al].removeClass(aj);N[al].title.html(N[al].origTitle);var am=N[al].toolbar;if(am.filter('[data-settings~="never-show"]').length!=0){am.remove()}};N[al].toolbar.click(ai);ak.click(ai);N[al].addClass(aj);N[al].toolbarPreventHide=true;T(al,undefined,undefined,0)};I.getHtmlString=function(ai){return f("
").append(ai.clone()).remove().html()};I.removeCssInline=function(ak){var aj=/style\s*=\s*"([^"]+)"/gmi;var ai=null;while((ai=aj.exec(ak))!=null){var al=ai[1];al=al.replace(/\b(?:width|height)\s*:[^;]+;/gmi,"");ak=ak.sliceReplace(ai.index,ai.index+ai[0].length,'style="'+al+'"')}return ak};I.getAllCSS=function(){var ak="";var aj=f('link[rel="stylesheet"]');var ai=[];if(aj.length==1){ai=aj}else{ai=aj.filter('[href*="crayon-syntax-highlighter"], [href*="min/"]')}ai.each(function(){var al=I.getHtmlString(f(this));ak+=al});return ak};I.copyPlain=function(ak,al){if(typeof N[ak]=="undefined"){return aa(ak)}var aj=N[ak].plain;I.togglePlain(ak,true,true);T(ak,true);var ai=N[ak].mac?"\u2318":"CTRL";var am=H.copy;am=am.replace(/%s/,ai+"+C");am=am.replace(/%s/,ai+"+V");A(ak,am);return false};var A=function(aj,al,ai){if(typeof N[aj]=="undefined"){return aa(aj)}var ak=N[aj].info;if(typeof al=="undefined"){al=""}if(typeof ai=="undefined"){ai=true}if(L(ak)&&ai){ak.html("
"+al+"
");ak.css("margin-top",-ak.outerHeight());ak.show();Q(aj,ak,true);setTimeout(function(){Q(aj,ak,false)},5000)}if(!ai){Q(aj,ak,false)}};var B=function(ai){if(window.devicePixelRatio>1){var aj=f(".crayon-button-icon",N[ai].toolbar);aj.each(function(){var al=f(this).css("background-image");var ak=al.replace(/\.(?=[^\.]+$)/g,"@2x.");f(this).css("background-size","48px 128px");f(this).css("background-image",ak)})}};var L=function(ai){var aj="-"+ai.outerHeight()+"px";if(ai.css("margin-top")==aj||ai.css("display")=="none"){return true}else{return false}};var Q=function(al,ak,aj,an,am,ap){var ai=function(){if(ap){ap(al,ak)}};var ao="-"+ak.outerHeight()+"px";if(typeof aj=="undefined"){if(L(ak)){aj=true}else{aj=false}}if(typeof an=="undefined"){an=100}if(an==false){an=false}if(typeof am=="undefined"){am=0}ak.stop(true);if(aj==true){ak.show();ak.animate({marginTop:0},ah(an,al),ai)}else{if(aj==false){if(ak.css("margin-top")=="0px"&&am){ak.delay(am)}ak.animate({marginTop:ao},ah(an,al),function(){ak.hide();ai()})}}};I.togglePlain=function(al,am,aj){if(typeof N[al]=="undefined"){return aa(al)}var ai=N[al].main;var ak=N[al].plain;if((ai.is(":animated")||ak.is(":animated"))&&typeof am=="undefined"){return}ae(al);var ao,an;if(typeof am!="undefined"){if(am){ao=ai;an=ak}else{ao=ak;an=ai}}else{if(ai.css("z-index")==1){ao=ai;an=ak}else{ao=ak;an=ai}}N[al].plainVisible=(an==ak);N[al].top=ao.scrollTop();N[al].left=ao.scrollLeft();N[al].scrollChanged=false;C(al);ao.stop(true);ao.fadeTo(ah(500,al),0,function(){ao.css("z-index",0)});an.stop(true);an.fadeTo(ah(500,al),1,function(){an.css("z-index",1);if(an==ak){if(aj){ak.select()}else{}}an.scrollTop(N[al].top+1);an.scrollTop(N[al].top);an.scrollLeft(N[al].left+1);an.scrollLeft(N[al].left)});an.scrollTop(N[al].top);an.scrollLeft(N[al].left);ab(al);T(al,false);return false};I.toggleNums=function(am,al,ai){if(typeof N[am]=="undefined"){aa(am);return false}if(N[am].table.is(":animated")){return false}var ao=Math.round(N[am].nums_content.outerWidth()+1);var an="-"+ao+"px";var ak;if(typeof al!="undefined"){ak=false}else{ak=(N[am].table.css("margin-left")==an)}var aj;if(ak){aj="0px";N[am].numsVisible=true}else{N[am].table.css("margin-left","0px");N[am].numsVisible=false;aj=an}if(typeof ai!="undefined"){N[am].table.css("margin-left",aj);ac(am);return false}var ap=(N[am].table.outerWidth()+J(N[am].table.css("margin-left"))>N[am].main.outerWidth());var aq=(N[am].table.outerHeight()>N[am].main.outerHeight());if(!ap&&!aq){N[am].main.css("overflow","hidden")}N[am].table.animate({marginLeft:aj},ah(200,am),function(){if(typeof N[am]!="undefined"){ac(am);if(!ap&&!aq){N[am].main.css("overflow","auto")}}});return false};I.toggleWrap=function(ai){N[ai].wrapped=!N[ai].wrapped;Y(ai)};I.toggleExpand=function(ai){var aj=!CrayonUtil.setDefault(N[ai].expanded,false);D(ai,aj)};var Y=function(ai,aj){aj=CrayonUtil.setDefault(aj,true);if(N[ai].wrapped){N[ai].addClass(g)}else{N[ai].removeClass(g)}E(ai);if(!N[ai].expanded&&aj){V(ai)}N[ai].wrapTimes=0;clearInterval(N[ai].wrapTimer);N[ai].wrapTimer=setInterval(function(){if(N[ai].is(":visible")){O(ai);N[ai].wrapTimes++;if(N[ai].wrapTimes==5){clearInterval(N[ai].wrapTimer)}}},200)};var ad=function(ai){if(typeof N[ai]=="undefined"){aa(ai);return false}};var J=function(aj){if(typeof aj!="string"){return 0}var ai=aj.replace(/[^-0-9]/g,"");if(ai.length==0){return 0}else{return parseInt(ai)}};var ac=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].numsVisible=="undefined"){return}if(N[ai].numsVisible){N[ai].numsButton.removeClass(a);N[ai].numsButton.addClass(d)}else{N[ai].numsButton.removeClass(d);N[ai].numsButton.addClass(a)}};var E=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].wrapped=="undefined"){return}if(N[ai].wrapped){N[ai].wrapButton.removeClass(a);N[ai].wrapButton.addClass(d)}else{N[ai].wrapButton.removeClass(d);N[ai].wrapButton.addClass(a)}};var W=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].expanded=="undefined"){return}if(N[ai].expanded){N[ai].expandButton.removeClass(a);N[ai].expandButton.addClass(d)}else{N[ai].expandButton.removeClass(d);N[ai].expandButton.addClass(a)}};var ab=function(ai){if(typeof N[ai]=="undefined"||typeof N[ai].plainVisible=="undefined"){return}if(N[ai].plainVisible){N[ai].plainButton.removeClass(a);N[ai].plainButton.addClass(d)}else{N[ai].plainButton.removeClass(d);N[ai].plainButton.addClass(a)}};var T=function(aj,ai,al,ak){if(typeof N[aj]=="undefined"){return aa(aj)}else{if(!N[aj].toolbarMouseover){return}else{if(ai==false&&N[aj].toolbarPreventHide){return}else{if(Z){return}}}}var am=N[aj].toolbar;if(typeof ak=="undefined"){ak=N[aj].toolbar_delay}Q(aj,am,ai,al,ak,function(){N[aj].toolbarVisible=ai})};var R=function(ak,ai){var aj=f.extend({},ak);aj.width+=ai.width;aj.height+=ai.height;return aj};var P=function(ak,ai){var aj=f.extend({},ak);aj.width-=ai.width;aj.height-=ai.height;return aj};var U=function(ai){if(typeof N[ai].initialSize=="undefined"){N[ai].toolbarHeight=N[ai].toolbar.outerHeight();N[ai].innerSize={width:N[ai].width(),height:N[ai].height()};N[ai].outerSize={width:N[ai].outerWidth(),height:N[ai].outerHeight()};N[ai].borderSize=P(N[ai].outerSize,N[ai].innerSize);N[ai].initialSize={width:N[ai].main.outerWidth(),height:N[ai].main.outerHeight()};N[ai].initialSize.height+=N[ai].toolbarHeight;N[ai].initialOuterSize=R(N[ai].initialSize,N[ai].borderSize);N[ai].finalSize={width:N[ai].table.outerWidth(),height:N[ai].table.outerHeight()};N[ai].finalSize.height+=N[ai].toolbarHeight;N[ai].finalSize.width=CrayonUtil.setMin(N[ai].finalSize.width,N[ai].initialSize.width);N[ai].finalSize.height=CrayonUtil.setMin(N[ai].finalSize.height,N[ai].initialSize.height);N[ai].diffSize=P(N[ai].finalSize,N[ai].initialSize);N[ai].finalOuterSize=R(N[ai].finalSize,N[ai].borderSize);N[ai].initialSize.height+=N[ai].toolbar.outerHeight()}};var D=function(al,ao){if(typeof N[al]=="undefined"){return aa(al)}if(typeof ao=="undefined"){return}var aj=N[al].main;var aq=N[al].plain;if(ao){if(typeof N[al].expanded=="undefined"){U(al);N[al].expandTime=CrayonUtil.setRange(N[al].diffSize.width/3,300,800);N[al].expanded=false;var ap=N[al].finalOuterSize;N[al].placeholder=f("
");N[al].placeholder.addClass(y);N[al].placeholder.css(ap);N[al].before(N[al].placeholder);N[al].placeholder.css("margin",N[al].css("margin"));f(window).bind("resize",K)}var am={height:"auto","min-height":"none","max-height":"none"};var ai={width:"auto","min-width":"none","max-width":"none"};N[al].outerWidth(N[al].outerWidth());N[al].css({"min-width":"none","max-width":"none"});var an={width:N[al].finalOuterSize.width};if(!N[al].mainHeightAuto&&!N[al].hasOneLine){an.height=N[al].finalOuterSize.height;N[al].outerHeight(N[al].outerHeight())}aj.css(am);aj.css(ai);N[al].stop(true);N[al].animate(an,ah(N[al].expandTime,al),function(){N[al].expanded=true;W(al)});N[al].placeholder.show();f("body").prepend(N[al]);N[al].addClass(t);K()}else{var ar=N[al].initialOuterSize;var ak=N[al].toolbar_delay;if(ar){N[al].stop(true);if(!N[al].expanded){N[al].delay(ak)}var an={width:ar.width};if(!N[al].mainHeightAuto&&!N[al].hasOneLine){an.height=ar.height}N[al].animate(an,ah(N[al].expandTime,al),function(){af(al)})}else{setTimeout(function(){af(al)},ak)}N[al].placeholder.hide();N[al].placeholder.before(N[al]);N[al].css({left:"auto",top:"auto"});N[al].removeClass(t)}ae(al);if(ao){Y(al,false)}};var K=function(){for(uid in N){if(N[uid].hasClass(t)){N[uid].css(N[uid].placeholder.offset())}}};var af=function(ai){N[ai].expanded=false;V(ai);W(ai);if(N[ai].wrapped){Y(ai)}};var M=function(al,aj,am){if(typeof N[al]=="undefined"){return aa(al)}if(typeof aj=="undefined"||am||N[al].expanded){return}var ai=N[al].main;var ak=N[al].plain;if(aj){ai.css("overflow","auto");ak.css("overflow","auto");if(typeof N[al].top!="undefined"){visible=(ai.css("z-index")==1?ai:ak);visible.scrollTop(N[al].top-1);visible.scrollTop(N[al].top);visible.scrollLeft(N[al].left-1);visible.scrollLeft(N[al].left)}}else{visible=(ai.css("z-index")==1?ai:ak);N[al].top=visible.scrollTop();N[al].left=visible.scrollLeft();ai.css("overflow","hidden");ak.css("overflow","hidden")}N[al].scrollChanged=true;C(al)};var C=function(ai){N[ai].table.style("width","100%","important");var aj=setTimeout(function(){N[ai].table.style("width","");clearInterval(aj)},10)};var V=function(ak){var aj=N[ak].main;var ai=N[ak].mainStyle;aj.css(ai);N[ak].css("height","auto");N[ak].css("width",ai.width);N[ak].css("max-width",ai["max-width"]);N[ak].css("min-width",ai["min-width"])};var ae=function(ai){N[ai].plain.outerHeight(N[ai].main.outerHeight())};var O=function(ai){f(j,N[ai]).each(function(){var al=f(this).attr("data-line");var ak=f("#"+al);var aj=null;if(N[ai].wrapped){ak.css("height","");aj=ak.outerHeight();aj=aj?aj:""}else{aj=ak.attr("data-height");aj=aj?aj:"";ak.css("height",aj)}f(this).css("height",aj)})};var ah=function(ai,aj){if(ai=="fast"){ai=200}else{if(ai=="slow"){ai=600}else{if(!S(ai)){ai=parseInt(ai);if(isNaN(ai)){return 0}}}}return ai*N[aj].time};var S=function(ai){return typeof ai=="number"}};f(document).ready(function(){CrayonSyntax.init()})})(jQueryCrayon);(function(b){var a=CrayonTagEditorSettings;window.CrayonQuickTags=new function(){var c=this;c.init=function(){c.sel='*[id*="crayon_quicktag"],*[class*="crayon_quicktag"]';var e=a.quicktag_text;e=e!==undefined?e:"crayon";QTags.addButton("crayon_quicktag",e,function(){CrayonTagEditor.showDialog({insert:function(g){QTags.insertContent(g)},select:c.getSelectedText,editor_str:"html",output:"encode"});b(c.sel).removeClass("qt_crayon_highlight")});var d;var f=setInterval(function(){d=b(c.sel).first();if(typeof d!="undefined"){CrayonTagEditor.bind(c.sel);clearInterval(f)}},100)};c.getSelectedText=function(){if(QTags.instances.length==0){return null}else{var f=QTags.instances[0];var e=f.canvas.selectionStart;var d=f.canvas.selectionEnd;return f.canvas.value.substring(e,d)}}};b(document).ready(function(){CrayonQuickTags.init()})})(jQueryCrayon); +/*! + Colorbox v1.5.9 - 2014-04-25 + jQuery lightbox and modal window plugin + (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox + license: http://www.opensource.org/licenses/mit-license.php + */ +(function(aT,a8,a4){function aZ(a,d,c){var b=a8.createElement(a);return d&&(b.id=ab+d),c&&(b.style.cssText=c),aT(b)}function aY(){return a4.innerHeight?a4.innerHeight:aT(a4).height()}function aV(b,a){a!==Object(a)&&(a={}),this.cache={},this.el=b,this.value=function(c){var d;return void 0===this.cache[c]&&(d=aT(this.el).attr("data-cbox-"+c),void 0!==d?this.cache[c]=d:void 0!==a[c]?this.cache[c]=a[c]:void 0!==ad[c]&&(this.cache[c]=ad[c])),this.cache[c]},this.get=function(d){var c=this.value(d);return aT.isFunction(c)?c.call(this.el,this):c}}function a5(b){var c=ag.length,a=(aM+b)%c;return 0>a?c+a:a}function bd(a,b){return Math.round((/%/.test(a)?("x"===b?az.width():aY())/100:1)*parseInt(a,10))}function aU(a,b){return a.get("photo")||a.get("photoRegex").test(b)}function a1(a,b){return a.get("retinaUrl")&&a4.devicePixelRatio>1?b.replace(a.get("photoRegex"),a.get("retinaSuffix")):b}function a9(a){"contains" in aP[0]&&!aP[0].contains(a.target)&&a.target!==aR[0]&&(a.stopPropagation(),aP.focus())}function ba(a){ba.str!==a&&(aP.add(aR).removeClass(ba.str).addClass(a),ba.str=a)}function a6(a){aM=0,a&&a!==!1?(ag=aT("."+af).filter(function(){var b=aT.data(this,ac),c=new aV(this,b);return c.get("rel")===a}),aM=ag.index(bf.el),-1===aM&&(ag=ag.add(bf.el),aM=ag.length-1)):ag=aT(bf.el)}function aS(a){aT(a8).trigger(a),aA.triggerHandler(a)}function a7(b){var g;if(!ax){if(g=aT(b).data("colorbox"),bf=new aV(b,g),a6(bf.get("rel")),!aH){aH=aW=!0,ba(bf.get("className")),aP.css({visibility:"hidden",display:"block",opacity:""}),ar=aZ(aG,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),bb.css({width:"",height:""}).append(ar),aB=aj.height()+a2.height()+bb.outerHeight(!0)-bb.height(),a3=aC.width()+aw.width()+bb.outerWidth(!0)-bb.width(),aF=ar.outerHeight(!0),ap=ar.outerWidth(!0);var d=bd(bf.get("initialWidth"),"x"),c=bd(bf.get("initialHeight"),"y"),a=bf.get("maxWidth"),e=bf.get("maxHeight");bf.w=(a!==!1?Math.min(d,bd(a,"x")):d)-ap-a3,bf.h=(e!==!1?Math.min(c,bd(e,"y")):c)-aF-aB,ar.css({width:"",height:bf.h}),au.position(),aS(bc),bf.get("onOpen"),ao.add(av).hide(),aP.focus(),bf.get("trapFocus")&&a8.addEventListener&&(a8.addEventListener("focus",a9,!0),aA.one(aO,function(){a8.removeEventListener("focus",a9,!0)})),bf.get("returnFocus")&&aA.one(aO,function(){aT(bf.el).focus()})}aR.css({opacity:parseFloat(bf.get("opacity"))||"",cursor:bf.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),bf.get("closeButton")?aE.html(bf.get("close")).appendTo(bb):aE.appendTo("
"),aQ()}}function aX(){!aP&&a8.body&&(ah=!1,az=aT(a4),aP=aZ(aG).attr({id:ac,"class":aT.support.opacity===!1?ab+"IE":"",role:"dialog",tabindex:"-1"}).hide(),aR=aZ(aG,"Overlay").hide(),ak=aT([aZ(aG,"LoadingOverlay")[0],aZ(aG,"LoadingGraphic")[0]]),aN=aZ(aG,"Wrapper"),bb=aZ(aG,"Content").append(av=aZ(aG,"Title"),al=aZ(aG,"Current"),an=aT('

`+&j>X>7B%<8{=!i_(DdYR}@$5!*6ts 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 literal 0 HcmV?d00001 diff --git a/fonts/adobe-source-sans/SourceSansPro-Semibold.svg b/fonts/adobe-source-sans/SourceSansPro-Semibold.svg new file mode 100644 index 0000000..8109329 --- /dev/null +++ b/fonts/adobe-source-sans/SourceSansPro-Semibold.svg @@ -0,0 +1,1117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/adobe-source-sans/SourceSansPro-Semibold.ttf.woff b/fonts/adobe-source-sans/SourceSansPro-Semibold.ttf.woff new file mode 100644 index 0000000000000000000000000000000000000000..336956fa74f77becea51e2b445f721c6600fbcf0 GIT binary patch literal 68484 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�d zm|Jx)e>)-45@Mqw`LVgTJDSs2_~~I6V^%_5F%}5GOr>xwFGH0yMd+ zEm6^_M4h6wm#9vu%}Y_K&3yLSYnvZ=m)vq%_Y(Ij^aoORFGq)G7db;7L}J}msgsIm zyT7MCrGn~kRk+IWYp+Fn|5VIo#W1do+64FTf64i|6qn@M&kYij*&^?PCfGqx=$-he zdXqG(1!Xhdr!o0sVP_^DEIY?S`|HW6vR8;Cf;RPOiIyKkhs&8%Qix`KuAz9zkseKj zD*1H2FC;gY2c0;M-bL$FS^eM|W~(pr17$!T2PHn%>cp zsF;wrTYbGsnBW^HPJEW;UqpAJcS6}XPxHxYxo?p=`q3@iS^g6szqkiAY%+&hjL6aA zVzsY+Hl0#wy@{AVo;=Op;u^@Ius;+VtllX}4u;m+}Eteze~G_)QNeyu|Kb(6Rr zPa^7%r*1}T?ezeiKo5F9&=coro>e`j6Q3nOZ$Tevoh5*u3|~Lao#XD~F~XgHLc-8T zxcj&S!$@iTH#}ZJe?EyGCmGB!&$NVR^=e(v3A(~t@+VK`zq99Eu?OD6&Jfk0{8NhZ z8d^S47aY38hp)}ud1vmW2V(Eq^R6h>IZ!{k7s|(Zl3x*iew5%)4|+GjX?{f$#-aW+ z_Z{RyaT2jWuh!(HEDU1$>8DYA53QG#43Pl!KIsVzL z%JJVg-`6UKez0YIf8AWh