├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── core
├── dbUtil
│ └── dbUtil.go
├── exec
│ └── exec.go
└── job
│ └── job.go
├── db
└── coot.db
├── error
└── error.go
├── glide.lock
├── glide.yaml
├── images
├── coot.png
├── help.png
├── plug.png
├── run.png
├── task.png
└── wechat.jpg
├── logs
└── coot.log
├── main.go
├── scripts
├── 01c1c48dc4cedff923641cfd021f6c27.sh
├── 0a8afe43978bf82b1924f1413347fa00.sh
├── 14f77f68fb0ec0c8e126b5bfc457fb30.sh
├── ad878cc0a67cc5313ff9ebc64469a72d.py
├── ba68dba63341bb81b1f786d138f933a4.sh
└── c71769cb7f2d6ed7c27a4585ad1615e4.sh
├── static
├── css
│ ├── bootstrap-flex.css
│ ├── bootstrap-flex.css.map
│ ├── bootstrap-grid.css
│ ├── bootstrap-grid.css.map
│ ├── bootstrap-reboot.css
│ ├── bootstrap-reboot.css.map
│ ├── chartist.css
│ ├── chartist.css.map
│ ├── style.css
│ ├── style.css.map
│ ├── tables.stack-mixin.css
│ ├── tables.stack-mixin.css.map
│ ├── tablesaw.stackonly.css
│ ├── tablesaw.stackonly.css.map
│ ├── weather-icons-wind.css
│ ├── weather-icons-wind.css.map
│ ├── weather-icons-wind.min.css
│ ├── weather-icons-wind.min.css.map
│ ├── weather-icons.css
│ └── weather-icons.css.map
├── favicon.ico
├── fonts
│ ├── FontAwesome.otf
│ ├── Material-Design-Iconic-Font.eot
│ ├── Material-Design-Iconic-Font.svg
│ ├── Material-Design-Iconic-Font.ttf
│ ├── Material-Design-Iconic-Font.woff
│ ├── Material-Design-Iconic-Font.woff2
│ ├── Pe-icon-7-stroke.eot
│ ├── Pe-icon-7-stroke.svg
│ ├── Pe-icon-7-stroke.ttf
│ ├── Pe-icon-7-stroke.woff
│ ├── Simple-Line-Icons.eot
│ ├── Simple-Line-Icons.svg
│ ├── Simple-Line-Icons.ttf
│ ├── Simple-Line-Icons.woff
│ ├── Simple-Line-Icons.woff2
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ ├── glyphicons-halflings-regular.woff2
│ ├── ionicons.eot
│ ├── ionicons.svg
│ ├── ionicons.ttf
│ ├── ionicons.woff
│ ├── themify.eot
│ ├── themify.svg
│ ├── themify.ttf
│ ├── themify.woff
│ ├── typicons.eot
│ ├── typicons.svg
│ ├── typicons.ttf
│ ├── typicons.woff
│ ├── weathericons-regular-webfont.eot
│ ├── weathericons-regular-webfont.svg
│ ├── weathericons-regular-webfont.ttf
│ ├── weathericons-regular-webfont.woff
│ └── weathericons-regular-webfont.woff2
├── images
│ ├── avatar.jpg
│ ├── logo.png
│ └── xy.png
├── js
│ ├── bootstrap.js
│ ├── bootstrap.min.js
│ ├── detect.js
│ ├── jquery.app.js
│ ├── jquery.core.js
│ ├── jquery.min.js
│ ├── jquery.nicescroll.js
│ ├── modernizr.min.js
│ ├── tether.min.js
│ └── waves.js
└── libs
│ ├── bootstrap-inputmask
│ └── bootstrap-inputmask.min.js
│ ├── bootstrap-sweetalert
│ ├── sweet-alert.css
│ ├── sweet-alert.js
│ ├── sweet-alert.min.js
│ └── thumbs-up.jpg
│ ├── bootstrap-tagsinput
│ ├── css
│ │ └── bootstrap-tagsinput.css
│ └── js
│ │ └── bootstrap-tagsinput.js
│ ├── clockpicker
│ ├── bootstrap-clockpicker.css
│ ├── bootstrap-clockpicker.js
│ ├── bootstrap-clockpicker.min.css
│ ├── bootstrap-clockpicker.min.js
│ ├── jquery-clockpicker.css
│ ├── jquery-clockpicker.js
│ ├── jquery-clockpicker.min.css
│ └── jquery-clockpicker.min.js
│ ├── codes
│ ├── addon
│ │ ├── comment
│ │ │ ├── comment.js
│ │ │ └── continuecomment.js
│ │ ├── dialog
│ │ │ ├── dialog.css
│ │ │ └── dialog.js
│ │ ├── display
│ │ │ ├── autorefresh.js
│ │ │ ├── fullscreen.css
│ │ │ ├── fullscreen.js
│ │ │ ├── panel.js
│ │ │ ├── placeholder.js
│ │ │ └── rulers.js
│ │ ├── edit
│ │ │ ├── closebrackets.js
│ │ │ ├── closetag.js
│ │ │ ├── continuelist.js
│ │ │ ├── matchbrackets.js
│ │ │ ├── matchtags.js
│ │ │ └── trailingspace.js
│ │ ├── fold
│ │ │ ├── brace-fold.js
│ │ │ ├── comment-fold.js
│ │ │ ├── foldcode.js
│ │ │ ├── foldgutter.css
│ │ │ ├── foldgutter.js
│ │ │ ├── indent-fold.js
│ │ │ ├── markdown-fold.js
│ │ │ └── xml-fold.js
│ │ ├── hint
│ │ │ ├── anyword-hint.js
│ │ │ ├── css-hint.js
│ │ │ ├── html-hint.js
│ │ │ ├── javascript-hint.js
│ │ │ ├── show-hint.css
│ │ │ ├── show-hint.js
│ │ │ ├── sql-hint.js
│ │ │ └── xml-hint.js
│ │ ├── lint
│ │ │ ├── coffeescript-lint.js
│ │ │ ├── css-lint.js
│ │ │ ├── html-lint.js
│ │ │ ├── javascript-lint.js
│ │ │ ├── json-lint.js
│ │ │ ├── lint.css
│ │ │ ├── lint.js
│ │ │ └── yaml-lint.js
│ │ ├── merge
│ │ │ ├── merge.css
│ │ │ └── merge.js
│ │ ├── mode
│ │ │ ├── loadmode.js
│ │ │ ├── multiplex.js
│ │ │ ├── multiplex_test.js
│ │ │ ├── overlay.js
│ │ │ └── simple.js
│ │ ├── runmode
│ │ │ ├── colorize.js
│ │ │ ├── runmode-standalone.js
│ │ │ ├── runmode.js
│ │ │ └── runmode.node.js
│ │ ├── scroll
│ │ │ ├── annotatescrollbar.js
│ │ │ ├── scrollpastend.js
│ │ │ ├── simplescrollbars.css
│ │ │ └── simplescrollbars.js
│ │ ├── search
│ │ │ ├── jump-to-line.js
│ │ │ ├── match-highlighter.js
│ │ │ ├── matchesonscrollbar.css
│ │ │ ├── matchesonscrollbar.js
│ │ │ ├── search.js
│ │ │ └── searchcursor.js
│ │ ├── selection
│ │ │ ├── active-line.js
│ │ │ ├── mark-selection.js
│ │ │ └── selection-pointer.js
│ │ ├── tern
│ │ │ ├── tern.css
│ │ │ ├── tern.js
│ │ │ └── worker.js
│ │ └── wrap
│ │ │ └── hardwrap.js
│ ├── keymap
│ │ ├── emacs.js
│ │ ├── sublime.js
│ │ └── vim.js
│ ├── lib
│ │ ├── codemirror.css
│ │ └── codemirror.js
│ ├── mode
│ │ ├── apl
│ │ │ ├── apl.js
│ │ │ └── index.html
│ │ ├── asciiarmor
│ │ │ ├── asciiarmor.js
│ │ │ └── index.html
│ │ ├── asn.1
│ │ │ ├── asn.1.js
│ │ │ └── index.html
│ │ ├── asterisk
│ │ │ ├── asterisk.js
│ │ │ └── index.html
│ │ ├── brainfuck
│ │ │ ├── brainfuck.js
│ │ │ └── index.html
│ │ ├── clike
│ │ │ ├── clike.js
│ │ │ ├── index.html
│ │ │ ├── scala.html
│ │ │ └── test.js
│ │ ├── clojure
│ │ │ ├── clojure.js
│ │ │ └── index.html
│ │ ├── cmake
│ │ │ ├── cmake.js
│ │ │ └── index.html
│ │ ├── cobol
│ │ │ ├── cobol.js
│ │ │ └── index.html
│ │ ├── coffeescript
│ │ │ ├── coffeescript.js
│ │ │ └── index.html
│ │ ├── commonlisp
│ │ │ ├── commonlisp.js
│ │ │ └── index.html
│ │ ├── crystal
│ │ │ ├── crystal.js
│ │ │ └── index.html
│ │ ├── css
│ │ │ ├── css.js
│ │ │ ├── gss.html
│ │ │ ├── gss_test.js
│ │ │ ├── index.html
│ │ │ ├── less.html
│ │ │ ├── less_test.js
│ │ │ ├── scss.html
│ │ │ ├── scss_test.js
│ │ │ └── test.js
│ │ ├── cypher
│ │ │ ├── cypher.js
│ │ │ ├── index.html
│ │ │ └── test.js
│ │ ├── d
│ │ │ ├── d.js
│ │ │ └── index.html
│ │ ├── dart
│ │ │ ├── dart.js
│ │ │ └── index.html
│ │ ├── diff
│ │ │ ├── diff.js
│ │ │ └── index.html
│ │ ├── django
│ │ │ ├── django.js
│ │ │ └── index.html
│ │ ├── dockerfile
│ │ │ ├── dockerfile.js
│ │ │ └── index.html
│ │ ├── dtd
│ │ │ ├── dtd.js
│ │ │ └── index.html
│ │ ├── dylan
│ │ │ ├── dylan.js
│ │ │ ├── index.html
│ │ │ └── test.js
│ │ ├── ebnf
│ │ │ ├── ebnf.js
│ │ │ └── index.html
│ │ ├── ecl
│ │ │ ├── ecl.js
│ │ │ └── index.html
│ │ ├── eiffel
│ │ │ ├── eiffel.js
│ │ │ └── index.html
│ │ ├── elm
│ │ │ ├── elm.js
│ │ │ └── index.html
│ │ ├── erlang
│ │ │ ├── erlang.js
│ │ │ └── index.html
│ │ ├── factor
│ │ │ ├── factor.js
│ │ │ └── index.html
│ │ ├── fcl
│ │ │ ├── fcl.js
│ │ │ └── index.html
│ │ ├── forth
│ │ │ ├── forth.js
│ │ │ └── index.html
│ │ ├── fortran
│ │ │ ├── fortran.js
│ │ │ └── index.html
│ │ ├── gas
│ │ │ ├── gas.js
│ │ │ └── index.html
│ │ ├── gfm
│ │ │ ├── gfm.js
│ │ │ ├── index.html
│ │ │ └── test.js
│ │ ├── gherkin
│ │ │ ├── gherkin.js
│ │ │ └── index.html
│ │ ├── go
│ │ │ ├── go.js
│ │ │ └── index.html
│ │ ├── groovy
│ │ │ ├── groovy.js
│ │ │ └── index.html
│ │ ├── haml
│ │ │ ├── haml.js
│ │ │ ├── index.html
│ │ │ └── test.js
│ │ ├── handlebars
│ │ │ ├── handlebars.js
│ │ │ └── index.html
│ │ ├── haskell-literate
│ │ │ ├── haskell-literate.js
│ │ │ └── index.html
│ │ ├── haskell
│ │ │ ├── haskell.js
│ │ │ └── index.html
│ │ ├── haxe
│ │ │ ├── haxe.js
│ │ │ └── index.html
│ │ ├── htmlembedded
│ │ │ ├── htmlembedded.js
│ │ │ └── index.html
│ │ ├── htmlmixed
│ │ │ ├── htmlmixed.js
│ │ │ └── index.html
│ │ ├── http
│ │ │ ├── http.js
│ │ │ └── index.html
│ │ ├── idl
│ │ │ ├── idl.js
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── javascript
│ │ │ ├── index.html
│ │ │ ├── javascript.js
│ │ │ ├── json-ld.html
│ │ │ ├── test.js
│ │ │ └── typescript.html
│ │ ├── jinja2
│ │ │ ├── index.html
│ │ │ └── jinja2.js
│ │ ├── jsx
│ │ │ ├── index.html
│ │ │ ├── jsx.js
│ │ │ └── test.js
│ │ ├── julia
│ │ │ ├── index.html
│ │ │ └── julia.js
│ │ ├── livescript
│ │ │ ├── index.html
│ │ │ └── livescript.js
│ │ ├── lua
│ │ │ ├── index.html
│ │ │ └── lua.js
│ │ ├── markdown
│ │ │ ├── index.html
│ │ │ ├── markdown.js
│ │ │ └── test.js
│ │ ├── mathematica
│ │ │ ├── index.html
│ │ │ └── mathematica.js
│ │ ├── mbox
│ │ │ ├── index.html
│ │ │ └── mbox.js
│ │ ├── meta.js
│ │ ├── mirc
│ │ │ ├── index.html
│ │ │ └── mirc.js
│ │ ├── mllike
│ │ │ ├── index.html
│ │ │ └── mllike.js
│ │ ├── modelica
│ │ │ ├── index.html
│ │ │ └── modelica.js
│ │ ├── mscgen
│ │ │ ├── index.html
│ │ │ ├── mscgen.js
│ │ │ ├── mscgen_test.js
│ │ │ ├── msgenny_test.js
│ │ │ └── xu_test.js
│ │ ├── mumps
│ │ │ ├── index.html
│ │ │ └── mumps.js
│ │ ├── nginx
│ │ │ ├── index.html
│ │ │ └── nginx.js
│ │ ├── nsis
│ │ │ ├── index.html
│ │ │ └── nsis.js
│ │ ├── ntriples
│ │ │ ├── index.html
│ │ │ └── ntriples.js
│ │ ├── octave
│ │ │ ├── index.html
│ │ │ └── octave.js
│ │ ├── oz
│ │ │ ├── index.html
│ │ │ └── oz.js
│ │ ├── pascal
│ │ │ ├── index.html
│ │ │ └── pascal.js
│ │ ├── pegjs
│ │ │ ├── index.html
│ │ │ └── pegjs.js
│ │ ├── perl
│ │ │ ├── index.html
│ │ │ └── perl.js
│ │ ├── php
│ │ │ ├── index.html
│ │ │ ├── php.js
│ │ │ └── test.js
│ │ ├── pig
│ │ │ ├── index.html
│ │ │ └── pig.js
│ │ ├── powershell
│ │ │ ├── index.html
│ │ │ ├── powershell.js
│ │ │ └── test.js
│ │ ├── properties
│ │ │ ├── index.html
│ │ │ └── properties.js
│ │ ├── protobuf
│ │ │ ├── index.html
│ │ │ └── protobuf.js
│ │ ├── pug
│ │ │ ├── index.html
│ │ │ └── pug.js
│ │ ├── puppet
│ │ │ ├── index.html
│ │ │ └── puppet.js
│ │ ├── python
│ │ │ ├── index.html
│ │ │ ├── python.js
│ │ │ └── test.js
│ │ ├── q
│ │ │ ├── index.html
│ │ │ └── q.js
│ │ ├── r
│ │ │ ├── index.html
│ │ │ └── r.js
│ │ ├── rpm
│ │ │ ├── changes
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ └── rpm.js
│ │ ├── rst
│ │ │ ├── index.html
│ │ │ └── rst.js
│ │ ├── ruby
│ │ │ ├── index.html
│ │ │ ├── ruby.js
│ │ │ └── test.js
│ │ ├── rust
│ │ │ ├── index.html
│ │ │ ├── rust.js
│ │ │ └── test.js
│ │ ├── sas
│ │ │ ├── index.html
│ │ │ └── sas.js
│ │ ├── sass
│ │ │ ├── index.html
│ │ │ └── sass.js
│ │ ├── scheme
│ │ │ ├── index.html
│ │ │ └── scheme.js
│ │ ├── shell
│ │ │ ├── index.html
│ │ │ ├── shell.js
│ │ │ └── test.js
│ │ ├── sieve
│ │ │ ├── index.html
│ │ │ └── sieve.js
│ │ ├── slim
│ │ │ ├── index.html
│ │ │ ├── slim.js
│ │ │ └── test.js
│ │ ├── smalltalk
│ │ │ ├── index.html
│ │ │ └── smalltalk.js
│ │ ├── smarty
│ │ │ ├── index.html
│ │ │ └── smarty.js
│ │ ├── solr
│ │ │ ├── index.html
│ │ │ └── solr.js
│ │ ├── soy
│ │ │ ├── index.html
│ │ │ ├── soy.js
│ │ │ └── test.js
│ │ ├── sparql
│ │ │ ├── index.html
│ │ │ └── sparql.js
│ │ ├── spreadsheet
│ │ │ ├── index.html
│ │ │ └── spreadsheet.js
│ │ ├── sql
│ │ │ ├── index.html
│ │ │ └── sql.js
│ │ ├── stex
│ │ │ ├── index.html
│ │ │ ├── stex.js
│ │ │ └── test.js
│ │ ├── stylus
│ │ │ ├── index.html
│ │ │ └── stylus.js
│ │ ├── swift
│ │ │ ├── index.html
│ │ │ ├── swift.js
│ │ │ └── test.js
│ │ ├── tcl
│ │ │ ├── index.html
│ │ │ └── tcl.js
│ │ ├── textile
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── textile.js
│ │ ├── tiddlywiki
│ │ │ ├── index.html
│ │ │ ├── tiddlywiki.css
│ │ │ └── tiddlywiki.js
│ │ ├── tiki
│ │ │ ├── index.html
│ │ │ ├── tiki.css
│ │ │ └── tiki.js
│ │ ├── toml
│ │ │ ├── index.html
│ │ │ └── toml.js
│ │ ├── tornado
│ │ │ ├── index.html
│ │ │ └── tornado.js
│ │ ├── troff
│ │ │ ├── index.html
│ │ │ └── troff.js
│ │ ├── ttcn-cfg
│ │ │ ├── index.html
│ │ │ └── ttcn-cfg.js
│ │ ├── ttcn
│ │ │ ├── index.html
│ │ │ └── ttcn.js
│ │ ├── turtle
│ │ │ ├── index.html
│ │ │ └── turtle.js
│ │ ├── twig
│ │ │ ├── index.html
│ │ │ └── twig.js
│ │ ├── vb
│ │ │ ├── index.html
│ │ │ └── vb.js
│ │ ├── vbscript
│ │ │ ├── index.html
│ │ │ └── vbscript.js
│ │ ├── velocity
│ │ │ ├── index.html
│ │ │ └── velocity.js
│ │ ├── verilog
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── verilog.js
│ │ ├── vhdl
│ │ │ ├── index.html
│ │ │ └── vhdl.js
│ │ ├── vue
│ │ │ ├── index.html
│ │ │ └── vue.js
│ │ ├── webidl
│ │ │ ├── index.html
│ │ │ └── webidl.js
│ │ ├── xml
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xml.js
│ │ ├── xquery
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xquery.js
│ │ ├── yacas
│ │ │ ├── index.html
│ │ │ └── yacas.js
│ │ ├── yaml-frontmatter
│ │ │ ├── index.html
│ │ │ └── yaml-frontmatter.js
│ │ ├── yaml
│ │ │ ├── index.html
│ │ │ └── yaml.js
│ │ └── z80
│ │ │ ├── index.html
│ │ │ └── z80.js
│ └── theme
│ │ ├── 3024-day.css
│ │ ├── 3024-night.css
│ │ ├── abcdef.css
│ │ ├── ambiance-mobile.css
│ │ ├── ambiance.css
│ │ ├── base16-dark.css
│ │ ├── base16-light.css
│ │ ├── bespin.css
│ │ ├── blackboard.css
│ │ ├── cobalt.css
│ │ ├── colorforth.css
│ │ ├── dracula.css
│ │ ├── duotone-dark.css
│ │ ├── duotone-light.css
│ │ ├── eclipse.css
│ │ ├── elegant.css
│ │ ├── erlang-dark.css
│ │ ├── hopscotch.css
│ │ ├── icecoder.css
│ │ ├── isotope.css
│ │ ├── lesser-dark.css
│ │ ├── liquibyte.css
│ │ ├── material.css
│ │ ├── mbo.css
│ │ ├── mdn-like.css
│ │ ├── midnight.css
│ │ ├── monokai.css
│ │ ├── neat.css
│ │ ├── neo.css
│ │ ├── night.css
│ │ ├── panda-syntax.css
│ │ ├── paraiso-dark.css
│ │ ├── paraiso-light.css
│ │ ├── pastel-on-dark.css
│ │ ├── railscasts.css
│ │ ├── rubyblue.css
│ │ ├── seti.css
│ │ ├── solarized.css
│ │ ├── the-matrix.css
│ │ ├── tomorrow-night-bright.css
│ │ ├── tomorrow-night-eighties.css
│ │ ├── ttcn.css
│ │ ├── twilight.css
│ │ ├── vibrant-ink.css
│ │ ├── xq-dark.css
│ │ ├── xq-light.css
│ │ ├── yeti.css
│ │ └── zenburn.css
│ ├── counterup
│ └── jquery.counterup.min.js
│ ├── echarts
│ ├── echarts.js
│ ├── echarts4.min.js
│ └── map
│ │ ├── baise.js
│ │ ├── baise.json
│ │ ├── china.js
│ │ ├── china.json
│ │ ├── guangxi.js
│ │ ├── guangxi.json
│ │ ├── world.js
│ │ └── world.json
│ ├── switchery
│ ├── switchery.min.css
│ └── switchery.min.js
│ └── waypoints
│ └── lib
│ ├── jquery.waypoints.js
│ ├── jquery.waypoints.min.js
│ ├── noframework.waypoints.js
│ ├── noframework.waypoints.min.js
│ ├── shortcuts
│ ├── infinite.js
│ ├── infinite.min.js
│ ├── inview.js
│ ├── inview.min.js
│ ├── sticky.js
│ └── sticky.min.js
│ ├── waypoints.debug.js
│ ├── zepto.waypoints.js
│ └── zepto.waypoints.min.js
├── utils
├── color
│ └── color.go
├── file
│ └── file.go
├── md5
│ └── md5.go
├── send
│ ├── alterover.go
│ ├── fangtang.go
│ ├── gomail.go
│ └── pushbullet.go
└── setting
│ └── setting.go
├── view
├── dashboard
│ └── view.go
├── login
│ └── view.go
├── plug
│ └── view.go
├── report
│ └── view.go
├── setting
│ └── view.go
├── task
│ └── view.go
└── url.go
└── web
├── dashboard.html
├── footer.html
├── header.html
├── login.html
├── plugs.html
├── report.html
├── setting.html
├── task.html
├── taskAdd.html
└── taskDetail.html
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.js linguist-language=Go
2 | *.css linguist-language=Go
3 | *.html linguist-language=Go
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Binaries for programs and plugins
2 | *.exe
3 | *.exe~
4 | *.dll
5 | *.so
6 | *.dylib
7 |
8 | # Test binary, build with `go test -c`
9 | *.test
10 |
11 | # Output of the go coverage tool, specifically when used with LiteIDE
12 | *.out
13 |
14 | .idea
15 | vendor
16 | .DS_Store
17 | */.DS_Store
18 | */.idea/%
19 | */vendor/%
20 | logs/
21 | scripts/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 野虎团队
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # 介绍
4 |
5 | **Coot** 是一款 **IFTTT** 自动化神器,基于 **Golang** 开发让你体验不同的极客生活。
6 |
7 | - **快速安装** 基于 **Golang** + **SqlLite** 开发,用户可在 **Linux** 和 **Mac** 上快速部署
8 | - **两种语言** 支持 **Python** + **Shell** 两种语言 让用户更多的选择
9 | - **插件库** 基于 **Github** 实现云插件库,用户无需编写代码直接使用
10 |
11 | # 地址
12 |
13 | - 官网:https://coot.io
14 | - Github:https://github.com/yehux/Coot
15 | - 下载地址:https://github.com/yehux/Coot/releases
16 | - 插件库地址:https://github.com/yehux/Coot-Plugs
17 |
18 | # 部署说明
19 |
20 | > 下载软件到 **Linux** or **Mac**下解压
21 |
22 | 输入
23 |
24 | ```
25 | ./coot help
26 | ```
27 |
28 | 
29 |
30 | 运行
31 |
32 | ```
33 | ./coot run
34 |
35 | or
36 |
37 | ./coot run 0.0.0.0:9000
38 | ```
39 |
40 | 
41 |
42 | # 使用截图
43 |
44 | 
45 | 
46 |
47 |
48 | # 注意事项
49 |
50 | - 邮箱 **SMTP** 配置后需要开启方可使用
51 | - 创建任务需要开启邮箱通知填写接收邮箱(可写多个)
52 | - 编写脚本 输出结果 0&&测试 ,没有0&& 不会进行通知
53 | - 服务重启后,所有任务都会变成停止状态
54 | - 目前无登录功能,对互联网开放请自设置安全限制
55 |
56 | # Todo
57 |
58 | - [x] 任务中心
59 | - [x] 任务添加
60 | - [x] 任务删除
61 | - [x] 任务执行
62 | - [x] 任务暂停
63 | - [x] 支持 Shell+Python
64 | - [x] 支持 秒
65 | - [x] 支持 分钟
66 | - [x] 支持 小时
67 | - [x] 支持每天指定时间
68 | - [x] 支持每月指定时间
69 | - [x] 插件仓库
70 | - [x] 插件列表
71 | - [x] 插件使用
72 | - [x] 消息通知
73 | - [x] 仪表盘统计
74 | - [x] 日记记录
75 | - [x] 启动命令行
76 | - [x] 自定义 ip 端口
77 | - [x] 任务详情
78 | - [x] 任务修改
79 | - [x] 支持更多的通知方式
80 | - [x] 是否启用登录
81 | - [ ] 平台统计
82 | - [ ] 手机版本优化
83 |
84 | # 关于
85 |
86 | - 出品:野虎团队
87 | - URL:https://yehu.io
88 |
89 | # 反馈群:
90 |
91 | 加微信拉人,请备注 **野虎**
92 |
93 | 
94 |
--------------------------------------------------------------------------------
/core/exec/exec.go:
--------------------------------------------------------------------------------
1 | package exec
2 |
3 | import (
4 | "bytes"
5 | "os/exec"
6 | )
7 |
8 | func Execute(shell string) (string, error) {
9 | cmd := exec.Command("/bin/bash", "-c", shell)
10 | var out bytes.Buffer
11 |
12 | cmd.Stdout = &out
13 | err := cmd.Run()
14 | if err != nil {
15 | return "", err
16 | }
17 | return out.String(), nil
18 | }
19 |
--------------------------------------------------------------------------------
/db/coot.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/db/coot.db
--------------------------------------------------------------------------------
/error/error.go:
--------------------------------------------------------------------------------
1 | package error
2 |
3 | import (
4 | "fmt"
5 | "github.com/gin-gonic/gin"
6 | )
7 |
8 | func Check(e error, tips string) {
9 | if e != nil {
10 | panic(e)
11 | fmt.Println(tips)
12 | }
13 | }
14 |
15 | func ErrSuccess(data []map[string]interface{}) map[string]interface{} {
16 | return gin.H{
17 | "code": 200,
18 | "msg": "success",
19 | "data": data,
20 | }
21 | }
22 |
23 | func ErrSuccessNull() map[string]interface{} {
24 | return gin.H{
25 | "code": 200,
26 | "msg": "success",
27 | }
28 | }
29 |
30 | func ErrFailFileType() map[string]interface{} {
31 | return gin.H{
32 | "code": 1001,
33 | "msg": "异常文件格式",
34 | }
35 | }
36 |
37 | func ErrLoginFail() map[string]interface{} {
38 | return gin.H{
39 | "code": 1002,
40 | "msg": "账号密码不正确",
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/glide.lock:
--------------------------------------------------------------------------------
1 | hash: 1c336272b90f9edea5b35fd10f7efd140e1395506011ffc852371681cd3284cf
2 | updated: 2019-07-15T10:13:57.425894+08:00
3 | imports:
4 | - name: github.com/domgoer/gotask
5 | version: 64ba404b715205fccced8930040bb84967e3086b
6 | - name: github.com/gin-contrib/sse
7 | version: 54d8467d122d380a14768b6b4e5cd7ca4755938f
8 | - name: github.com/gin-gonic/gin
9 | version: b75d67cd51eb53c3c3a2fc406524c940021ffbda
10 | subpackages:
11 | - binding
12 | - internal/json
13 | - render
14 | - name: github.com/golang/protobuf
15 | version: 6c65a5562fc06764971b7c5d05c76c75e84bdbf7
16 | subpackages:
17 | - proto
18 | - name: github.com/json-iterator/go
19 | version: 27518f6661eba504be5a7a9a9f6d9460d892ade3
20 | - name: github.com/mattn/go-isatty
21 | version: da60ac76bf7019a8b005f8dd1ad9d1a0e6434155
22 | - name: github.com/mattn/go-sqlite3
23 | version: c7c4067b79cc51e6dfdcef5c702e74b1e0fa7c75
24 | - name: github.com/modern-go/concurrent
25 | version: bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94
26 | - name: github.com/modern-go/reflect2
27 | version: 94122c33edd36123c84d5368cfb2b69df93a0ec8
28 | - name: github.com/satori/go.uuid
29 | version: f58768cc1a7a7e77a3bd49e98cdd21419399b6a3
30 | - name: github.com/ugorji/go
31 | version: 02994ffebd8e7ef482130d13b570c8be0968b790
32 | subpackages:
33 | - codec
34 | - name: golang.org/x/sys
35 | version: 04f50cda93cbb67f2afa353c52f342100e80e625
36 | subpackages:
37 | - unix
38 | - name: gopkg.in/alexcesaro/quotedprintable.v3
39 | version: 2caba252f4dc53eaf6b553000885530023f54623
40 | - name: gopkg.in/go-playground/validator.v8
41 | version: 5f1438d3fca68893a817e4a66806cea46a9e4ebf
42 | - name: gopkg.in/gomail.v2
43 | version: 81ebce5c23dfd25c6c67194b37d3dd3f338c98b1
44 | - name: gopkg.in/yaml.v2
45 | version: 51d6538a90f86fe93ac480b35f37b2be17fef232
46 | testImports: []
47 |
--------------------------------------------------------------------------------
/glide.yaml:
--------------------------------------------------------------------------------
1 | package: Coot
2 | import:
3 | - package: github.com/domgoer/gotask
4 | version: ~1.2.0
5 | - package: github.com/gin-gonic/gin
6 | version: ~1.4.0
7 | - package: github.com/mattn/go-sqlite3
8 | version: ~1.10.0
9 | - package: gopkg.in/queue.v2
10 | version: ~2.0.0
11 |
--------------------------------------------------------------------------------
/images/coot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/coot.png
--------------------------------------------------------------------------------
/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/help.png
--------------------------------------------------------------------------------
/images/plug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/plug.png
--------------------------------------------------------------------------------
/images/run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/run.png
--------------------------------------------------------------------------------
/images/task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/task.png
--------------------------------------------------------------------------------
/images/wechat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/images/wechat.jpg
--------------------------------------------------------------------------------
/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "Coot/utils/setting"
5 | "fmt"
6 | "os"
7 | )
8 |
9 | func main() {
10 | setting.RunWeb("localhost:9000")
11 | args := os.Args
12 | if args == nil || len(args) < 2 {
13 | setting.Help()
14 | } else {
15 | if args[1] == "help" || args[1] == "--help" {
16 | setting.Help()
17 | } else if args[1] == "init" || args[1] == "--init" {
18 | setting.Init()
19 | } else if args[1] == "version" || args[1] == "--version" {
20 | fmt.Println("0.1")
21 | } else if args[1] == "run" || args[1] == "--run" {
22 | if len(args) >= 3 {
23 | setting.RunWeb(args[2])
24 | } else {
25 | setting.RunWeb("localhost:9000")
26 | }
27 | } else {
28 | setting.Help()
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/scripts/01c1c48dc4cedff923641cfd021f6c27.sh:
--------------------------------------------------------------------------------
1 | echo "0&&该上班了!"
--------------------------------------------------------------------------------
/scripts/0a8afe43978bf82b1924f1413347fa00.sh:
--------------------------------------------------------------------------------
1 | echo "0&&该下班了!"
--------------------------------------------------------------------------------
/scripts/14f77f68fb0ec0c8e126b5bfc457fb30.sh:
--------------------------------------------------------------------------------
1 | echo "0&&该下班了!"
--------------------------------------------------------------------------------
/scripts/ad878cc0a67cc5313ff9ebc64469a72d.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # 本脚本支持 python2 和 python 3
3 | # 每天随机三个食物
4 |
5 | import random
6 |
7 | food_list = ["烤鱼", "兰州拉面", "西部马华", "重庆小面", "春饼", "烧烤", "日料"]
8 |
9 | set_list = set()
10 |
11 | while True:
12 | index = random.randint(1, len(food_list))
13 |
14 | set_list.add(food_list[index - 1])
15 |
16 | if len(set_list) >= 3:
17 | break
18 |
19 | print('0&&' + ' - '.join(set_list))
--------------------------------------------------------------------------------
/scripts/ba68dba63341bb81b1f786d138f933a4.sh:
--------------------------------------------------------------------------------
1 | echo "0&&该下班了!"
--------------------------------------------------------------------------------
/scripts/c71769cb7f2d6ed7c27a4585ad1615e4.sh:
--------------------------------------------------------------------------------
1 | echo "0&&该上班了!"
--------------------------------------------------------------------------------
/static/css/tables.stack-mixin.css:
--------------------------------------------------------------------------------
1 | /* Tablesaw Sass Mixins */
2 |
3 | /*# sourceMappingURL=tables.stack-mixin.css.map */
4 |
--------------------------------------------------------------------------------
/static/css/tables.stack-mixin.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "AAAA,0BAA0B",
4 | "sources": ["../plugins/tablesaw/src/tables.stack-mixin.scss"],
5 | "names": [],
6 | "file": "tables.stack-mixin.css"
7 | }
--------------------------------------------------------------------------------
/static/css/tablesaw.stackonly.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "AAAA;;iDAEiD;AACjD;;iDAEiD;AAEjD,cAAe;EACb,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;;AAGb,SAAU;EACR,eAAe,EAAE,QAAQ;EACzB,KAAK,EAAE,IAAI;;AAGb,eAAe;AAEf,SAAU;EACR,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AAGZ;YACa;EACX,UAAU,EAAE,UAAU;EACtB,OAAO,EAAE,SAAS;;AAGpB,iCAAkC;EAChC,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;;AAGtB,qDAAqD;AAErD,wBAAyB;EACvB,aAAa,EAAE,iBAAiB;;AAGlC;uCACwC;EACtC,OAAO,EAAE,IAAI;;AAGf,+EAA+E;AAE/E,eAAgB;EACd,mDAAmD;EAEnD;oBACmB;IACjB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,KAAK;;EAGhB,kBAAmB;IACjB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,SAAS;;EAGpB,gDAAgD;EAEhD;yCACwC;IACtC,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,YAAY;;EAGvB,+HAA+H;EAE/H;6CAC4C;IAC1C,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;;EAGhB,oBAAqB;IACnB,OAAO,EAAE,KAAK;;EAGhB,uCAAuC;EAEvC,8BAA+B;IAC7B,UAAU,EAAE,IAAI;;EAGlB,uCAAuC;EAEvC,8CAA+C;IAC7C,OAAO,EAAE,eAAe",
4 | "sources": ["../plugins/tablesaw/dist/stackonly/tablesaw.stackonly.scss"],
5 | "names": [],
6 | "file": "tablesaw.stackonly.css"
7 | }
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/favicon.ico
--------------------------------------------------------------------------------
/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/fonts/Material-Design-Iconic-Font.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Material-Design-Iconic-Font.eot
--------------------------------------------------------------------------------
/static/fonts/Material-Design-Iconic-Font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Material-Design-Iconic-Font.ttf
--------------------------------------------------------------------------------
/static/fonts/Material-Design-Iconic-Font.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Material-Design-Iconic-Font.woff
--------------------------------------------------------------------------------
/static/fonts/Material-Design-Iconic-Font.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Material-Design-Iconic-Font.woff2
--------------------------------------------------------------------------------
/static/fonts/Pe-icon-7-stroke.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Pe-icon-7-stroke.eot
--------------------------------------------------------------------------------
/static/fonts/Pe-icon-7-stroke.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Pe-icon-7-stroke.ttf
--------------------------------------------------------------------------------
/static/fonts/Pe-icon-7-stroke.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Pe-icon-7-stroke.woff
--------------------------------------------------------------------------------
/static/fonts/Simple-Line-Icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Simple-Line-Icons.eot
--------------------------------------------------------------------------------
/static/fonts/Simple-Line-Icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Simple-Line-Icons.ttf
--------------------------------------------------------------------------------
/static/fonts/Simple-Line-Icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Simple-Line-Icons.woff
--------------------------------------------------------------------------------
/static/fonts/Simple-Line-Icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/Simple-Line-Icons.woff2
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/static/fonts/ionicons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/ionicons.eot
--------------------------------------------------------------------------------
/static/fonts/ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/ionicons.ttf
--------------------------------------------------------------------------------
/static/fonts/ionicons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/ionicons.woff
--------------------------------------------------------------------------------
/static/fonts/themify.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/themify.eot
--------------------------------------------------------------------------------
/static/fonts/themify.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/themify.ttf
--------------------------------------------------------------------------------
/static/fonts/themify.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/themify.woff
--------------------------------------------------------------------------------
/static/fonts/typicons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/typicons.eot
--------------------------------------------------------------------------------
/static/fonts/typicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/typicons.ttf
--------------------------------------------------------------------------------
/static/fonts/typicons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/typicons.woff
--------------------------------------------------------------------------------
/static/fonts/weathericons-regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/weathericons-regular-webfont.eot
--------------------------------------------------------------------------------
/static/fonts/weathericons-regular-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/weathericons-regular-webfont.ttf
--------------------------------------------------------------------------------
/static/fonts/weathericons-regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/weathericons-regular-webfont.woff
--------------------------------------------------------------------------------
/static/fonts/weathericons-regular-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/fonts/weathericons-regular-webfont.woff2
--------------------------------------------------------------------------------
/static/images/avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/images/avatar.jpg
--------------------------------------------------------------------------------
/static/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/images/logo.png
--------------------------------------------------------------------------------
/static/images/xy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/images/xy.png
--------------------------------------------------------------------------------
/static/js/detect.js:
--------------------------------------------------------------------------------
1 | /**
2 | * jQuery.browser.mobile (http://detectmobilebrowser.com/)
3 | *
4 | * jQuery.browser.mobile will be true if the browser is a mobile device
5 | *
6 | **/
7 | (function(a){(jQuery.browser=jQuery.browser||{}).mobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))})(navigator.userAgent||navigator.vendor||window.opera);
--------------------------------------------------------------------------------
/static/js/jquery.app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Theme: Adminto Admin Template
3 | * Author: Coderthemes
4 | * Module/App: Main Js
5 | */
6 |
7 |
8 | !function($) {
9 | "use strict";
10 |
11 | var Navbar = function() {};
12 |
13 | //navbar - topbar
14 | Navbar.prototype.init = function () {
15 | //toggle
16 | $('.navbar-toggle').on('click', function (event) {
17 | $(this).toggleClass('open');
18 | $('#navigation').slideToggle(400);
19 | });
20 |
21 | $('.navigation-menu>li').slice(-1).addClass('last-elements');
22 |
23 | $('.navigation-menu li.has-submenu a[href="#"]').on('click', function (e) {
24 | if ($(window).width() < 992) {
25 | e.preventDefault();
26 | $(this).parent('li').toggleClass('open').find('.submenu:first').toggleClass('open');
27 | }
28 | });
29 |
30 | $(".right-bar-toggle").click(function(){
31 | $(".right-bar").toggle();
32 | $('.wrapper').toggleClass('right-bar-enabled');
33 | });
34 | },
35 | //init
36 | $.Navbar = new Navbar, $.Navbar.Constructor = Navbar
37 | }(window.jQuery),
38 |
39 | //initializing
40 | function($) {
41 | "use strict";
42 | $.Navbar.init()
43 | }(window.jQuery);
44 |
45 |
46 | // === following js will activate the menu in left side bar based on url ====
47 | $(document).ready(function () {
48 | $(".navigation-menu a").each(function () {
49 | if (this.href == window.location.href) {
50 | $(this).parent().addClass("active"); // add active to li of the current link
51 | $(this).parent().parent().parent().addClass("active"); // add active class to an anchor
52 | $(this).parent().parent().parent().parent().parent().addClass("active"); // add active class to an anchor
53 | }
54 | });
55 | });
56 |
57 |
--------------------------------------------------------------------------------
/static/libs/bootstrap-sweetalert/thumbs-up.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yehux/Coot/3d25f18171114f294fc22ce3f33def4fd0e02a67/static/libs/bootstrap-sweetalert/thumbs-up.jpg
--------------------------------------------------------------------------------
/static/libs/bootstrap-tagsinput/css/bootstrap-tagsinput.css:
--------------------------------------------------------------------------------
1 | .bootstrap-tagsinput {
2 | background-color: #fff;
3 | border: 1px solid #ccc;
4 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
5 | display: inline-block;
6 | padding: 4px 6px;
7 | margin-bottom: 10px;
8 | color: #555;
9 | vertical-align: middle;
10 | border-radius: 4px;
11 | max-width: 100%;
12 | line-height: 22px;
13 | cursor: text;
14 | }
15 | .bootstrap-tagsinput input {
16 | border: none;
17 | box-shadow: none;
18 | outline: none;
19 | background-color: transparent;
20 | padding: 0;
21 | margin: 0;
22 | width: auto !important;
23 | max-width: inherit;
24 | }
25 | .bootstrap-tagsinput input:focus {
26 | border: none;
27 | box-shadow: none;
28 | }
29 | .bootstrap-tagsinput .tag {
30 | margin-right: 2px;
31 | color: white;
32 | }
33 | .bootstrap-tagsinput .tag [data-role="remove"] {
34 | margin-left: 8px;
35 | cursor: pointer;
36 | }
37 | .bootstrap-tagsinput .tag [data-role="remove"]:after {
38 | content: "x";
39 | padding: 0px 2px;
40 | }
41 | .bootstrap-tagsinput .tag [data-role="remove"]:hover {
42 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
43 | }
44 | .bootstrap-tagsinput .tag [data-role="remove"]:hover:active {
45 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
46 | }
47 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/dialog/dialog.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-dialog {
2 | position: absolute;
3 | left: 0; right: 0;
4 | background: inherit;
5 | z-index: 15;
6 | padding: .1em .8em;
7 | overflow: hidden;
8 | color: inherit;
9 | }
10 |
11 | .CodeMirror-dialog-top {
12 | border-bottom: 1px solid #eee;
13 | top: 0;
14 | }
15 |
16 | .CodeMirror-dialog-bottom {
17 | border-top: 1px solid #eee;
18 | bottom: 0;
19 | }
20 |
21 | .CodeMirror-dialog input {
22 | border: none;
23 | outline: none;
24 | background: transparent;
25 | width: 20em;
26 | color: inherit;
27 | font-family: monospace;
28 | }
29 |
30 | .CodeMirror-dialog button {
31 | font-size: 70%;
32 | }
33 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/display/autorefresh.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"))
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod)
9 | else // Plain browser env
10 | mod(CodeMirror)
11 | })(function(CodeMirror) {
12 | "use strict"
13 |
14 | CodeMirror.defineOption("autoRefresh", false, function(cm, val) {
15 | if (cm.state.autoRefresh) {
16 | stopListening(cm, cm.state.autoRefresh)
17 | cm.state.autoRefresh = null
18 | }
19 | if (val && cm.display.wrapper.offsetHeight == 0)
20 | startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
21 | })
22 |
23 | function startListening(cm, state) {
24 | function check() {
25 | if (cm.display.wrapper.offsetHeight) {
26 | stopListening(cm, state)
27 | if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
28 | cm.refresh()
29 | } else {
30 | state.timeout = setTimeout(check, state.delay)
31 | }
32 | }
33 | state.timeout = setTimeout(check, state.delay)
34 | state.hurry = function() {
35 | clearTimeout(state.timeout)
36 | state.timeout = setTimeout(check, 50)
37 | }
38 | CodeMirror.on(window, "mouseup", state.hurry)
39 | CodeMirror.on(window, "keyup", state.hurry)
40 | }
41 |
42 | function stopListening(_cm, state) {
43 | clearTimeout(state.timeout)
44 | CodeMirror.off(window, "mouseup", state.hurry)
45 | CodeMirror.off(window, "keyup", state.hurry)
46 | }
47 | });
48 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/display/fullscreen.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-fullscreen {
2 | position: fixed;
3 | top: 0; left: 0; right: 0; bottom: 0;
4 | height: auto;
5 | z-index: 9;
6 | }
7 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/display/fullscreen.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
15 | if (old == CodeMirror.Init) old = false;
16 | if (!old == !val) return;
17 | if (val) setFullscreen(cm);
18 | else setNormal(cm);
19 | });
20 |
21 | function setFullscreen(cm) {
22 | var wrap = cm.getWrapperElement();
23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
24 | width: wrap.style.width, height: wrap.style.height};
25 | wrap.style.width = "";
26 | wrap.style.height = "auto";
27 | wrap.className += " CodeMirror-fullscreen";
28 | document.documentElement.style.overflow = "hidden";
29 | cm.refresh();
30 | }
31 |
32 | function setNormal(cm) {
33 | var wrap = cm.getWrapperElement();
34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
35 | document.documentElement.style.overflow = "";
36 | var info = cm.state.fullScreenRestore;
37 | wrap.style.width = info.width; wrap.style.height = info.height;
38 | window.scrollTo(info.scrollLeft, info.scrollTop);
39 | cm.refresh();
40 | }
41 | });
42 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/display/rulers.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("rulers", false, function(cm, val) {
15 | if (cm.state.rulerDiv) {
16 | cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)
17 | cm.state.rulerDiv = null
18 | cm.off("refresh", drawRulers)
19 | }
20 | if (val && val.length) {
21 | cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement("div"), cm.display.lineSpace)
22 | cm.state.rulerDiv.className = "CodeMirror-rulers"
23 | drawRulers(cm)
24 | cm.on("refresh", drawRulers)
25 | }
26 | });
27 |
28 | function drawRulers(cm) {
29 | cm.state.rulerDiv.textContent = ""
30 | var val = cm.getOption("rulers");
31 | var cw = cm.defaultCharWidth();
32 | var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
33 | cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + "px";
34 | for (var i = 0; i < val.length; i++) {
35 | var elt = document.createElement("div");
36 | elt.className = "CodeMirror-ruler";
37 | var col, conf = val[i];
38 | if (typeof conf == "number") {
39 | col = conf;
40 | } else {
41 | col = conf.column;
42 | if (conf.className) elt.className += " " + conf.className;
43 | if (conf.color) elt.style.borderColor = conf.color;
44 | if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;
45 | if (conf.width) elt.style.borderLeftWidth = conf.width;
46 | }
47 | elt.style.left = (left + col * cw) + "px";
48 | cm.state.rulerDiv.appendChild(elt)
49 | }
50 | }
51 | });
52 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/edit/continuelist.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var listRE = /^(\s*)(>[> ]*|- \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,
15 | emptyListRE = /^(\s*)(>[> ]*|- \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,
16 | unorderedListRE = /[*+-]\s/;
17 |
18 | CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
19 | if (cm.getOption("disableInput")) return CodeMirror.Pass;
20 | var ranges = cm.listSelections(), replacements = [];
21 | for (var i = 0; i < ranges.length; i++) {
22 | var pos = ranges[i].head;
23 | var eolState = cm.getStateAfter(pos.line);
24 | var inList = eolState.list !== false;
25 | var inQuote = eolState.quote !== 0;
26 |
27 | var line = cm.getLine(pos.line), match = listRE.exec(line);
28 | if (!ranges[i].empty() || (!inList && !inQuote) || !match) {
29 | cm.execCommand("newlineAndIndent");
30 | return;
31 | }
32 | if (emptyListRE.test(line)) {
33 | cm.replaceRange("", {
34 | line: pos.line, ch: 0
35 | }, {
36 | line: pos.line, ch: pos.ch + 1
37 | });
38 | replacements[i] = "\n";
39 | } else {
40 | var indent = match[1], after = match[5];
41 | var bullet = unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0
42 | ? match[2].replace("x", " ")
43 | : (parseInt(match[3], 10) + 1) + match[4];
44 |
45 | replacements[i] = "\n" + indent + bullet + after;
46 | }
47 | }
48 |
49 | cm.replaceSelections(replacements);
50 | };
51 | });
52 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/edit/trailingspace.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
13 | if (prev == CodeMirror.Init) prev = false;
14 | if (prev && !val)
15 | cm.removeOverlay("trailingspace");
16 | else if (!prev && val)
17 | cm.addOverlay({
18 | token: function(stream) {
19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
20 | if (i > stream.pos) { stream.pos = i; return null; }
21 | stream.pos = l;
22 | return "trailingspace";
23 | },
24 | name: "trailingspace"
25 | });
26 | });
27 | });
28 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/fold/foldgutter.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-foldmarker {
2 | color: blue;
3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
4 | font-family: arial;
5 | line-height: .3;
6 | cursor: pointer;
7 | }
8 | .CodeMirror-foldgutter {
9 | width: .7em;
10 | }
11 | .CodeMirror-foldgutter-open,
12 | .CodeMirror-foldgutter-folded {
13 | cursor: pointer;
14 | }
15 | .CodeMirror-foldgutter-open:after {
16 | content: "\25BE";
17 | }
18 | .CodeMirror-foldgutter-folded:after {
19 | content: "\25B8";
20 | }
21 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/fold/indent-fold.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line);
16 | if (!/\S/.test(firstLine)) return;
17 | var getIndent = function(line) {
18 | return CodeMirror.countColumn(line, null, tabSize);
19 | };
20 | var myIndent = getIndent(firstLine);
21 | var lastLineInFold = null;
22 | // Go through lines until we find a line that definitely doesn't belong in
23 | // the block we're folding, or to the end.
24 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
25 | var curLine = cm.getLine(i);
26 | var curIndent = getIndent(curLine);
27 | if (curIndent > myIndent) {
28 | // Lines with a greater indent are considered part of the block.
29 | lastLineInFold = i;
30 | } else if (!/\S/.test(curLine)) {
31 | // Empty lines might be breaks within the block we're trying to fold.
32 | } else {
33 | // A non-empty line at an indent equal to or less than ours marks the
34 | // start of another block.
35 | break;
36 | }
37 | }
38 | if (lastLineInFold) return {
39 | from: CodeMirror.Pos(start.line, firstLine.length),
40 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
41 | };
42 | });
43 |
44 | });
45 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/fold/markdown-fold.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.registerHelper("fold", "markdown", function(cm, start) {
15 | var maxDepth = 100;
16 |
17 | function isHeader(lineNo) {
18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));
19 | return tokentype && /\bheader\b/.test(tokentype);
20 | }
21 |
22 | function headerLevel(lineNo, line, nextLine) {
23 | var match = line && line.match(/^#+/);
24 | if (match && isHeader(lineNo)) return match[0].length;
25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/);
26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2;
27 | return maxDepth;
28 | }
29 |
30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);
31 | var level = headerLevel(start.line, firstLine, nextLine);
32 | if (level === maxDepth) return undefined;
33 |
34 | var lastLineNo = cm.lastLine();
35 | var end = start.line, nextNextLine = cm.getLine(end + 2);
36 | while (end < lastLineNo) {
37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;
38 | ++end;
39 | nextLine = nextNextLine;
40 | nextNextLine = cm.getLine(end + 2);
41 | }
42 |
43 | return {
44 | from: CodeMirror.Pos(start.line, firstLine.length),
45 | to: CodeMirror.Pos(end, cm.getLine(end).length)
46 | };
47 | });
48 |
49 | });
50 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/hint/anyword-hint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var WORD = /[\w$]+/, RANGE = 500;
15 |
16 | CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
17 | var word = options && options.word || WORD;
18 | var range = options && options.range || RANGE;
19 | var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
20 | var end = cur.ch, start = end;
21 | while (start && word.test(curLine.charAt(start - 1))) --start;
22 | var curWord = start != end && curLine.slice(start, end);
23 |
24 | var list = options && options.list || [], seen = {};
25 | var re = new RegExp(word.source, "g");
26 | for (var dir = -1; dir <= 1; dir += 2) {
27 | var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
28 | for (; line != endLine; line += dir) {
29 | var text = editor.getLine(line), m;
30 | while (m = re.exec(text)) {
31 | if (line == cur.line && m[0] === curWord) continue;
32 | if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
33 | seen[m[0]] = true;
34 | list.push(m[0]);
35 | }
36 | }
37 | }
38 | }
39 | return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
40 | });
41 | });
42 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/hint/show-hint.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-hints {
2 | position: absolute;
3 | z-index: 10;
4 | overflow: hidden;
5 | list-style: none;
6 |
7 | margin: 0;
8 | padding: 2px;
9 |
10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2);
13 | border-radius: 3px;
14 | border: 1px solid silver;
15 |
16 | background: white;
17 | font-size: 90%;
18 | font-family: monospace;
19 |
20 | max-height: 20em;
21 | overflow-y: auto;
22 | }
23 |
24 | .CodeMirror-hint {
25 | margin: 0;
26 | padding: 0 4px;
27 | border-radius: 2px;
28 | white-space: pre;
29 | color: black;
30 | cursor: pointer;
31 | }
32 |
33 | li.CodeMirror-hint-active {
34 | background: #08f;
35 | color: white;
36 | }
37 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/lint/coffeescript-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js
5 |
6 | // declare global: coffeelint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) {
19 | var found = [];
20 | var parseError = function(err) {
21 | var loc = err.lineNumber;
22 | found.push({from: CodeMirror.Pos(loc-1, 0),
23 | to: CodeMirror.Pos(loc, 0),
24 | severity: err.level,
25 | message: err.message});
26 | };
27 | try {
28 | var res = coffeelint.lint(text);
29 | for(var i = 0; i < res.length; i++) {
30 | parseError(res[i]);
31 | }
32 | } catch(e) {
33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0),
34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column),
35 | severity: 'error',
36 | message: e.message});
37 | }
38 | return found;
39 | });
40 |
41 | });
42 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/lint/css-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // Depends on csslint.js from https://github.com/stubbornella/csslint
5 |
6 | // declare global: CSSLint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "css", function(text) {
19 | var found = [];
20 | if (!window.CSSLint) return found;
21 | var results = CSSLint.verify(text), messages = results.messages, message = null;
22 | for ( var i = 0; i < messages.length; i++) {
23 | message = messages[i];
24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;
25 | found.push({
26 | from: CodeMirror.Pos(startLine, startCol),
27 | to: CodeMirror.Pos(endLine, endCol),
28 | message: message.message,
29 | severity : message.type
30 | });
31 | }
32 | return found;
33 | });
34 |
35 | });
36 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/lint/html-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js
5 |
6 | // declare global: HTMLHint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"), require("htmlhint"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror", "htmlhint"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | var defaultRules = {
19 | "tagname-lowercase": true,
20 | "attr-lowercase": true,
21 | "attr-value-double-quotes": true,
22 | "doctype-first": false,
23 | "tag-pair": true,
24 | "spec-char-escape": true,
25 | "id-unique": true,
26 | "src-not-empty": true,
27 | "attr-no-duplication": true
28 | };
29 |
30 | CodeMirror.registerHelper("lint", "html", function(text, options) {
31 | var found = [];
32 | if (!window.HTMLHint) return found;
33 | var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
34 | for (var i = 0; i < messages.length; i++) {
35 | var message = messages[i];
36 | var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
37 | found.push({
38 | from: CodeMirror.Pos(startLine, startCol),
39 | to: CodeMirror.Pos(endLine, endCol),
40 | message: message.message,
41 | severity : message.type
42 | });
43 | }
44 | return found;
45 | });
46 | });
47 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/lint/json-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint
5 |
6 | // declare global: jsonlint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "json", function(text) {
19 | var found = [];
20 | jsonlint.parseError = function(str, hash) {
21 | var loc = hash.loc;
22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
24 | message: str});
25 | };
26 | try { jsonlint.parse(text); }
27 | catch(e) {}
28 | return found;
29 | });
30 |
31 | });
32 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/lint/yaml-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml
15 |
16 | // declare global: jsyaml
17 |
18 | CodeMirror.registerHelper("lint", "yaml", function(text) {
19 | var found = [];
20 | try { jsyaml.load(text); }
21 | catch(e) {
22 | var loc = e.mark;
23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message });
24 | }
25 | return found;
26 | });
27 |
28 | });
29 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/mode/multiplex_test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | CodeMirror.defineMode("markdown_with_stex", function(){
6 | var inner = CodeMirror.getMode({}, "stex");
7 | var outer = CodeMirror.getMode({}, "markdown");
8 |
9 | var innerOptions = {
10 | open: '$',
11 | close: '$',
12 | mode: inner,
13 | delimStyle: 'delim',
14 | innerStyle: 'inner'
15 | };
16 |
17 | return CodeMirror.multiplexingMode(outer, innerOptions);
18 | });
19 |
20 | var mode = CodeMirror.getMode({}, "markdown_with_stex");
21 |
22 | function MT(name) {
23 | test.mode(
24 | name,
25 | mode,
26 | Array.prototype.slice.call(arguments, 1),
27 | 'multiplexing');
28 | }
29 |
30 | MT(
31 | "stexInsideMarkdown",
32 | "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
33 | })();
34 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/runmode/colorize.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("./runmode"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "./runmode"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;
15 |
16 | function textContent(node, out) {
17 | if (node.nodeType == 3) return out.push(node.nodeValue);
18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
19 | textContent(ch, out);
20 | if (isBlock.test(node.nodeType)) out.push("\n");
21 | }
22 | }
23 |
24 | CodeMirror.colorize = function(collection, defaultMode) {
25 | if (!collection) collection = document.body.getElementsByTagName("pre");
26 |
27 | for (var i = 0; i < collection.length; ++i) {
28 | var node = collection[i];
29 | var mode = node.getAttribute("data-lang") || defaultMode;
30 | if (!mode) continue;
31 |
32 | var text = [];
33 | textContent(node, text);
34 | node.innerHTML = "";
35 | CodeMirror.runMode(text.join(""), mode, node);
36 |
37 | node.className += " cm-s-default";
38 | }
39 | };
40 | });
41 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/scroll/scrollpastend.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
15 | if (old && old != CodeMirror.Init) {
16 | cm.off("change", onChange);
17 | cm.off("refresh", updateBottomMargin);
18 | cm.display.lineSpace.parentNode.style.paddingBottom = "";
19 | cm.state.scrollPastEndPadding = null;
20 | }
21 | if (val) {
22 | cm.on("change", onChange);
23 | cm.on("refresh", updateBottomMargin);
24 | updateBottomMargin(cm);
25 | }
26 | });
27 |
28 | function onChange(cm, change) {
29 | if (CodeMirror.changeEnd(change).line == cm.lastLine())
30 | updateBottomMargin(cm);
31 | }
32 |
33 | function updateBottomMargin(cm) {
34 | var padding = "";
35 | if (cm.lineCount() > 1) {
36 | var totalH = cm.display.scroller.clientHeight - 30,
37 | lastLineH = cm.getLineHandle(cm.lastLine()).height;
38 | padding = (totalH - lastLineH) + "px";
39 | }
40 | if (cm.state.scrollPastEndPadding != padding) {
41 | cm.state.scrollPastEndPadding = padding;
42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43 | cm.off("refresh", updateBottomMargin);
44 | cm.setSize();
45 | cm.on("refresh", updateBottomMargin);
46 | }
47 | }
48 | });
49 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/scroll/simplescrollbars.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
2 | position: absolute;
3 | background: #ccc;
4 | -moz-box-sizing: border-box;
5 | box-sizing: border-box;
6 | border: 1px solid #bbb;
7 | border-radius: 2px;
8 | }
9 |
10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
11 | position: absolute;
12 | z-index: 6;
13 | background: #eee;
14 | }
15 |
16 | .CodeMirror-simplescroll-horizontal {
17 | bottom: 0; left: 0;
18 | height: 8px;
19 | }
20 | .CodeMirror-simplescroll-horizontal div {
21 | bottom: 0;
22 | height: 100%;
23 | }
24 |
25 | .CodeMirror-simplescroll-vertical {
26 | right: 0; top: 0;
27 | width: 8px;
28 | }
29 | .CodeMirror-simplescroll-vertical div {
30 | right: 0;
31 | width: 100%;
32 | }
33 |
34 |
35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
36 | display: none;
37 | }
38 |
39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
40 | position: absolute;
41 | background: #bcd;
42 | border-radius: 3px;
43 | }
44 |
45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
46 | position: absolute;
47 | z-index: 6;
48 | }
49 |
50 | .CodeMirror-overlayscroll-horizontal {
51 | bottom: 0; left: 0;
52 | height: 6px;
53 | }
54 | .CodeMirror-overlayscroll-horizontal div {
55 | bottom: 0;
56 | height: 100%;
57 | }
58 |
59 | .CodeMirror-overlayscroll-vertical {
60 | right: 0; top: 0;
61 | width: 6px;
62 | }
63 | .CodeMirror-overlayscroll-vertical div {
64 | right: 0;
65 | width: 100%;
66 | }
67 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/search/jump-to-line.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // Defines jumpToLine command. Uses dialog.js if present.
5 |
6 | (function(mod) {
7 | if (typeof exports == "object" && typeof module == "object") // CommonJS
8 | mod(require("../../lib/codemirror"), require("../dialog/dialog"));
9 | else if (typeof define == "function" && define.amd) // AMD
10 | define(["../../lib/codemirror", "../dialog/dialog"], mod);
11 | else // Plain browser env
12 | mod(CodeMirror);
13 | })(function(CodeMirror) {
14 | "use strict";
15 |
16 | function dialog(cm, text, shortText, deflt, f) {
17 | if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});
18 | else f(prompt(shortText, deflt));
19 | }
20 |
21 | var jumpDialog =
22 | 'Jump to line: (Use line:column or scroll% syntax) ';
23 |
24 | function interpretLine(cm, string) {
25 | var num = Number(string)
26 | if (/^[-+]/.test(string)) return cm.getCursor().line + num
27 | else return num - 1
28 | }
29 |
30 | CodeMirror.commands.jumpToLine = function(cm) {
31 | var cur = cm.getCursor();
32 | dialog(cm, jumpDialog, "Jump to line:", (cur.line + 1) + ":" + cur.ch, function(posStr) {
33 | if (!posStr) return;
34 |
35 | var match;
36 | if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) {
37 | cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))
38 | } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) {
39 | var line = Math.round(cm.lineCount() * Number(match[1]) / 100);
40 | if (/^[-+]/.test(match[1])) line = cur.line + line + 1;
41 | cm.setCursor(line - 1, cur.ch);
42 | } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) {
43 | cm.setCursor(interpretLine(cm, match[1]), cur.ch);
44 | }
45 | });
46 | };
47 |
48 | CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine";
49 | });
50 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/search/matchesonscrollbar.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-search-match {
2 | background: gold;
3 | border-top: 1px solid orange;
4 | border-bottom: 1px solid orange;
5 | -moz-box-sizing: border-box;
6 | box-sizing: border-box;
7 | opacity: .5;
8 | }
9 |
--------------------------------------------------------------------------------
/static/libs/codes/addon/tern/worker.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | // declare global: tern, server
5 |
6 | var server;
7 |
8 | this.onmessage = function(e) {
9 | var data = e.data;
10 | switch (data.type) {
11 | case "init": return startServer(data.defs, data.plugins, data.scripts);
12 | case "add": return server.addFile(data.name, data.text);
13 | case "del": return server.delFile(data.name);
14 | case "req": return server.request(data.body, function(err, reqData) {
15 | postMessage({id: data.id, body: reqData, err: err && String(err)});
16 | });
17 | case "getFile":
18 | var c = pending[data.id];
19 | delete pending[data.id];
20 | return c(data.err, data.text);
21 | default: throw new Error("Unknown message type: " + data.type);
22 | }
23 | };
24 |
25 | var nextId = 0, pending = {};
26 | function getFile(file, c) {
27 | postMessage({type: "getFile", name: file, id: ++nextId});
28 | pending[nextId] = c;
29 | }
30 |
31 | function startServer(defs, plugins, scripts) {
32 | if (scripts) importScripts.apply(null, scripts);
33 |
34 | server = new tern.Server({
35 | getFile: getFile,
36 | async: true,
37 | defs: defs,
38 | plugins: plugins
39 | });
40 | }
41 |
42 | this.console = {
43 | log: function(v) { postMessage({type: "debug", message: v}); }
44 | };
45 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/asciiarmor/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
CodeMirror: ASCII Armor (PGP) mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | ASCII Armor (PGP) mode
27 |
36 |
37 |
42 |
43 | MIME types
44 | defined: application/pgp
, application/pgp-keys
, application/pgp-signature
45 |
46 |
47 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/clike/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-c");
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7 |
8 | MT("indent",
9 | "[variable-3 void] [def foo]([variable-3 void*] [variable a], [variable-3 int] [variable b]) {",
10 | " [variable-3 int] [variable c] [operator =] [variable b] [operator +]",
11 | " [number 1];",
12 | " [keyword return] [operator *][variable a];",
13 | "}");
14 |
15 | MT("indent_switch",
16 | "[keyword switch] ([variable x]) {",
17 | " [keyword case] [number 10]:",
18 | " [keyword return] [number 20];",
19 | " [keyword default]:",
20 | " [variable printf]([string \"foo %c\"], [variable x]);",
21 | "}");
22 |
23 | MT("def",
24 | "[variable-3 void] [def foo]() {}",
25 | "[keyword struct] [def bar]{}",
26 | "[variable-3 int] [variable-3 *][def baz]() {}");
27 |
28 | MT("def_new_line",
29 | "::[variable std]::[variable SomeTerribleType][operator <][variable T][operator >]",
30 | "[def SomeLongMethodNameThatDoesntFitIntoOneLine]([keyword const] [variable MyType][operator &] [variable param]) {}")
31 |
32 | MT("double_block",
33 | "[keyword for] (;;)",
34 | " [keyword for] (;;)",
35 | " [variable x][operator ++];",
36 | "[keyword return];");
37 |
38 | MT("preprocessor",
39 | "[meta #define FOO 3]",
40 | "[variable-3 int] [variable foo];",
41 | "[meta #define BAR\\]",
42 | "[meta 4]",
43 | "[variable-3 unsigned] [variable-3 int] [variable bar] [operator =] [number 8];",
44 | "[meta #include ][comment // comment]")
45 |
46 |
47 | var mode_cpp = CodeMirror.getMode({indentUnit: 2}, "text/x-c++src");
48 | function MTCPP(name) { test.mode(name, mode_cpp, Array.prototype.slice.call(arguments, 1)); }
49 |
50 | MTCPP("cpp14_literal",
51 | "[number 10'000];",
52 | "[number 0b10'000];",
53 | "[number 0x10'000];",
54 | "[string '100000'];");
55 | })();
56 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/css/gss_test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | "use strict";
6 |
7 | var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-gss");
8 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "gss"); }
9 |
10 | MT("atComponent",
11 | "[def @component] {",
12 | "[tag foo] {",
13 | " [property color]: [keyword black];",
14 | "}",
15 | "}");
16 |
17 | })();
18 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/css/less_test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | "use strict";
6 |
7 | var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-less");
8 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "less"); }
9 |
10 | MT("variable",
11 | "[variable-2 @base]: [atom #f04615];",
12 | "[qualifier .class] {",
13 | " [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]",
14 | " [property color]: [variable saturate]([variable-2 @base], [number 5%]);",
15 | "}");
16 |
17 | MT("amp",
18 | "[qualifier .child], [qualifier .sibling] {",
19 | " [qualifier .parent] [atom &] {",
20 | " [property color]: [keyword black];",
21 | " }",
22 | " [atom &] + [atom &] {",
23 | " [property color]: [keyword red];",
24 | " }",
25 | "}");
26 |
27 | MT("mixin",
28 | "[qualifier .mixin] ([variable dark]; [variable-2 @color]) {",
29 | " [property color]: [atom darken]([variable-2 @color], [number 10%]);",
30 | "}",
31 | "[qualifier .mixin] ([variable light]; [variable-2 @color]) {",
32 | " [property color]: [atom lighten]([variable-2 @color], [number 10%]);",
33 | "}",
34 | "[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {",
35 | " [property display]: [atom block];",
36 | "}",
37 | "[variable-2 @switch]: [variable light];",
38 | "[qualifier .class] {",
39 | " [qualifier .mixin]([variable-2 @switch]; [atom #888]);",
40 | "}");
41 |
42 | MT("nest",
43 | "[qualifier .one] {",
44 | " [def @media] ([property width]: [number 400px]) {",
45 | " [property font-size]: [number 1.2em];",
46 | " [def @media] [attribute print] [keyword and] [property color] {",
47 | " [property color]: [keyword blue];",
48 | " }",
49 | " }",
50 | "}");
51 |
52 |
53 | MT("interpolation", ".@{[variable foo]} { [property font-weight]: [atom bold]; }");
54 | })();
55 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/cypher/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Cypher Mode for CodeMirror
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
17 |
30 |
31 |
32 | Cypher Mode for CodeMirror
33 |
34 | // Cypher Mode for CodeMirror, using the neo theme
35 | MATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)
36 | WHERE NOT (joe)-[:knows]-(friend_of_friend)
37 | RETURN friend_of_friend.name, COUNT(*)
38 | ORDER BY COUNT(*) DESC , friend_of_friend.name
39 |
40 |
41 | MIME types defined:
42 | application/x-cypher-query
43 |
44 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/cypher/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "cypher");
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7 |
8 | MT("unbalancedDoubledQuotedString",
9 | "[string \"a'b\"][variable c]");
10 |
11 | MT("unbalancedSingleQuotedString",
12 | "[string 'a\"b'][variable c]");
13 |
14 | MT("doubleQuotedString",
15 | "[string \"a\"][variable b]");
16 |
17 | MT("singleQuotedString",
18 | "[string 'a'][variable b]");
19 |
20 | MT("single attribute (with content)",
21 | "[node {][atom a:][string 'a'][node }]");
22 |
23 | MT("multiple attribute, singleQuotedString (with content)",
24 | "[node {][atom a:][string 'a'][node ,][atom b:][string 'b'][node }]");
25 |
26 | MT("multiple attribute, doubleQuotedString (with content)",
27 | "[node {][atom a:][string \"a\"][node ,][atom b:][string \"b\"][node }]");
28 |
29 | MT("single attribute (without content)",
30 | "[node {][atom a:][string 'a'][node }]");
31 |
32 | MT("multiple attribute, singleQuotedString (without content)",
33 | "[node {][atom a:][string ''][node ,][atom b:][string ''][node }]");
34 |
35 | MT("multiple attribute, doubleQuotedString (without content)",
36 | "[node {][atom a:][string \"\"][node ,][atom b:][string \"\"][node }]");
37 | })();
38 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/dart/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Dart mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Dart mode
27 |
28 |
29 | import 'dart:math' show Random;
30 |
31 | void main() {
32 | print(new Die(n: 12).roll());
33 | }
34 |
35 | // Define a class.
36 | class Die {
37 | // Define a class variable.
38 | static Random shaker = new Random();
39 |
40 | // Define instance variables.
41 | int sides, value;
42 |
43 | // Define a method using shorthand syntax.
44 | String toString() => '$value';
45 |
46 | // Define a constructor.
47 | Die({int n: 6}) {
48 | if (4 <= n && n <= 20) {
49 | sides = n;
50 | } else {
51 | // Support for errors and exceptions.
52 | throw new ArgumentError(/* */);
53 | }
54 | }
55 |
56 | // Define an instance method.
57 | int roll() {
58 | return value = shaker.nextInt(sides) + 1;
59 | }
60 | }
61 |
62 |
63 |
64 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/diff/diff.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineMode("diff", function() {
15 |
16 | var TOKEN_NAMES = {
17 | '+': 'positive',
18 | '-': 'negative',
19 | '@': 'meta'
20 | };
21 |
22 | return {
23 | token: function(stream) {
24 | var tw_pos = stream.string.search(/[\t ]+?$/);
25 |
26 | if (!stream.sol() || tw_pos === 0) {
27 | stream.skipToEnd();
28 | return ("error " + (
29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');
30 | }
31 |
32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();
33 |
34 | if (tw_pos === -1) {
35 | stream.skipToEnd();
36 | } else {
37 | stream.pos = tw_pos;
38 | }
39 |
40 | return token_name;
41 | }
42 | };
43 | });
44 |
45 | CodeMirror.defineMIME("text/x-diff", "diff");
46 |
47 | });
48 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/ecl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: ECL mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | ECL mode
27 |
28 | /*
29 | sample useless code to demonstrate ecl syntax highlighting
30 | this is a multiline comment!
31 | */
32 |
33 | // this is a singleline comment!
34 |
35 | import ut;
36 | r :=
37 | record
38 | string22 s1 := '123';
39 | integer4 i1 := 123;
40 | end;
41 | #option('tmp', true);
42 | d := dataset('tmp::qb', r, thor);
43 | output(d);
44 |
45 |
48 |
49 | Based on CodeMirror's clike mode. For more information see HPCC Systems web site.
50 | MIME types defined: text/x-ecl
.
51 |
52 |
53 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/elm/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Elm mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Elm mode
27 |
28 |
29 | import Color exposing (..)
30 | import Graphics.Collage exposing (..)
31 | import Graphics.Element exposing (..)
32 | import Time exposing (..)
33 |
34 | main =
35 | Signal.map clock (every second)
36 |
37 | clock t =
38 | collage 400 400
39 | [ filled lightGrey (ngon 12 110)
40 | , outlined (solid grey) (ngon 12 110)
41 | , hand orange 100 t
42 | , hand charcoal 100 (t/60)
43 | , hand charcoal 60 (t/720)
44 | ]
45 |
46 | hand clr len time =
47 | let angle = degrees (90 - 6 * inSeconds time)
48 | in
49 | segment (0,0) (fromPolar (len,angle))
50 | |> traced (solid clr)
51 |
52 |
53 |
59 |
60 | MIME types defined: text/x-elm
.
61 |
62 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/forth/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Forth mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 |
31 |
32 |
33 |
34 | Forth mode
35 |
36 |
37 | \ Insertion sort
38 |
39 | : cell- 1 cells - ;
40 |
41 | : insert ( start end -- start )
42 | dup @ >r ( r: v )
43 | begin
44 | 2dup <
45 | while
46 | r@ over cell- @ <
47 | while
48 | cell-
49 | dup @ over cell+ !
50 | repeat then
51 | r> swap ! ;
52 |
53 | : sort ( array len -- )
54 | 1 ?do
55 | dup i cells + insert
56 | loop drop ;
57 |
58 |
59 |
70 |
71 | Simple mode that handle Forth-Syntax (Forth on WikiPedia ).
72 |
73 | MIME types defined: text/x-forth
.
74 |
75 |
76 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/gas/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Gas mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Gas mode
27 |
28 |
29 | .syntax unified
30 | .global main
31 |
32 | /*
33 | * A
34 | * multi-line
35 | * comment.
36 | */
37 |
38 | @ A single line comment.
39 |
40 | main:
41 | push {sp, lr}
42 | ldr r0, =message
43 | bl puts
44 | mov r0, #0
45 | pop {sp, pc}
46 |
47 | message:
48 | .asciz "Hello world! "
49 |
50 |
51 |
52 |
58 |
59 | Handles AT&T assembler syntax (more specifically this handles
60 | the GNU Assembler (gas) syntax.)
61 | It takes a single optional configuration parameter:
62 | architecture
, which can be one of "ARM"
,
63 | "ARMv6"
or "x86"
.
64 | Including the parameter adds syntax for the registers and special
65 | directives for the supplied architecture.
66 |
67 |
MIME types defined: text/x-gas
68 |
69 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/gherkin/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Gherkin mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Gherkin mode
27 |
28 | Feature: Using Google
29 | Background:
30 | Something something
31 | Something else
32 | Scenario: Has a homepage
33 | When I navigate to the google home page
34 | Then the home page should contain the menu and the search form
35 | Scenario: Searching for a term
36 | When I navigate to the google home page
37 | When I search for Tofu
38 | Then the search results page is displayed
39 | Then the search results page contains 10 individual search results
40 | Then the search results contain a link to the wikipedia tofu page
41 |
42 |
45 |
46 | MIME types defined: text/x-feature
.
47 |
48 |
49 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/haskell-literate/haskell-literate.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function (mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("../haskell/haskell"))
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "../haskell/haskell"], mod)
9 | else // Plain browser env
10 | mod(CodeMirror)
11 | })(function (CodeMirror) {
12 | "use strict"
13 |
14 | CodeMirror.defineMode("haskell-literate", function (config, parserConfig) {
15 | var baseMode = CodeMirror.getMode(config, (parserConfig && parserConfig.base) || "haskell")
16 |
17 | return {
18 | startState: function () {
19 | return {
20 | inCode: false,
21 | baseState: CodeMirror.startState(baseMode)
22 | }
23 | },
24 | token: function (stream, state) {
25 | if (stream.sol()) {
26 | if (state.inCode = stream.eat(">"))
27 | return "meta"
28 | }
29 | if (state.inCode) {
30 | return baseMode.token(stream, state.baseState)
31 | } else {
32 | stream.skipToEnd()
33 | return "comment"
34 | }
35 | },
36 | innerMode: function (state) {
37 | return state.inCode ? {state: state.baseState, mode: baseMode} : null
38 | }
39 | }
40 | }, "haskell")
41 |
42 | CodeMirror.defineMIME("text/x-literate-haskell", "haskell-literate")
43 | });
44 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/htmlembedded/htmlembedded.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
7 | require("../../addon/mode/multiplex"));
8 | else if (typeof define == "function" && define.amd) // AMD
9 | define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
10 | "../../addon/mode/multiplex"], mod);
11 | else // Plain browser env
12 | mod(CodeMirror);
13 | })(function(CodeMirror) {
14 | "use strict";
15 |
16 | CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
17 | return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
18 | open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
19 | close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
20 | mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
21 | });
22 | }, "htmlmixed");
23 |
24 | CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
25 | CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
26 | CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
27 | CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
28 | });
29 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/http/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: HTTP mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | HTTP mode
27 |
28 |
29 |
30 | POST /somewhere HTTP/1.1
31 | Host: example.com
32 | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
33 | Content-Type: application/x-www-form-urlencoded;
34 | charset=utf-8
35 | User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
36 |
37 | This is the request body!
38 |
39 |
40 |
43 |
44 | MIME types defined: message/http
.
45 |
46 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/idl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: IDL mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | IDL mode
27 |
28 |
29 | ;; Example IDL code
30 | FUNCTION mean_and_stddev,array
31 | ;; This program reads in an array of numbers
32 | ;; and returns a structure containing the
33 | ;; average and standard deviation
34 |
35 | ave = 0.0
36 | count = 0.0
37 |
38 | for i=0,N_ELEMENTS(array)-1 do begin
39 | ave = ave + array[i]
40 | count = count + 1
41 | endfor
42 |
43 | ave = ave/count
44 |
45 | std = stddev(array)
46 |
47 | return, {average:ave,std:std}
48 |
49 | END
50 |
51 |
52 |
62 |
63 | MIME types defined: text/x-idl
.
64 |
65 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/javascript/typescript.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: TypeScript mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | TypeScript mode
27 |
28 |
29 |
30 | class Greeter {
31 | greeting: string;
32 | constructor (message: string) {
33 | this.greeting = message;
34 | }
35 | greet() {
36 | return "Hello, " + this.greeting;
37 | }
38 | }
39 |
40 | var greeter = new Greeter("world");
41 |
42 | var button = document.createElement('button')
43 | button.innerText = "Say Hello"
44 | button.onclick = function() {
45 | alert(greeter.greet())
46 | }
47 |
48 | document.body.appendChild(button)
49 |
50 |
51 |
52 |
59 |
60 | This is a specialization of the JavaScript mode .
61 |
62 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/jinja2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Jinja2 mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Jinja2 mode
27 |
28 | {# this is a comment #}
29 | {%- for item in li -%}
30 | <li>{{ item.label }}</li>
31 | {% endfor -%}
32 | {{ item.sand == true and item.keyword == false ? 1 : 0 }}
33 | {{ app.get(55, 1.2, true) }}
34 | {% if app.get('_route') == ('_home') %}home{% endif %}
35 | {% if app.session.flashbag.has('message') %}
36 | {% for message in app.session.flashbag.get('message') %}
37 | {{ message.content }}
38 | {% endfor %}
39 | {% endif %}
40 | {{ path('_home', {'section': app.request.get('section')}) }}
41 | {{ path('_home', {
42 | 'section': app.request.get('section'),
43 | 'boolean': true,
44 | 'number': 55.33
45 | })
46 | }}
47 | {% include ('test.incl.html.twig') %}
48 |
49 |
54 |
55 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/mbox/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: mbox mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | mbox mode
27 |
28 | From timothygu99@gmail.com Sun Apr 17 01:40:43 2016
29 | From: Timothy Gu <timothygu99@gmail.com>
30 | Date: Sat, 16 Apr 2016 18:40:43 -0700
31 | Subject: mbox mode
32 | Message-ID: <Z8d+bTT50U/az94FZnyPkDjZmW0=@gmail.com>
33 |
34 | mbox mode is working!
35 |
36 | Timothy
37 |
38 |
41 |
42 | MIME types defined: application/mbox
.
43 |
44 |
45 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/nsis/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: NSIS mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
28 |
29 |
30 | NSIS mode
31 |
32 |
33 |
34 | ; This is a comment
35 | !ifdef ERROR
36 | !error "Something went wrong"
37 | !endif
38 |
39 | OutFile "demo.exe"
40 | RequestExecutionLevel user
41 | SetDetailsPrint listonly
42 |
43 | !include "LogicLib.nsh"
44 | !include "WinVer.nsh"
45 |
46 | Section -mandatory
47 |
48 | Call logWinVer
49 |
50 | ${If} 1 > 0
51 | MessageBox MB_OK "Hello world"
52 | ${EndIf}
53 |
54 | SectionEnd
55 |
56 | Function logWinVer
57 |
58 | ${If} ${IsWin10}
59 | DetailPrint "Windows 10!"
60 | ${ElseIf} ${AtLeastWinVista}
61 | DetailPrint "We're post-XP"
62 | ${Else}
63 | DetailPrint "Legacy system"
64 | ${EndIf}
65 |
66 | FunctionEnd
67 |
68 |
69 |
78 |
79 | MIME types defined: text/x-nsis
.
80 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/ntriples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: NTriples mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
28 |
29 |
30 | NTriples mode
31 |
32 |
33 | .
34 | "literal 1" .
35 | _:bnode3 .
36 | _:bnode4 "literal 2"@lang .
37 | _:bnode5 "literal 3"^^ .
38 |
39 |
40 |
41 |
44 | MIME types defined: text/n-triples
.
45 |
46 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/octave/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Octave mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Octave mode
27 |
28 |
29 | %numbers
30 | [1234 1234i 1234j]
31 | [.234 .234j 2.23i]
32 | [23e2 12E1j 123D-4 0x234]
33 |
34 | %strings
35 | 'asda''a'
36 | "asda""a"
37 |
38 | %identifiers
39 | a + as123 - __asd__
40 |
41 | %operators
42 | -
43 | +
44 | =
45 | ==
46 | >
47 | <
48 | >=
49 | <=
50 | &
51 | ~
52 | ...
53 | break zeros default margin round ones rand
54 | ceil floor size clear zeros eye mean std cov
55 | error eval function
56 | abs acos atan asin cos cosh exp log prod sum
57 | log10 max min sign sin sinh sqrt tan reshape
58 | return
59 | case switch
60 | else elseif end if otherwise
61 | do for while
62 | try catch
63 | classdef properties events methods
64 | global persistent
65 |
66 | %one line comment
67 | %{ multi
68 | line comment %}
69 |
70 |
71 |
81 |
82 | MIME types defined: text/x-octave
.
83 |
84 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/oz/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Oz mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
26 |
27 |
28 | Oz mode
29 |
30 | declare
31 | fun {Ints N Max}
32 | if N == Max then nil
33 | else
34 | {Delay 1000}
35 | N|{Ints N+1 Max}
36 | end
37 | end
38 |
39 | fun {Sum S Stream}
40 | case Stream of nil then S
41 | [] H|T then S|{Sum H+S T} end
42 | end
43 |
44 | local X Y in
45 | thread X = {Ints 0 1000} end
46 | thread Y = {Sum 0 X} end
47 | {Browse Y}
48 | end
49 |
50 | MIME type defined: text/x-oz
.
51 |
52 |
59 |
60 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/pascal/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Pascal mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Pascal mode
27 |
28 |
29 |
30 | (* Example Pascal code *)
31 |
32 | while a <> b do writeln('Waiting');
33 |
34 | if a > b then
35 | writeln('Condition met')
36 | else
37 | writeln('Condition not met');
38 |
39 | for i := 1 to 10 do
40 | writeln('Iteration: ', i:1);
41 |
42 | repeat
43 | a := a + 1
44 | until a = 10;
45 |
46 | case i of
47 | 0: write('zero');
48 | 1: write('one');
49 | 2: write('two')
50 | end;
51 |
52 |
53 |
59 |
60 | MIME types defined: text/x-pascal
.
61 |
62 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/pegjs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | CodeMirror: PEG.js Mode
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
28 |
29 |
30 | PEG.js Mode
31 |
32 | /*
33 | * Classic example grammar, which recognizes simple arithmetic expressions like
34 | * "2*(3+4)". The parser generated from this grammar then computes their value.
35 | */
36 |
37 | start
38 | = additive
39 |
40 | additive
41 | = left:multiplicative "+" right:additive { return left + right; }
42 | / multiplicative
43 |
44 | multiplicative
45 | = left:primary "*" right:multiplicative { return left * right; }
46 | / primary
47 |
48 | primary
49 | = integer
50 | / "(" additive:additive ")" { return additive; }
51 |
52 | integer "integer"
53 | = digits:[0-9]+ { return parseInt(digits.join(""), 10); }
54 |
55 | letter = [a-z]+
56 |
62 | The PEG.js Mode
63 | Created by Forbes Lindesay.
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/perl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Perl mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Perl mode
27 |
28 |
29 |
30 | #!/usr/bin/perl
31 |
32 | use Something qw(func1 func2);
33 |
34 | # strings
35 | my $s1 = qq'single line';
36 | our $s2 = q(multi-
37 | line);
38 |
39 | =item Something
40 | Example.
41 | =cut
42 |
43 | my $html=<<'HTML'
44 |
45 | hi!
46 |
47 | HTML
48 |
49 | print "first,".join(',', 'second', qq~third~);
50 |
51 | if($s1 =~ m[(?{$1}=$$.' predefined variables';
53 | $s2 =~ s/\-line//ox;
54 | $s1 =~ s[
55 | line ]
56 | [
57 | block
58 | ]ox;
59 | }
60 |
61 | 1; # numbers and comments
62 |
63 | __END__
64 | something...
65 |
66 |
67 |
68 |
73 |
74 | MIME types defined: text/x-perl
.
75 |
76 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/pig/index.html:
--------------------------------------------------------------------------------
1 |
2 | CodeMirror: Pig Latin mode
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
23 |
24 |
25 | Pig Latin mode
26 |
27 | -- Apache Pig (Pig Latin Language) Demo
28 | /*
29 | This is a multiline comment.
30 | */
31 | a = LOAD "\path\to\input" USING PigStorage('\t') AS (x:long, y:chararray, z:bytearray);
32 | b = GROUP a BY (x,y,3+4);
33 | c = FOREACH b GENERATE flatten(group) as (x,y), SUM(group.$2) as z;
34 | STORE c INTO "\path\to\output";
35 |
36 | --
37 |
38 |
39 |
46 |
47 |
48 | Simple mode that handles Pig Latin language.
49 |
50 |
51 | MIME type defined: text/x-pig
52 | (PIG code)
53 |
54 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/properties/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Properties files mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Properties files mode
27 |
28 | # This is a properties file
29 | a.key = A value
30 | another.key = http://example.com
31 | ! Exclamation mark as comment
32 | but.not=Within ! A value # indeed
33 | # Spaces at the beginning of a line
34 | spaces.before.key=value
35 | backslash=Used for multi\
36 | line entries,\
37 | that's convenient.
38 | # Unicode sequences
39 | unicode.key=This is \u0020 Unicode
40 | no.multiline=here
41 | # Colons
42 | colons : can be used too
43 | # Spaces
44 | spaces\ in\ keys=Not very common...
45 |
46 |
49 |
50 | MIME types defined: text/x-properties
,
51 | text/x-ini
.
52 |
53 |
54 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/protobuf/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: ProtoBuf mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | ProtoBuf mode
27 |
28 | package addressbook;
29 |
30 | message Address {
31 | required string street = 1;
32 | required string postCode = 2;
33 | }
34 |
35 | message PhoneNumber {
36 | required string number = 1;
37 | }
38 |
39 | message Person {
40 | optional int32 id = 1;
41 | required string name = 2;
42 | required string surname = 3;
43 | optional Address address = 4;
44 | repeated PhoneNumber phoneNumbers = 5;
45 | optional uint32 age = 6;
46 | repeated uint32 favouriteNumbers = 7;
47 | optional string license = 8;
48 | enum Gender {
49 | MALE = 0;
50 | FEMALE = 1;
51 | }
52 | optional Gender gender = 9;
53 | optional fixed64 lastUpdate = 10;
54 | required bool deleted = 11 [default = false];
55 | }
56 |
57 |
58 |
61 |
62 | MIME types defined: text/x-protobuf
.
63 |
64 |
65 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/python/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 4},
6 | {name: "python",
7 | version: 3,
8 | singleLineStringErrors: false});
9 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
10 |
11 | // Error, because "foobarhello" is neither a known type or property, but
12 | // property was expected (after "and"), and it should be in parentheses.
13 | MT("decoratorStartOfLine",
14 | "[meta @dec]",
15 | "[keyword def] [def function]():",
16 | " [keyword pass]");
17 |
18 | MT("decoratorIndented",
19 | "[keyword class] [def Foo]:",
20 | " [meta @dec]",
21 | " [keyword def] [def function]():",
22 | " [keyword pass]");
23 |
24 | MT("matmulWithSpace:", "[variable a] [operator @] [variable b]");
25 | MT("matmulWithoutSpace:", "[variable a][operator @][variable b]");
26 | MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]");
27 |
28 | MT("fValidStringPrefix", "[string f'this is a {formatted} string']");
29 | MT("uValidStringPrefix", "[string u'this is an unicode string']");
30 | })();
31 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/ruby/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby");
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7 |
8 | MT("divide_equal_operator",
9 | "[variable bar] [operator /=] [variable foo]");
10 |
11 | MT("divide_equal_operator_no_spacing",
12 | "[variable foo][operator /=][number 42]");
13 |
14 | })();
15 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/rust/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Rust mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Rust mode
28 |
29 |
30 |
31 | // Demo code.
32 |
33 | type foo = int;
34 | enum bar {
35 | some(int, foo),
36 | none
37 | }
38 |
39 | fn check_crate(x: int) {
40 | let v = 10;
41 | match foo {
42 | 1 ... 3 {
43 | print_foo();
44 | if x {
45 | blah().to_string();
46 | }
47 | }
48 | (x, y) { "bye" }
49 | _ { "hi" }
50 | }
51 | }
52 |
53 |
54 |
62 |
63 | MIME types defined: text/x-rustsrc
.
64 |
65 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/rust/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 4}, "rust");
6 | function MT(name) {test.mode(name, mode, Array.prototype.slice.call(arguments, 1));}
7 |
8 | MT('integer_test',
9 | '[number 123i32]',
10 | '[number 123u32]',
11 | '[number 123_u32]',
12 | '[number 0xff_u8]',
13 | '[number 0o70_i16]',
14 | '[number 0b1111_1111_1001_0000_i32]',
15 | '[number 0usize]');
16 |
17 | MT('float_test',
18 | '[number 123.0f64]',
19 | '[number 0.1f64]',
20 | '[number 0.1f32]',
21 | '[number 12E+99_f64]');
22 |
23 | MT('string-literals-test',
24 | '[string "foo"]',
25 | '[string r"foo"]',
26 | '[string "\\"foo\\""]',
27 | '[string r#""foo""#]',
28 | '[string "foo #\\"# bar"]',
29 |
30 | '[string b"foo"]',
31 | '[string br"foo"]',
32 | '[string b"\\"foo\\""]',
33 | '[string br#""foo""#]',
34 | '[string br##"foo #" bar"##]',
35 |
36 | "[string-2 'h']",
37 | "[string-2 b'h']");
38 |
39 | })();
40 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/sas/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: SAS mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
17 |
30 |
31 |
32 | SAS mode
33 |
34 | libname foo "/tmp/foobar";
35 | %let count=1;
36 |
37 | /* Multi line
38 | Comment
39 | */
40 | data _null_;
41 | x=ranuni();
42 | * single comment;
43 | x2=x**2;
44 | sx=sqrt(x);
45 | if x=x2 then put "x must be 1";
46 | else do;
47 | put x=;
48 | end;
49 | run;
50 |
51 | /* embedded comment
52 | * comment;
53 | */
54 |
55 | proc glm data=sashelp.class;
56 | class sex;
57 | model weight = height sex;
58 | run;
59 |
60 | proc sql;
61 | select count(*)
62 | from sashelp.class;
63 |
64 | create table foo as
65 | select * from sashelp.class;
66 |
67 | select *
68 | from foo;
69 | quit;
70 |
71 |
72 |
78 |
79 | MIME types defined: text/x-sas
.
80 |
81 |
82 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/sass/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Sass mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Sass mode
28 | // Variable Definitions
29 |
30 | $page-width: 800px
31 | $sidebar-width: 200px
32 | $primary-color: #eeeeee
33 |
34 | // Global Attributes
35 |
36 | body
37 | font:
38 | family: sans-serif
39 | size: 30em
40 | weight: bold
41 |
42 | // Scoped Styles
43 |
44 | #contents
45 | width: $page-width
46 | #sidebar
47 | float: right
48 | width: $sidebar-width
49 | #main
50 | width: $page-width - $sidebar-width
51 | background: $primary-color
52 | h2
53 | color: blue
54 |
55 | #footer
56 | height: 200px
57 |
58 |
64 |
65 | MIME types defined: text/x-sass
.
66 |
67 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/shell/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Shell mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
27 |
28 |
29 | Shell mode
30 |
31 |
32 |
33 | #!/bin/bash
34 |
35 | # clone the repository
36 | git clone http://github.com/garden/tree
37 |
38 | # generate HTTPS credentials
39 | cd tree
40 | openssl genrsa -aes256 -out https.key 1024
41 | openssl req -new -nodes -key https.key -out https.csr
42 | openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt
43 | cp https.key{,.orig}
44 | openssl rsa -in https.key.orig -out https.key
45 |
46 | # start the server in HTTPS mode
47 | cd web
48 | sudo node ../server.js 443 'yes' >> ../node.log &
49 |
50 | # here is how to stop the server
51 | for pid in `ps aux | grep 'node ../server.js' | awk '{print $2}'` ; do
52 | sudo kill -9 $pid 2> /dev/null
53 | done
54 |
55 | exit 0
56 |
57 |
64 |
65 | MIME types defined: text/x-sh
.
66 |
67 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/shell/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({}, "shell");
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7 |
8 | MT("var",
9 | "text [def $var] text");
10 | MT("varBraces",
11 | "text[def ${var}]text");
12 | MT("varVar",
13 | "text [def $a$b] text");
14 | MT("varBracesVarBraces",
15 | "text[def ${a}${b}]text");
16 |
17 | MT("singleQuotedVar",
18 | "[string 'text $var text']");
19 | MT("singleQuotedVarBraces",
20 | "[string 'text ${var} text']");
21 |
22 | MT("doubleQuotedVar",
23 | '[string "text ][def $var][string text"]');
24 | MT("doubleQuotedVarBraces",
25 | '[string "text][def ${var}][string text"]');
26 | MT("doubleQuotedVarPunct",
27 | '[string "text ][def $@][string text"]');
28 | MT("doubleQuotedVarVar",
29 | '[string "][def $a$b][string "]');
30 | MT("doubleQuotedVarBracesVarBraces",
31 | '[string "][def ${a}${b}][string "]');
32 |
33 | MT("notAString",
34 | "text\\'text");
35 | MT("escapes",
36 | "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)");
37 |
38 | MT("subshell",
39 | "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`].");
40 | MT("doubleQuotedSubshell",
41 | "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]");
42 |
43 | MT("hashbang",
44 | "[meta #!/bin/bash]");
45 | MT("comment",
46 | "text [comment # Blurb]");
47 |
48 | MT("numbers",
49 | "[number 0] [number 1] [number 2]");
50 | MT("keywords",
51 | "[keyword while] [atom true]; [keyword do]",
52 | " [builtin sleep] [number 3]",
53 | "[keyword done]");
54 | MT("options",
55 | "[builtin ls] [attribute -l] [attribute --human-readable]");
56 | MT("operator",
57 | "[def var][operator =]value");
58 | })();
59 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/smalltalk/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Smalltalk mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
29 |
30 |
31 | Smalltalk mode
32 |
33 | "
34 | This is a test of the Smalltalk code
35 | "
36 | Seaside.WAComponent subclass: #MyCounter [
37 | | count |
38 | MyCounter class >> canBeRoot [ ^true ]
39 |
40 | initialize [
41 | super initialize.
42 | count := 0.
43 | ]
44 | states [ ^{ self } ]
45 | renderContentOn: html [
46 | html heading: count.
47 | html anchor callback: [ count := count + 1 ]; with: '++'.
48 | html space.
49 | html anchor callback: [ count := count - 1 ]; with: '--'.
50 | ]
51 | ]
52 |
53 | MyCounter registerAsApplication: 'mycounter'
54 |
55 |
56 |
64 |
65 | Simple Smalltalk mode.
66 |
67 | MIME types defined: text/x-stsrc
.
68 |
69 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/solr/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Solr mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
20 |
33 |
34 |
35 | Solr mode
36 |
37 |
38 | author:Camus
39 |
40 | title:"The Rebel" and author:Camus
41 |
42 | philosophy:Existentialism -author:Kierkegaard
43 |
44 | hardToSpell:Dostoevsky~
45 |
46 | published:[194* TO 1960] and author:(Sartre or "Simone de Beauvoir")
47 |
48 |
49 |
55 |
56 | MIME types defined: text/x-solr
.
57 |
58 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/sparql/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: SPARQL mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | SPARQL mode
28 |
29 | PREFIX a: <http://www.w3.org/2000/10/annotation-ns#>
30 | PREFIX dc: <http://purl.org/dc/elements/1.1/>
31 | PREFIX foaf: <http://xmlns.com/foaf/0.1/>
32 | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
33 |
34 | # Comment!
35 |
36 | SELECT ?given ?family
37 | WHERE {
38 | {
39 | ?annot a:annotates <http://www.w3.org/TR/rdf-sparql-query/> .
40 | ?annot dc:creator ?c .
41 | OPTIONAL {?c foaf:givenName ?given ;
42 | foaf:familyName ?family }
43 | } UNION {
44 | ?c !foaf:knows/foaf:knows? ?thing.
45 | ?thing rdfs
46 | } MINUS {
47 | ?thing rdfs:label "剛柔流"@jp
48 | }
49 | FILTER isBlank(?c)
50 | }
51 |
52 |
58 |
59 | MIME types defined: application/sparql-query
.
60 |
61 |
62 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/spreadsheet/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Spreadsheet mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Spreadsheet mode
28 | =IF(A1:B2, TRUE, FALSE) / 100
29 |
30 |
37 |
38 | MIME types defined: text/x-spreadsheet
.
39 |
40 | The Spreadsheet Mode
41 | Created by Robert Plummer
42 |
43 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/tiddlywiki/tiddlywiki.css:
--------------------------------------------------------------------------------
1 | span.cm-underlined {
2 | text-decoration: underline;
3 | }
4 | span.cm-strikethrough {
5 | text-decoration: line-through;
6 | }
7 | span.cm-brace {
8 | color: #170;
9 | font-weight: bold;
10 | }
11 | span.cm-table {
12 | color: blue;
13 | font-weight: bold;
14 | }
15 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/tiki/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Tiki wiki mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Tiki wiki mode
28 |
29 |
30 |
31 | Headings
32 | !Header 1
33 | !!Header 2
34 | !!!Header 3
35 | !!!!Header 4
36 | !!!!!Header 5
37 | !!!!!!Header 6
38 |
39 | Styling
40 | -=titlebar=-
41 | ^^ Box on multi
42 | lines
43 | of content^^
44 | __bold__
45 | ''italic''
46 | ===underline===
47 | ::center::
48 | --Line Through--
49 |
50 | Operators
51 | ~np~No parse~/np~
52 |
53 | Link
54 | [link|desc|nocache]
55 |
56 | Wiki
57 | ((Wiki))
58 | ((Wiki|desc))
59 | ((Wiki|desc|timeout))
60 |
61 | Table
62 | ||row1 col1|row1 col2|row1 col3
63 | row2 col1|row2 col2|row2 col3
64 | row3 col1|row3 col2|row3 col3||
65 |
66 | Lists:
67 | *bla
68 | **bla-1
69 | ++continue-bla-1
70 | ***bla-2
71 | ++continue-bla-1
72 | *bla
73 | +continue-bla
74 | #bla
75 | ** tra-la-la
76 | +continue-bla
77 | #bla
78 |
79 | Plugin (standard):
80 | {PLUGIN(attr="my attr")}
81 | Plugin Body
82 | {PLUGIN}
83 |
84 | Plugin (inline):
85 | {plugin attr="my attr"}
86 |
87 |
88 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/tiki/tiki.css:
--------------------------------------------------------------------------------
1 | .cm-tw-syntaxerror {
2 | color: #FFF;
3 | background-color: #900;
4 | }
5 |
6 | .cm-tw-deleted {
7 | text-decoration: line-through;
8 | }
9 |
10 | .cm-tw-header5 {
11 | font-weight: bold;
12 | }
13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/
14 | padding-left: 10px;
15 | }
16 |
17 | .cm-tw-box {
18 | border-top-width: 0px !important;
19 | border-style: solid;
20 | border-width: 1px;
21 | border-color: inherit;
22 | }
23 |
24 | .cm-tw-underline {
25 | text-decoration: underline;
26 | }
--------------------------------------------------------------------------------
/static/libs/codes/mode/toml/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: TOML Mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | TOML Mode
27 |
28 | # This is a TOML document. Boom.
29 |
30 | title = "TOML Example"
31 |
32 | [owner]
33 | name = "Tom Preston-Werner"
34 | organization = "GitHub"
35 | bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
36 | dob = 1979-05-27T07:32:00Z # First class dates? Why not?
37 |
38 | [database]
39 | server = "192.168.1.1"
40 | ports = [ 8001, 8001, 8002 ]
41 | connection_max = 5000
42 | enabled = true
43 |
44 | [servers]
45 |
46 | # You can indent as you please. Tabs or spaces. TOML don't care.
47 | [servers.alpha]
48 | ip = "10.0.0.1"
49 | dc = "eqdc10"
50 |
51 | [servers.beta]
52 | ip = "10.0.0.2"
53 | dc = "eqdc10"
54 |
55 | [clients]
56 | data = [ ["gamma", "delta"], [1, 2] ]
57 |
58 | # Line breaks are OK when inside arrays
59 | hosts = [
60 | "alpha",
61 | "omega"
62 | ]
63 |
64 |
70 | The TOML Mode
71 | Created by Forbes Lindesay.
72 | MIME type defined: text/x-toml
.
73 |
74 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/tornado/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Tornado template mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
27 |
28 |
29 | Tornado template mode
30 |
31 |
32 |
33 |
34 | My Tornado web application
35 |
36 |
37 |
38 | {{ title }}
39 |
40 |
41 | {% for item in items %}
42 | {% item.name %}
43 | {% empty %}
44 | You have no items in your list.
45 | {% end %}
46 |
47 |
48 |
49 |
50 |
51 |
59 |
60 | Mode for HTML with embedded Tornado template markup.
61 |
62 | MIME types defined: text/x-tornado
63 |
64 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/turtle/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Turtle mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Turtle mode
27 |
28 | @prefix foaf: .
29 | @prefix geo: .
30 | @prefix rdf: .
31 |
32 |
33 | a foaf:Person;
34 | foaf:interest ;
35 | foaf:based_near [
36 | geo:lat "34.0736111" ;
37 | geo:lon "-118.3994444"
38 | ]
39 |
40 |
41 |
47 |
48 | MIME types defined: text/turtle
.
49 |
50 |
51 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/twig/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Twig mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Twig mode
27 |
28 | {% extends "layout.twig" %}
29 | {% block title %}CodeMirror: Twig mode{% endblock %}
30 | {# this is a comment #}
31 | {% block content %}
32 | {% for foo in bar if foo.baz is divisible by(3) %}
33 | Hello {{ foo.world }}
34 | {% else %}
35 | {% set msg = "Result not found" %}
36 | {% include "empty.twig" with { message: msg } %}
37 | {% endfor %}
38 | {% endblock %}
39 |
40 |
45 |
46 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/vbscript/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: VBScript mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | VBScript mode
27 |
28 |
29 |
30 | ' Pete Guhl
31 | ' 03-04-2012
32 | '
33 | ' Basic VBScript support for codemirror2
34 |
35 | Const ForReading = 1, ForWriting = 2, ForAppending = 8
36 |
37 | Call Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)
38 |
39 | If Not IsNull(strResponse) AND Len(strResponse) = 0 Then
40 | boolTransmitOkYN = False
41 | Else
42 | ' WScript.Echo "Oh Happy Day! Oh Happy DAY!"
43 | boolTransmitOkYN = True
44 | End If
45 |
46 |
47 |
53 |
54 | MIME types defined: text/vbscript
.
55 |
56 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/xml/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: http://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml";
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }
7 |
8 | MT("matching",
9 | "[tag&bracket <][tag top][tag&bracket >]",
10 | " text",
11 | " [tag&bracket <][tag inner][tag&bracket />]",
12 | "[tag&bracket ][tag top][tag&bracket >]");
13 |
14 | MT("nonmatching",
15 | "[tag&bracket <][tag top][tag&bracket >]",
16 | " [tag&bracket <][tag inner][tag&bracket />]",
17 | " [tag&bracket ][tag&error tip][tag&bracket&error >]");
18 |
19 | MT("doctype",
20 | "[meta ]",
21 | "[tag&bracket <][tag top][tag&bracket />]");
22 |
23 | MT("cdata",
24 | "[tag&bracket <][tag top][tag&bracket >]",
25 | " [atom ]",
27 | "[tag&bracket ][tag top][tag&bracket >]");
28 |
29 | // HTML tests
30 | mode = CodeMirror.getMode({indentUnit: 2}, "text/html");
31 |
32 | MT("selfclose",
33 | "[tag&bracket <][tag html][tag&bracket >]",
34 | " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]",
35 | "[tag&bracket ][tag html][tag&bracket >]");
36 |
37 | MT("list",
38 | "[tag&bracket <][tag ol][tag&bracket >]",
39 | " [tag&bracket <][tag li][tag&bracket >]one",
40 | " [tag&bracket <][tag li][tag&bracket >]two",
41 | "[tag&bracket ][tag ol][tag&bracket >]");
42 |
43 | MT("valueless",
44 | "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]");
45 |
46 | MT("pThenArticle",
47 | "[tag&bracket <][tag p][tag&bracket >]",
48 | " foo",
49 | "[tag&bracket <][tag article][tag&bracket >]bar");
50 |
51 | })();
52 |
--------------------------------------------------------------------------------
/static/libs/codes/mode/z80/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Z80 assembly mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Z80 assembly mode
27 |
28 |
29 |
30 | #include "ti83plus.inc"
31 | #define progStart $9D95
32 | .org progStart-2
33 | .db $BB,$6D
34 |
35 | bcall(_ClrLCDFull)
36 | ld hl,0
37 | ld (CurCol),hl
38 | ld hl,Message
39 | bcall(_PutS) ; Displays the string
40 | bcall(_NewLine)
41 | ret
42 | Message:
43 | .db "Hello world!",0
44 |
45 |
46 |
51 |
52 | MIME types defined: text/x-z80
, text/x-ez80
.
53 |
54 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/3024-day.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: 3024 day
4 | Author: Jan T. Sott (http://github.com/idleberg)
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }
12 | .cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }
13 |
14 | .cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }
15 | .cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }
16 |
17 | .cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }
18 | .cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
19 | .cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
20 | .cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }
21 |
22 | .cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }
23 |
24 | .cm-s-3024-day span.cm-comment { color: #cdab53; }
25 | .cm-s-3024-day span.cm-atom { color: #a16a94; }
26 | .cm-s-3024-day span.cm-number { color: #a16a94; }
27 |
28 | .cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }
29 | .cm-s-3024-day span.cm-keyword { color: #db2d20; }
30 | .cm-s-3024-day span.cm-string { color: #fded02; }
31 |
32 | .cm-s-3024-day span.cm-variable { color: #01a252; }
33 | .cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }
34 | .cm-s-3024-day span.cm-def { color: #e8bbd0; }
35 | .cm-s-3024-day span.cm-bracket { color: #3a3432; }
36 | .cm-s-3024-day span.cm-tag { color: #db2d20; }
37 | .cm-s-3024-day span.cm-link { color: #a16a94; }
38 | .cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }
39 |
40 | .cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }
41 | .cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }
42 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/abcdef.css:
--------------------------------------------------------------------------------
1 | .cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }
2 | .cm-s-abcdef div.CodeMirror-selected { background: #515151; }
3 | .cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }
4 | .cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }
5 | .cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }
6 | .cm-s-abcdef .CodeMirror-guttermarker { color: #222; }
7 | .cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }
8 | .cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }
9 | .cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }
10 |
11 | .cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }
12 | .cm-s-abcdef span.cm-atom { color: #77F; }
13 | .cm-s-abcdef span.cm-number { color: violet; }
14 | .cm-s-abcdef span.cm-def { color: #fffabc; }
15 | .cm-s-abcdef span.cm-variable { color: #abcdef; }
16 | .cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }
17 | .cm-s-abcdef span.cm-variable-3 { color: #def; }
18 | .cm-s-abcdef span.cm-property { color: #fedcba; }
19 | .cm-s-abcdef span.cm-operator { color: #ff0; }
20 | .cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}
21 | .cm-s-abcdef span.cm-string { color: #2b4; }
22 | .cm-s-abcdef span.cm-meta { color: #C9F; }
23 | .cm-s-abcdef span.cm-qualifier { color: #FFF700; }
24 | .cm-s-abcdef span.cm-builtin { color: #30aabc; }
25 | .cm-s-abcdef span.cm-bracket { color: #8a8a8a; }
26 | .cm-s-abcdef span.cm-tag { color: #FFDD44; }
27 | .cm-s-abcdef span.cm-attribute { color: #DDFF00; }
28 | .cm-s-abcdef span.cm-error { color: #FF0000; }
29 | .cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }
30 | .cm-s-abcdef span.cm-link { color: blueviolet; }
31 |
32 | .cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }
33 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/ambiance-mobile.css:
--------------------------------------------------------------------------------
1 | .cm-s-ambiance.CodeMirror {
2 | -webkit-box-shadow: none;
3 | -moz-box-shadow: none;
4 | box-shadow: none;
5 | }
6 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/bespin.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Bespin
4 | Author: Mozilla / Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
12 | .cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
13 | .cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
14 | .cm-s-bespin .CodeMirror-linenumber {color: #666666;}
15 | .cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}
16 |
17 | .cm-s-bespin span.cm-comment {color: #937121;}
18 | .cm-s-bespin span.cm-atom {color: #9b859d;}
19 | .cm-s-bespin span.cm-number {color: #9b859d;}
20 |
21 | .cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
22 | .cm-s-bespin span.cm-keyword {color: #cf6a4c;}
23 | .cm-s-bespin span.cm-string {color: #f9ee98;}
24 |
25 | .cm-s-bespin span.cm-variable {color: #54be0d;}
26 | .cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
27 | .cm-s-bespin span.cm-def {color: #cf7d34;}
28 | .cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
29 | .cm-s-bespin span.cm-bracket {color: #9d9b97;}
30 | .cm-s-bespin span.cm-tag {color: #cf6a4c;}
31 | .cm-s-bespin span.cm-link {color: #9b859d;}
32 |
33 | .cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-bespin .CodeMirror-activeline-background { background: #404040; }
35 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/blackboard.css:
--------------------------------------------------------------------------------
1 | /* Port of TextMate's Blackboard theme */
2 |
3 | .cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
4 | .cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
5 | .cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
6 | .cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }
7 | .cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
8 | .cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
9 | .cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
10 | .cm-s-blackboard .CodeMirror-linenumber { color: #888; }
11 | .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
12 |
13 | .cm-s-blackboard .cm-keyword { color: #FBDE2D; }
14 | .cm-s-blackboard .cm-atom { color: #D8FA3C; }
15 | .cm-s-blackboard .cm-number { color: #D8FA3C; }
16 | .cm-s-blackboard .cm-def { color: #8DA6CE; }
17 | .cm-s-blackboard .cm-variable { color: #FF6400; }
18 | .cm-s-blackboard .cm-operator { color: #FBDE2D; }
19 | .cm-s-blackboard .cm-comment { color: #AEAEAE; }
20 | .cm-s-blackboard .cm-string { color: #61CE3C; }
21 | .cm-s-blackboard .cm-string-2 { color: #61CE3C; }
22 | .cm-s-blackboard .cm-meta { color: #D8FA3C; }
23 | .cm-s-blackboard .cm-builtin { color: #8DA6CE; }
24 | .cm-s-blackboard .cm-tag { color: #8DA6CE; }
25 | .cm-s-blackboard .cm-attribute { color: #8DA6CE; }
26 | .cm-s-blackboard .cm-header { color: #FF6400; }
27 | .cm-s-blackboard .cm-hr { color: #AEAEAE; }
28 | .cm-s-blackboard .cm-link { color: #8DA6CE; }
29 | .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
30 |
31 | .cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }
32 | .cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
33 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/cobalt.css:
--------------------------------------------------------------------------------
1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; }
2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
3 | .cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
4 | .cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
5 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
6 | .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
7 | .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
8 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
9 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }
10 |
11 | .cm-s-cobalt span.cm-comment { color: #08f; }
12 | .cm-s-cobalt span.cm-atom { color: #845dc4; }
13 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }
14 | .cm-s-cobalt span.cm-keyword { color: #ffee80; }
15 | .cm-s-cobalt span.cm-string { color: #3ad900; }
16 | .cm-s-cobalt span.cm-meta { color: #ff9d00; }
17 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
18 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }
19 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
20 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
21 | .cm-s-cobalt span.cm-link { color: #845dc4; }
22 | .cm-s-cobalt span.cm-error { color: #9d1e15; }
23 |
24 | .cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }
25 | .cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
26 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/colorforth.css:
--------------------------------------------------------------------------------
1 | .cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
2 | .cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
3 | .cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
4 | .cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
5 | .cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
6 | .cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }
7 |
8 | .cm-s-colorforth span.cm-comment { color: #ededed; }
9 | .cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; }
10 | .cm-s-colorforth span.cm-keyword { color: #ffd900; }
11 | .cm-s-colorforth span.cm-builtin { color: #00d95a; }
12 | .cm-s-colorforth span.cm-variable { color: #73ff00; }
13 | .cm-s-colorforth span.cm-string { color: #007bff; }
14 | .cm-s-colorforth span.cm-number { color: #00c4ff; }
15 | .cm-s-colorforth span.cm-atom { color: #606060; }
16 |
17 | .cm-s-colorforth span.cm-variable-2 { color: #EEE; }
18 | .cm-s-colorforth span.cm-variable-3 { color: #DDD; }
19 | .cm-s-colorforth span.cm-property {}
20 | .cm-s-colorforth span.cm-operator {}
21 |
22 | .cm-s-colorforth span.cm-meta { color: yellow; }
23 | .cm-s-colorforth span.cm-qualifier { color: #FFF700; }
24 | .cm-s-colorforth span.cm-bracket { color: #cc7; }
25 | .cm-s-colorforth span.cm-tag { color: #FFBD40; }
26 | .cm-s-colorforth span.cm-attribute { color: #FFF700; }
27 | .cm-s-colorforth span.cm-error { color: #f00; }
28 |
29 | .cm-s-colorforth div.CodeMirror-selected { background: #333d53; }
30 |
31 | .cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
32 |
33 | .cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }
34 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/dracula.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: dracula
4 | Author: Michael Kaminsky (http://github.com/mkaminsky11)
5 |
6 | Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
7 |
8 | */
9 |
10 |
11 | .cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
12 | background-color: #282a36 !important;
13 | color: #f8f8f2 !important;
14 | border: none;
15 | }
16 | .cm-s-dracula .CodeMirror-gutters { color: #282a36; }
17 | .cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
18 | .cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
19 | .cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
20 | .cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
21 | .cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
22 | .cm-s-dracula span.cm-comment { color: #6272a4; }
23 | .cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
24 | .cm-s-dracula span.cm-number { color: #bd93f9; }
25 | .cm-s-dracula span.cm-variable { color: #50fa7b; }
26 | .cm-s-dracula span.cm-variable-2 { color: white; }
27 | .cm-s-dracula span.cm-def { color: #50fa7b; }
28 | .cm-s-dracula span.cm-operator { color: #ff79c6; }
29 | .cm-s-dracula span.cm-keyword { color: #ff79c6; }
30 | .cm-s-dracula span.cm-atom { color: #bd93f9; }
31 | .cm-s-dracula span.cm-meta { color: #f8f8f2; }
32 | .cm-s-dracula span.cm-tag { color: #ff79c6; }
33 | .cm-s-dracula span.cm-attribute { color: #50fa7b; }
34 | .cm-s-dracula span.cm-qualifier { color: #50fa7b; }
35 | .cm-s-dracula span.cm-property { color: #66d9ef; }
36 | .cm-s-dracula span.cm-builtin { color: #50fa7b; }
37 | .cm-s-dracula span.cm-variable-3 { color: #ffb86c; }
38 |
39 | .cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
40 | .cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
41 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/eclipse.css:
--------------------------------------------------------------------------------
1 | .cm-s-eclipse span.cm-meta { color: #FF1717; }
2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
3 | .cm-s-eclipse span.cm-atom { color: #219; }
4 | .cm-s-eclipse span.cm-number { color: #164; }
5 | .cm-s-eclipse span.cm-def { color: #00f; }
6 | .cm-s-eclipse span.cm-variable { color: black; }
7 | .cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
8 | .cm-s-eclipse span.cm-variable-3 { color: #0000C0; }
9 | .cm-s-eclipse span.cm-property { color: black; }
10 | .cm-s-eclipse span.cm-operator { color: black; }
11 | .cm-s-eclipse span.cm-comment { color: #3F7F5F; }
12 | .cm-s-eclipse span.cm-string { color: #2A00FF; }
13 | .cm-s-eclipse span.cm-string-2 { color: #f50; }
14 | .cm-s-eclipse span.cm-qualifier { color: #555; }
15 | .cm-s-eclipse span.cm-builtin { color: #30a; }
16 | .cm-s-eclipse span.cm-bracket { color: #cc7; }
17 | .cm-s-eclipse span.cm-tag { color: #170; }
18 | .cm-s-eclipse span.cm-attribute { color: #00c; }
19 | .cm-s-eclipse span.cm-link { color: #219; }
20 | .cm-s-eclipse span.cm-error { color: #f00; }
21 |
22 | .cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
23 | .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
24 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/elegant.css:
--------------------------------------------------------------------------------
1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }
2 | .cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }
3 | .cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }
4 | .cm-s-elegant span.cm-variable { color: black; }
5 | .cm-s-elegant span.cm-variable-2 { color: #b11; }
6 | .cm-s-elegant span.cm-qualifier { color: #555; }
7 | .cm-s-elegant span.cm-keyword { color: #730; }
8 | .cm-s-elegant span.cm-builtin { color: #30a; }
9 | .cm-s-elegant span.cm-link { color: #762; }
10 | .cm-s-elegant span.cm-error { background-color: #fdd; }
11 |
12 | .cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }
13 | .cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
14 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/hopscotch.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Hopscotch
4 | Author: Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
12 | .cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
13 | .cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
14 | .cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
15 | .cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}
16 |
17 | .cm-s-hopscotch span.cm-comment {color: #b33508;}
18 | .cm-s-hopscotch span.cm-atom {color: #c85e7c;}
19 | .cm-s-hopscotch span.cm-number {color: #c85e7c;}
20 |
21 | .cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
22 | .cm-s-hopscotch span.cm-keyword {color: #dd464c;}
23 | .cm-s-hopscotch span.cm-string {color: #fdcc59;}
24 |
25 | .cm-s-hopscotch span.cm-variable {color: #8fc13e;}
26 | .cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
27 | .cm-s-hopscotch span.cm-def {color: #fd8b19;}
28 | .cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
29 | .cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
30 | .cm-s-hopscotch span.cm-tag {color: #dd464c;}
31 | .cm-s-hopscotch span.cm-link {color: #c85e7c;}
32 |
33 | .cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }
35 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/isotope.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Isotope
4 | Author: David Desandro / Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
12 | .cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
13 | .cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
14 | .cm-s-isotope .CodeMirror-linenumber {color: #808080;}
15 | .cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}
16 |
17 | .cm-s-isotope span.cm-comment {color: #3300ff;}
18 | .cm-s-isotope span.cm-atom {color: #cc00ff;}
19 | .cm-s-isotope span.cm-number {color: #cc00ff;}
20 |
21 | .cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
22 | .cm-s-isotope span.cm-keyword {color: #ff0000;}
23 | .cm-s-isotope span.cm-string {color: #ff0099;}
24 |
25 | .cm-s-isotope span.cm-variable {color: #33ff00;}
26 | .cm-s-isotope span.cm-variable-2 {color: #0066ff;}
27 | .cm-s-isotope span.cm-def {color: #ff9900;}
28 | .cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
29 | .cm-s-isotope span.cm-bracket {color: #e0e0e0;}
30 | .cm-s-isotope span.cm-tag {color: #ff0000;}
31 | .cm-s-isotope span.cm-link {color: #cc00ff;}
32 |
33 | .cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-isotope .CodeMirror-activeline-background { background: #202020; }
35 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/monokai.css:
--------------------------------------------------------------------------------
1 | /* Based on Sublime Text's Monokai theme */
2 |
3 | .cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
4 | .cm-s-monokai div.CodeMirror-selected { background: #49483E; }
5 | .cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
6 | .cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
7 | .cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
8 | .cm-s-monokai .CodeMirror-guttermarker { color: white; }
9 | .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
10 | .cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
11 | .cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
12 |
13 | .cm-s-monokai span.cm-comment { color: #75715e; }
14 | .cm-s-monokai span.cm-atom { color: #ae81ff; }
15 | .cm-s-monokai span.cm-number { color: #ae81ff; }
16 |
17 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
18 | .cm-s-monokai span.cm-keyword { color: #f92672; }
19 | .cm-s-monokai span.cm-builtin { color: #66d9ef; }
20 | .cm-s-monokai span.cm-string { color: #e6db74; }
21 |
22 | .cm-s-monokai span.cm-variable { color: #f8f8f2; }
23 | .cm-s-monokai span.cm-variable-2 { color: #9effff; }
24 | .cm-s-monokai span.cm-variable-3 { color: #66d9ef; }
25 | .cm-s-monokai span.cm-def { color: #fd971f; }
26 | .cm-s-monokai span.cm-bracket { color: #f8f8f2; }
27 | .cm-s-monokai span.cm-tag { color: #f92672; }
28 | .cm-s-monokai span.cm-header { color: #ae81ff; }
29 | .cm-s-monokai span.cm-link { color: #ae81ff; }
30 | .cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }
31 |
32 | .cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
33 | .cm-s-monokai .CodeMirror-matchingbracket {
34 | text-decoration: underline;
35 | color: white !important;
36 | }
37 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/neat.css:
--------------------------------------------------------------------------------
1 | .cm-s-neat span.cm-comment { color: #a86; }
2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }
3 | .cm-s-neat span.cm-string { color: #a22; }
4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }
5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }
6 | .cm-s-neat span.cm-variable { color: black; }
7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
8 | .cm-s-neat span.cm-meta { color: #555; }
9 | .cm-s-neat span.cm-link { color: #3a3; }
10 |
11 | .cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }
12 | .cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
13 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/neo.css:
--------------------------------------------------------------------------------
1 | /* neo theme for codemirror */
2 |
3 | /* Color scheme */
4 |
5 | .cm-s-neo.CodeMirror {
6 | background-color:#ffffff;
7 | color:#2e383c;
8 | line-height:1.4375;
9 | }
10 | .cm-s-neo .cm-comment { color:#75787b; }
11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }
12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }
13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }
14 | .cm-s-neo .cm-string { color:#b35e14; }
15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }
16 |
17 |
18 | /* Editor styling */
19 |
20 | .cm-s-neo pre {
21 | padding:0;
22 | }
23 |
24 | .cm-s-neo .CodeMirror-gutters {
25 | border:none;
26 | border-right:10px solid transparent;
27 | background-color:transparent;
28 | }
29 |
30 | .cm-s-neo .CodeMirror-linenumber {
31 | padding:0;
32 | color:#e0e2e5;
33 | }
34 |
35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }
37 |
38 | .cm-s-neo .CodeMirror-cursor {
39 | width: auto;
40 | border: 0;
41 | background: rgba(155,157,162,0.37);
42 | z-index: 1;
43 | }
44 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/night.css:
--------------------------------------------------------------------------------
1 | /* Loosely based on the Midnight Textmate theme */
2 |
3 | .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
4 | .cm-s-night div.CodeMirror-selected { background: #447; }
5 | .cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
6 | .cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }
7 | .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
8 | .cm-s-night .CodeMirror-guttermarker { color: white; }
9 | .cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
10 | .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
11 | .cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }
12 |
13 | .cm-s-night span.cm-comment { color: #8900d1; }
14 | .cm-s-night span.cm-atom { color: #845dc4; }
15 | .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }
16 | .cm-s-night span.cm-keyword { color: #599eff; }
17 | .cm-s-night span.cm-string { color: #37f14a; }
18 | .cm-s-night span.cm-meta { color: #7678e2; }
19 | .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
20 | .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }
21 | .cm-s-night span.cm-bracket { color: #8da6ce; }
22 | .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
23 | .cm-s-night span.cm-link { color: #845dc4; }
24 | .cm-s-night span.cm-error { color: #9d1e15; }
25 |
26 | .cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
27 | .cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
28 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/panda-syntax.css:
--------------------------------------------------------------------------------
1 | /*
2 | Name: Panda Syntax
3 | Author: Siamak Mokhtari (http://github.com/siamak/)
4 | CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
5 | */
6 | .cm-s-panda-syntax {
7 | background: #292A2B;
8 | color: #E6E6E6;
9 | line-height: 1.5;
10 | font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;
11 | }
12 | .cm-s-panda-syntax .CodeMirror-cursor { border-color: #ff2c6d; }
13 | .cm-s-panda-syntax .CodeMirror-activeline-background {
14 | background: rgba(99, 123, 156, 0.1);
15 | }
16 | .cm-s-panda-syntax .CodeMirror-selected {
17 | background: #FFF;
18 | }
19 | .cm-s-panda-syntax .cm-comment {
20 | font-style: italic;
21 | color: #676B79;
22 | }
23 | .cm-s-panda-syntax .cm-operator {
24 | color: #f3f3f3;
25 | }
26 | .cm-s-panda-syntax .cm-string {
27 | color: #19F9D8;
28 | }
29 | .cm-s-panda-syntax .cm-string-2 {
30 | color: #FFB86C;
31 | }
32 |
33 | .cm-s-panda-syntax .cm-tag {
34 | color: #ff2c6d;
35 | }
36 | .cm-s-panda-syntax .cm-meta {
37 | color: #b084eb;
38 | }
39 |
40 | .cm-s-panda-syntax .cm-number {
41 | color: #FFB86C;
42 | }
43 | .cm-s-panda-syntax .cm-atom {
44 | color: #ff2c6d;
45 | }
46 | .cm-s-panda-syntax .cm-keyword {
47 | color: #FF75B5;
48 | }
49 | .cm-s-panda-syntax .cm-variable {
50 | color: #ffb86c;
51 | }
52 | .cm-s-panda-syntax .cm-variable-2 {
53 | color: #ff9ac1;
54 | }
55 | .cm-s-panda-syntax .cm-variable-3 {
56 | color: #ff9ac1;
57 | }
58 |
59 | .cm-s-panda-syntax .cm-def {
60 | color: #e6e6e6;
61 | }
62 | .cm-s-panda-syntax .cm-property {
63 | color: #f3f3f3;
64 | }
65 | .cm-s-panda-syntax .cm-unit {
66 | color: #ffb86c;
67 | }
68 |
69 | .cm-s-panda-syntax .cm-attribute {
70 | color: #ffb86c;
71 | }
72 |
73 | .cm-s-panda-syntax .CodeMirror-matchingbracket {
74 | border-bottom: 1px dotted #19F9D8;
75 | padding-bottom: 2px;
76 | color: #e6e6e6;
77 | }
78 | .cm-s-panda-syntax .CodeMirror-gutters {
79 | background: #292a2b;
80 | border-right-color: rgba(255, 255, 255, 0.1);
81 | }
82 | .cm-s-panda-syntax .CodeMirror-linenumber {
83 | color: #e6e6e6;
84 | opacity: 0.6;
85 | }
86 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/railscasts.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Railscasts
4 | Author: Ryan Bates (http://railscasts.com)
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
12 | .cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
13 | .cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
14 | .cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
15 | .cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}
16 |
17 | .cm-s-railscasts span.cm-comment {color: #bc9458;}
18 | .cm-s-railscasts span.cm-atom {color: #b6b3eb;}
19 | .cm-s-railscasts span.cm-number {color: #b6b3eb;}
20 |
21 | .cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
22 | .cm-s-railscasts span.cm-keyword {color: #da4939;}
23 | .cm-s-railscasts span.cm-string {color: #ffc66d;}
24 |
25 | .cm-s-railscasts span.cm-variable {color: #a5c261;}
26 | .cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
27 | .cm-s-railscasts span.cm-def {color: #cc7833;}
28 | .cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
29 | .cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
30 | .cm-s-railscasts span.cm-tag {color: #da4939;}
31 | .cm-s-railscasts span.cm-link {color: #b6b3eb;}
32 |
33 | .cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }
35 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/rubyblue.css:
--------------------------------------------------------------------------------
1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
3 | .cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
4 | .cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }
5 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
6 | .cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
7 | .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
8 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; }
9 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }
10 |
11 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
12 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; }
13 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }
14 | .cm-s-rubyblue span.cm-keyword { color: #F0F; }
15 | .cm-s-rubyblue span.cm-string { color: #F08047; }
16 | .cm-s-rubyblue span.cm-meta { color: #F0F; }
17 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
18 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
19 | .cm-s-rubyblue span.cm-bracket { color: #F0F; }
20 | .cm-s-rubyblue span.cm-link { color: #F4C20B; }
21 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
22 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
23 | .cm-s-rubyblue span.cm-error { color: #AF2018; }
24 |
25 | .cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }
26 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/seti.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: seti
4 | Author: Michael Kaminsky (http://github.com/mkaminsky11)
5 |
6 | Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
7 |
8 | */
9 |
10 |
11 | .cm-s-seti.CodeMirror {
12 | background-color: #151718 !important;
13 | color: #CFD2D1 !important;
14 | border: none;
15 | }
16 | .cm-s-seti .CodeMirror-gutters {
17 | color: #404b53;
18 | background-color: #0E1112;
19 | border: none;
20 | }
21 | .cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
22 | .cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }
23 | .cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
24 | .cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
25 | .cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
26 | .cm-s-seti span.cm-comment { color: #41535b; }
27 | .cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }
28 | .cm-s-seti span.cm-number { color: #cd3f45; }
29 | .cm-s-seti span.cm-variable { color: #55b5db; }
30 | .cm-s-seti span.cm-variable-2 { color: #a074c4; }
31 | .cm-s-seti span.cm-def { color: #55b5db; }
32 | .cm-s-seti span.cm-keyword { color: #ff79c6; }
33 | .cm-s-seti span.cm-operator { color: #9fca56; }
34 | .cm-s-seti span.cm-keyword { color: #e6cd69; }
35 | .cm-s-seti span.cm-atom { color: #cd3f45; }
36 | .cm-s-seti span.cm-meta { color: #55b5db; }
37 | .cm-s-seti span.cm-tag { color: #55b5db; }
38 | .cm-s-seti span.cm-attribute { color: #9fca56; }
39 | .cm-s-seti span.cm-qualifier { color: #9fca56; }
40 | .cm-s-seti span.cm-property { color: #a074c4; }
41 | .cm-s-seti span.cm-variable-3 { color: #9fca56; }
42 | .cm-s-seti span.cm-builtin { color: #9fca56; }
43 | .cm-s-seti .CodeMirror-activeline-background { background: #101213; }
44 | .cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
45 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/the-matrix.css:
--------------------------------------------------------------------------------
1 | .cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
2 | .cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
3 | .cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
4 | .cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
5 | .cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
6 | .cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
7 | .cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
8 | .cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
9 | .cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }
10 |
11 | .cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
12 | .cm-s-the-matrix span.cm-atom { color: #3FF; }
13 | .cm-s-the-matrix span.cm-number { color: #FFB94F; }
14 | .cm-s-the-matrix span.cm-def { color: #99C; }
15 | .cm-s-the-matrix span.cm-variable { color: #F6C; }
16 | .cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
17 | .cm-s-the-matrix span.cm-variable-3 { color: #96F; }
18 | .cm-s-the-matrix span.cm-property { color: #62FFA0; }
19 | .cm-s-the-matrix span.cm-operator { color: #999; }
20 | .cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
21 | .cm-s-the-matrix span.cm-string { color: #39C; }
22 | .cm-s-the-matrix span.cm-meta { color: #C9F; }
23 | .cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
24 | .cm-s-the-matrix span.cm-builtin { color: #30a; }
25 | .cm-s-the-matrix span.cm-bracket { color: #cc7; }
26 | .cm-s-the-matrix span.cm-tag { color: #FFBD40; }
27 | .cm-s-the-matrix span.cm-attribute { color: #FFF700; }
28 | .cm-s-the-matrix span.cm-error { color: #FF0000; }
29 |
30 | .cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }
31 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/tomorrow-night-bright.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Tomorrow Night - Bright
4 | Author: Chris Kempson
5 |
6 | Port done by Gerard Braad
7 |
8 | */
9 |
10 | .cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
11 | .cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
12 | .cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
13 | .cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
14 | .cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
15 | .cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
16 | .cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
17 |
18 | .cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
19 | .cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
20 | .cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }
21 |
22 | .cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
23 | .cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
24 | .cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }
25 |
26 | .cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
27 | .cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
28 | .cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
29 | .cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
30 | .cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
31 | .cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
32 | .cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }
33 |
34 | .cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
35 | .cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
36 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/yeti.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: yeti
4 | Author: Michael Kaminsky (http://github.com/mkaminsky11)
5 |
6 | Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
7 |
8 | */
9 |
10 |
11 | .cm-s-yeti.CodeMirror {
12 | background-color: #ECEAE8 !important;
13 | color: #d1c9c0 !important;
14 | border: none;
15 | }
16 |
17 | .cm-s-yeti .CodeMirror-gutters {
18 | color: #adaba6;
19 | background-color: #E5E1DB;
20 | border: none;
21 | }
22 | .cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }
23 | .cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }
24 | .cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }
25 | .cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }
26 | .cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }
27 | .cm-s-yeti span.cm-comment { color: #d4c8be; }
28 | .cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }
29 | .cm-s-yeti span.cm-number { color: #a074c4; }
30 | .cm-s-yeti span.cm-variable { color: #55b5db; }
31 | .cm-s-yeti span.cm-variable-2 { color: #a074c4; }
32 | .cm-s-yeti span.cm-def { color: #55b5db; }
33 | .cm-s-yeti span.cm-operator { color: #9fb96e; }
34 | .cm-s-yeti span.cm-keyword { color: #9fb96e; }
35 | .cm-s-yeti span.cm-atom { color: #a074c4; }
36 | .cm-s-yeti span.cm-meta { color: #96c0d8; }
37 | .cm-s-yeti span.cm-tag { color: #96c0d8; }
38 | .cm-s-yeti span.cm-attribute { color: #9fb96e; }
39 | .cm-s-yeti span.cm-qualifier { color: #96c0d8; }
40 | .cm-s-yeti span.cm-property { color: #a074c4; }
41 | .cm-s-yeti span.cm-builtin { color: #a074c4; }
42 | .cm-s-yeti span.cm-variable-3 { color: #96c0d8; }
43 | .cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }
44 | .cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }
45 |
--------------------------------------------------------------------------------
/static/libs/codes/theme/zenburn.css:
--------------------------------------------------------------------------------
1 | /**
2 | * "
3 | * Using Zenburn color palette from the Emacs Zenburn Theme
4 | * https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
5 | *
6 | * Also using parts of https://github.com/xavi/coderay-lighttable-theme
7 | * "
8 | * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
9 | */
10 |
11 | .cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
12 | .cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
13 | .cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }
14 | .cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }
15 | .cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
16 | .cm-s-zenburn span.cm-comment { color: #7f9f7f; }
17 | .cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
18 | .cm-s-zenburn span.cm-atom { color: #bfebbf; }
19 | .cm-s-zenburn span.cm-def { color: #dcdccc; }
20 | .cm-s-zenburn span.cm-variable { color: #dfaf8f; }
21 | .cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
22 | .cm-s-zenburn span.cm-string { color: #cc9393; }
23 | .cm-s-zenburn span.cm-string-2 { color: #cc9393; }
24 | .cm-s-zenburn span.cm-number { color: #dcdccc; }
25 | .cm-s-zenburn span.cm-tag { color: #93e0e3; }
26 | .cm-s-zenburn span.cm-property { color: #dfaf8f; }
27 | .cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
28 | .cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
29 | .cm-s-zenburn span.cm-meta { color: #f0dfaf; }
30 | .cm-s-zenburn span.cm-header { color: #f0efd0; }
31 | .cm-s-zenburn span.cm-operator { color: #f0efd0; }
32 | .cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
33 | .cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
34 | .cm-s-zenburn .CodeMirror-activeline { background: #000000; }
35 | .cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
36 | .cm-s-zenburn div.CodeMirror-selected { background: #545454; }
37 | .cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }
38 |
--------------------------------------------------------------------------------
/static/libs/counterup/jquery.counterup.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * jquery.counterup.js 1.0
3 | *
4 | * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
5 | * Released under the GPL v2 License
6 | *
7 | * Date: Nov 26, 2013
8 | */(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery);
--------------------------------------------------------------------------------
/static/libs/switchery/switchery.min.css:
--------------------------------------------------------------------------------
1 | .switchery{background-color:#fff;border:1px solid #dfdfdf;border-radius:20px;cursor:pointer;display:inline-block;height:30px;position:relative;vertical-align:middle;width:50px;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box;background-clip:content-box}.switchery>small{background:#fff;border-radius:100%;box-shadow:0 1px 3px rgba(0,0,0,0.4);height:30px;position:absolute;top:0;width:30px}.switchery-small{border-radius:20px;height:20px;width:33px}.switchery-small>small{height:20px;width:20px}.switchery-large{border-radius:40px;height:40px;width:66px}.switchery-large>small{height:40px;width:40px}
--------------------------------------------------------------------------------
/static/libs/waypoints/lib/shortcuts/infinite.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints Infinite Scroll Shortcut - 3.1.1
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
6 | */
7 | !function(){"use strict";function t(n){this.options=i.extend({},t.defaults,n),this.container=this.options.element,"auto"!==this.options.container&&(this.container=this.options.container),this.$container=i(this.container),this.$more=i(this.options.more),this.$more.length&&(this.setupHandler(),this.waypoint=new o(this.options))}var i=window.jQuery,o=window.Waypoint;t.prototype.setupHandler=function(){this.options.handler=i.proxy(function(){this.options.onBeforePageLoad(),this.destroy(),this.$container.addClass(this.options.loadingClass),i.get(i(this.options.more).attr("href"),i.proxy(function(t){var n=i(i.parseHTML(t)),e=n.find(this.options.more),s=n.find(this.options.items);s.length||(s=n.filter(this.options.items)),this.$container.append(s),this.$container.removeClass(this.options.loadingClass),e.length||(e=n.filter(this.options.more)),e.length?(this.$more.replaceWith(e),this.$more=e,this.waypoint=new o(this.options)):this.$more.remove(),this.options.onAfterPageLoad()},this))},this)},t.prototype.destroy=function(){this.waypoint&&this.waypoint.destroy()},t.defaults={container:"auto",items:".infinite-item",more:".infinite-more-link",offset:"bottom-in-view",loadingClass:"infinite-loading",onBeforePageLoad:i.noop,onAfterPageLoad:i.noop},o.Infinite=t}();
--------------------------------------------------------------------------------
/static/libs/waypoints/lib/shortcuts/inview.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints Inview Shortcut - 3.1.1
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
6 | */
7 | !function(){"use strict";function t(){}function e(t){this.options=i.Adapter.extend({},e.defaults,t),this.axis=this.options.horizontal?"horizontal":"vertical",this.waypoints=[],this.createWaypoints()}var i=window.Waypoint;e.prototype.createWaypoints=function(){for(var t={vertical:[{down:"enter",up:"exited",offset:"100%"},{down:"entered",up:"exit",offset:"bottom-in-view"},{down:"exit",up:"entered",offset:0},{down:"exited",up:"enter",offset:function(){return-this.adapter.outerHeight()}}],horizontal:[{right:"enter",left:"exited",offset:"100%"},{right:"entered",left:"exit",offset:"right-in-view"},{right:"exit",left:"entered",offset:0},{right:"exited",left:"enter",offset:function(){return-this.adapter.outerWidth()}}]},e=0,i=t[this.axis].length;i>e;e++){var o=t[this.axis][e];this.createWaypoint(o)}},e.prototype.createWaypoint=function(t){var e=this;this.waypoints.push(new i({element:this.options.element,handler:function(t){return function(i){e.options[t[i]].call(this,i)}}(t),offset:t.offset,horizontal:this.options.horizontal}))},e.prototype.destroy=function(){for(var t=0,e=this.waypoints.length;e>t;t++)this.waypoints[t].destroy();this.waypoints=[]},e.defaults={enter:t,entered:t,exit:t,exited:t},i.Inview=e}();
--------------------------------------------------------------------------------
/static/libs/waypoints/lib/shortcuts/sticky.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints Sticky Element Shortcut - 3.1.1
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
6 | */
7 | (function() {
8 | 'use strict'
9 |
10 | var $ = window.jQuery
11 | var Waypoint = window.Waypoint
12 |
13 | /* http://imakewebthings.com/waypoints/shortcuts/sticky-elements */
14 | function Sticky(options) {
15 | this.options = $.extend({}, Waypoint.defaults, Sticky.defaults, options)
16 | this.element = this.options.element
17 | this.$element = $(this.element)
18 | this.createWrapper()
19 | this.createWaypoint()
20 | }
21 |
22 | /* Private */
23 | Sticky.prototype.createWaypoint = function() {
24 | var originalHandler = this.options.handler
25 |
26 | this.waypoint = new Waypoint($.extend({}, this.options, {
27 | element: this.wrapper,
28 | handler: $.proxy(function(direction) {
29 | var shouldBeStuck = this.options.direction.indexOf(direction) > -1
30 | var wrapperHeight = shouldBeStuck ? this.$element.outerHeight(true) : ''
31 |
32 | this.$wrapper.height(wrapperHeight)
33 | this.$element.toggleClass(this.options.stuckClass, shouldBeStuck)
34 |
35 | if (originalHandler) {
36 | originalHandler.call(this, direction)
37 | }
38 | }, this)
39 | }))
40 | }
41 |
42 | /* Private */
43 | Sticky.prototype.createWrapper = function() {
44 | this.$element.wrap(this.options.wrapper)
45 | this.$wrapper = this.$element.parent()
46 | this.wrapper = this.$wrapper[0]
47 | }
48 |
49 | /* Public */
50 | Sticky.prototype.destroy = function() {
51 | if (this.$element.parent()[0] === this.wrapper) {
52 | this.waypoint.destroy()
53 | this.$element.removeClass(this.options.stuckClass).unwrap()
54 | }
55 | }
56 |
57 | Sticky.defaults = {
58 | wrapper: '
',
59 | stuckClass: 'stuck',
60 | direction: 'down right'
61 | }
62 |
63 | Waypoint.Sticky = Sticky
64 | }())
65 | ;
--------------------------------------------------------------------------------
/static/libs/waypoints/lib/shortcuts/sticky.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints Sticky Element Shortcut - 3.1.1
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
6 | */
7 | !function(){"use strict";function t(s){this.options=e.extend({},i.defaults,t.defaults,s),this.element=this.options.element,this.$element=e(this.element),this.createWrapper(),this.createWaypoint()}var e=window.jQuery,i=window.Waypoint;t.prototype.createWaypoint=function(){var t=this.options.handler;this.waypoint=new i(e.extend({},this.options,{element:this.wrapper,handler:e.proxy(function(e){var i=this.options.direction.indexOf(e)>-1,s=i?this.$element.outerHeight(!0):"";this.$wrapper.height(s),this.$element.toggleClass(this.options.stuckClass,i),t&&t.call(this,e)},this)}))},t.prototype.createWrapper=function(){this.$element.wrap(this.options.wrapper),this.$wrapper=this.$element.parent(),this.wrapper=this.$wrapper[0]},t.prototype.destroy=function(){this.$element.parent()[0]===this.wrapper&&(this.waypoint.destroy(),this.$element.removeClass(this.options.stuckClass).unwrap())},t.defaults={wrapper:'
',stuckClass:"stuck",direction:"down right"},i.Sticky=t}();
--------------------------------------------------------------------------------
/static/libs/waypoints/lib/waypoints.debug.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints Debug - 3.1.1
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
6 | */
7 | (function() {
8 | 'use strict'
9 |
10 | var displayNoneMessage = [
11 | 'You have a Waypoint element with display none. For more information on ',
12 | 'why this is a bad idea read ',
13 | 'http://imakewebthings.com/waypoints/guides/debugging/#display-none'
14 | ].join('')
15 | var fixedMessage = [
16 | 'You have a Waypoint element with fixed positioning. For more ',
17 | 'information on why this is a bad idea read ',
18 | 'http://imakewebthings.com/waypoints/guides/debugging/#fixed-position'
19 | ].join('')
20 |
21 | function checkWaypointStyles() {
22 | var originalRefresh = window.Waypoint.Context.prototype.refresh
23 |
24 | window.Waypoint.Context.prototype.refresh = function() {
25 | for (var axis in this.waypoints) {
26 | for (var key in this.waypoints[axis]) {
27 | var waypoint = this.waypoints[axis][key]
28 | var style = window.getComputedStyle(waypoint.element)
29 | if (!waypoint.enabled) {
30 | continue
31 | }
32 | if (style && style.display === 'none') {
33 | console.error(displayNoneMessage)
34 | }
35 | if (style && style.position === 'fixed') {
36 | console.error(fixedMessage)
37 | }
38 | }
39 | }
40 | return originalRefresh.call(this)
41 | }
42 | }
43 |
44 | checkWaypointStyles()
45 | }())
46 | ;
--------------------------------------------------------------------------------
/utils/color/color.go:
--------------------------------------------------------------------------------
1 | package color
2 |
3 | import (
4 | "fmt"
5 | "runtime"
6 | )
7 |
8 | const (
9 | TextBlack = iota + 30
10 | TextRed
11 | TextGreen
12 | TextYellow
13 | TextBlue
14 | TextMagenta
15 | TextCyan
16 | TextWhite
17 | )
18 |
19 | func Black(str string) string {
20 | return textColor(TextBlack, str)
21 | }
22 |
23 | func Red(str string) string {
24 | return textColor(TextRed, str)
25 | }
26 |
27 | func Green(str string) string {
28 | return textColor(TextGreen, str)
29 | }
30 |
31 | func Yellow(str string) string {
32 | return textColor(TextYellow, str)
33 | }
34 |
35 | func Blue(str string) string {
36 | return textColor(TextBlue, str)
37 | }
38 |
39 | func Magenta(str string) string {
40 | return textColor(TextMagenta, str)
41 | }
42 |
43 | func Cyan(str string) string {
44 | return textColor(TextCyan, str)
45 | }
46 |
47 | func White(str string) string {
48 | return textColor(TextWhite, str)
49 | }
50 |
51 | func textColor(color int, str string) string {
52 | if IsWindows() {
53 | return str
54 | }
55 |
56 | switch color {
57 | case TextBlack:
58 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextBlack, str)
59 | case TextRed:
60 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextRed, str)
61 | case TextGreen:
62 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextGreen, str)
63 | case TextYellow:
64 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextYellow, str)
65 | case TextBlue:
66 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextBlue, str)
67 | case TextMagenta:
68 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextMagenta, str)
69 | case TextCyan:
70 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextCyan, str)
71 | case TextWhite:
72 | return fmt.Sprintf("\x1b[0;%dm%s\x1b[0m", TextWhite, str)
73 | default:
74 | return str
75 | }
76 | }
77 |
78 | func IsWindows() bool {
79 | if runtime.GOOS == "windows" {
80 | return true
81 | } else {
82 | return false
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/utils/file/file.go:
--------------------------------------------------------------------------------
1 | package file
2 |
3 | import (
4 | "Coot/error"
5 | "fmt"
6 | "os"
7 | "io/ioutil"
8 | )
9 |
10 | func Output(result string, path string) {
11 | if path != "" {
12 | _, err := os.Stat(path)
13 | if os.IsNotExist(err) {
14 | os.Mkdir("./scripts", os.ModePerm)
15 | }
16 | f_create, _ := os.Create(path)
17 | f_create.Close()
18 | f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, 0666)
19 | error.Check(err, "fail to open file")
20 | f.Write([]byte(result))
21 | f.Close()
22 | } else {
23 | fmt.Println(result)
24 | }
25 | }
26 |
27 | func ReadFile(path string) string {
28 | f, err := os.Open(path)
29 | error.Check(err, "")
30 |
31 | r, err := ioutil.ReadAll(f)
32 | error.Check(err, "")
33 |
34 | return string(r)
35 | }
36 |
--------------------------------------------------------------------------------
/utils/md5/md5.go:
--------------------------------------------------------------------------------
1 | package md5
2 |
3 | import (
4 | "crypto/md5"
5 | "encoding/hex"
6 | )
7 |
8 | func Md5(str string) string {
9 | h := md5.New()
10 | h.Write([]byte(str))
11 | return hex.EncodeToString(h.Sum(nil))
12 | }
13 |
--------------------------------------------------------------------------------
/utils/send/alterover.go:
--------------------------------------------------------------------------------
1 | package send
2 |
3 | import (
4 | "Coot/error"
5 | "encoding/json"
6 | "io/ioutil"
7 | "net/http"
8 | "net/url"
9 | "strings"
10 | )
11 |
12 | type AlertOverModel struct {
13 | Code int `json:"code"`
14 | Msg string `json:"msg"`
15 | }
16 |
17 | func SendAlertOver(findAlertConfig []map[string]interface{}, args ...string) interface{} {
18 | infoArr := strings.Split(findAlertConfig[0]["info"].(string), "&&")
19 | resp, err := http.PostForm("https://api.alertover.com/v1/alert",
20 | url.Values{
21 | "source": {infoArr[0]},
22 | "receiver": {infoArr[1]},
23 | "title": {args[0]},
24 | "content": {args[1]},
25 | })
26 |
27 | if err != nil {
28 | error.Check(err, "发送alertOver通知失败1")
29 | }
30 |
31 | defer resp.Body.Close()
32 | body, err := ioutil.ReadAll(resp.Body)
33 |
34 | if err != nil {
35 | error.Check(err, "发送alertOver通知失败2")
36 | }
37 |
38 | _alertOverModel := AlertOverModel{}
39 | result := json.Unmarshal(body, &_alertOverModel)
40 | return result
41 | }
42 |
--------------------------------------------------------------------------------
/utils/send/fangtang.go:
--------------------------------------------------------------------------------
1 | package send
2 |
3 | import (
4 | "Coot/error"
5 | "net/http"
6 | "strings"
7 | )
8 |
9 | /*发送 方糖 Server酱 推送*/
10 | func SendFangTang(findAlertConfig []map[string]interface{}, args ...string) interface{} {
11 | infoArr := strings.Split(findAlertConfig[0]["info"].(string), "&&")
12 | var req *http.Request
13 | headers := map[string]string{
14 | "Content-Type": "application/x-www-form-urlencoded",
15 | }
16 | url := "https://sc.ftqq.com/" + strings.TrimSpace(infoArr[0]) + ".send"
17 | body := "text=" + args[0] + "&desp=" + args[1]
18 | req, err := http.NewRequest("POST", url, strings.NewReader(body))
19 | if err != nil {
20 | error.Check(err, "发送方糖推送创建req报错")
21 | }
22 | //add headers
23 | if headers != nil {
24 | for key, val := range headers {
25 | req.Header.Add(key, val)
26 | }
27 | }
28 | //http client
29 | client := &http.Client{}
30 | result, err := client.Do(req)
31 | if err != nil {
32 | error.Check(err, "发送方糖推送返回resp报错")
33 | }
34 | return result
35 | }
36 |
--------------------------------------------------------------------------------
/utils/send/gomail.go:
--------------------------------------------------------------------------------
1 | package send
2 |
3 | import (
4 | "strconv"
5 | "gopkg.in/gomail.v2"
6 | "strings"
7 | "github.com/gin-gonic/gin"
8 | "time"
9 | "fmt"
10 | )
11 |
12 | func SendMail(mailTo []string, subject string, body string, findMailConfig []map[string]interface{}) error {
13 |
14 | // smtp&&post&&user&&password
15 | info := findMailConfig[0]["info"]
16 |
17 | config := strings.Split(info.(string), "&&")
18 |
19 | port, _ := strconv.Atoi(config[1])
20 | m := gomail.NewMessage()
21 |
22 | m.SetHeader("From", "<"+config[2]+">")
23 | m.SetHeader("To", mailTo...) //发送给多个用户
24 | m.SetHeader("Subject", subject) //设置邮件主题
25 | m.SetBody("text/html", body) //设置邮件正文
26 |
27 | d := gomail.NewDialer(config[0], port, config[2], config[3])
28 |
29 | err := d.DialAndSend(m)
30 |
31 | if err != nil {
32 | fmt.Fprintln(gin.DefaultWriter, time.Now().Format("2006-01-02 15:04:05")+" 发送邮件通知失败 ", err)
33 | } else {
34 | fmt.Fprintln(gin.DefaultWriter, time.Now().Format("2006-01-02 15:04:05")+" 发送邮件通知成功")
35 | }
36 |
37 | return err
38 | }
39 |
--------------------------------------------------------------------------------
/utils/send/pushbullet.go:
--------------------------------------------------------------------------------
1 | package send
2 |
3 | import (
4 | "Coot/error"
5 | "bytes"
6 | "encoding/json"
7 | "net/http"
8 | "strings"
9 | )
10 |
11 | /*发送pushBullet推送*/
12 | func SendPushBullet(findAlertConfig []map[string]interface{}, args ...string) interface{} {
13 | infoArr := strings.Split(findAlertConfig[0]["info"].(string), "&&")
14 | var req *http.Request
15 | body := map[string]string{
16 | "title": args[0],
17 | "body": args[1],
18 | "type": "note", //默认消息类型
19 | }
20 | headers := map[string]string{
21 | "Access-Token": infoArr[0],
22 | "Content-Type": "application/json",
23 | }
24 | url := "https://api.pushbullet.com/v2/pushes"
25 | bodyJson, _ := json.Marshal(body)
26 | req, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyJson))
27 | if err != nil {
28 | error.Check(err, "发送pushBullet创建req报错")
29 | }
30 | //add headers
31 | if headers != nil {
32 | for key, val := range headers {
33 | req.Header.Add(key, val)
34 | }
35 | }
36 | //http client
37 | client := &http.Client{}
38 | result, err := client.Do(req)
39 | if err != nil {
40 | error.Check(err, "发送pushBullet返回resp报错")
41 | }
42 | return result
43 | }
44 |
--------------------------------------------------------------------------------
/utils/setting/setting.go:
--------------------------------------------------------------------------------
1 | package setting
2 |
3 | import (
4 | "Coot/core/exec"
5 | "Coot/utils/color"
6 | "Coot/view"
7 | "Coot/view/setting"
8 | "Coot/view/task"
9 | "fmt"
10 | "github.com/gin-gonic/gin"
11 | "io"
12 | "os"
13 | )
14 |
15 | func RunWeb(addr string) {
16 | gin.DisableConsoleColor()
17 | f, _ := os.Create("./logs/coot.log")
18 | gin.DefaultWriter = io.MultiWriter(f)
19 | // 引入gin
20 | r := gin.Default()
21 | // 引入html资源
22 | r.LoadHTMLGlob("web/*")
23 |
24 | // 引入静态资源
25 | r.Static("/static", "./static")
26 |
27 | // 加载路由
28 | view.LoadUrl(r)
29 |
30 | // 清除 task_id
31 | task.UpdateTaskAll()
32 | // 清除 日志
33 | //report.DeleteLogsAll()
34 | //初始日志开关
35 | setting.InitLogsOff()
36 | r.Run(addr)
37 | }
38 |
39 | func Init() {
40 | fmt.Println("test")
41 | }
42 |
43 | func Help() {
44 | exec.Execute("clear")
45 | logo := ` ______ __
46 | / ____/___ ____ / /_
47 | / / / __ \/ __ \/ __/
48 | / /___/ /_/ / /_/ / /_
49 | \____/\____/\____/\__/`
50 | fmt.Print(color.Yellow(logo))
51 | fmt.Println(color.White(" v0.1\n"))
52 | fmt.Println(color.White(" Play IFTTT, Experience Geek Life, Internet Automation."))
53 | fmt.Println("")
54 | fmt.Println(color.Yellow(" + [ ABOUT ]--------------------------------------------------- +"))
55 | fmt.Println("")
56 | fmt.Println(color.Green(" + Home : "), color.White("https://coot.io"), color.Green(" + Team : "), color.White("https://yehu.io"))
57 | fmt.Println("")
58 | fmt.Println(color.Yellow(" + [ ARGUMENTS ]----------------------------------------------- +"))
59 | fmt.Println("")
60 | fmt.Println(color.Cyan(" run,--run"), color.White(" Start up service, Default localhost:9000"))
61 | //fmt.Println(color.Cyan(" init,--init"), color.White(" Initialization, Wipe data"))
62 | fmt.Println(color.Cyan(" version,--version"), color.White(" Coot Version"))
63 | fmt.Println(color.Cyan(" help,--help"), color.White(" Help"))
64 | fmt.Println("")
65 | fmt.Println(color.Yellow(" + ------------------------------------------------------------ +"))
66 | fmt.Println("")
67 | }
68 |
--------------------------------------------------------------------------------
/view/dashboard/view.go:
--------------------------------------------------------------------------------
1 | package dashboard
2 |
3 | import (
4 | "github.com/gin-gonic/gin"
5 | "net/http"
6 | "Coot/core/dbUtil"
7 | "strconv"
8 | )
9 |
10 | func Html(c *gin.Context) {
11 | sql1 := `select count(1) as sum from coot_tasks;`
12 | sql2 := `select count(1) as sum from coot_tasks where task_id!="";`
13 | sql3 := `select count(1) as sum from coot_tasks where task_id="";`
14 | sql4 := `select count(1) as sum from coot_tasks where last_exec_time="";`
15 |
16 | result1 := dbUtil.Query(sql1)
17 | result2 := dbUtil.Query(sql2)
18 | result3 := dbUtil.Query(sql3)
19 | result4 := dbUtil.Query(sql4)
20 |
21 | totalSum := strconv.FormatInt(result1[0]["sum"].(int64), 10)
22 | startSum := strconv.FormatInt(result2[0]["sum"].(int64), 10)
23 | stopSum := strconv.FormatInt(result3[0]["sum"].(int64), 10)
24 | noExecuSum := strconv.FormatInt(result4[0]["sum"].(int64), 10)
25 |
26 | c.HTML(http.StatusOK, "dashboard.html", gin.H{
27 | "totalSum": totalSum,
28 | "startSum": startSum,
29 | "stopSum": stopSum,
30 | "noExecuSum": noExecuSum,
31 | })
32 | }
33 |
--------------------------------------------------------------------------------
/view/login/view.go:
--------------------------------------------------------------------------------
1 | package login
2 |
3 | import (
4 | "Coot/core/dbUtil"
5 | "Coot/error"
6 | "github.com/gin-gonic/gin"
7 | "net/http"
8 | "strconv"
9 | "strings"
10 | )
11 |
12 | func findLoginStatus() string {
13 | sql := `select status,info from coot_setting where type="login";`
14 | result := dbUtil.Query(sql)
15 |
16 | status := strconv.FormatInt(result[0]["status"].(int64), 10)
17 | info := result[0]["info"].(string)
18 | infoArr := strings.Split(info, "&&")
19 | return status + "&&" + infoArr[0]
20 | }
21 |
22 | func Html(c *gin.Context) {
23 |
24 | loginInfo := findLoginStatus()
25 | loginArr := strings.Split(loginInfo, "&&")
26 | if loginArr[0] == "1" {
27 | c.HTML(http.StatusOK, "login.html", gin.H{})
28 | } else {
29 | c.Redirect(http.StatusFound, "/dashboard")
30 | }
31 | }
32 |
33 | func Jump(c *gin.Context) {
34 | loginInfo := findLoginStatus()
35 | loginArr := strings.Split(loginInfo, "&&")
36 | loginCookie, _ := c.Cookie("is_login")
37 | if loginArr[0] == "1" && loginArr[1] != loginCookie {
38 | c.Redirect(http.StatusFound, "/login")
39 | c.Abort()
40 | return
41 | } else {
42 | c.Next()
43 | }
44 | }
45 |
46 | func Login(c *gin.Context) {
47 | loginName := c.PostForm("loginName")
48 | loginPwd := c.PostForm("loginPwd")
49 |
50 | sql := `select info,status from coot_setting where type="login";`
51 | result := dbUtil.Query(sql)
52 |
53 | info := result[0]["info"].(string)
54 |
55 | infoArr := strings.Split(info, "&&")
56 |
57 | if loginName == infoArr[0] && loginPwd == infoArr[1] {
58 | c.SetCookie("is_login", infoArr[0], 60*60*24, "/", "*", false, true)
59 | c.JSON(http.StatusOK, error.ErrSuccessNull())
60 | return
61 | }
62 | c.JSON(http.StatusOK, error.ErrLoginFail())
63 | }
64 |
65 | func Logout(c *gin.Context) {
66 | c.SetCookie("is_login", "", -1, "/", "*", false, true)
67 | c.Redirect(http.StatusFound, "/login")
68 | }
69 |
--------------------------------------------------------------------------------
/view/plug/view.go:
--------------------------------------------------------------------------------
1 | package plug
2 |
3 | import (
4 | "github.com/gin-gonic/gin"
5 | "net/http"
6 | )
7 |
8 | func Html(c *gin.Context) {
9 | c.HTML(http.StatusOK, "plugs.html", gin.H{})
10 | }
11 |
--------------------------------------------------------------------------------
/view/url.go:
--------------------------------------------------------------------------------
1 | package view
2 |
3 | import (
4 | "Coot/view/dashboard"
5 | "Coot/view/login"
6 | "Coot/view/plug"
7 | "Coot/view/report"
8 | "Coot/view/setting"
9 | "Coot/view/task"
10 | "github.com/gin-gonic/gin"
11 | )
12 |
13 | func LoadUrl(r *gin.Engine) {
14 | r.GET("/login", login.Html)
15 | r.POST("/login", login.Login)
16 |
17 | // 注销
18 | r.GET("/logout", login.Logout)
19 |
20 | // 仪表盘
21 | r.GET("/", login.Jump, dashboard.Html)
22 | r.GET("/dashboard", login.Jump, dashboard.Html)
23 |
24 | // 任务
25 | r.GET("/task", login.Jump, task.Html)
26 | r.GET("/task/detail", login.Jump, task.HtmlDetail)
27 | r.GET("/task/add", login.Jump, task.HtmlAdd)
28 | r.GET("/get/task/list", login.Jump, task.GetTaskList)
29 | r.POST("/post/task/add", login.Jump, task.PostTaskAdd)
30 | r.POST("/post/task/update", login.Jump, task.PostTaskUpdate)
31 | r.POST("/post/task/del", login.Jump, task.PostTaskDel)
32 | r.POST("/task/start", login.Jump, task.TaskStart)
33 |
34 | r.POST("/task/stop", login.Jump, task.TaskStop)
35 |
36 | // 插件
37 | r.GET("/plugs", login.Jump, plug.Html)
38 |
39 | //日志报告
40 | r.GET("/report",login.Jump,report.Html)
41 | r.GET("/get/report/data",login.Jump,report.GetLogs)
42 | r.GET("/get/report/getNewLogs",login.Jump,report.GetNewLogs)
43 | r.POST("/post/report/delete",login.Jump,report.DeleteLogsAll)
44 |
45 | // 设置
46 | r.GET("/setting", login.Jump, setting.Html)
47 | r.GET("/get/setting/info", login.Jump, setting.GetSettingInfo)
48 | r.POST("/post/setting/update", login.Jump, setting.UpdateEmailInfo)
49 | r.POST("/post/setting/login", login.Jump, setting.UpdateLoginInfo)
50 | r.POST("/post/setting/alertOver", login.Jump, setting.UpdateAlertOverInfo)
51 | r.POST("/post/setting/pushBullet", login.Jump, setting.UpdatePushBulletInfo)
52 | r.POST("/post/setting/pushFangTang", login.Jump, setting.UpdatePushFangTangInfo)
53 | r.POST("/post/setting/checkSetting", login.Jump, setting.UpdateStatusSetting)
54 | r.POST("/post/setting/checkLogSetting", login.Jump, setting.UpdateLogStatusSetting)
55 | }
56 |
--------------------------------------------------------------------------------