Showing preview only (3,647K chars total). Download the full file or copy to clipboard to get everything.
Repository: pandao/editor.md
Branch: master
Commit: 63786e671e2c
Files: 442
Total size: 3.4 MB
Directory structure:
gitextract_sihvz_w_/
├── .gitignore
├── .jshintrc
├── BUGS.md
├── CHANGE.md
├── Gulpfile.js
├── LICENSE
├── README.md
├── bower.json
├── css/
│ ├── editormd.css
│ ├── editormd.logo.css
│ └── editormd.preview.css
├── docs/
│ ├── editormd.js.html
│ ├── index.html
│ ├── scripts/
│ │ ├── linenumber.js
│ │ └── prettify/
│ │ ├── Apache-License-2.0.txt
│ │ ├── lang-css.js
│ │ └── prettify.js
│ └── styles/
│ ├── jsdoc-default.css
│ ├── prettify-jsdoc.css
│ └── prettify-tomorrow.css
├── editormd.amd.js
├── editormd.js
├── examples/
│ ├── @links.html
│ ├── auto-height.html
│ ├── change-mode.html
│ ├── code-fold.html
│ ├── css/
│ │ └── style.css
│ ├── custom-keyboard-shortcuts.html
│ ├── custom-toolbar.html
│ ├── define-plugin.html
│ ├── delay-renderer-preview.html
│ ├── dynamic-create-editormd.html
│ ├── emoji.html
│ ├── extends.html
│ ├── external-use.html
│ ├── flowchart.html
│ ├── form-get-value.html
│ ├── full.html
│ ├── goto-line.html
│ ├── html-preview-markdown-to-html-custom-toc-container.html
│ ├── html-preview-markdown-to-html.html
│ ├── html-tags-decode.html
│ ├── image-cross-domain-upload.html
│ ├── image-upload.html
│ ├── index.html
│ ├── js/
│ │ ├── sea.js
│ │ └── seajs-main.js
│ ├── katex.html
│ ├── manually-load-modules.html
│ ├── multi-editormd.html
│ ├── multi-languages.html
│ ├── on-off.html
│ ├── onchange.html
│ ├── onfullscreen.html
│ ├── onload.html
│ ├── onpreviewing-onpreviewed.html
│ ├── onresize.html
│ ├── onscroll-onpreviewscroll.html
│ ├── onwatch-onunwatch.html
│ ├── page-break.html
│ ├── php/
│ │ ├── cross-domain-upload.php
│ │ ├── editormd.uploader.class.php
│ │ ├── post.php
│ │ ├── upload.php
│ │ └── upload_callback.html
│ ├── readonly.html
│ ├── resettings.html
│ ├── search-replace.html
│ ├── sequence-diagram.html
│ ├── set-get-replace-selection.html
│ ├── simple.html
│ ├── sync-scrolling.html
│ ├── task-lists.html
│ ├── test.md
│ ├── themes.html
│ ├── toc.html
│ ├── toolbar-auto-fixed.html
│ ├── use-requirejs.html
│ ├── use-seajs.html
│ └── use-zepto.html
├── fonts/
│ └── FontAwesome.otf
├── languages/
│ ├── en.js
│ └── zh-tw.js
├── lib/
│ └── codemirror/
│ ├── AUTHORS
│ ├── LICENSE
│ ├── README.md
│ ├── addon/
│ │ ├── comment/
│ │ │ ├── comment.js
│ │ │ └── continuecomment.js
│ │ ├── dialog/
│ │ │ ├── dialog.css
│ │ │ └── dialog.js
│ │ ├── display/
│ │ │ ├── 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
│ │ │ ├── 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/
│ │ │ ├── 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
│ ├── bower.json
│ ├── lib/
│ │ ├── codemirror.css
│ │ └── codemirror.js
│ ├── mode/
│ │ ├── apl/
│ │ │ ├── apl.js
│ │ │ └── index.html
│ │ ├── asterisk/
│ │ │ ├── asterisk.js
│ │ │ └── index.html
│ │ ├── clike/
│ │ │ ├── clike.js
│ │ │ ├── index.html
│ │ │ └── scala.html
│ │ ├── clojure/
│ │ │ ├── clojure.js
│ │ │ └── index.html
│ │ ├── cobol/
│ │ │ ├── cobol.js
│ │ │ └── index.html
│ │ ├── coffeescript/
│ │ │ ├── coffeescript.js
│ │ │ └── index.html
│ │ ├── commonlisp/
│ │ │ ├── commonlisp.js
│ │ │ └── index.html
│ │ ├── css/
│ │ │ ├── css.js
│ │ │ ├── index.html
│ │ │ ├── less.html
│ │ │ ├── less_test.js
│ │ │ ├── scss.html
│ │ │ ├── scss_test.js
│ │ │ └── test.js
│ │ ├── cypher/
│ │ │ ├── cypher.js
│ │ │ └── index.html
│ │ ├── 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
│ │ ├── ebnf/
│ │ │ ├── ebnf.js
│ │ │ └── index.html
│ │ ├── ecl/
│ │ │ ├── ecl.js
│ │ │ └── index.html
│ │ ├── eiffel/
│ │ │ ├── eiffel.js
│ │ │ └── index.html
│ │ ├── erlang/
│ │ │ ├── erlang.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
│ │ ├── 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
│ │ ├── jade/
│ │ │ ├── index.html
│ │ │ └── jade.js
│ │ ├── javascript/
│ │ │ ├── index.html
│ │ │ ├── javascript.js
│ │ │ ├── json-ld.html
│ │ │ ├── test.js
│ │ │ └── typescript.html
│ │ ├── jinja2/
│ │ │ ├── index.html
│ │ │ └── jinja2.js
│ │ ├── julia/
│ │ │ ├── index.html
│ │ │ └── julia.js
│ │ ├── kotlin/
│ │ │ ├── index.html
│ │ │ └── kotlin.js
│ │ ├── livescript/
│ │ │ ├── index.html
│ │ │ └── livescript.js
│ │ ├── lua/
│ │ │ ├── index.html
│ │ │ └── lua.js
│ │ ├── markdown/
│ │ │ ├── index.html
│ │ │ ├── markdown.js
│ │ │ └── test.js
│ │ ├── meta.js
│ │ ├── mirc/
│ │ │ ├── index.html
│ │ │ └── mirc.js
│ │ ├── mllike/
│ │ │ ├── index.html
│ │ │ └── mllike.js
│ │ ├── modelica/
│ │ │ ├── index.html
│ │ │ └── modelica.js
│ │ ├── nginx/
│ │ │ ├── index.html
│ │ │ └── nginx.js
│ │ ├── ntriples/
│ │ │ ├── index.html
│ │ │ └── ntriples.js
│ │ ├── octave/
│ │ │ ├── index.html
│ │ │ └── octave.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
│ │ ├── properties/
│ │ │ ├── index.html
│ │ │ └── properties.js
│ │ ├── puppet/
│ │ │ ├── index.html
│ │ │ └── puppet.js
│ │ ├── python/
│ │ │ ├── index.html
│ │ │ └── python.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
│ │ ├── 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
│ │ ├── smartymixed/
│ │ │ ├── index.html
│ │ │ └── smartymixed.js
│ │ ├── solr/
│ │ │ ├── index.html
│ │ │ └── solr.js
│ │ ├── soy/
│ │ │ ├── index.html
│ │ │ └── soy.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
│ │ ├── 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
│ │ ├── turtle/
│ │ │ ├── index.html
│ │ │ └── turtle.js
│ │ ├── vb/
│ │ │ ├── index.html
│ │ │ └── vb.js
│ │ ├── vbscript/
│ │ │ ├── index.html
│ │ │ └── vbscript.js
│ │ ├── velocity/
│ │ │ ├── index.html
│ │ │ └── velocity.js
│ │ ├── verilog/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── verilog.js
│ │ ├── xml/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xml.js
│ │ ├── xquery/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xquery.js
│ │ ├── yaml/
│ │ │ ├── index.html
│ │ │ └── yaml.js
│ │ └── z80/
│ │ ├── index.html
│ │ └── z80.js
│ ├── package.json
│ └── theme/
│ ├── 3024-day.css
│ ├── 3024-night.css
│ ├── ambiance-mobile.css
│ ├── ambiance.css
│ ├── base16-dark.css
│ ├── base16-light.css
│ ├── blackboard.css
│ ├── cobalt.css
│ ├── colorforth.css
│ ├── eclipse.css
│ ├── elegant.css
│ ├── erlang-dark.css
│ ├── lesser-dark.css
│ ├── mbo.css
│ ├── mdn-like.css
│ ├── midnight.css
│ ├── monokai.css
│ ├── neat.css
│ ├── neo.css
│ ├── night.css
│ ├── paraiso-dark.css
│ ├── paraiso-light.css
│ ├── pastel-on-dark.css
│ ├── rubyblue.css
│ ├── solarized.css
│ ├── the-matrix.css
│ ├── tomorrow-night-bright.css
│ ├── tomorrow-night-eighties.css
│ ├── twilight.css
│ ├── vibrant-ink.css
│ ├── xq-dark.css
│ ├── xq-light.css
│ └── zenburn.css
├── package.json
├── plugins/
│ ├── code-block-dialog/
│ │ └── code-block-dialog.js
│ ├── emoji-dialog/
│ │ ├── emoji-dialog.js
│ │ └── emoji.json
│ ├── goto-line-dialog/
│ │ └── goto-line-dialog.js
│ ├── help-dialog/
│ │ ├── help-dialog.js
│ │ └── help.md
│ ├── html-entities-dialog/
│ │ ├── html-entities-dialog.js
│ │ └── html-entities.json
│ ├── image-dialog/
│ │ └── image-dialog.js
│ ├── link-dialog/
│ │ └── link-dialog.js
│ ├── plugin-template.js
│ ├── preformatted-text-dialog/
│ │ └── preformatted-text-dialog.js
│ ├── reference-link-dialog/
│ │ └── reference-link-dialog.js
│ ├── table-dialog/
│ │ └── table-dialog.js
│ └── test-plugin/
│ └── test-plugin.js
├── scss/
│ ├── editormd.codemirror.scss
│ ├── editormd.dialog.scss
│ ├── editormd.form.scss
│ ├── editormd.grid.scss
│ ├── editormd.logo.scss
│ ├── editormd.menu.scss
│ ├── editormd.preview.scss
│ ├── editormd.preview.themes.scss
│ ├── editormd.scss
│ ├── editormd.tab.scss
│ ├── editormd.themes.scss
│ ├── font-awesome.scss
│ ├── github-markdown.scss
│ ├── lib/
│ │ ├── prefixes.scss
│ │ └── variables.scss
│ └── prettify.scss
├── src/
│ └── editormd.js
└── tests/
├── bootstrap-test.html
├── codemirror-searchbox-test.html
├── codemirror-test.html
├── js/
│ └── searchbox.js
├── katex-tests.html
├── marked-@at-test.html
├── marked-emoji-test.html
├── marked-heading-link-test.html
├── marked-todo-list-test.html
└── qunit/
├── qunit-1.16.0.css
└── qunit-1.16.0.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
logs
*.log
*.pid
*.seed
node_modules/
.sass-cache/
research/
test/
backup/
examples/uploads/**/*
*.bat
*.sh
.project
.url
css/*.map
================================================
FILE: .jshintrc
================================================
{
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 4,
"latedef": true,
"newcap": true,
"noarg": true,
"quotmark": "double",
"regexp": true,
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true,
"white": true
}
================================================
FILE: BUGS.md
================================================
#Bugs
> 说明:删除线表示已经解决。
####IE8
- ~~不能加载;~~
- flowChart(流程图)、sequenceDiagram(序列图)不支持IE8;
- ~~不支持Markdown转HTML页面解析预览;~~
####IE8 & IE9 & IE10
- KaTeX会出现解析错误,但不影响程序运行;
####Sea.js
- ~~Raphael.js无法加载;~~
####Require.js
- ~~CodeMirror编辑器的代码无法高亮;~~
- ~~sequenceDiagram不支持: `Uncaught TypeError: Cannot call method 'isArray' of undefined.`~~
================================================
FILE: CHANGE.md
================================================
## 更新日志
### v1.0.x
##### v1.0.0 beta
预览版:基本功能完成;
##### v1.0.0 releases
发布 v1.0.0 正式版。
主要更新:
- 新建分支 `mathjax-version`,但不打算继续对此分支进行开发;
- 移除 MathJax,改用 KaTeX [#2](https://github.com/pandao/editor.md/issues/2),解析和预览响应速度大幅度提高 [#3](https://github.com/pandao/editor.md/issues/3);
- 移除 `mathjax` 配置项;
- 移除 `mathjaxURL` 属性;
- 移除 `setMathJaxConfig()` 方法;
- 移除 `loadMathJax()` 方法;
- 移除MathJax的所有示例;
- 新增 `tex` 配置项,表示是否开启支持科学公式 TeX ,基于 KaTeX;
- 新增 `katexURL` 属性;
- 新增 `loadKaTeX` 方法;
- 新增 KaTeX 的示例;
- `setCodeEditor()` 方法更名为 `setCodeMirror()`;
- 合并 CodeMirror 使用到的多个 JS 模块文件,大幅减少 HTTP 请求,加快下载速度;
- 新增合并后的两个模块文件:`./lib/codemirror/modes.min.js`、`./lib/codemirror/addons.min.js` ;
- `Gulpfile.js` 新增合并 CodeMirror 模块文件的任务方法 `codemirror-mode` 和 `codemirror-addon` ;
- 另外在使用 Require.js 时,因为 CodeMirror 的严格模块依赖的限制,不能使用上述合并的模块文件,仍然采用动态加载多个模块文件;
- 更新 `README.md` 等相关文档和示例;
- 解决 Sea.js 环境下 Raphael.js 无法运行导致不支持流程图和时序图的问题,即必须先加载 Raphael.js ,后加载 Sea.js ;
### v1.1.x
##### v1.1.0
主要更新:
- 设计并更换了 Logo;
- 新增添加图片、链接、锚点链接、代码块、预格式文本等操作弹出对话框层及示例;
- 新增支持图片(跨域)上传;
- 改用 `<textarea>` 来存放 Markdown 源文档;
- 新增支持自定义工具栏;
- 新增支持多语言;
- 新增支持 Zepto.js;
- 新增支持多个 Editor.md 并存和动态加载 Editor.md 及示例;
- 新增支持智能识别和解析 HTML 标签及示例;
- 新增多个外部操作方法接口及示例;
- 修复了一些大大小小的 Bug;
具体更新如下:
- 更换 Logo,建立基础 VI;
- 创建了全系列 WebFont 字体 `dist/fonts/editormd-logo.*` ;
- 新增样式类 `editormd-logo` 等;
- 改用 `<textarea>` 来存放 Markdown 源文档;
- 原先使用 `<script type="text/markdown"></script>` 来存放 Markdown 源文档;
- 创建 Editor.md 只需要写一个 `<div id="xxxx"></div>` ,如果没有添加 `class="editormd"` 属性会自动添加,另外如果不存在 `<textarea>` 标签,则也会自动添加 `<textarea>` ;
- 新增支持智能识别和解析 HTML 标签,增强了 Markdown 语法的扩展性,几乎无限,例如:插入视频等等;
- 新增配置项 `htmlDecode` ,表示是否开启 HTML 标签识别和解析,但是为了安全性,默认不开启;
- 新增识别和解析 HTML 标签的示例;
- 新增插入链接、锚点链接、预格式文本和代码块的弹出对话框层;
- 弹出层改为使用固定定位;
- 新增动态创建对话框的方法 `createDialog()`;
- 新增静态属性 `editormd.codeLanguages` ,用于存放代码语言列表;
- 开始支持图片上传;
- 新增添加图片(上传)弹出对话框层;
- 支持基于 iframe 的跨域上传,并添加相应的示例( PHP 版);
- 开始支持自定义工具栏图标及操作处理;
- 配置项 `toolbarIcons` 类型由数组更改为函数,返回一个图标按钮列表数组;
- 新增配置项 `toolbarHandlers` 和 `toolbarIconsTexts` ,分别用于自定义按钮操作处理和按钮内容文本;
- 新增方法 `getToolbarHandles()` ,用于可在外部使用默认的操作方法;
- 新增成员属性 `activeIcon` ,可获取当前或上次点击的工具栏图标的 jQuery 实例对象;
- 新增表单取值、自定义工具栏、图片上传、多个 Editor.md 并存和动态加载 Editor.md 等多个示例;
- 新增插入锚点按钮和操作处理;
- 新增预览 HTML 内容窗口的关闭按钮,之前只能按 ESC 才能退出 HTML 全窗口预览;
- 新增多语言( l18n )及动态加载语言包支持;
- 新增英语 `en` 和繁体中文 `zh-tw` 语言包模块;
- 修改一些方法的内部实现以支持动态语言加载:
- `toolbarHandler()` 更为 `setToolbarHandler()` ;
- `setToolbar()` 方法包含 `setToolbarHandler()` ;
- 新建 `createInfoDialog()` 方法;
- 修改 `showInfoDialog()` 和 `hideInfoDialog()` 方法的内部实现等;
- 修改多次 Bug ,并优化触摸事件,改进对 iPad 的支持;
- 工具栏新增清空按钮和清空方法 `clear()` ,解决工具栏文本会被选中出现蓝底的问题;
- 配置项 `tocStartLevel` 的默认值由 2 改为 1,表示默认从 H1 开始生成 ToC;
- 解决 IE8 下加载出错的问题;
- 新增两个静态成员属性 `isIE` 和 `isIE8` ,用于判断 IE8;
- 由于 IE8 不支持 FlowChart 和 SequenceDiagram,默认在 IE8 下不加载这两个组件,无论是否开启;
- 新增 Zepto.js 的支持;
- 为了兼容 Zepto.js ,某些元素在操作处理上不再使用 `outerWidth()` 、 `outerHeight()` 、`hover()` 、`is()` 等方法;
- 为了避免修改 flowChart.js 和 sequence-diagram.js 的源码,所以想支持 flowChart 或 sequenceDiagram 得加上这一句: `var jQuery = Zepto;`;
- 新增 `editormd.$name` 属性,修改 `editormd.homePage` 属性的新地址;
- `editormd.markdownToHTML()` 新增方法返回一个 jQuery 实例对象;
- 该实例对象定义了一个 `getMarkdown()`方法,用于获取 Markdown 源代码;
- 该实例对象定义了一个 `tocContainer` 成员属性,即 ToC 列表的父层的 jQuery 实例对象;
- 新增只读模式;
- 新增配置项 `readOnly` ,默认值为 `false` ,即可编辑模式;
- 其他相关改动;
- 新增方法 `focus()` 、 `setCursor()` 、 `getCursor()` 、`setSelection()` 、`getSelection()` 、 `replaceSelection()` 和 `insertValue()` 方法,并增加对应的示例;
- 新增配置项 `saveHTMLToTextarea` ,用于将解析后的 HTML 保存到 Textarea,以供提交到后台程序;
- `getHTML()` 方法必须在 `saveHTMLToTextarea == true` 的情况下才能使用;
- 新增 `getHTML()` 方法的别名 `getTextareaSavedHTML()` 方法;
- 新增方法 `getPreviewedHTML()` ,用于获取预览窗口的 HTML ;
- 修复了一些大大小小的 Bugs;
##### v1.1.1
- 接受一个 pull 请求,修复了 `getHTML ()` 和 `getPreviewedHTML()` 方法中的 3 处错误;
##### v1.1.2
- 修复 Bug [#10](https://github.com/pandao/editor.md/issues/10);
- 修复 Bug [#12](https://github.com/pandao/editor.md/issues/12);
##### v1.1.3
- 修复 Bug [#14](https://github.com/pandao/editor.md/issues/14);
- 修复 Bug [#15](https://github.com/pandao/editor.md/issues/15);
##### v1.1.4
- 修复 Bug [#17](https://github.com/pandao/editor.md/issues/17);
- 修改了 `getToolbarHandles()` 和 `setToolbarHandler()` 方法;
- 从 `editormd.scss` 中分离出 `editormd.logo.scss` ,并生成 `editormd.logo.css` ,以便单独使用;
- 同时修改了 `Gulpfile.js` 的相应任务;
##### v1.1.5
- 修复 Bug [#18](https://github.com/pandao/editor.md/issues/18);
- 修改了 `showInfoDialog()` 和 `createInfoDialog()` 方法;
- 新增 `infoDialogPosition()` 方法;
- 修复 Bug [#20](https://github.com/pandao/editor.md/issues/20);
- 修改了引用的处理函数;
- 插入的 headers 的 `#` 号后面都加上了一个空格;
##### v1.1.6
修复多处 Bug,具体如下:
- 修复 Bug [#23](https://github.com/pandao/editor.md/issues/23),即 Headers 的 id 属性的重复及中文问题;
- 修改了 `editormd.markedRenderer()` 方法;
- 修复 Bug [#24](https://github.com/pandao/editor.md/issues/24);
- 修改了 `setMarkdown()` 、 `clear()` 和 `loadedDisplay()` 方法的内部实现;
- 新增了 `katexRender()` 、 `flowChartAndSequenceDiagramRender()` 、 `previewCodeHighlight()` 方法;
- 修复有些情况下无法保存 Markdown 源文档到 textarea 的问题;
- 修改了 `setCodeMirror()` 、 `recreateEditor()` 等方法;
- 修改了以上 Bug 及部分相关示例文件;
##### v1.1.7
修复多处 Bug,具体如下:
- 修复 Bug [#25](https://github.com/pandao/editor.md/issues/25);
- 修改了 `loadedDisplay()` 方法,将 `settings.onload` 移动了 `CodeMirror.on("change")` 事件注册后再触发;
- 修复 Bug [#26](https://github.com/pandao/editor.md/issues/26);
- 修改了 `saveToTextareas()` 方法;
- 新增 `state.loaded` 和 `state.watching` 两个属性;
- 修改了以上 Bug 相关示例文件;
##### v1.1.8
改进功能,具体如下:
- 改进 [#27](https://github.com/pandao/editor.md/issues/27);
- 新增配置项 `matchWordHighlight` ,可选值有: `true, false, "onselected"` ,默认值为 `true` ,即开启自动匹配和标示相同单词;
- 改进 [#28](https://github.com/pandao/editor.md/issues/28);
- 将 `jquery.min.js` 、 `font-awesome.min.css` 、 `github-markdown.css` 移除(这是一个疏忽,它们不是动态加载的依赖模块或者不需要的,避免不必要的硬盘空间占用);
- 修改了所有相关的示例文件;
##### v1.1.9
- 修复无法解析 heading link 的 Bug [#29](https://github.com/pandao/editor.md/issues/29);
- 修改了 `editormd.markedRenderer()` 方法的内部实现;
- 新增了 `editormd.trim()` ,用于清除字符串两边的空格;
- 修改了所有相关的示例文件和测试用例 `marked-heading-link-test.html` ;
- 修改了 `README.md` ,添加了 `Shields.io` 图标;
### v1.2
##### v1.2.0
v1.2.0 主要更新:
- 新增代码折叠、搜索替换、自定义样式主题和自定义快捷键等功能;
- 新增 Emoji 表情、@Link 、GFM Task Lists 支持;
- 新增表格插入、Emoji 表情插入、HTML 实体字符插入、使用帮助等对话框;
- 新增插件扩展机制;
- 新增手动加载依赖模块方式;
- 改用 `Prefixes.css` 作 CSS 前缀预处理;
- 改进和增强工具栏自定义功能,完善事件监听和处理方法;
- 部分功能改进(更加方便的预格式文本/代码插入、自动闭合标签等)、新增多个方法、改进 Require.js 支持和修复多个 Bug 等等;
**具体更新如下:**
- 新建 v1.1.x 分支;
- v1.2 文件结构变动较大;
- 新增代码折叠、自动闭合标签和搜索替换功能;
- 搜索快捷键 `Ctrl + F / Command + F` ;
- 替换快捷键 `Ctrl + Shift + F / Command + Option + F` ;
- 折叠快捷键 `Ctrl + Q / Command + Q` ;
- 新增自定义主题支持;
- 新增 3 个成员方法 `setTheme()` 、 `setCodeMirrorOption()` 和 `getCodeMirrorOption()` ;
- 新增 @Link 支持;
- 新增 GFM Task Lists 支持;
- 新增 Emoji 表情支持;
- 支持 Github emoji `:emoji-name:` 、FontAwesome icons(`:fa-xxx:`)、Twitter emoji (twemoji) ( `:tw-xxxx:` )、Editor.md logo icons( `:editormd-logo:` )形式的 Emoji;
- 新增属性 `editormd.emoji` 、 `editormd.twemoji` 、 `editormd.urls` 和 `editormd.regex`;
- 新增 HTML 实体字符插入、插入表格和使用帮助对话框;
- 修改了 `createDialog()` 等方法;
- 新增 `mask` 成员属性和锁屏方法 `editormd.lockScreen()` 、 `editormd.fn.lockScreen()` ;
- 改进插入预格式文本和代码对话框;
- 将 `<textarea>` 改为 `CodeMirror` ,输入更加方便和直观;
- 新增自定义键盘快捷键功能;
- 新增 2 个方法: `addKeyMap()` 和 `removeKayMap()`;
- 改用 `Prefixes.css` 作CSS前缀预处理;
- SCSS前缀预处理mixins改用 [Prefixes.scss](https://github.com/pandao/prefixes.scss "Prefixes.scss");
- 改进和增强工具栏自定义功能;
- 新增配置项 `toolbarCustomIcons` ,用于增加自定义工具栏的功能,可以直接插入 HTML 标签,不使用默认的元素创建图标;
- 新增工具栏列表预设值属性 `editormd.toolbarModes` ;
- 移除成员属性 `toolbarIconHandlers` ;
- 完善和新增事件处理方法;
- 新增事件回调注册方法 `on()` ;
- 新增事件回调移除方法 `off()` ;
- 新增事件回调处理配置项: `onresize` 、 `onscroll` 、`onpreviewscroll` 、 `onpreviewing` 、 `onpreviewed` 、`onwatch` 和 `onunwatch` ;
- 新增手动加载依赖模块方式,以便可同步使用成员方法;
- 新增属性 `autoLoadModules` ,默认值为 `true` ;
- 新增插件及扩展机制;
- 新增插件自定义机制,改变整体结构(包括文件结构),以便更加方便地实现插件扩展;
- 新增对象扩展方法 `extends()` 、 `set()` ;
- 新增成员方法和属性:
- 新增两个方法: `setValue()` 、`getValue()`;
- 新增 `config()` 方法,用于加载后重新配置;
- 增加两个属性 `cm` ,是 `codeEditor` 的简写, `cmElement` 是 `codeMirror` 的别名;
- 成员方法的改进:
- 改进: `showToolbar()` 和 `hideToolbar()` 方法增加一个 `callback` 函数,用于直接回调操作;
- 改进:修改了 `previewCodeHighlight()` 方法;
- 更名: `recreateEditor()` 更名为 `recreate()` ;
- 移除 `setMarked()` 方法;
- 新增 HTML 标签解析过滤机制;
- 通过设置 `settings.htmlDecode = "style,script,iframe"` 来实现过滤指定标签的解析;
- 改进 Require.js 支持;
- 修复 Require.js 下 CodeMirror 编辑器的代码无法高亮的问题;
- 更新 `underscore` 版本至 `1.8.2` ;
- 移除 `editormd.requirejsInit()` 和 `editormd.requireModules()` 方法;
- 新增 `Require.js/AMD` 专用版本文件 `editormd.amd.js` ;
- 新建 Gulp 任务 `amd` ;
- 修改和新增以上改进等相关示例;
### v1.3
#### v1.3.0
主要更新:
- 预设键盘快捷键处理(粗体等),插入 Markdown 更加方便;
- 更新 CodeMirror 版本为 `5.0` ;
- 更新 Marked 版本为 `0.3.3`;
- 新增自动高度和工具栏固定定位功能;
- 改进表格插入对话框;
- 工具栏新增三个按钮,分别是将所选文本首字母转成大写、转成小写、转成大写;
- 修改使用帮助文档;
- 修复多个 Bug;
具体更新如下:
- 新增常用键盘快捷键预设处理;
- 新增属性 `editormd.keyMaps` ,预设一些常用操作,例如插入粗体等;
- 新增成员方法 `registerKeyMaps()` ;
- 退出HTML全屏预览快捷键更改为 `Shift + ESC`;
- 新增配置项 `disabledKeyMaps` ,用于屏蔽一些快捷键操作;
- 更新 CodeMirror 版本为 `5.0`;
- 修改无法输入 `/` 的问题;
- 更新 Marked 版本为 `0.3.3`;
- 新增自动高度和工具栏固定定位(滚动条拖动时)模式;
- 新增配置项 `settings.autoHeight` ;
- 新增配置项 `settings.toolbarAutoFixed` ;
- 新增方法 `setToolbarAutoFixed(true|false)` ;
- 新增邮箱地址自动添加链接功能;
- 新增配置项 `emailLink` ,默认为 `true` ;
- 改进表格插入对话框;
- 工具栏新增三个按钮,分别是将所选文本首字母转成大写、转成小写、转成大写;
- 新增方法 `editormd.ucwords()` ,别名 `editormd.wordsFirstUpperCase()` ;
- 新增方法 `editormd.ucfirst()` ,别名 `editormd.firstUpperCase()` ;
- 新增两个成员方法 `getSelections()` 和 `getSelections()` ;
- 修复 Font awesome 图标 emoji 部分无法解析的 Bug,[#39](https://github.com/pandao/editor.md/issues/39)
- 改进 @link 功能 [#40](https://github.com/pandao/editor.md/issues/40);
- 新增配置项 `atLink` ,默认为 `true` ;
- 修复无法输入 `/` 的问题 [#42](https://github.com/pandao/editor.md/issues/42);
- 修改使用帮助说明的错误 [#43](https://github.com/pandao/editor.md/issues/43);
- 新增配置项 `pluginPath`,默认为空时,等于 `settings.path + "../plugins/"` ;
### v1.4
#### v1.4.0
主要更新:
- 新增延迟解析机制,预览更即时;
- 新增跳转到指定行的功能和对话框;
- 新增 ToC 下拉菜单、自定义 ToC 容器的功能;
- 新增跳转到行、搜索的工具栏按钮;
- 新增支持插入和解析(打印)分页符;
- 改进快捷键功能和自动高度模式等;
- 改进:将锚点链接改名为引用链接;
- 改进编辑器重建和重配置功能;
- 修复多个 Bug;
具体更新:
- 新增延迟解析预览的机制,解决输入太多太快出现的 “延迟卡顿” 问题;
- 新增配置项 `delay` ,默认值为 `300`;
- 修复当输入速度太快时,解析Flowchart会抛出错误的问题;
- 修改 iPad 等移动终端的浏览器无法上传图片的问题 [#48](https://github.com/pandao/editor.md/issues/48);
- 修复单独引用 `editormd.preview.css` 时无法显示 Font Awesome 和 Editor.md logo 字体的问题;
- 更新和修改 Gulp 构建;
- 修改了 `Gulpfile.js` ,并且 `gulp-ruby-sass` 升级到最新版本 `1.0.0-alpha.3` ;
- 编辑 SCSS 时,不再生成 CSS 的 Source map 文件;
- 执行 jshint 和更正一些 JS 写法的不规范,精简了代码;
- 新增配置项 `appendMarkdown` 和 `appendMarkdown()` 方法,用于(初始化前后)追加 Markdown 到 Textarea ;
- 改进部分预设快捷键功能,包括 F9 (watch)、F10 (preview)、F11 (fullscreen)等;
- 修复自动高度模式下出现的几个问题;
- 全屏退出时高度不正确的问题:修改了 `fullscreenExit()` 方法的内部实现;
- 当解析预览后的 HTML 内容高度高于 Markdown 源码编辑器高度时,无法正确预览的问题 [#49](https://github.com/pandao/editor.md/issues/49);
- 修改 `onscroll` 和 `onpreviewscroll` 无法访问 `this` 的问题;
- 修改 `init()` 方法,可以只设置一个参数;
- 新增插入 TeX (KaTeX) 公式的快捷键 `Ctrl + Shift + K` 和插入方法 `tex()` ;
- 将锚点链接改为引用链接,引用的链接改为插入到页尾;
- 工具栏的名称 `anchor` 改为 `reference-link`;
- 工具栏的名称 `htmlEntities` 改名为 `html-entities`;
- 改进编辑器重建和重配置功能;
- 修改了 `loadedDisplay()` 方法;
- 修改了 `config()` 和 `recreate()` 方法;
- 新增跳转到指定行的功能;
- 新增方法 `gotoLine()` ;
- 新增跳转到行对话框插件 `goto-line-dialog` ;
- 新增快捷键 `Ctrl + Alt + G` ;
- 改进 `executePlugin()` 方法;
- 修改了 `help-dialog/help.md` ;
- 新增搜索工具栏按钮;
- 新增方法 `search()` 、`searchReplace()` 和 `searchReplaceAll()` ;
- 原全屏预览 HTML 按钮的图标改为 `fa-desktop`;
- 改为默认开启搜索替换功能;
- 更换了关于 Editor.md 的标语( slogan );
- 标题按钮 `h` 改为大写的 `H`;
- `saveToTextareas()` 方法更名为 `save()`;
- 新增 ToC 下拉菜单、自定义 ToC 容器的功能;
- 新增 Markdown 扩展语法 `[TOCM]` ,自动生成 ToC 下拉菜单;
- 新增配置项 `tocm` ,默认为 `true`,即可以使用 `[TOCM]` ;
- 新增配置项 `tocDropdown` 和 `tocTitle` ;
- 新增方法 `editormd.tocDropdownMenu()` ;
- 新增配置项 `tocContainer` ,值为 jQuery 选择器,默认为空;
- 修改了配置项 `placeholder` 的默认值;
- 改进对 IE8 的兼容支持;
- 修复 Firefox 下因为 `Object.watch()` 而出现的问题;
- 新增支持插入和解析(打印)分页符;
- 新增配置项 `pageBreak` ,默认值为 `true`;
- 新增语法 `[========]` ,即括号内至少 8 个等号;
- 新增插入分页符的工具栏图标和方法 `pagebreak()` ;
- 新增插入分页符的快捷键 `Shift + Alt + P`;
- 修复一些 Bug,包括 [#51](https://github.com/pandao/editor.md/issues/51) 等;
- 新增和修改以上更新的相关示例;
#### v1.4.1
- 新增配置项 `syncScrolling`,即是否开启同步滚动预览,默认值为 `false` ;
- 修复 Bug [#64](https://github.com/pandao/editor.md/issues/64);
- 更新 `editormd.katexURL` 资源地址的默认值,即更新版本为 `0.3.0` ;
- 新增测试用例`tests/katex-tests.html`;
- 修改示例文件`examples/katex.html`;
- 修复 Bug [#66](https://github.com/pandao/editor.md/issues/66);
- 修复编辑器工具栏按钮 `:hover` CSS3 transition 无效的问题;
- 修改了 `README.md`;
#### v1.4.2
- 改进和增强自定义工具栏功能,支持图标按钮右对齐 [#69](https://github.com/pandao/editor.md/issues/69);
- 改进和增强 HTML 标签的解析过滤功能,支持过滤指定的属性等 [#70](https://github.com/pandao/editor.md/issues/70);
- 删除分支 `mathjax-version` 和 `v1.1.9`;
#### v1.4.3
- 改进:可配置是否自动聚焦编辑器 [#74](https://github.com/pandao/editor.md/issues/74);
- 新增配置项 `autoFocus`,默认值为 `true`;
- 修复 Bug [#77](https://github.com/pandao/editor.md/issues/77);
- 改进:帮助对话框里的链接改为新窗口打开,避免直接跳转到链接,导致编辑内容丢失的问题 [#79](https://github.com/pandao/editor.md/issues/79);
- 改进和完善编辑器配置项;
- 新增配置项 `tabSize`、`indentUnit` 和 `lineWrapping`;
- 新增配置项 `autoCloseBrackets` 和 `showTrailingSpace` ;
- 新增配置项 `matchBrackets`、`indentWithTabs` 和 `styleSelectedText`;
- 改进:修改 CSS `font-family`,改进跨平台中英文字体显示;
- 修改了 `README.md`;
#### v1.4.4
- 修复 Bug [#81](https://github.com/pandao/editor.md/issues/81),即不支持 `:+1:` 的问题;
- 修复 Bug [#85](https://github.com/pandao/editor.md/issues/85),即图片上传返回结果不支持 `Content-Type=application/json` 的问题;
- 修复图片上传无法显示 loading 的问题;
#### v1.4.5
- 规范项目的中英文混排;
- 新增配置项 `name`,用于指定 Markdown textarea 的 `name="xxxx"` 属性;
- 修复 Bug,即无法正确解析公式的 `<` 和 `>` 的问题 [#87](https://github.com/pandao/editor.md/issues/87);
- 修复 Bug,即 `getHTML()` 无效的问题 [#95](https://github.com/pandao/editor.md/issues/95);
- 修复 Bug,即火狐上传图片后无法返回值的问题 [#96](https://github.com/pandao/editor.md/issues/96);
- 修改了图片上传插件;
- 修改 PHP 上传类及示例;
- 方法更名:`extends()` 更名为 `extend()`,以兼容 IE8;
- 修复 IE8 下 Emoji 正则表达式字符集越界的问题;
- 更新了 `README.md` 和 `CHANGE.md` 等相关文档文件;
### v1.5
#### v1.5.0
主要更新:
- 新增:编辑器黑色主题 Dark,改进自定义主题功能(即工具栏、编辑区、预览区可分别设置主题样式);
- 新增:多行公式支持;
- 新增:支持非编辑状态下的 ToC 自定义容器;
- 新增:支持设置为单向同步滚动;
- 改进:编辑器样式美化,更换了滚动条样式;
- 改进:提高同步滚动定位的精确度;
- 改进:修复和改进 HTML 标签及属性过滤功能;
- 改进:修复在 Bootstrap 下的兼容性问题;
- 修复多处 Bug;
具体更新:
- 新增:解析后的代码块自动换行;
- 新增:支持多行公式;
- 新增:新增语法:\`\`\`math | latex | katex;
- 改进:美化 KaTeX 公式,即加大字号等;
- 新增:支持设置为单向同步滚动,即只是编辑区单向同步滚动,配置项 `syncScrolling : "single"`;
- 新增:配置同步滚动示例文件 `sync-scrolling.html`;
- 新增:增加了编辑器样式主题 Dark,即工具栏和预览区各自有一个暗黑色主题;
- 变更:自 `v1.5.0` 开始,配置项 `theme` 改为指定 Editor.md 本身的主题;
- 新增配置项 `editorTheme` ,用于指定编辑区的主题,即 CodeMirror 的主题;
- 新增配置项 `previewTheme` ,用于指定预览区的主题;
- 新增方法 `setEditorTheme()`,别名: `setCodeMirror()`;
- 新增方法 `setPreviewTheme()`;
- 修改了方法 `setTheme()` ;
- 更换了滚动条样式,Only Webkit;
- 改进全屏状态下的样式显示,去掉 JS 操作的部分,改为通过 CSS 样式类 `.editormd-fullscreen` 控制;
- 修改和增加相关的方法、SCSS 文件及示例文件 `themes.html`;
- 新增:非编辑状态下 ToC 自定义容器支持;
- 新增配置项 `markdownSourceCode`,即解析后是否保留源码,默认为不保留 `false`;
- 新增配置项 `tocContainer`,值为自定义 ToC 容器的 ID 选择器 `#xxxxx`,默认为空;
- 新增和修改了相关示例文件;
- 新增:新增加了 CSS 样式类 `editormd-preview-active`,可以控制全屏HTML预览时的内容层样式;
- 修改了 `previewing()` 和 `previewed()` 方法;
- 相关 issues [#103](https://github.com/pandao/editor.md/issues/103);
- 另外也调整了关闭按钮的位置;
- 改进:修复插入 Emoji `:moon:` 无法显示的问题,修改为其是 `:waxing_gibbous_moon:` 的别名 [#94](https://github.com/pandao/editor.md/pull/94);
- 改进:修改了 CodeMirror 代码行的左右内间距,使其不会挨着左边的行号层;
- 相关 issues [#97](https://github.com/pandao/editor.md/issues/97);
- 改进:修改了同步滚动的定位算法,提高精确度;
- 修正问题 [#99](https://github.com/pandao/editor.md/issues/99);
- 修改了 `bindScrollEvent()` 方法;
- 改进:完善 HTML 标签过滤功能,即代码块、`<pre>` 预格式文本和行内代码里的标签及属性不会被过滤;
- 修复 Bug [#105](https://github.com/pandao/editor.md/issues/105);
- 改进:当不显示行号时 `settings.lineNumbers == false`,CodeMirror 行号层去掉右边框;
- 改进:根据指针在当前行的位置更合理插入标题和水平线 [#104](https://github.com/pandao/editor.md/pull/104);
- 改进:调整了字体,优先显示 `"YaHei Consolas Hybrid", Consolas`;
- 改进:修复在 Bootstrap 下的兼容性问题,即因为 box-sizing 写错位置导致的弹出层宽度等错位问题 [#107](https://github.com/pandao/editor.md/issues/107);
================================================
FILE: Gulpfile.js
================================================
"use strict";
var os = require("os");
var gulp = require("gulp");
var gutil = require("gulp-util");
var sass = require("gulp-ruby-sass");
var jshint = require("gulp-jshint");
var uglify = require("gulp-uglifyjs");
var rename = require("gulp-rename");
var concat = require("gulp-concat");
var notify = require("gulp-notify");
var header = require("gulp-header");
var minifycss = require("gulp-minify-css");
//var jsdoc = require("gulp-jsdoc");
//var jsdoc2md = require("gulp-jsdoc-to-markdown");
var pkg = require("./package.json");
var dateFormat = require("dateformatter").format;
var replace = require("gulp-replace");
pkg.name = "Editor.md";
pkg.today = dateFormat;
var headerComment = ["/*",
" * <%= pkg.name %>",
" *",
" * @file <%= fileName(file) %> ",
" * @version v<%= pkg.version %> ",
" * @description <%= pkg.description %>",
" * @license MIT License",
" * @author <%= pkg.author %>",
" * {@link <%= pkg.homepage %>}",
" * @updateTime <%= pkg.today('Y-m-d') %>",
" */",
"\r\n"].join("\r\n");
var headerMiniComment = "/*! <%= pkg.name %> v<%= pkg.version %> | <%= fileName(file) %> | <%= pkg.description %> | MIT License | By: <%= pkg.author %> | <%= pkg.homepage %> | <%=pkg.today('Y-m-d') %> */\r\n";
var scssTask = function(fileName, path) {
path = path || "scss/";
var distPath = "css";
return sass(path + fileName + ".scss", { style: "expanded", sourcemap: false, noCache : true })
.pipe(gulp.dest(distPath))
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base);
return name[1].replace("\\", "");
}}))
.pipe(gulp.dest(distPath))
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest(distPath))
.pipe(minifycss())
.pipe(gulp.dest(distPath))
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base);
return name[1].replace("\\", "");
}}))
.pipe(gulp.dest(distPath))
.pipe(notify({ message: fileName + ".scss task completed!" }));
};
gulp.task("scss", function() {
return scssTask("editormd");
});
gulp.task("scss2", function() {
return scssTask("editormd.preview");
});
gulp.task("scss3", function() {
return scssTask("editormd.logo");
});
gulp.task("js", function() {
return gulp.src("./src/editormd.js")
.pipe(jshint("./.jshintrc"))
.pipe(jshint.reporter("default"))
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base);
return name[1].replace(/[\\\/]?/, "");
}}))
.pipe(gulp.dest("./"))
.pipe(rename({ suffix: ".min" }))
.pipe(uglify()) // {outSourceMap: true, sourceRoot: './'}
.pipe(gulp.dest("./"))
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base + ( (os.platform() === "win32") ? "\\" : "/") );
return name[1].replace(/[\\\/]?/, "");
}}))
.pipe(gulp.dest("./"))
.pipe(notify({ message: "editormd.js task complete" }));
});
gulp.task("amd", function() {
var replaceText1 = [
'var cmModePath = "codemirror/mode/";',
' var cmAddonPath = "codemirror/addon/";',
'',
' var codeMirrorModules = [',
' "jquery", "marked", "prettify",',
' "katex", "raphael", "underscore", "flowchart", "jqueryflowchart", "sequenceDiagram",',
'',
' "codemirror/lib/codemirror",',
' cmModePath + "css/css",',
' cmModePath + "sass/sass",',
' cmModePath + "shell/shell",',
' cmModePath + "sql/sql",',
' cmModePath + "clike/clike",',
' cmModePath + "php/php",',
' cmModePath + "xml/xml",',
' cmModePath + "markdown/markdown",',
' cmModePath + "javascript/javascript",',
' cmModePath + "htmlmixed/htmlmixed",',
' cmModePath + "gfm/gfm",',
' cmModePath + "http/http",',
' cmModePath + "go/go",',
' cmModePath + "dart/dart",',
' cmModePath + "coffeescript/coffeescript",',
' cmModePath + "nginx/nginx",',
' cmModePath + "python/python",',
' cmModePath + "perl/perl",',
' cmModePath + "lua/lua",',
' cmModePath + "r/r", ',
' cmModePath + "ruby/ruby", ',
' cmModePath + "rst/rst",',
' cmModePath + "smartymixed/smartymixed",',
' cmModePath + "vb/vb",',
' cmModePath + "vbscript/vbscript",',
' cmModePath + "velocity/velocity",',
' cmModePath + "xquery/xquery",',
' cmModePath + "yaml/yaml",',
' cmModePath + "erlang/erlang",',
' cmModePath + "jade/jade",',
'',
' cmAddonPath + "edit/trailingspace", ',
' cmAddonPath + "dialog/dialog", ',
' cmAddonPath + "search/searchcursor", ',
' cmAddonPath + "search/search", ',
' cmAddonPath + "scroll/annotatescrollbar", ',
' cmAddonPath + "search/matchesonscrollbar", ',
' cmAddonPath + "display/placeholder", ',
' cmAddonPath + "edit/closetag", ',
' cmAddonPath + "fold/foldcode",',
' cmAddonPath + "fold/foldgutter",',
' cmAddonPath + "fold/indent-fold",',
' cmAddonPath + "fold/brace-fold",',
' cmAddonPath + "fold/xml-fold", ',
' cmAddonPath + "fold/markdown-fold",',
' cmAddonPath + "fold/comment-fold", ',
' cmAddonPath + "mode/overlay", ',
' cmAddonPath + "selection/active-line", ',
' cmAddonPath + "edit/closebrackets", ',
' cmAddonPath + "display/fullscreen",',
' cmAddonPath + "search/match-highlighter"',
' ];',
'',
' define(codeMirrorModules, factory);'
].join("\r\n");
var replaceText2 = [
"if (typeof define == \"function\" && define.amd) {",
" $ = arguments[0];",
" marked = arguments[1];",
" prettify = arguments[2];",
" katex = arguments[3];",
" Raphael = arguments[4];",
" _ = arguments[5];",
" flowchart = arguments[6];",
" CodeMirror = arguments[9];",
" }"
].join("\r\n");
gulp.src("src/editormd.js")
.pipe(rename({ suffix: ".amd" }))
.pipe(gulp.dest('./'))
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base);
return name[1].replace(/[\\\/]?/, "");
}}))
.pipe(gulp.dest("./"))
.pipe(replace("/* Require.js define replace */", replaceText1))
.pipe(gulp.dest('./'))
.pipe(replace("/* Require.js assignment replace */", replaceText2))
.pipe(gulp.dest('./'))
.pipe(rename({ suffix: ".min" }))
.pipe(uglify()) //{outSourceMap: true, sourceRoot: './'}
.pipe(gulp.dest("./"))
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base + ( (os.platform() === "win32") ? "\\" : "/") );
return name[1].replace(/[\\\/]?/, "");
}}))
.pipe(gulp.dest("./"))
.pipe(notify({ message: "amd version task complete"}));
});
var codeMirror = {
path : {
src : {
mode : "lib/codemirror/mode",
addon : "lib/codemirror/addon"
},
dist : "lib/codemirror"
},
modes : [
"css",
"sass",
"shell",
"sql",
"clike",
"php",
"xml",
"markdown",
"javascript",
"htmlmixed",
"gfm",
"http",
"go",
"dart",
"coffeescript",
"nginx",
"python",
"perl",
"lua",
"r",
"ruby",
"rst",
"smartymixed",
"vb",
"vbscript",
"velocity",
"xquery",
"yaml",
"erlang",
"jade",
],
addons : [
"edit/trailingspace",
"dialog/dialog",
"search/searchcursor",
"search/search",
"scroll/annotatescrollbar",
"search/matchesonscrollbar",
"display/placeholder",
"edit/closetag",
"fold/foldcode",
"fold/foldgutter",
"fold/indent-fold",
"fold/brace-fold",
"fold/xml-fold",
"fold/markdown-fold",
"fold/comment-fold",
"mode/overlay",
"selection/active-line",
"edit/closebrackets",
"display/fullscreen",
"search/match-highlighter"
]
};
gulp.task("cm-mode", function() {
var modes = [
codeMirror.path.src.mode + "/meta.js"
];
for(var i in codeMirror.modes) {
var mode = codeMirror.modes[i];
modes.push(codeMirror.path.src.mode + "/" + mode + "/" + mode + ".js");
}
return gulp.src(modes)
.pipe(concat("modes.min.js"))
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(uglify()) // {outSourceMap: true, sourceRoot: codeMirror.path.dist}
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base + "\\");
return (name[1]?name[1]:name[0]).replace(/\\/g, "");
}}))
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(notify({ message: "codemirror-mode task complete!" }));
});
gulp.task("cm-addon", function() {
var addons = [];
for(var i in codeMirror.addons) {
var addon = codeMirror.addons[i];
addons.push(codeMirror.path.src.addon + "/" + addon + ".js");
}
return gulp.src(addons)
.pipe(concat("addons.min.js"))
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(uglify()) //{outSourceMap: true, sourceRoot: codeMirror.path.dist}
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {
var name = file.path.split(file.base + "\\");
return (name[1]?name[1]:name[0]).replace(/\\/g, "");
}}))
.pipe(gulp.dest(codeMirror.path.dist))
.pipe(notify({ message: "codemirror-addon.js task complete" }));
});
/*
gulp.task("jsdoc", function(){
return gulp.src(["./src/editormd.js", "README.md"])
.pipe(jsdoc.parser())
.pipe(jsdoc.generator("./docs/html"));
});
gulp.task("jsdoc2md", function() {
return gulp.src("src/js/editormd.js")
.pipe(jsdoc2md())
.on("error", function(err){
gutil.log(gutil.colors.red("jsdoc2md failed"), err.message);
})
.pipe(rename(function(path) {
path.extname = ".md";
}))
.pipe(gulp.dest("docs/markdown"));
});
*/
gulp.task("watch", function() {
gulp.watch("scss/editormd.scss", ["scss"]);
gulp.watch("scss/editormd.preview.scss", ["scss", "scss2"]);
gulp.watch("scss/editormd.logo.scss", ["scss", "scss3"]);
gulp.watch("src/editormd.js", ["js", "amd"]);
});
gulp.task("default", function() {
gulp.run("scss");
gulp.run("scss2");
gulp.run("scss3");
gulp.run("js");
gulp.run("amd");
gulp.run("cm-addon");
gulp.run("cm-mode");
});
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2015 pandao
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# Editor.md







**Editor.md** : The open source embeddable online markdown editor (component), based on CodeMirror & jQuery & Marked.
### Features
- Support Standard Markdown / CommonMark and GFM (GitHub Flavored Markdown);
- Full-featured: Real-time Preview, Image (cross-domain) upload, Preformatted text/Code blocks/Tables insert, Code fold, Search replace, Read only, Themes, Multi-languages, L18n, HTML entities, Code syntax highlighting...;
- Markdown Extras : Support [ToC (Table of Contents)](https://pandao.github.io/editor.md/examples/toc.html), [Emoji](https://pandao.github.io/editor.md/examples/emoji.html), [Task lists](https://pandao.github.io/editor.md/examples/task-lists.html), [@Links](https://pandao.github.io/editor.md/examples/@links.html)...;
- Compatible with all major browsers (IE8+), compatible Zepto.js and iPad;
- Support [decode & fliter of the HTML tags & attributes](https://pandao.github.io/editor.md/examples/html-tags-decode.html);
- Support [TeX (LaTeX expressions, Based on KaTeX)](https://pandao.github.io/editor.md/examples/katex.html), [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html) and [Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html) of Markdown extended syntax;
- Support AMD/CMD (Require.js & Sea.js) Module Loader, and Custom/define editor plugins;
[README & Examples (English)](https://pandao.github.io/editor.md/en.html)
--------
**Editor.md** 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。

#### 主要特性
- 支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法,也可[变身为代码编辑器](https://pandao.github.io/editor.md/examples/change-mode.html);
- 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、跳转到行、搜索替换、只读模式、自定义样式主题和多语言语法高亮等功能;
- 支持 [ToC(Table of Contents)](https://pandao.github.io/editor.md/examples/toc.html)、[Emoji表情](https://pandao.github.io/editor.md/examples/emoji.html)、[Task lists](https://pandao.github.io/editor.md/examples/task-lists.html)、[@链接](https://pandao.github.io/editor.md/examples/@links.html)等 Markdown 扩展语法;
- 支持 TeX 科学公式(基于 [KaTeX](https://pandao.github.io/editor.md/examples/katex.html))、流程图 [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html) 和 [时序图 Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html);
- 支持[识别和解析 HTML 标签,并且支持自定义过滤标签及属性解析](https://pandao.github.io/editor.md/examples/html-tags-decode.html),具有可靠的安全性和几乎无限的扩展性;
- 支持 AMD / CMD 模块化加载(支持 [Require.js](https://pandao.github.io/editor.md/examples/use-requirejs.html) & [Sea.js](https://pandao.github.io/editor.md/examples/use-seajs.html)),并且支持[自定义扩展插件](https://pandao.github.io/editor.md/examples/define-plugin.html);
- 兼容主流的浏览器(IE8+)和 [Zepto.js](https://pandao.github.io/editor.md/examples/use-zepto.html),且支持 iPad 等平板设备;
#### Download & install
Download:
[Github download](https://github.com/pandao/editor.md/archive/master.zip)
NPM install :
```bash
npm install editor.md
```
Bower install :
```bash
bower install editor.md
```
#### Usages
##### Create a Markdown editor
```html
<link rel="stylesheet" href="editor.md/css/editormd.min.css" />
<div id="editor">
<!-- Tips: Editor.md can auto append a `<textarea>` tag -->
<textarea style="display:none;">### Hello Editor.md !</textarea>
</div>
<script src="jquery.min.js"></script>
<script src="editor.md/editormd.min.js"></script>
<script type="text/javascript">
$(function() {
var editor = editormd("editor", {
// width: "100%",
// height: "100%",
// markdown: "xxxx", // dynamic set Markdown text
path : "editor.md/lib/" // Autoload modules mode, codemirror, marked... dependents libs path
});
});
</script>
```
If you using modular script loader:
- [Using Require.js](https://github.com/pandao/editor.md/tree/master/examples/use-requirejs.html)
- [Using Sea.js](https://github.com/pandao/editor.md/tree/master/examples/use-seajs.html)
##### Markdown to HTML
```html
<link rel="stylesheet" href="editormd/css/editormd.preview.css" />
<div id="test-markdown-view">
<!-- Server-side output Markdown text -->
<textarea style="display:none;">### Hello world!</textarea>
</div>
<script src="jquery.min.js"></script>
<script src="editormd/editormd.js"></script>
<script src="editormd/lib/marked.min.js"></script>
<script src="editormd/lib/prettify.min.js"></script>
<script type="text/javascript">
$(function() {
var testView = editormd.markdownToHTML("test-markdown-view", {
// markdown : "[TOC]\n### Hello world!\n## Heading 2", // Also, you can dynamic set Markdown text
// htmlDecode : true, // Enable / disable HTML tag encode.
// htmlDecode : "style,script,iframe", // Note: If enabled, you should filter some dangerous HTML tags for website security.
});
});
</script>
```
> See the full example: [http://editor.md.ipandao.com/examples/html-preview-markdown-to-html.html](http://editor.md.ipandao.com/examples/html-preview-markdown-to-html.html)
##### HTML to Markdown?
Sorry, Editor.md not support HTML to Markdown parsing, Maybe In the future.
#### Examples
[https://pandao.github.io/editor.md/examples/index.html](https://pandao.github.io/editor.md/examples/index.html)
#### Options
Editor.md options and default values:
```javascript
{
mode : "gfm", // gfm or markdown
name : "", // Form element name for post
value : "", // value for CodeMirror, if mode not gfm/markdown
theme : "", // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty
editorTheme : "default", // Editor area, this is CodeMirror theme at v1.5.0
previewTheme : "", // Preview area theme, default empty
markdown : "", // Markdown source code
appendMarkdown : "", // if in init textarea value not empty, append markdown to textarea
width : "100%",
height : "100%",
path : "./lib/", // Dependents module file directory
pluginPath : "", // If this empty, default use settings.path + "../plugins/"
delay : 300, // Delay parse markdown to html, Uint : ms
autoLoadModules : true, // Automatic load dependent module files
watch : true,
placeholder : "Enjoy Markdown! coding now...",
gotoLine : true, // Enable / disable goto a line
codeFold : false,
autoHeight : false,
autoFocus : true, // Enable / disable auto focus editor left input area
autoCloseTags : true,
searchReplace : true, // Enable / disable (CodeMirror) search and replace function
syncScrolling : true, // options: true | false | "single", default true
readOnly : false, // Enable / disable readonly mode
tabSize : 4,
indentUnit : 4,
lineNumbers : true, // Display editor line numbers
lineWrapping : true,
autoCloseBrackets : true,
showTrailingSpace : true,
matchBrackets : true,
indentWithTabs : true,
styleSelectedText : true,
matchWordHighlight : true, // options: true, false, "onselected"
styleActiveLine : true, // Highlight the current line
dialogLockScreen : true,
dialogShowMask : true,
dialogDraggable : true,
dialogMaskBgColor : "#fff",
dialogMaskOpacity : 0.1,
fontSize : "13px",
saveHTMLToTextarea : false, // If enable, Editor will create a <textarea name="{editor-id}-html-code"> tag save HTML code for form post to server-side.
disabledKeyMaps : [],
onload : function() {},
onresize : function() {},
onchange : function() {},
onwatch : null,
onunwatch : null,
onpreviewing : function() {},
onpreviewed : function() {},
onfullscreen : function() {},
onfullscreenExit : function() {},
onscroll : function() {},
onpreviewscroll : function() {},
imageUpload : false, // Enable/disable upload
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL : "", // Upload url
crossDomainUpload : false, // Enable/disable Cross-domain upload
uploadCallbackURL : "", // Cross-domain upload callback url
toc : true, // Table of contents
tocm : false, // Using [TOCM], auto create ToC dropdown menu
tocTitle : "", // for ToC dropdown menu button
tocDropdown : false, // Enable/disable Table Of Contents dropdown menu
tocContainer : "", // Custom Table Of Contents Container Selector
tocStartLevel : 1, // Said from H1 to create ToC
htmlDecode : false, // Open the HTML tag identification
pageBreak : true, // Enable parse page break [========]
atLink : true, // for @link
emailLink : true, // for email address auto link
taskList : false, // Enable Github Flavored Markdown task lists
emoji : false, // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);
// Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;
// Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;
tex : false, // TeX(LaTeX), based on KaTeX
flowChart : false, // flowChart.js only support IE9+
sequenceDiagram : false, // sequenceDiagram.js only support IE9+
previewCodeHighlight : true, // Enable / disable code highlight of editor preview area
toolbar : true, // show or hide toolbar
toolbarAutoFixed : true, // on window scroll auto fixed position
toolbarIcons : "full", // Toolbar icons mode, options: full, simple, mini, See `editormd.toolbarModes` property.
toolbarTitles : {},
toolbarHandlers : {
ucwords : function() {
return editormd.toolbarHandlers.ucwords;
},
lowercase : function() {
return editormd.toolbarHandlers.lowercase;
}
},
toolbarCustomIcons : { // using html tag create toolbar icon, unused default <a> tag.
lowercase : "<a href=\"javascript:;\" title=\"Lowercase\" unselectable=\"on\"><i class=\"fa\" name=\"lowercase\" style=\"font-size:24px;margin-top: -10px;\">a</i></a>",
"ucwords" : "<a href=\"javascript:;\" title=\"ucwords\" unselectable=\"on\"><i class=\"fa\" name=\"ucwords\" style=\"font-size:20px;margin-top: -3px;\">Aa</i></a>"
},
toolbarIconTexts : {},
lang : { // Language data, you can custom your language.
name : "zh-cn",
description : "开源在线Markdown编辑器<br/>Open source online Markdown editor.",
tocTitle : "目录",
toolbar : {
//...
},
button: {
//...
},
dialog : {
//...
}
//...
}
}
```
#### Dependents
- [CodeMirror](http://codemirror.net/ "CodeMirror")
- [marked](https://github.com/markedjs/marked "marked")
- [jQuery](http://jquery.com/ "jQuery")
- [FontAwesome](http://fontawesome.io/ "FontAwesome")
- [github-markdown.css](https://github.com/sindresorhus/github-markdown-css "github-markdown.css")
- [KaTeX](http://khan.github.io/KaTeX/ "KaTeX")
- [prettify.js](http://code.google.com/p/google-code-prettify/ "prettify.js")
- [Rephael.js](http://raphaeljs.com/ "Rephael.js")
- [flowchart.js](http://adrai.github.io/flowchart.js/ "flowchart.js")
- [sequence-diagram.js](http://bramp.github.io/js-sequence-diagrams/ "sequence-diagram.js")
- [Prefixes.scss](https://github.com/pandao/prefixes.scss "Prefixes.scss")
#### Changes
[Change logs](https://github.com/pandao/editor.md/blob/master/CHANGE.md)
#### License
The MIT License.
Copyright (c) 2015-2019 Pandao
================================================
FILE: bower.json
================================================
{
"name": "editor.md",
"version": "1.5.0",
"homepage": "https://github.com/pandao/editor.md",
"authors": [
"Pandao <pandao@vip.qq.com>"
],
"description": "Open source online markdown editor.",
"keywords": [
"editor.md",
"markdown",
"editor"
],
"license": "MIT",
"ignore": [
"**/.*",
"research",
"docs",
"node_modules",
"bower_components",
"test",
"tests"
]
}
================================================
FILE: css/editormd.css
================================================
/*
* Editor.md
*
* @file editormd.css
* @version v1.5.0
* @description Open source online markdown editor.
* @license MIT License
* @author Pandao
* {@link https://github.com/pandao/editor.md}
* @updateTime 2015-06-09
*/
@charset "UTF-8";
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
.editormd {
width: 90%;
height: 640px;
margin: 0 auto;
text-align: left;
overflow: hidden;
position: relative;
margin-bottom: 15px;
border: 1px solid #ddd;
font-family: "Meiryo UI", "Microsoft YaHei", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, "Monaco", monospace, Tahoma, STXihei, "华文细黑", STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, "宋体", Heiti, "黑体", sans-serif;
}
.editormd *, .editormd *:before, .editormd *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.editormd a {
text-decoration: none;
}
.editormd img {
border: none;
vertical-align: middle;
}
.editormd > textarea,
.editormd .editormd-html-textarea,
.editormd .editormd-markdown-textarea {
width: 0;
height: 0;
outline: 0;
resize: none;
}
.editormd .editormd-html-textarea,
.editormd .editormd-markdown-textarea {
display: none;
}
.editormd input[type="text"],
.editormd input[type="button"],
.editormd input[type="submit"],
.editormd select, .editormd textarea, .editormd button {
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
appearance: none;
}
.editormd ::-webkit-scrollbar {
height: 10px;
width: 7px;
background: rgba(0, 0, 0, 0.1);
}
.editormd ::-webkit-scrollbar:hover {
background: rgba(0, 0, 0, 0.2);
}
.editormd ::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.3);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
-ms-border-radius: 6px;
-o-border-radius: 6px;
border-radius: 6px;
}
.editormd ::-webkit-scrollbar-thumb:hover {
-webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
/* Webkit browsers */
-moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
/* Firefox */
-ms-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
/* IE9 */
-o-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
/* Opera(Old) */
box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
/* IE9+, News */
background-color: rgba(0, 0, 0, 0.4);
}
.editormd-user-unselect {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.editormd-toolbar {
width: 100%;
min-height: 37px;
background: #fff;
display: none;
position: absolute;
top: 0;
left: 0;
z-index: 10;
border-bottom: 1px solid #ddd;
}
.editormd-toolbar-container {
padding: 0 8px;
min-height: 35px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.editormd-menu {
margin: 0;
padding: 0;
list-style: none;
}
.editormd-menu > li {
margin: 0;
padding: 5px 1px;
display: inline-block;
position: relative;
}
.editormd-menu > li.divider {
display: inline-block;
text-indent: -9999px;
margin: 0 5px;
height: 65%;
border-right: 1px solid #ddd;
}
.editormd-menu > li > a {
outline: 0;
color: #666;
display: inline-block;
min-width: 24px;
font-size: 16px;
text-decoration: none;
text-align: center;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-ms-border-radius: 2px;
-o-border-radius: 2px;
border-radius: 2px;
border: 1px solid #fff;
-webkit-transition: all 300ms ease-out;
/* Safari, Chrome */
-moz-transition: all 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: all 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-menu > li > a:hover, .editormd-menu > li > a.active {
border: 1px solid #ddd;
background: #eee;
}
.editormd-menu > li > a > .fa {
text-align: center;
display: block;
padding: 5px;
}
.editormd-menu > li > a > .editormd-bold {
padding: 5px 2px;
display: inline-block;
font-weight: bold;
}
.editormd-menu > li:hover .editormd-dropdown-menu {
display: block;
}
.editormd-menu > li + li > a {
margin-left: 3px;
}
.editormd-dropdown-menu {
display: none;
background: #fff;
border: 1px solid #ddd;
width: 148px;
list-style: none;
position: absolute;
top: 33px;
left: 0;
z-index: 100;
-webkit-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);
/* Webkit browsers */
-moz-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);
/* Firefox */
-ms-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);
/* IE9 */
-o-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);
/* Opera(Old) */
box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);
/* IE9+, News */
}
.editormd-dropdown-menu:before, .editormd-dropdown-menu:after {
width: 0;
height: 0;
display: block;
content: "";
position: absolute;
top: -11px;
left: 8px;
border: 5px solid transparent;
}
.editormd-dropdown-menu:before {
border-bottom-color: #ccc;
}
.editormd-dropdown-menu:after {
border-bottom-color: #ffffff;
top: -10px;
}
.editormd-dropdown-menu > li > a {
color: #666;
display: block;
text-decoration: none;
padding: 8px 10px;
}
.editormd-dropdown-menu > li > a:hover {
background: #f6f6f6;
-webkit-transition: all 300ms ease-out;
/* Safari, Chrome */
-moz-transition: all 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: all 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-dropdown-menu > li + li {
border-top: 1px solid #ddd;
}
.editormd-container {
margin: 0;
width: 100%;
height: 100%;
overflow: hidden;
padding: 35px 0 0;
position: relative;
background: #fff;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.editormd-dialog {
color: #666;
position: fixed;
z-index: 99999;
display: none;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
/* Webkit browsers */
-moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
/* Firefox */
-ms-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
/* IE9 */
-o-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
/* Opera(Old) */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
/* IE9+, News */
background: #fff;
font-size: 14px;
}
.editormd-dialog-container {
position: relative;
padding: 20px;
line-height: 1.4;
}
.editormd-dialog-container h1 {
font-size: 24px;
margin-bottom: 10px;
}
.editormd-dialog-container h1 .fa {
color: #2C7EEA;
padding-right: 5px;
}
.editormd-dialog-container h1 small {
padding-left: 5px;
font-weight: normal;
font-size: 12px;
color: #999;
}
.editormd-dialog-container select {
color: #999;
padding: 3px 8px;
border: 1px solid #ddd;
}
.editormd-dialog-close {
position: absolute;
top: 12px;
right: 15px;
font-size: 18px;
color: #ccc;
-webkit-transition: color 300ms ease-out;
/* Safari, Chrome */
-moz-transition: color 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: color 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-dialog-close:hover {
color: #999;
}
.editormd-dialog-header {
padding: 11px 20px;
border-bottom: 1px solid #eee;
-webkit-transition: background 300ms ease-out;
/* Safari, Chrome */
-moz-transition: background 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: background 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-dialog-header:hover {
background: #f6f6f6;
}
.editormd-dialog-title {
font-size: 14px;
}
.editormd-dialog-footer {
padding: 10px 0 0 0;
text-align: right;
}
.editormd-dialog-info {
width: 420px;
}
.editormd-dialog-info h1 {
font-weight: normal;
}
.editormd-dialog-info .editormd-dialog-container {
padding: 20px 25px 25px;
}
.editormd-dialog-info .editormd-dialog-close {
top: 10px;
right: 10px;
}
.editormd-dialog-info p > a, .editormd-dialog-info .hover-link:hover {
color: #2196F3;
}
.editormd-dialog-info .hover-link {
color: #666;
}
.editormd-dialog-info a .fa-external-link {
display: none;
}
.editormd-dialog-info a:hover {
color: #2196F3;
}
.editormd-dialog-info a:hover .fa-external-link {
display: inline-block;
}
.editormd-mask,
.editormd-container-mask,
.editormd-dialog-mask {
display: none;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.editormd-mask,
.editormd-dialog-mask-bg {
background: #fff;
opacity: 0.5;
filter: alpha(opacity=50);
}
.editormd-mask {
position: fixed;
background: #000;
opacity: 0.2;
/* W3C */
filter: alpha(opacity=20);
/* IE */
z-index: 99998;
}
.editormd-container-mask,
.editormd-dialog-mask-con {
background: url(../images/loading.gif) no-repeat center center;
-webkit-background-size: 32px 32px;
/* Chrome, iOS, Safari */
-moz-background-size: 32px 32px;
/* Firefox 3.6~4.0 */
-o-background-size: 32px 32px;
/* Opera 9.5 */
background-size: 32px 32px;
/* IE9+, New */
}
.editormd-container-mask {
z-index: 20;
display: block;
background-color: #fff;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
.editormd-container-mask,
.editormd-dialog-mask-con {
background-image: url(../images/loading@2x.gif);
}
}
@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {
.editormd-container-mask,
.editormd-dialog-mask-con {
background-image: url(../images/loading@3x.gif);
}
}
.editormd-code-block-dialog textarea,
.editormd-preformatted-text-dialog textarea {
width: 100%;
height: 400px;
margin-bottom: 6px;
overflow: auto;
border: 1px solid #eee;
background: #fff;
padding: 15px;
resize: none;
}
.editormd-code-toolbar {
color: #999;
font-size: 14px;
margin: -5px 0 10px;
}
.editormd-grid-table {
width: 99%;
display: table;
border: 1px solid #ddd;
border-collapse: collapse;
}
.editormd-grid-table-row {
width: 100%;
display: table-row;
}
.editormd-grid-table-row a {
font-size: 1.4em;
width: 5%;
height: 36px;
color: #999;
text-align: center;
display: table-cell;
vertical-align: middle;
border: 1px solid #ddd;
text-decoration: none;
-webkit-transition: background-color 300ms ease-out, color 100ms ease-in;
/* Safari, Chrome */
-moz-transition: background-color 300ms ease-out, color 100ms ease-in;
/* Firefox 4.0~16.0 */
transition: background-color 300ms ease-out, color 100ms ease-in;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-grid-table-row a.selected {
color: #666;
background-color: #eee;
}
.editormd-grid-table-row a:hover {
color: #777;
background-color: #f6f6f6;
}
.editormd-tab-head {
list-style: none;
border-bottom: 1px solid #ddd;
}
.editormd-tab-head li {
display: inline-block;
}
.editormd-tab-head li a {
color: #999;
display: block;
padding: 6px 12px 5px;
text-align: center;
text-decoration: none;
margin-bottom: -1px;
border: 1px solid #ddd;
-webkit-border-top-left-radius: 3px;
-moz-border-top-left-radius: 3px;
-ms-border-top-left-radius: 3px;
-o-border-top-left-radius: 3px;
border-top-left-radius: 3px;
-webkit-border-top-right-radius: 3px;
-moz-border-top-right-radius: 3px;
-ms-border-top-right-radius: 3px;
-o-border-top-right-radius: 3px;
border-top-right-radius: 3px;
background: #f6f6f6;
-webkit-transition: all 300ms ease-out;
/* Safari, Chrome */
-moz-transition: all 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: all 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-tab-head li a:hover {
color: #666;
background: #eee;
}
.editormd-tab-head li.active a {
color: #666;
background: #fff;
border-bottom-color: #fff;
}
.editormd-tab-head li + li {
margin-left: 3px;
}
.editormd-tab-box {
padding: 20px 0;
}
.editormd-form {
color: #666;
}
.editormd-form label {
float: left;
display: block;
width: 75px;
text-align: left;
padding: 7px 0 15px 5px;
margin: 0 0 2px;
font-weight: normal;
}
.editormd-form br {
clear: both;
}
.editormd-form iframe {
display: none;
}
.editormd-form input:focus {
outline: 0;
}
.editormd-form input[type="text"], .editormd-form input[type="number"] {
color: #999;
padding: 8px;
border: 1px solid #ddd;
}
.editormd-form input[type="number"] {
width: 40px;
display: inline-block;
padding: 6px 8px;
}
.editormd-form input[type="text"] {
display: inline-block;
width: 264px;
}
.editormd-form .fa-btns {
display: inline-block;
}
.editormd-form .fa-btns a {
color: #999;
padding: 7px 10px 0 0;
display: inline-block;
text-decoration: none;
text-align: center;
}
.editormd-form .fa-btns .fa {
font-size: 1.3em;
}
.editormd-form .fa-btns label {
float: none;
display: inline-block;
width: auto;
text-align: left;
padding: 0 0 0 5px;
cursor: pointer;
}
.editormd-form input[type="submit"], .editormd-form .editormd-btn, .editormd-form button,
.editormd-dialog-container input[type="submit"],
.editormd-dialog-container .editormd-btn,
.editormd-dialog-container button,
.editormd-dialog-footer input[type="submit"],
.editormd-dialog-footer .editormd-btn,
.editormd-dialog-footer button {
color: #666;
min-width: 75px;
cursor: pointer;
background: #fff;
padding: 7px 10px;
border: 1px solid #ddd;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
-webkit-transition: background 300ms ease-out;
/* Safari, Chrome */
-moz-transition: background 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: background 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-form input[type="submit"]:hover, .editormd-form .editormd-btn:hover, .editormd-form button:hover,
.editormd-dialog-container input[type="submit"]:hover,
.editormd-dialog-container .editormd-btn:hover,
.editormd-dialog-container button:hover,
.editormd-dialog-footer input[type="submit"]:hover,
.editormd-dialog-footer .editormd-btn:hover,
.editormd-dialog-footer button:hover {
background: #eee;
}
.editormd-form .editormd-btn,
.editormd-dialog-container .editormd-btn,
.editormd-dialog-footer .editormd-btn {
padding: 5px 8px 4px\0;
}
.editormd-form .editormd-btn + .editormd-btn,
.editormd-dialog-container .editormd-btn + .editormd-btn,
.editormd-dialog-footer .editormd-btn + .editormd-btn {
margin-left: 8px;
}
.editormd-file-input {
width: 75px;
height: 32px;
margin-left: 8px;
position: relative;
display: inline-block;
}
.editormd-file-input input[type="file"] {
width: 75px;
height: 32px;
opacity: 0;
cursor: pointer;
background: #000;
display: inline-block;
position: absolute;
top: 0;
right: 0;
}
.editormd-file-input input[type="file"]::-webkit-file-upload-button {
visibility: hidden;
}
.editormd-file-input:hover input[type="submit"] {
background: #eee;
}
.editormd .CodeMirror, .editormd-preview {
display: inline-block;
width: 50%;
height: 100%;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
}
.editormd-preview {
position: absolute;
top: 35px;
right: 0;
right: -1px\0;
overflow: auto;
line-height: 1.6;
display: none;
background: #fff;
}
.editormd .CodeMirror {
z-index: 10;
float: left;
border-right: 1px solid #ddd;
font-size: 14px;
font-family: "YaHei Consolas Hybrid", Consolas, "微软雅黑", "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, "Monaco", courier, monospace;
line-height: 1.6;
margin-top: 35px;
}
.editormd .CodeMirror pre {
font-size: 14px;
padding: 0 12px;
}
.editormd .CodeMirror-linenumbers {
padding: 0 5px;
}
.editormd .CodeMirror-selected {
background: #70B7FF;
}
.editormd .CodeMirror-focused .CodeMirror-selected {
background: #70B7FF;
}
.editormd .CodeMirror, .editormd .CodeMirror-scroll, .editormd .editormd-preview {
-webkit-overflow-scrolling: touch;
}
.editormd .styled-background {
background-color: #ff7;
}
.editormd .CodeMirror-focused .cm-matchhighlight {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);
background-position: bottom;
background-repeat: repeat-x;
}
.editormd .CodeMirror-empty.CodeMirror-focused {
outline: none;
}
.editormd .CodeMirror pre.CodeMirror-placeholder {
color: #999;
}
.editormd .cm-trailingspace {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);
background-position: bottom left;
background-repeat: repeat-x;
}
.editormd .cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
/*!
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url("../fonts/fontawesome-webfont.eot?v=4.3.0");
src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.3.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.3.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.3.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular") format("svg");
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eeeeee;
border-radius: .1em;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #ffffff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-genderless:before,
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
.fa-buysellads:before {
content: "\f20d";
}
.fa-connectdevelop:before {
content: "\f20e";
}
.fa-dashcube:before {
content: "\f210";
}
.fa-forumbee:before {
content: "\f211";
}
.fa-leanpub:before {
content: "\f212";
}
.fa-sellsy:before {
content: "\f213";
}
.fa-shirtsinbulk:before {
content: "\f214";
}
.fa-simplybuilt:before {
content: "\f215";
}
.fa-skyatlas:before {
content: "\f216";
}
.fa-cart-plus:before {
content: "\f217";
}
.fa-cart-arrow-down:before {
content: "\f218";
}
.fa-diamond:before {
content: "\f219";
}
.fa-ship:before {
content: "\f21a";
}
.fa-user-secret:before {
content: "\f21b";
}
.fa-motorcycle:before {
content: "\f21c";
}
.fa-street-view:before {
content: "\f21d";
}
.fa-heartbeat:before {
content: "\f21e";
}
.fa-venus:before {
content: "\f221";
}
.fa-mars:before {
content: "\f222";
}
.fa-mercury:before {
content: "\f223";
}
.fa-transgender:before {
content: "\f224";
}
.fa-transgender-alt:before {
content: "\f225";
}
.fa-venus-double:before {
content: "\f226";
}
.fa-mars-double:before {
content: "\f227";
}
.fa-venus-mars:before {
content: "\f228";
}
.fa-mars-stroke:before {
content: "\f229";
}
.fa-mars-stroke-v:before {
content: "\f22a";
}
.fa-mars-stroke-h:before {
content: "\f22b";
}
.fa-neuter:before {
content: "\f22c";
}
.fa-facebook-official:before {
content: "\f230";
}
.fa-pinterest-p:before {
content: "\f231";
}
.fa-whatsapp:before {
content: "\f232";
}
.fa-server:before {
content: "\f233";
}
.fa-user-plus:before {
content: "\f234";
}
.fa-user-times:before {
content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
content: "\f236";
}
.fa-viacoin:before {
content: "\f237";
}
.fa-train:before {
content: "\f238";
}
.fa-subway:before {
content: "\f239";
}
.fa-medium:before {
content: "\f23a";
}
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
@font-face {
font-family: 'editormd-logo';
src: url("../fonts/editormd-logo.eot?-5y8q6h");
src: url("../fonts/editormd-logo.eot?#iefix-5y8q6h") format("embedded-opentype"), url("../fonts/editormd-logo.woff?-5y8q6h") format("woff"), url("../fonts/editormd-logo.ttf?-5y8q6h") format("truetype"), url("../fonts/editormd-logo.svg?-5y8q6h#icomoon") format("svg");
font-weight: normal;
font-style: normal;
}
.editormd-logo,
.editormd-logo-1x,
.editormd-logo-2x,
.editormd-logo-3x,
.editormd-logo-4x,
.editormd-logo-5x,
.editormd-logo-6x,
.editormd-logo-7x,
.editormd-logo-8x {
font-family: 'editormd-logo';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
font-size: inherit;
line-height: 1;
display: inline-block;
text-rendering: auto;
vertical-align: inherit;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.editormd-logo:before,
.editormd-logo-1x:before,
.editormd-logo-2x:before,
.editormd-logo-3x:before,
.editormd-logo-4x:before,
.editormd-logo-5x:before,
.editormd-logo-6x:before,
.editormd-logo-7x:before,
.editormd-logo-8x:before {
content: "\e1987";
/*
HTML Entity 󡦇
example: <span class="editormd-logo">󡦇</span>
*/
}
.editormd-logo-1x {
font-size: 1em;
}
.editormd-logo-lg {
font-size: 1.2em;
}
.editormd-logo-2x {
font-size: 2em;
}
.editormd-logo-3x {
font-size: 3em;
}
.editormd-logo-4x {
font-size: 4em;
}
.editormd-logo-5x {
font-size: 5em;
}
.editormd-logo-6x {
font-size: 6em;
}
.editormd-logo-7x {
font-size: 7em;
}
.editormd-logo-8x {
font-size: 8em;
}
.editormd-logo-color {
color: #2196F3;
}
/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */
@font-face {
font-family: octicons-anchor;
src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format("woff");
}
.markdown-body {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #333;
overflow: hidden;
font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", "Monaco", monospace, Tahoma, STXihei, "华文细黑", STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, "宋体", Heiti, "黑体", sans-serif;
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
}
.markdown-body a {
background: transparent;
}
.markdown-body a:active,
.markdown-body a:hover {
outline: 0;
}
.markdown-body strong {
font-weight: bold;
}
.markdown-body h1 {
font-size: 2em;
margin: 0.67em 0;
}
.markdown-body img {
border: 0;
}
.markdown-body hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
.markdown-body pre {
overflow: auto;
}
.markdown-body code,
.markdown-body kbd,
.markdown-body pre {
font-family: "Meiryo UI", "YaHei Consolas Hybrid", Consolas, "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace;
font-size: 1em;
}
.markdown-body input {
color: inherit;
font: inherit;
margin: 0;
}
.markdown-body html input[disabled] {
cursor: default;
}
.markdown-body input {
line-height: normal;
}
.markdown-body input[type="checkbox"] {
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
}
.markdown-body table {
border-collapse: collapse;
border-spacing: 0;
}
.markdown-body td,
.markdown-body th {
padding: 0;
}
.markdown-body * {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body input {
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
}
.markdown-body a {
color: #4183c4;
text-decoration: none;
}
.markdown-body a:hover,
.markdown-body a:active {
text-decoration: underline;
}
.markdown-body hr {
height: 0;
margin: 15px 0;
overflow: hidden;
background: transparent;
border: 0;
border-bottom: 1px solid #ddd;
}
.markdown-body hr:before {
display: table;
content: "";
}
.markdown-body hr:after {
display: table;
clear: both;
content: "";
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin-top: 15px;
margin-bottom: 15px;
line-height: 1.1;
}
.markdown-body h1 {
font-size: 30px;
}
.markdown-body h2 {
font-size: 21px;
}
.markdown-body h3 {
font-size: 16px;
}
.markdown-body h4 {
font-size: 14px;
}
.markdown-body h5 {
font-size: 12px;
}
.markdown-body h6 {
font-size: 11px;
}
.markdown-body blockquote {
margin: 0;
}
.markdown-body ul,
.markdown-body ol {
padding: 0;
margin-top: 0;
margin-bottom: 0;
}
.markdown-body ol ol,
.markdown-body ul ol {
list-style-type: lower-roman;
}
.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
list-style-type: lower-alpha;
}
.markdown-body dd {
margin-left: 0;
}
.markdown-body code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 12px;
}
.markdown-body pre {
margin-top: 0;
margin-bottom: 0;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}
.markdown-body .octicon {
font: normal normal 16px octicons-anchor;
line-height: 1;
display: inline-block;
text-decoration: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.markdown-body .octicon-link:before {
content: '\f05c';
}
.markdown-body > *:first-child {
margin-top: 0 !important;
}
.markdown-body > *:last-child {
margin-bottom: 0 !important;
}
.markdown-body .anchor {
position: absolute;
top: 0;
left: 0;
display: block;
padding-right: 6px;
padding-left: 30px;
margin-left: -30px;
}
.markdown-body .anchor:focus {
outline: none;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
position: relative;
margin-top: 1em;
margin-bottom: 16px;
font-weight: bold;
line-height: 1.4;
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
display: none;
color: #000;
vertical-align: middle;
}
.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
padding-left: 8px;
margin-left: -30px;
text-decoration: none;
}
.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
display: inline-block;
}
.markdown-body h1 {
padding-bottom: 0.3em;
font-size: 2.25em;
line-height: 1.2;
border-bottom: 1px solid #eee;
}
.markdown-body h1 .anchor {
line-height: 1;
}
.markdown-body h2 {
padding-bottom: 0.3em;
font-size: 1.75em;
line-height: 1.225;
border-bottom: 1px solid #eee;
}
.markdown-body h2 .anchor {
line-height: 1;
}
.markdown-body h3 {
font-size: 1.5em;
line-height: 1.43;
}
.markdown-body h3 .anchor {
line-height: 1.2;
}
.markdown-body h4 {
font-size: 1.25em;
}
.markdown-body h4 .anchor {
line-height: 1.2;
}
.markdown-body h5 {
font-size: 1em;
}
.markdown-body h5 .anchor {
line-height: 1.1;
}
.markdown-body h6 {
font-size: 1em;
color: #777;
}
.markdown-body h6 .anchor {
line-height: 1.1;
}
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
margin-top: 0;
margin-bottom: 16px;
}
/*
.markdown-body hr {
height: 4px;
padding: 0;
margin: 16px 0;
background-color: #e7e7e7;
border: 0 none;
}*/
.markdown-body ul,
.markdown-body ol {
padding-left: 2em;
}
.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markdown-body li > p {
margin-top: 16px;
}
.markdown-body dl {
padding: 0;
}
.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: bold;
}
.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markdown-body blockquote {
padding: 0 15px;
color: #777;
border-left: 4px solid #ddd;
}
.markdown-body blockquote > :first-child {
margin-top: 0;
}
.markdown-body blockquote > :last-child {
margin-bottom: 0;
}
.markdown-body table {
display: block;
width: 100%;
overflow: auto;
word-break: normal;
word-break: keep-all;
}
.markdown-body table th {
font-weight: bold;
}
.markdown-body table th,
.markdown-body table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
.markdown-body table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}
.markdown-body table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.markdown-body img {
max-width: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body code {
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(0, 0, 0, 0.04);
border-radius: 3px;
}
.markdown-body code:before,
.markdown-body code:after {
letter-spacing: -0.2em;
content: "\00a0";
}
.markdown-body pre > code {
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.markdown-body .highlight {
margin-bottom: 16px;
}
.markdown-body .highlight pre,
.markdown-body pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border-radius: 3px;
}
.markdown-body .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.markdown-body pre {
word-wrap: normal;
}
.markdown-body pre code {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markdown-body pre code:before,
.markdown-body pre code:after {
content: normal;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body .pl-c {
color: #969896;
}
.markdown-body .pl-c1,
.markdown-body .pl-mdh,
.markdown-body .pl-mm,
.markdown-body .pl-mp,
.markdown-body .pl-mr,
.markdown-body .pl-s1 .pl-v,
.markdown-body .pl-s3,
.markdown-body .pl-sc,
.markdown-body .pl-sv {
color: #0086b3;
}
.markdown-body .pl-e,
.markdown-body .pl-en {
color: #795da3;
}
.markdown-body .pl-s1 .pl-s2,
.markdown-body .pl-smi,
.markdown-body .pl-smp,
.markdown-body .pl-stj,
.markdown-body .pl-vo,
.markdown-body .pl-vpf {
color: #333;
}
.markdown-body .pl-ent {
color: #63a35c;
}
.markdown-body .pl-k,
.markdown-body .pl-s,
.markdown-body .pl-st {
color: #a71d5d;
}
.markdown-body .pl-pds,
.markdown-body .pl-s1,
.markdown-body .pl-s1 .pl-pse .pl-s2,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sra,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-src {
color: #df5000;
}
.markdown-body .pl-mo,
.markdown-body .pl-v {
color: #1d3e81;
}
.markdown-body .pl-id {
color: #b52a1d;
}
.markdown-body .pl-ii {
background-color: #b52a1d;
color: #f8f8f8;
}
.markdown-body .pl-sr .pl-cce {
color: #63a35c;
font-weight: bold;
}
.markdown-body .pl-ml {
color: #693a17;
}
.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
color: #1d3e81;
font-weight: bold;
}
.markdown-body .pl-mq {
color: #008080;
}
.markdown-body .pl-mi {
color: #333;
font-style: italic;
}
.markdown-body .pl-mb {
color: #333;
font-weight: bold;
}
.markdown-body .pl-md,
.markdown-body .pl-mdhf {
background-color: #ffecec;
color: #bd2c00;
}
.markdown-body .pl-mdht,
.markdown-body .pl-mi1 {
background-color: #eaffea;
color: #55a532;
}
.markdown-body .pl-mdr {
color: #795da3;
font-weight: bold;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body .task-list-item {
list-style-type: none;
}
.markdown-body .task-list-item + .task-list-item {
margin-top: 3px;
}
.markdown-body .task-list-item input {
float: left;
margin: 0.3em 0 0.25em -1.6em;
vertical-align: middle;
}
.markdown-body :checked + .radio-label {
z-index: 1;
position: relative;
border-color: #4183c4;
}
.editormd-preview-container, .editormd-html-preview {
text-align: left;
font-size: 14px;
line-height: 1.6;
padding: 20px;
overflow: auto;
width: 100%;
background-color: #fff;
}
.editormd-preview-container blockquote, .editormd-html-preview blockquote {
color: #666;
border-left: 4px solid #ddd;
padding-left: 20px;
margin-left: 0;
font-size: 14px;
font-style: italic;
}
.editormd-preview-container p code, .editormd-html-preview p code {
margin-left: 5px;
margin-right: 4px;
}
.editormd-preview-container abbr, .editormd-html-preview abbr {
background: #ffffdd;
}
.editormd-preview-container hr, .editormd-html-preview hr {
height: 1px;
border: none;
border-top: 1px solid #ddd;
background: none;
}
.editormd-preview-container code, .editormd-html-preview code {
border: 1px solid #ddd;
background: #f6f6f6;
padding: 3px;
border-radius: 3px;
font-size: 14px;
}
.editormd-preview-container pre, .editormd-html-preview pre {
border: 1px solid #ddd;
background: #f6f6f6;
padding: 10px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
.editormd-preview-container pre code, .editormd-html-preview pre code {
padding: 0;
}
.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {
font-family: "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace;
}
.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {
background-color: #F8F8F8;
}
.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {
text-align: center;
}
.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {
margin: 0 5px;
}
.editormd-preview-container .emoji, .editormd-html-preview .emoji {
width: 24px;
height: 24px;
}
.editormd-preview-container .katex, .editormd-html-preview .katex {
font-size: 1.4em;
}
.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {
margin: 0 auto;
text-align: center;
}
.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {
margin: 0 auto;
}
.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {
font-size: 15px !important;
font-family: "YaHei Consolas Hybrid", Consolas, "Microsoft YaHei", "Malgun Gothic", "Segoe UI", Helvetica, Arial !important;
}
/*! Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
.pln {
color: #000;
}
/* plain text */
@media screen {
.str {
color: #080;
}
/* string content */
.kwd {
color: #008;
}
/* a keyword */
.com {
color: #800;
}
/* a comment */
.typ {
color: #606;
}
/* a type name */
.lit {
color: #066;
}
/* a literal value */
/* punctuation, lisp open bracket, lisp close bracket */
.pun, .opn, .clo {
color: #660;
}
.tag {
color: #008;
}
/* a markup tag name */
.atn {
color: #606;
}
/* a markup attribute name */
.atv {
color: #080;
}
/* a markup attribute value */
.dec, .var {
color: #606;
}
/* a declaration; a variable name */
.fun {
color: red;
}
/* a function name */
}
/* Use higher contrast and text-weight for printable form. */
@media print, projection {
.str {
color: #060;
}
.kwd {
color: #006;
font-weight: bold;
}
.com {
color: #600;
font-style: italic;
}
.typ {
color: #404;
font-weight: bold;
}
.lit {
color: #044;
}
.pun, .opn, .clo {
color: #440;
}
.tag {
color: #006;
font-weight: bold;
}
.atn {
color: #404;
}
.atv {
color: #060;
}
}
/* Put a border around prettyprinted code snippets. */
pre.prettyprint {
padding: 2px;
border: 1px solid #888;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0;
}
/* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L5,
li.L6,
li.L7,
li.L8 {
list-style-type: none;
}
/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 {
background: #eee;
}
.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {
padding: 10px;
border: 1px solid #ddd;
white-space: pre-wrap;
word-wrap: break-word;
}
.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {
color: #999;
padding-left: 2.5em;
}
.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {
list-style-type: decimal;
}
.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {
border: none;
background: none;
padding: 0;
}
.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {
margin: 8px 0 12px 0;
display: inline-block;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {
position: relative;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
border: 1px solid #ddd;
display: inline-block;
font-size: 1em;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {
width: 160%;
min-width: 180px;
position: absolute;
left: -1px;
top: -2px;
z-index: 100;
padding: 0 10px 10px;
display: none;
background: #fff;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Webkit browsers */
-moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Firefox */
-ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9 */
-o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Opera(Old) */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9+, News */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {
width: 100%;
min-width: 180px;
border: 1px solid #ddd;
display: none;
background: #fff;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {
color: #666;
padding: 6px 10px;
display: block;
-webkit-transition: background-color 500ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 500ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 500ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {
background-color: #f6f6f6;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {
position: relative;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {
position: absolute;
top: 32px;
left: 10%;
display: none;
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Webkit browsers */
-moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Firefox */
-ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9 */
-o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Opera(Old) */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9+, News */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {
pointer-events: pointer-events;
position: absolute;
left: 15px;
top: -6px;
display: block;
content: "";
width: 0;
height: 0;
border: 6px solid transparent;
border-width: 0 6px 6px;
z-index: 10;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {
border-bottom-color: #ccc;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {
border-bottom-color: #ffffff;
top: -5px;
}
.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {
list-style: none;
}
.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {
text-decoration: none;
}
.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {
font-size: 16px;
padding: 5px 0 10px 10px;
line-height: 1;
border-bottom: 1px solid #eee;
}
.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {
padding-left: 10px;
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {
color: #666;
min-width: 180px;
padding: 5px 10px;
border-radius: 4px;
display: inline-block;
-webkit-transition: background-color 500ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 500ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 500ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {
background-color: #f6f6f6;
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {
float: right;
padding: 3px 0 0 10px;
font-size: 1.3em;
}
.markdown-body .editormd-toc-menu ul {
padding-left: 0;
}
.markdown-body .highlight pre, .markdown-body pre {
line-height: 1.6;
}
hr.editormd-page-break {
border: 1px dotted #ccc;
font-size: 0;
height: 2px;
}
@media only print {
hr.editormd-page-break {
background: none;
border: none;
height: 0;
}
}
.editormd-html-preview textarea {
display: none;
}
.editormd-html-preview hr.editormd-page-break {
background: none;
border: none;
height: 0;
}
.editormd-preview-close-btn {
color: #fff;
padding: 4px 6px;
font-size: 18px;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
-ms-border-radius: 500px;
-o-border-radius: 500px;
border-radius: 500px;
display: none;
background-color: #ccc;
position: absolute;
top: 25px;
right: 35px;
z-index: 19;
-webkit-transition: background-color 300ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-close-btn:hover {
background-color: #999;
}
.editormd-preview-active {
width: 100%;
padding: 40px;
}
/* Preview dark theme */
.editormd-preview-theme-dark {
color: #777;
background: #2C2827;
}
.editormd-preview-theme-dark .editormd-preview-container {
color: #888;
background-color: #2C2827;
}
.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint {
border: none;
}
.editormd-preview-theme-dark .editormd-preview-container blockquote {
color: #555;
padding: 0.5em;
background: #222;
border-color: #333;
}
.editormd-preview-theme-dark .editormd-preview-container abbr {
color: #fff;
padding: 1px 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
background: #ff9900;
}
.editormd-preview-theme-dark .editormd-preview-container code {
color: #fff;
border: none;
padding: 1px 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
background: #5A9600;
}
.editormd-preview-theme-dark .editormd-preview-container table {
border: none;
}
.editormd-preview-theme-dark .editormd-preview-container .fa-emoji {
color: #B4BF42;
}
.editormd-preview-theme-dark .editormd-preview-container .katex {
color: #FEC93F;
}
.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc {
background: #fff;
border: none;
}
.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc h1 {
border-color: #ddd;
}
.editormd-preview-theme-dark .markdown-body h1, .editormd-preview-theme-dark .markdown-body h2, .editormd-preview-theme-dark .markdown-body hr {
border-color: #222;
}
.editormd-preview-theme-dark pre {
color: #999;
background-color: #111;
background-color: rgba(0, 0, 0, 0.4);
/* plain text */
}
.editormd-preview-theme-dark pre .pln {
color: #999;
}
.editormd-preview-theme-dark li.L1, .editormd-preview-theme-dark li.L3, .editormd-preview-theme-dark li.L5, .editormd-preview-theme-dark li.L7, .editormd-preview-theme-dark li.L9 {
background: none;
}
.editormd-preview-theme-dark [class*=editormd-logo] {
color: #2196F3;
}
.editormd-preview-theme-dark .sequence-diagram text {
fill: #fff;
}
.editormd-preview-theme-dark .sequence-diagram rect, .editormd-preview-theme-dark .sequence-diagram path {
color: #fff;
fill: #64D1CB;
stroke: #64D1CB;
}
.editormd-preview-theme-dark .flowchart rect, .editormd-preview-theme-dark .flowchart path {
stroke: #A6C6FF;
}
.editormd-preview-theme-dark .flowchart rect {
fill: #A6C6FF;
}
.editormd-preview-theme-dark .flowchart text {
fill: #5879B4;
}
@media screen {
.editormd-preview-theme-dark {
/* string content */
/* a keyword */
/* a comment */
/* a type name */
/* a literal value */
/* punctuation, lisp open bracket, lisp close bracket */
/* a markup tag name */
/* a markup attribute name */
/* a markup attribute value */
/* a declaration; a variable name */
/* a function name */
}
.editormd-preview-theme-dark .str {
color: #080;
}
.editormd-preview-theme-dark .kwd {
color: #ff9900;
}
.editormd-preview-theme-dark .com {
color: #444444;
}
.editormd-preview-theme-dark .typ {
color: #606;
}
.editormd-preview-theme-dark .lit {
color: #066;
}
.editormd-preview-theme-dark .pun, .editormd-preview-theme-dark .opn, .editormd-preview-theme-dark .clo {
color: #660;
}
.editormd-preview-theme-dark .tag {
color: #ff9900;
}
.editormd-preview-theme-dark .atn {
color: #6C95F5;
}
.editormd-preview-theme-dark .atv {
color: #080;
}
.editormd-preview-theme-dark .dec, .editormd-preview-theme-dark .var {
color: #008BA7;
}
.editormd-preview-theme-dark .fun {
color: red;
}
}
.editormd-onlyread .editormd-toolbar {
display: none;
}
.editormd-onlyread .CodeMirror {
margin-top: 0;
}
.editormd-onlyread .editormd-preview {
top: 0;
}
.editormd-fullscreen {
position: fixed;
top: 0;
left: 0;
border: none;
margin: 0 auto;
}
/* Editor.md Dark theme */
.editormd-theme-dark {
border-color: #1a1a17;
}
.editormd-theme-dark .editormd-toolbar {
background: #1A1A17;
border-color: #1a1a17;
}
.editormd-theme-dark .editormd-menu > li > a {
color: #777;
border-color: #1a1a17;
}
.editormd-theme-dark .editormd-menu > li > a:hover, .editormd-theme-dark .editormd-menu > li > a.active {
border-color: #333;
background: #333;
}
.editormd-theme-dark .editormd-menu > li.divider {
border-right: 1px solid #111;
}
.editormd-theme-dark .CodeMirror {
border-right: 1px solid rgba(0, 0, 0, 0.1);
}
================================================
FILE: css/editormd.logo.css
================================================
/*
* Editor.md
*
* @file editormd.logo.css
* @version v1.5.0
* @description Open source online markdown editor.
* @license MIT License
* @author Pandao
* {@link https://github.com/pandao/editor.md}
* @updateTime 2015-06-09
*/
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
@font-face {
font-family: 'editormd-logo';
src: url("../fonts/editormd-logo.eot?-5y8q6h");
src: url(".../fonts/editormd-logo.eot?#iefix-5y8q6h") format("embedded-opentype"), url("../fonts/editormd-logo.woff?-5y8q6h") format("woff"), url("../fonts/editormd-logo.ttf?-5y8q6h") format("truetype"), url("../fonts/editormd-logo.svg?-5y8q6h#icomoon") format("svg");
font-weight: normal;
font-style: normal;
}
.editormd-logo,
.editormd-logo-1x,
.editormd-logo-2x,
.editormd-logo-3x,
.editormd-logo-4x,
.editormd-logo-5x,
.editormd-logo-6x,
.editormd-logo-7x,
.editormd-logo-8x {
font-family: 'editormd-logo';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
font-size: inherit;
line-height: 1;
display: inline-block;
text-rendering: auto;
vertical-align: inherit;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.editormd-logo:before,
.editormd-logo-1x:before,
.editormd-logo-2x:before,
.editormd-logo-3x:before,
.editormd-logo-4x:before,
.editormd-logo-5x:before,
.editormd-logo-6x:before,
.editormd-logo-7x:before,
.editormd-logo-8x:before {
content: "\e1987";
/*
HTML Entity 󡦇
example: <span class="editormd-logo">󡦇</span>
*/
}
.editormd-logo-1x {
font-size: 1em;
}
.editormd-logo-lg {
font-size: 1.2em;
}
.editormd-logo-2x {
font-size: 2em;
}
.editormd-logo-3x {
font-size: 3em;
}
.editormd-logo-4x {
font-size: 4em;
}
.editormd-logo-5x {
font-size: 5em;
}
.editormd-logo-6x {
font-size: 6em;
}
.editormd-logo-7x {
font-size: 7em;
}
.editormd-logo-8x {
font-size: 8em;
}
.editormd-logo-color {
color: #2196F3;
}
================================================
FILE: css/editormd.preview.css
================================================
/*
* Editor.md
*
* @file editormd.preview.css
* @version v1.5.0
* @description Open source online markdown editor.
* @license MIT License
* @author Pandao
* {@link https://github.com/pandao/editor.md}
* @updateTime 2015-06-09
*/
@charset "UTF-8";
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
/*!
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url("../fonts/fontawesome-webfont.eot?v=4.3.0");
src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.3.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.3.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.3.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular") format("svg");
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eeeeee;
border-radius: .1em;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #ffffff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-genderless:before,
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
.fa-buysellads:before {
content: "\f20d";
}
.fa-connectdevelop:before {
content: "\f20e";
}
.fa-dashcube:before {
content: "\f210";
}
.fa-forumbee:before {
content: "\f211";
}
.fa-leanpub:before {
content: "\f212";
}
.fa-sellsy:before {
content: "\f213";
}
.fa-shirtsinbulk:before {
content: "\f214";
}
.fa-simplybuilt:before {
content: "\f215";
}
.fa-skyatlas:before {
content: "\f216";
}
.fa-cart-plus:before {
content: "\f217";
}
.fa-cart-arrow-down:before {
content: "\f218";
}
.fa-diamond:before {
content: "\f219";
}
.fa-ship:before {
content: "\f21a";
}
.fa-user-secret:before {
content: "\f21b";
}
.fa-motorcycle:before {
content: "\f21c";
}
.fa-street-view:before {
content: "\f21d";
}
.fa-heartbeat:before {
content: "\f21e";
}
.fa-venus:before {
content: "\f221";
}
.fa-mars:before {
content: "\f222";
}
.fa-mercury:before {
content: "\f223";
}
.fa-transgender:before {
content: "\f224";
}
.fa-transgender-alt:before {
content: "\f225";
}
.fa-venus-double:before {
content: "\f226";
}
.fa-mars-double:before {
content: "\f227";
}
.fa-venus-mars:before {
content: "\f228";
}
.fa-mars-stroke:before {
content: "\f229";
}
.fa-mars-stroke-v:before {
content: "\f22a";
}
.fa-mars-stroke-h:before {
content: "\f22b";
}
.fa-neuter:before {
content: "\f22c";
}
.fa-facebook-official:before {
content: "\f230";
}
.fa-pinterest-p:before {
content: "\f231";
}
.fa-whatsapp:before {
content: "\f232";
}
.fa-server:before {
content: "\f233";
}
.fa-user-plus:before {
content: "\f234";
}
.fa-user-times:before {
content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
content: "\f236";
}
.fa-viacoin:before {
content: "\f237";
}
.fa-train:before {
content: "\f238";
}
.fa-subway:before {
content: "\f239";
}
.fa-medium:before {
content: "\f23a";
}
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
@font-face {
font-family: 'editormd-logo';
src: url("../fonts/editormd-logo.eot?-5y8q6h");
src: url(".../fonts/editormd-logo.eot?#iefix-5y8q6h") format("embedded-opentype"), url("../fonts/editormd-logo.woff?-5y8q6h") format("woff"), url("../fonts/editormd-logo.ttf?-5y8q6h") format("truetype"), url("../fonts/editormd-logo.svg?-5y8q6h#icomoon") format("svg");
font-weight: normal;
font-style: normal;
}
.editormd-logo,
.editormd-logo-1x,
.editormd-logo-2x,
.editormd-logo-3x,
.editormd-logo-4x,
.editormd-logo-5x,
.editormd-logo-6x,
.editormd-logo-7x,
.editormd-logo-8x {
font-family: 'editormd-logo';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
font-size: inherit;
line-height: 1;
display: inline-block;
text-rendering: auto;
vertical-align: inherit;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.editormd-logo:before,
.editormd-logo-1x:before,
.editormd-logo-2x:before,
.editormd-logo-3x:before,
.editormd-logo-4x:before,
.editormd-logo-5x:before,
.editormd-logo-6x:before,
.editormd-logo-7x:before,
.editormd-logo-8x:before {
content: "\e1987";
/*
HTML Entity 󡦇
example: <span class="editormd-logo">󡦇</span>
*/
}
.editormd-logo-1x {
font-size: 1em;
}
.editormd-logo-lg {
font-size: 1.2em;
}
.editormd-logo-2x {
font-size: 2em;
}
.editormd-logo-3x {
font-size: 3em;
}
.editormd-logo-4x {
font-size: 4em;
}
.editormd-logo-5x {
font-size: 5em;
}
.editormd-logo-6x {
font-size: 6em;
}
.editormd-logo-7x {
font-size: 7em;
}
.editormd-logo-8x {
font-size: 8em;
}
.editormd-logo-color {
color: #2196F3;
}
/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */
@font-face {
font-family: octicons-anchor;
src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format("woff");
}
.markdown-body {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #333;
overflow: hidden;
font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", "Monaco", monospace, Tahoma, STXihei, "华文细黑", STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, "宋体", Heiti, "黑体", sans-serif;
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
}
.markdown-body a {
background: transparent;
}
.markdown-body a:active,
.markdown-body a:hover {
outline: 0;
}
.markdown-body strong {
font-weight: bold;
}
.markdown-body h1 {
font-size: 2em;
margin: 0.67em 0;
}
.markdown-body img {
border: 0;
}
.markdown-body hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
.markdown-body pre {
overflow: auto;
}
.markdown-body code,
.markdown-body kbd,
.markdown-body pre {
font-family: "Meiryo UI", "YaHei Consolas Hybrid", Consolas, "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace;
font-size: 1em;
}
.markdown-body input {
color: inherit;
font: inherit;
margin: 0;
}
.markdown-body html input[disabled] {
cursor: default;
}
.markdown-body input {
line-height: normal;
}
.markdown-body input[type="checkbox"] {
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
}
.markdown-body table {
border-collapse: collapse;
border-spacing: 0;
}
.markdown-body td,
.markdown-body th {
padding: 0;
}
.markdown-body * {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body input {
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
}
.markdown-body a {
color: #4183c4;
text-decoration: none;
}
.markdown-body a:hover,
.markdown-body a:active {
text-decoration: underline;
}
.markdown-body hr {
height: 0;
margin: 15px 0;
overflow: hidden;
background: transparent;
border: 0;
border-bottom: 1px solid #ddd;
}
.markdown-body hr:before {
display: table;
content: "";
}
.markdown-body hr:after {
display: table;
clear: both;
content: "";
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin-top: 15px;
margin-bottom: 15px;
line-height: 1.1;
}
.markdown-body h1 {
font-size: 30px;
}
.markdown-body h2 {
font-size: 21px;
}
.markdown-body h3 {
font-size: 16px;
}
.markdown-body h4 {
font-size: 14px;
}
.markdown-body h5 {
font-size: 12px;
}
.markdown-body h6 {
font-size: 11px;
}
.markdown-body blockquote {
margin: 0;
}
.markdown-body ul,
.markdown-body ol {
padding: 0;
margin-top: 0;
margin-bottom: 0;
}
.markdown-body ol ol,
.markdown-body ul ol {
list-style-type: lower-roman;
}
.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
list-style-type: lower-alpha;
}
.markdown-body dd {
margin-left: 0;
}
.markdown-body code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 12px;
}
.markdown-body pre {
margin-top: 0;
margin-bottom: 0;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}
.markdown-body .octicon {
font: normal normal 16px octicons-anchor;
line-height: 1;
display: inline-block;
text-decoration: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.markdown-body .octicon-link:before {
content: '\f05c';
}
.markdown-body > *:first-child {
margin-top: 0 !important;
}
.markdown-body > *:last-child {
margin-bottom: 0 !important;
}
.markdown-body .anchor {
position: absolute;
top: 0;
left: 0;
display: block;
padding-right: 6px;
padding-left: 30px;
margin-left: -30px;
}
.markdown-body .anchor:focus {
outline: none;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
position: relative;
margin-top: 1em;
margin-bottom: 16px;
font-weight: bold;
line-height: 1.4;
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
display: none;
color: #000;
vertical-align: middle;
}
.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
padding-left: 8px;
margin-left: -30px;
text-decoration: none;
}
.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
display: inline-block;
}
.markdown-body h1 {
padding-bottom: 0.3em;
font-size: 2.25em;
line-height: 1.2;
border-bottom: 1px solid #eee;
}
.markdown-body h1 .anchor {
line-height: 1;
}
.markdown-body h2 {
padding-bottom: 0.3em;
font-size: 1.75em;
line-height: 1.225;
border-bottom: 1px solid #eee;
}
.markdown-body h2 .anchor {
line-height: 1;
}
.markdown-body h3 {
font-size: 1.5em;
line-height: 1.43;
}
.markdown-body h3 .anchor {
line-height: 1.2;
}
.markdown-body h4 {
font-size: 1.25em;
}
.markdown-body h4 .anchor {
line-height: 1.2;
}
.markdown-body h5 {
font-size: 1em;
}
.markdown-body h5 .anchor {
line-height: 1.1;
}
.markdown-body h6 {
font-size: 1em;
color: #777;
}
.markdown-body h6 .anchor {
line-height: 1.1;
}
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
margin-top: 0;
margin-bottom: 16px;
}
/*
.markdown-body hr {
height: 4px;
padding: 0;
margin: 16px 0;
background-color: #e7e7e7;
border: 0 none;
}*/
.markdown-body ul,
.markdown-body ol {
padding-left: 2em;
}
.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markdown-body li > p {
margin-top: 16px;
}
.markdown-body dl {
padding: 0;
}
.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: bold;
}
.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markdown-body blockquote {
padding: 0 15px;
color: #777;
border-left: 4px solid #ddd;
}
.markdown-body blockquote > :first-child {
margin-top: 0;
}
.markdown-body blockquote > :last-child {
margin-bottom: 0;
}
.markdown-body table {
display: block;
width: 100%;
overflow: auto;
word-break: normal;
word-break: keep-all;
}
.markdown-body table th {
font-weight: bold;
}
.markdown-body table th,
.markdown-body table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
.markdown-body table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}
.markdown-body table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.markdown-body img {
max-width: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.markdown-body code {
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(0, 0, 0, 0.04);
border-radius: 3px;
}
.markdown-body code:before,
.markdown-body code:after {
letter-spacing: -0.2em;
content: "\00a0";
}
.markdown-body pre > code {
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.markdown-body .highlight {
margin-bottom: 16px;
}
.markdown-body .highlight pre,
.markdown-body pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border-radius: 3px;
}
.markdown-body .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.markdown-body pre {
word-wrap: normal;
}
.markdown-body pre code {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markdown-body pre code:before,
.markdown-body pre code:after {
content: normal;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body .pl-c {
color: #969896;
}
.markdown-body .pl-c1,
.markdown-body .pl-mdh,
.markdown-body .pl-mm,
.markdown-body .pl-mp,
.markdown-body .pl-mr,
.markdown-body .pl-s1 .pl-v,
.markdown-body .pl-s3,
.markdown-body .pl-sc,
.markdown-body .pl-sv {
color: #0086b3;
}
.markdown-body .pl-e,
.markdown-body .pl-en {
color: #795da3;
}
.markdown-body .pl-s1 .pl-s2,
.markdown-body .pl-smi,
.markdown-body .pl-smp,
.markdown-body .pl-stj,
.markdown-body .pl-vo,
.markdown-body .pl-vpf {
color: #333;
}
.markdown-body .pl-ent {
color: #63a35c;
}
.markdown-body .pl-k,
.markdown-body .pl-s,
.markdown-body .pl-st {
color: #a71d5d;
}
.markdown-body .pl-pds,
.markdown-body .pl-s1,
.markdown-body .pl-s1 .pl-pse .pl-s2,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sra,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-src {
color: #df5000;
}
.markdown-body .pl-mo,
.markdown-body .pl-v {
color: #1d3e81;
}
.markdown-body .pl-id {
color: #b52a1d;
}
.markdown-body .pl-ii {
background-color: #b52a1d;
color: #f8f8f8;
}
.markdown-body .pl-sr .pl-cce {
color: #63a35c;
font-weight: bold;
}
.markdown-body .pl-ml {
color: #693a17;
}
.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
color: #1d3e81;
font-weight: bold;
}
.markdown-body .pl-mq {
color: #008080;
}
.markdown-body .pl-mi {
color: #333;
font-style: italic;
}
.markdown-body .pl-mb {
color: #333;
font-weight: bold;
}
.markdown-body .pl-md,
.markdown-body .pl-mdhf {
background-color: #ffecec;
color: #bd2c00;
}
.markdown-body .pl-mdht,
.markdown-body .pl-mi1 {
background-color: #eaffea;
color: #55a532;
}
.markdown-body .pl-mdr {
color: #795da3;
font-weight: bold;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.markdown-body .task-list-item {
list-style-type: none;
}
.markdown-body .task-list-item + .task-list-item {
margin-top: 3px;
}
.markdown-body .task-list-item input {
float: left;
margin: 0.3em 0 0.25em -1.6em;
vertical-align: middle;
}
.markdown-body :checked + .radio-label {
z-index: 1;
position: relative;
border-color: #4183c4;
}
.editormd-preview-container, .editormd-html-preview {
text-align: left;
font-size: 14px;
line-height: 1.6;
padding: 20px;
overflow: auto;
width: 100%;
background-color: #fff;
}
.editormd-preview-container blockquote, .editormd-html-preview blockquote {
color: #666;
border-left: 4px solid #ddd;
padding-left: 20px;
margin-left: 0;
font-size: 14px;
font-style: italic;
}
.editormd-preview-container p code, .editormd-html-preview p code {
margin-left: 5px;
margin-right: 4px;
}
.editormd-preview-container abbr, .editormd-html-preview abbr {
background: #ffffdd;
}
.editormd-preview-container hr, .editormd-html-preview hr {
height: 1px;
border: none;
border-top: 1px solid #ddd;
background: none;
}
.editormd-preview-container code, .editormd-html-preview code {
border: 1px solid #ddd;
background: #f6f6f6;
padding: 3px;
border-radius: 3px;
font-size: 14px;
}
.editormd-preview-container pre, .editormd-html-preview pre {
border: 1px solid #ddd;
background: #f6f6f6;
padding: 10px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
.editormd-preview-container pre code, .editormd-html-preview pre code {
padding: 0;
}
.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {
font-family: "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace;
}
.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {
background-color: #F8F8F8;
}
.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {
text-align: center;
}
.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {
margin: 0 5px;
}
.editormd-preview-container .emoji, .editormd-html-preview .emoji {
width: 24px;
height: 24px;
}
.editormd-preview-container .katex, .editormd-html-preview .katex {
font-size: 1.4em;
}
.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {
margin: 0 auto;
text-align: center;
}
.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {
margin: 0 auto;
}
.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {
font-size: 15px !important;
font-family: "YaHei Consolas Hybrid", Consolas, "Microsoft YaHei", "Malgun Gothic", "Segoe UI", Helvetica, Arial !important;
}
/*! Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
.pln {
color: #000;
}
/* plain text */
@media screen {
.str {
color: #080;
}
/* string content */
.kwd {
color: #008;
}
/* a keyword */
.com {
color: #800;
}
/* a comment */
.typ {
color: #606;
}
/* a type name */
.lit {
color: #066;
}
/* a literal value */
/* punctuation, lisp open bracket, lisp close bracket */
.pun, .opn, .clo {
color: #660;
}
.tag {
color: #008;
}
/* a markup tag name */
.atn {
color: #606;
}
/* a markup attribute name */
.atv {
color: #080;
}
/* a markup attribute value */
.dec, .var {
color: #606;
}
/* a declaration; a variable name */
.fun {
color: red;
}
/* a function name */
}
/* Use higher contrast and text-weight for printable form. */
@media print, projection {
.str {
color: #060;
}
.kwd {
color: #006;
font-weight: bold;
}
.com {
color: #600;
font-style: italic;
}
.typ {
color: #404;
font-weight: bold;
}
.lit {
color: #044;
}
.pun, .opn, .clo {
color: #440;
}
.tag {
color: #006;
font-weight: bold;
}
.atn {
color: #404;
}
.atv {
color: #060;
}
}
/* Put a border around prettyprinted code snippets. */
pre.prettyprint {
padding: 2px;
border: 1px solid #888;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0;
}
/* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L5,
li.L6,
li.L7,
li.L8 {
list-style-type: none;
}
/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 {
background: #eee;
}
.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {
padding: 10px;
border: 1px solid #ddd;
white-space: pre-wrap;
word-wrap: break-word;
}
.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {
color: #999;
padding-left: 2.5em;
}
.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {
list-style-type: decimal;
}
.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {
border: none;
background: none;
padding: 0;
}
.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {
margin: 8px 0 12px 0;
display: inline-block;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {
position: relative;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
border: 1px solid #ddd;
display: inline-block;
font-size: 1em;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {
width: 160%;
min-width: 180px;
position: absolute;
left: -1px;
top: -2px;
z-index: 100;
padding: 0 10px 10px;
display: none;
background: #fff;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Webkit browsers */
-moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Firefox */
-ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9 */
-o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Opera(Old) */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9+, News */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {
width: 100%;
min-width: 180px;
border: 1px solid #ddd;
display: none;
background: #fff;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-ms-border-radius: 4px;
-o-border-radius: 4px;
border-radius: 4px;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {
color: #666;
padding: 6px 10px;
display: block;
-webkit-transition: background-color 500ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 500ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 500ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {
background-color: #f6f6f6;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {
position: relative;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {
position: absolute;
top: 32px;
left: 10%;
display: none;
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Webkit browsers */
-moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Firefox */
-ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9 */
-o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* Opera(Old) */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
/* IE9+, News */
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {
pointer-events: pointer-events;
position: absolute;
left: 15px;
top: -6px;
display: block;
content: "";
width: 0;
height: 0;
border: 6px solid transparent;
border-width: 0 6px 6px;
z-index: 10;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {
border-bottom-color: #ccc;
}
.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {
border-bottom-color: #ffffff;
top: -5px;
}
.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {
list-style: none;
}
.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {
text-decoration: none;
}
.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {
font-size: 16px;
padding: 5px 0 10px 10px;
line-height: 1;
border-bottom: 1px solid #eee;
}
.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {
padding-left: 10px;
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {
color: #666;
min-width: 180px;
padding: 5px 10px;
border-radius: 4px;
display: inline-block;
-webkit-transition: background-color 500ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 500ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 500ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {
background-color: #f6f6f6;
}
.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {
float: right;
padding: 3px 0 0 10px;
font-size: 1.3em;
}
.markdown-body .editormd-toc-menu ul {
padding-left: 0;
}
.markdown-body .highlight pre, .markdown-body pre {
line-height: 1.6;
}
hr.editormd-page-break {
border: 1px dotted #ccc;
font-size: 0;
height: 2px;
}
@media only print {
hr.editormd-page-break {
background: none;
border: none;
height: 0;
}
}
.editormd-html-preview textarea {
display: none;
}
.editormd-html-preview hr.editormd-page-break {
background: none;
border: none;
height: 0;
}
.editormd-preview-close-btn {
color: #fff;
padding: 4px 6px;
font-size: 18px;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
-ms-border-radius: 500px;
-o-border-radius: 500px;
border-radius: 500px;
display: none;
background-color: #ccc;
position: absolute;
top: 25px;
right: 35px;
z-index: 19;
-webkit-transition: background-color 300ms ease-out;
/* Safari, Chrome */
-moz-transition: background-color 300ms ease-out;
/* Firefox 4.0~16.0 */
transition: background-color 300ms ease-out;
/* IE >9, FF >15, Opera >12.0 */
}
.editormd-preview-close-btn:hover {
background-color: #999;
}
.editormd-preview-active {
width: 100%;
padding: 40px;
}
================================================
FILE: docs/editormd.js.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: editormd.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: editormd.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/*
* Editor.md
*
* @file editormd.js
* @version v1.4.5
* @description Open source online markdown editor.
* @license MIT License
* @author Pandao
* {@link https://github.com/pandao/editor.md}
* @updateTime 2015-06-02
*/
;(function(factory) {
"use strict";
// CommonJS/Node.js
if (typeof require === "function" && typeof exports === "object" && typeof module === "object")
{
module.exports = factory;
}
else if (typeof define === "function") // AMD/CMD/Sea.js
{
if (define.amd) // for Require.js
{
/* Require.js define replace */
}
else
{
define(["jquery"], factory); // for Sea.js
}
}
else
{
window.editormd = factory();
}
}(function() {
/* Require.js assignment replace */
"use strict";
var $ = (typeof (jQuery) !== "undefined") ? jQuery : Zepto;
if (typeof ($) === "undefined") {
return ;
}
/**
* editormd
*
* @param {String} id 编辑器的ID
* @param {Object} options 配置选项 Key/Value
* @returns {Object} editormd 返回editormd对象
*/
var editormd = function (id, options) {
return new editormd.fn.init(id, options);
};
editormd.title = editormd.$name = "Editor.md";
editormd.version = "1.4.5";
editormd.homePage = "https://pandao.github.io/editor.md/";
editormd.classPrefix = "editormd-";
editormd.toolbarModes = {
full : [
"undo", "redo", "|",
"bold", "del", "italic", "quote", "ucwords", "uppercase", "lowercase", "|",
"h1", "h2", "h3", "h4", "h5", "h6", "|",
"list-ul", "list-ol", "hr", "|",
"link", "reference-link", "image", "code", "preformatted-text", "code-block", "table", "datetime", "emoji", "html-entities", "pagebreak", "|",
"goto-line", "watch", "preview", "fullscreen", "clear", "search", "|",
"help", "info"
],
simple : [
"undo", "redo", "|",
"bold", "del", "italic", "quote", "uppercase", "lowercase", "|",
"h1", "h2", "h3", "h4", "h5", "h6", "|",
"list-ul", "list-ol", "hr", "|",
"watch", "preview", "fullscreen", "|",
"help", "info"
],
mini : [
"undo", "redo", "|",
"watch", "preview", "|",
"help", "info"
]
};
editormd.defaults = {
mode : "gfm", //gfm or markdown
theme : "default",
name : "",
value : "", // value for CodeMirror, if mode not gfm/markdown
markdown : "",
appendMarkdown : "", // if in init textarea value not empty, append markdown to textarea
width : "100%",
height : "100%",
path : "./lib/", // Dependents module file directory
pluginPath : "", // If this empty, default use settings.path + "../plugins/"
delay : 300, // Delay parse markdown to html, Uint : ms
autoLoadModules : true, // Automatic load dependent module files
watch : true,
placeholder : "Enjoy Markdown! coding now...",
gotoLine : true,
codeFold : false,
autoHeight : false,
autoFocus : true,
autoCloseTags : true,
searchReplace : true,
syncScrolling : true,
readOnly : false,
tabSize : 4,
indentUnit : 4,
lineNumbers : true,
lineWrapping : true,
autoCloseBrackets : true,
showTrailingSpace : true,
matchBrackets : true,
indentWithTabs : true,
styleSelectedText : true,
matchWordHighlight : true, // options: true, false, "onselected"
styleActiveLine : true, // Highlight the current line
dialogLockScreen : true,
dialogShowMask : true,
dialogDraggable : true,
dialogMaskBgColor : "#fff",
dialogMaskOpacity : 0.1,
fontSize : "13px",
saveHTMLToTextarea : false,
disabledKeyMaps : [],
onload : function() {},
onresize : function() {},
onchange : function() {},
onwatch : null,
onunwatch : null,
onpreviewing : function() {},
onpreviewed : function() {},
onfullscreen : function() {},
onfullscreenExit : function() {},
onscroll : function() {},
onpreviewscroll : function() {},
imageUpload : false,
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL : "",
crossDomainUpload : false,
uploadCallbackURL : "",
toc : true, // Table of contents
tocm : false, // Using [TOCM], auto create ToC dropdown menu
tocTitle : "", // for ToC dropdown menu btn
tocDropdown : false,
tocContainer : "",
tocStartLevel : 1, // Said from H1 to create ToC
htmlDecode : false, // Open the HTML tag identification
pageBreak : true, // Enable parse page break [========]
atLink : true, // for @link
emailLink : true, // for email address auto link
taskList : false, // Enable Github Flavored Markdown task lists
emoji : false, // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);
// Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;
// Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;
tex : false, // TeX(LaTeX), based on KaTeX
flowChart : false, // flowChart.js only support IE9+
sequenceDiagram : false, // sequenceDiagram.js only support IE9+
previewCodeHighlight : true,
toolbar : true, // show/hide toolbar
toolbarAutoFixed : true, // on window scroll auto fixed position
toolbarIcons : "full",
toolbarTitles : {},
toolbarHandlers : {
ucwords : function() {
return editormd.toolbarHandlers.ucwords;
},
lowercase : function() {
return editormd.toolbarHandlers.lowercase;
}
},
toolbarCustomIcons : { // using html tag create toolbar icon, unused default <a> tag.
low
gitextract_sihvz_w_/
├── .gitignore
├── .jshintrc
├── BUGS.md
├── CHANGE.md
├── Gulpfile.js
├── LICENSE
├── README.md
├── bower.json
├── css/
│ ├── editormd.css
│ ├── editormd.logo.css
│ └── editormd.preview.css
├── docs/
│ ├── editormd.js.html
│ ├── index.html
│ ├── scripts/
│ │ ├── linenumber.js
│ │ └── prettify/
│ │ ├── Apache-License-2.0.txt
│ │ ├── lang-css.js
│ │ └── prettify.js
│ └── styles/
│ ├── jsdoc-default.css
│ ├── prettify-jsdoc.css
│ └── prettify-tomorrow.css
├── editormd.amd.js
├── editormd.js
├── examples/
│ ├── @links.html
│ ├── auto-height.html
│ ├── change-mode.html
│ ├── code-fold.html
│ ├── css/
│ │ └── style.css
│ ├── custom-keyboard-shortcuts.html
│ ├── custom-toolbar.html
│ ├── define-plugin.html
│ ├── delay-renderer-preview.html
│ ├── dynamic-create-editormd.html
│ ├── emoji.html
│ ├── extends.html
│ ├── external-use.html
│ ├── flowchart.html
│ ├── form-get-value.html
│ ├── full.html
│ ├── goto-line.html
│ ├── html-preview-markdown-to-html-custom-toc-container.html
│ ├── html-preview-markdown-to-html.html
│ ├── html-tags-decode.html
│ ├── image-cross-domain-upload.html
│ ├── image-upload.html
│ ├── index.html
│ ├── js/
│ │ ├── sea.js
│ │ └── seajs-main.js
│ ├── katex.html
│ ├── manually-load-modules.html
│ ├── multi-editormd.html
│ ├── multi-languages.html
│ ├── on-off.html
│ ├── onchange.html
│ ├── onfullscreen.html
│ ├── onload.html
│ ├── onpreviewing-onpreviewed.html
│ ├── onresize.html
│ ├── onscroll-onpreviewscroll.html
│ ├── onwatch-onunwatch.html
│ ├── page-break.html
│ ├── php/
│ │ ├── cross-domain-upload.php
│ │ ├── editormd.uploader.class.php
│ │ ├── post.php
│ │ ├── upload.php
│ │ └── upload_callback.html
│ ├── readonly.html
│ ├── resettings.html
│ ├── search-replace.html
│ ├── sequence-diagram.html
│ ├── set-get-replace-selection.html
│ ├── simple.html
│ ├── sync-scrolling.html
│ ├── task-lists.html
│ ├── test.md
│ ├── themes.html
│ ├── toc.html
│ ├── toolbar-auto-fixed.html
│ ├── use-requirejs.html
│ ├── use-seajs.html
│ └── use-zepto.html
├── fonts/
│ └── FontAwesome.otf
├── languages/
│ ├── en.js
│ └── zh-tw.js
├── lib/
│ └── codemirror/
│ ├── AUTHORS
│ ├── LICENSE
│ ├── README.md
│ ├── addon/
│ │ ├── comment/
│ │ │ ├── comment.js
│ │ │ └── continuecomment.js
│ │ ├── dialog/
│ │ │ ├── dialog.css
│ │ │ └── dialog.js
│ │ ├── display/
│ │ │ ├── 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
│ │ │ ├── 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/
│ │ │ ├── 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
│ ├── bower.json
│ ├── lib/
│ │ ├── codemirror.css
│ │ └── codemirror.js
│ ├── mode/
│ │ ├── apl/
│ │ │ ├── apl.js
│ │ │ └── index.html
│ │ ├── asterisk/
│ │ │ ├── asterisk.js
│ │ │ └── index.html
│ │ ├── clike/
│ │ │ ├── clike.js
│ │ │ ├── index.html
│ │ │ └── scala.html
│ │ ├── clojure/
│ │ │ ├── clojure.js
│ │ │ └── index.html
│ │ ├── cobol/
│ │ │ ├── cobol.js
│ │ │ └── index.html
│ │ ├── coffeescript/
│ │ │ ├── coffeescript.js
│ │ │ └── index.html
│ │ ├── commonlisp/
│ │ │ ├── commonlisp.js
│ │ │ └── index.html
│ │ ├── css/
│ │ │ ├── css.js
│ │ │ ├── index.html
│ │ │ ├── less.html
│ │ │ ├── less_test.js
│ │ │ ├── scss.html
│ │ │ ├── scss_test.js
│ │ │ └── test.js
│ │ ├── cypher/
│ │ │ ├── cypher.js
│ │ │ └── index.html
│ │ ├── 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
│ │ ├── ebnf/
│ │ │ ├── ebnf.js
│ │ │ └── index.html
│ │ ├── ecl/
│ │ │ ├── ecl.js
│ │ │ └── index.html
│ │ ├── eiffel/
│ │ │ ├── eiffel.js
│ │ │ └── index.html
│ │ ├── erlang/
│ │ │ ├── erlang.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
│ │ ├── 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
│ │ ├── jade/
│ │ │ ├── index.html
│ │ │ └── jade.js
│ │ ├── javascript/
│ │ │ ├── index.html
│ │ │ ├── javascript.js
│ │ │ ├── json-ld.html
│ │ │ ├── test.js
│ │ │ └── typescript.html
│ │ ├── jinja2/
│ │ │ ├── index.html
│ │ │ └── jinja2.js
│ │ ├── julia/
│ │ │ ├── index.html
│ │ │ └── julia.js
│ │ ├── kotlin/
│ │ │ ├── index.html
│ │ │ └── kotlin.js
│ │ ├── livescript/
│ │ │ ├── index.html
│ │ │ └── livescript.js
│ │ ├── lua/
│ │ │ ├── index.html
│ │ │ └── lua.js
│ │ ├── markdown/
│ │ │ ├── index.html
│ │ │ ├── markdown.js
│ │ │ └── test.js
│ │ ├── meta.js
│ │ ├── mirc/
│ │ │ ├── index.html
│ │ │ └── mirc.js
│ │ ├── mllike/
│ │ │ ├── index.html
│ │ │ └── mllike.js
│ │ ├── modelica/
│ │ │ ├── index.html
│ │ │ └── modelica.js
│ │ ├── nginx/
│ │ │ ├── index.html
│ │ │ └── nginx.js
│ │ ├── ntriples/
│ │ │ ├── index.html
│ │ │ └── ntriples.js
│ │ ├── octave/
│ │ │ ├── index.html
│ │ │ └── octave.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
│ │ ├── properties/
│ │ │ ├── index.html
│ │ │ └── properties.js
│ │ ├── puppet/
│ │ │ ├── index.html
│ │ │ └── puppet.js
│ │ ├── python/
│ │ │ ├── index.html
│ │ │ └── python.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
│ │ ├── 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
│ │ ├── smartymixed/
│ │ │ ├── index.html
│ │ │ └── smartymixed.js
│ │ ├── solr/
│ │ │ ├── index.html
│ │ │ └── solr.js
│ │ ├── soy/
│ │ │ ├── index.html
│ │ │ └── soy.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
│ │ ├── 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
│ │ ├── turtle/
│ │ │ ├── index.html
│ │ │ └── turtle.js
│ │ ├── vb/
│ │ │ ├── index.html
│ │ │ └── vb.js
│ │ ├── vbscript/
│ │ │ ├── index.html
│ │ │ └── vbscript.js
│ │ ├── velocity/
│ │ │ ├── index.html
│ │ │ └── velocity.js
│ │ ├── verilog/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── verilog.js
│ │ ├── xml/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xml.js
│ │ ├── xquery/
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xquery.js
│ │ ├── yaml/
│ │ │ ├── index.html
│ │ │ └── yaml.js
│ │ └── z80/
│ │ ├── index.html
│ │ └── z80.js
│ ├── package.json
│ └── theme/
│ ├── 3024-day.css
│ ├── 3024-night.css
│ ├── ambiance-mobile.css
│ ├── ambiance.css
│ ├── base16-dark.css
│ ├── base16-light.css
│ ├── blackboard.css
│ ├── cobalt.css
│ ├── colorforth.css
│ ├── eclipse.css
│ ├── elegant.css
│ ├── erlang-dark.css
│ ├── lesser-dark.css
│ ├── mbo.css
│ ├── mdn-like.css
│ ├── midnight.css
│ ├── monokai.css
│ ├── neat.css
│ ├── neo.css
│ ├── night.css
│ ├── paraiso-dark.css
│ ├── paraiso-light.css
│ ├── pastel-on-dark.css
│ ├── rubyblue.css
│ ├── solarized.css
│ ├── the-matrix.css
│ ├── tomorrow-night-bright.css
│ ├── tomorrow-night-eighties.css
│ ├── twilight.css
│ ├── vibrant-ink.css
│ ├── xq-dark.css
│ ├── xq-light.css
│ └── zenburn.css
├── package.json
├── plugins/
│ ├── code-block-dialog/
│ │ └── code-block-dialog.js
│ ├── emoji-dialog/
│ │ ├── emoji-dialog.js
│ │ └── emoji.json
│ ├── goto-line-dialog/
│ │ └── goto-line-dialog.js
│ ├── help-dialog/
│ │ ├── help-dialog.js
│ │ └── help.md
│ ├── html-entities-dialog/
│ │ ├── html-entities-dialog.js
│ │ └── html-entities.json
│ ├── image-dialog/
│ │ └── image-dialog.js
│ ├── link-dialog/
│ │ └── link-dialog.js
│ ├── plugin-template.js
│ ├── preformatted-text-dialog/
│ │ └── preformatted-text-dialog.js
│ ├── reference-link-dialog/
│ │ └── reference-link-dialog.js
│ ├── table-dialog/
│ │ └── table-dialog.js
│ └── test-plugin/
│ └── test-plugin.js
├── scss/
│ ├── editormd.codemirror.scss
│ ├── editormd.dialog.scss
│ ├── editormd.form.scss
│ ├── editormd.grid.scss
│ ├── editormd.logo.scss
│ ├── editormd.menu.scss
│ ├── editormd.preview.scss
│ ├── editormd.preview.themes.scss
│ ├── editormd.scss
│ ├── editormd.tab.scss
│ ├── editormd.themes.scss
│ ├── font-awesome.scss
│ ├── github-markdown.scss
│ ├── lib/
│ │ ├── prefixes.scss
│ │ └── variables.scss
│ └── prettify.scss
├── src/
│ └── editormd.js
└── tests/
├── bootstrap-test.html
├── codemirror-searchbox-test.html
├── codemirror-test.html
├── js/
│ └── searchbox.js
├── katex-tests.html
├── marked-@at-test.html
├── marked-emoji-test.html
├── marked-heading-link-test.html
├── marked-todo-list-test.html
└── qunit/
├── qunit-1.16.0.css
└── qunit-1.16.0.js
SYMBOL INDEX (1411 symbols across 144 files)
FILE: docs/scripts/prettify/prettify.js
function L (line 2) | function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var...
function M (line 6) | function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.classN...
function B (line 7) | function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}
function x (line 7) | function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(...
function u (line 9) | function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''...
function D (line 12) | function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.clas...
function k (line 15) | function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(...
function C (line 15) | function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-m...
function E (line 15) | function E(a){var m=
function m (line 25) | function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Inf...
FILE: examples/js/sea.js
function c (line 2) | function c(a){return function(b){return{}.toString.call(b)=="[object "+a...
function d (line 2) | function d(){return z++}
function e (line 2) | function e(a){return a.match(C)[0]}
function f (line 2) | function f(a){for(a=a.replace(D,"/"),a=a.replace(F,"$1/");a.match(E);)a=...
function g (line 2) | function g(a){var b=a.length-1,c=a.charAt(b);return"#"===c?a.substring(0...
function h (line 2) | function h(a){var b=u.alias;return b&&w(b[a])?b[a]:a}
function i (line 2) | function i(a){var b=u.paths,c;return b&&(c=a.match(G))&&w(b[c[1]])&&(a=b...
function j (line 2) | function j(a){var b=u.vars;return b&&a.indexOf("{")>-1&&(a=a.replace(H,f...
function k (line 2) | function k(a){var b=u.map,c=a;if(b)for(var d=0,e=b.length;e>d;d++){var f...
function l (line 2) | function l(a,b){var c,d=a.charAt(0);if(I.test(a))c=a;else if("."===d)c=f...
function m (line 2) | function m(a,b){if(!a)return"";a=h(a),a=i(a),a=j(a),a=g(a);var c=l(a,b);...
function n (line 2) | function n(a){return a.hasAttribute?a.src:a.getAttribute("src",4)}
function o (line 2) | function o(a,b,c){var d=K.createElement("script");if(c){var e=y(c)?c(a):...
function p (line 2) | function p(a,b,c){function d(){a.onload=a.onerror=a.onreadystatechange=n...
function q (line 2) | function q(){if(R)return R;if(S&&"interactive"===S.readyState)return S;f...
function r (line 2) | function r(a){var b=[];return a.replace(U,"").replace(T,function(a,c,d){...
function s (line 2) | function s(a,b){this.uri=a,this.dependencies=b||[],this.exports=null,thi...
function c (line 2) | function c(){t.request(g.requestUri,g.onRequest,g.charset)}
function d (line 2) | function d(){delete X[h],Y[h]=!0,W&&(s.save(f,W),W=null);var a,b=Z[h];fo...
function a (line 2) | function a(b){return s.get(a.resolve(b)).exec()}
FILE: examples/php/editormd.uploader.class.php
class EditorMdUploader (line 15) | class EditorMdUploader
method __construct (line 54) | public function __construct($savePath, $saveURL, $formats, $randomName...
method config (line 73) | public function config($configs)
method upload (line 89) | public function upload($name)
method moveFile (line 128) | private function moveFile()
method randomFileName (line 218) | private function randomFileName()
method setSeveName (line 253) | private function setSeveName()
method getSeveName (line 270) | public function getSeveName()
method getFileExt (line 282) | public function getFileExt($fileName)
method redirect (line 295) | public function redirect()
method message (line 307) | public function message($message, $success = 0)
FILE: lib/codemirror/addon/comment/comment.js
function firstNonWS (line 18) | function firstNonWS(str) {
FILE: lib/codemirror/addon/comment/continuecomment.js
function continueComment (line 17) | function continueComment(cm) {
function continueLineCommentEnabled (line 64) | function continueLineCommentEnabled(cm) {
FILE: lib/codemirror/addon/dialog/dialog.js
function dialogDiv (line 14) | function dialogDiv(cm, template, bottom) {
function closeNotification (line 31) | function closeNotification(cm, newVal) {
function close (line 44) | function close(newVal) {
function close (line 100) | function close() {
function close (line 138) | function close() {
FILE: lib/codemirror/addon/display/fullscreen.js
function setFullscreen (line 21) | function setFullscreen(cm) {
function setNormal (line 32) | function setNormal(cm) {
FILE: lib/codemirror/addon/display/panel.js
function Panel (line 26) | function Panel(cm, node, options, height) {
function initPanels (line 50) | function initPanels(cm) {
function removePanels (line 84) | function removePanels(cm) {
FILE: lib/codemirror/addon/display/placeholder.js
function clearPlaceholder (line 29) | function clearPlaceholder(cm) {
function setPlaceholder (line 35) | function setPlaceholder(cm) {
function onBlur (line 44) | function onBlur(cm) {
function onChange (line 47) | function onChange(cm) {
function isEmpty (line 55) | function isEmpty(cm) {
FILE: lib/codemirror/addon/display/rulers.js
function clearRulers (line 25) | function clearRulers(cm) {
function setRulers (line 33) | function setRulers(cm) {
function refreshRulers (line 60) | function refreshRulers(cm) {
FILE: lib/codemirror/addon/edit/closebrackets.js
function charsAround (line 35) | function charsAround(cm, pos) {
function enteringString (line 44) | function enteringString(cm, pos, ch) {
function buildKeymap (line 57) | function buildKeymap(pairs, triples) {
function buildExplodeHandler (line 140) | function buildExplodeHandler(pairs) {
FILE: lib/codemirror/addon/edit/closetag.js
function autoCloseGT (line 53) | function autoCloseGT(cm) {
function autoCloseCurrent (line 97) | function autoCloseCurrent(cm, typingSlash) {
function autoCloseSlash (line 132) | function autoCloseSlash(cm) {
function indexOf (line 139) | function indexOf(collection, elt) {
function closingTagExists (line 148) | function closingTagExists(cm, tagName, pos, state, newTag) {
FILE: lib/codemirror/addon/edit/matchbrackets.js
function findMatchingBracket (line 19) | function findMatchingBracket(cm, where, strict, config) {
function scanForBracket (line 40) | function scanForBracket(cm, where, dir, style, config) {
function matchBrackets (line 67) | function matchBrackets(cm, autoclear, config) {
function doMatchBrackets (line 97) | function doMatchBrackets(cm) {
FILE: lib/codemirror/addon/edit/matchtags.js
function clear (line 28) | function clear(cm) {
function doMatchTags (line 34) | function doMatchTags(cm) {
function maybeUpdateMatch (line 55) | function maybeUpdateMatch(cm) {
FILE: lib/codemirror/addon/fold/brace-fold.js
function findOpening (line 18) | function findOpening(openCh) {
function hasImport (line 63) | function hasImport(line) {
function hasInclude (line 87) | function hasInclude(line) {
FILE: lib/codemirror/addon/fold/foldcode.js
function doFold (line 14) | function doFold(cm, pos, options, force) {
function makeWidget (line 61) | function makeWidget(cm, options) {
function getOption (line 137) | function getOption(cm, options, name) {
FILE: lib/codemirror/addon/fold/foldgutter.js
function State (line 39) | function State(options) {
function parseOptions (line 44) | function parseOptions(opts) {
function isFolded (line 52) | function isFolded(cm, line) {
function marker (line 58) | function marker(spec) {
function updateFoldInfo (line 68) | function updateFoldInfo(cm, from, to) {
function updateInViewport (line 87) | function updateInViewport(cm) {
function onGutterClick (line 96) | function onGutterClick(cm, line, gutter) {
function onChange (line 104) | function onChange(cm) {
function onViewportChange (line 113) | function onViewportChange(cm) {
function onFold (line 137) | function onFold(cm, from) {
FILE: lib/codemirror/addon/fold/markdown-fold.js
function isHeader (line 17) | function isHeader(lineNo) {
function headerLevel (line 22) | function headerLevel(lineNo, line, nextLine) {
FILE: lib/codemirror/addon/fold/xml-fold.js
function cmp (line 15) | function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }
function Iter (line 21) | function Iter(cm, line, ch, range) {
function tagAt (line 28) | function tagAt(iter, ch) {
function nextLine (line 33) | function nextLine(iter) {
function prevLine (line 39) | function prevLine(iter) {
function toTagEnd (line 46) | function toTagEnd(iter) {
function toTagStart (line 57) | function toTagStart(iter) {
function toNextTag (line 69) | function toNextTag(iter) {
function toPrevTag (line 79) | function toPrevTag(iter) {
function findMatchingClose (line 91) | function findMatchingClose(iter, tag) {
function findMatchingOpen (line 112) | function findMatchingOpen(iter, tag) {
FILE: lib/codemirror/addon/hint/css-hint.js
function add (line 31) | function add(keywords) {
FILE: lib/codemirror/addon/hint/html-hint.js
function populate (line 332) | function populate(obj) {
function htmlHint (line 342) | function htmlHint(cm, options) {
FILE: lib/codemirror/addon/hint/javascript-hint.js
function forEach (line 14) | function forEach(arr, f) {
function arrayContains (line 18) | function arrayContains(arr, item) {
function scriptHint (line 31) | function scriptHint(editor, keywords, getToken, options) {
function javascriptHint (line 60) | function javascriptHint(editor, options) {
function getCoffeeScriptToken (line 67) | function getCoffeeScriptToken(editor, cur) {
function coffeescriptHint (line 85) | function coffeescriptHint(editor, options) {
function getCompletions (line 100) | function getCompletions(token, context, keywords, options) {
FILE: lib/codemirror/addon/hint/show-hint.js
function retrieveHints (line 28) | function retrieveHints(getter, cm, options, then) {
function Completion (line 52) | function Completion(cm, options) {
function done (line 103) | function done() {
function update (line 111) | function update() {
function finishUpdate (line 116) | function finishUpdate(data_) {
function clearDebounce (line 124) | function clearDebounce() {
function activity (line 131) | function activity() {
function getText (line 159) | function getText(completion) {
function buildKeyMap (line 164) | function buildKeyMap(completion, handle) {
function getHintElement (line 199) | function getHintElement(hintsElement, el) {
function Widget (line 206) | function Widget(completion, data) {
FILE: lib/codemirror/addon/hint/sql-hint.js
function getKeywords (line 23) | function getKeywords(editor) {
function getText (line 29) | function getText(item) {
function getItem (line 33) | function getItem(list, item) {
function shallowClone (line 39) | function shallowClone(object) {
function match (line 46) | function match(string, word) {
function addMatches (line 52) | function addMatches(result, search, wordlist, formatter) {
function cleanName (line 64) | function cleanName(name) {
function insertBackticks (line 72) | function insertBackticks(name) {
function nameCompletion (line 83) | function nameCompletion(cur, token, result, editor) {
function eachWord (line 141) | function eachWord(lineText, f) {
function convertCurToNumber (line 150) | function convertCurToNumber(cur) {
function convertNumberToCur (line 155) | function convertNumberToCur(num) {
function findTableByAlias (line 159) | function findTableByAlias(alias, editor) {
FILE: lib/codemirror/addon/hint/xml-hint.js
function getHints (line 16) | function getHints(cm, options) {
FILE: lib/codemirror/addon/lint/javascript-lint.js
function validator (line 24) | function validator(text, options) {
function cleanup (line 34) | function cleanup(error) {
function fixWith (line 42) | function fixWith(error, fixes, severity, force) {
function isBogus (line 62) | function isBogus(error) {
function parseErrors (line 72) | function parseErrors(errors, output) {
FILE: lib/codemirror/addon/lint/lint.js
function showTooltip (line 15) | function showTooltip(e, content) {
function rm (line 31) | function rm(elt) {
function hideTooltip (line 34) | function hideTooltip(tt) {
function showTooltipFor (line 41) | function showTooltipFor(e, content, node) {
function LintState (line 58) | function LintState(cm, options, hasGutter) {
function parseOptions (line 66) | function parseOptions(cm, options) {
function clearMarks (line 74) | function clearMarks(cm) {
function makeMarker (line 82) | function makeMarker(labels, severity, multiple, tooltips) {
function getMaxSeverity (line 97) | function getMaxSeverity(a, b) {
function groupByLine (line 102) | function groupByLine(annotations) {
function annotationTooltip (line 111) | function annotationTooltip(ann) {
function startLinting (line 120) | function startLinting(cm) {
function updateLinting (line 129) | function updateLinting(cm, annotationsNotSorted) {
function onChange (line 164) | function onChange(cm) {
function popupSpanTooltip (line 170) | function popupSpanTooltip(ann, e) {
function onMouseOver (line 175) | function onMouseOver(cm, e) {
FILE: lib/codemirror/addon/merge/merge.js
function DiffView (line 18) | function DiffView(mv, type) {
function ensureDiff (line 60) | function ensureDiff(dv) {
function registerUpdate (line 70) | function registerUpdate(dv) {
function registerScroll (line 126) | function registerScroll(dv) {
function syncScroll (line 135) | function syncScroll(dv, type) {
function getOffsets (line 177) | function getOffsets(editor, around) {
function setScrollLock (line 184) | function setScrollLock(dv, val, action) {
function clearMarks (line 192) | function clearMarks(editor, arr, classes) {
function updateMarks (line 207) | function updateMarks(editor, diff, state, type, classes) {
function markChanges (line 227) | function markChanges(editor, diff, type, marks, from, to, classes) {
function makeConnections (line 274) | function makeConnections(dv) {
function getMatchingOrigLine (line 294) | function getMatchingOrigLine(editLine, chunks) {
function findAlignedLines (line 306) | function findAlignedLines(dv, other) {
function alignChunks (line 331) | function alignChunks(dv, force) {
function alignLines (line 363) | function alignLines(cm, lines, aligners) {
function padAbove (line 377) | function padAbove(cm, line, size) {
function drawConnectorsForChunk (line 389) | function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {
function copyChunk (line 426) | function copyChunk(dv, to, from, chunk) {
function buildGap (line 495) | function buildGap(dv) {
function asString (line 541) | function asString(obj) {
function getDiff (line 549) | function getDiff(a, b) {
function getChunks (line 565) | function getChunks(diff) {
function endOfLineClean (line 592) | function endOfLineClean(diff, i) {
function startOfLineClean (line 601) | function startOfLineClean(diff, i) {
function chunkBoundariesAround (line 610) | function chunkBoundariesAround(chunks, n, nInEdit) {
function collapseSingle (line 626) | function collapseSingle(cm, from, to) {
function collapseStretch (line 645) | function collapseStretch(size, editors) {
function unclearNearChunks (line 659) | function unclearNearChunks(dv, margin, off, clear) {
function collapseIdenticalStretches (line 669) | function collapseIdenticalStretches(mv, margin) {
function elt (line 693) | function elt(tag, content, className, style) {
function clear (line 702) | function clear(node) {
function attrs (line 707) | function attrs(elt) {
function copyObj (line 712) | function copyObj(obj, target) {
function moveOver (line 718) | function moveOver(pos, str, copy, other) {
function posMin (line 732) | function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a ...
function posMax (line 733) | function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a ...
function posEq (line 734) | function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }
FILE: lib/codemirror/addon/mode/loadmode.js
function splitCallback (line 15) | function splitCallback(cont, n) {
function ensureDeps (line 19) | function ensureDeps(mode, cont) {
FILE: lib/codemirror/addon/mode/multiplex.js
function indexOf (line 19) | function indexOf(string, pattern, from) {
FILE: lib/codemirror/addon/mode/multiplex_test.js
function MT (line 22) | function MT(name) {
FILE: lib/codemirror/addon/mode/simple.js
function ensureState (line 61) | function ensureState(states, name) {
function toRegex (line 66) | function toRegex(val, caret) {
function asToken (line 78) | function asToken(val) {
function Rule (line 87) | function Rule(data, states) {
function tokenFunction (line 94) | function tokenFunction(states, config) {
function cmp (line 155) | function cmp(a, b) {
function enterLocalMode (line 167) | function enterLocalMode(config, state, spec, token) {
function indexOf (line 183) | function indexOf(val, arr) {
function indentFunction (line 187) | function indentFunction(states, meta) {
FILE: lib/codemirror/addon/runmode/colorize.js
function textContent (line 16) | function textContent(node, out) {
FILE: lib/codemirror/addon/runmode/runmode-standalone.js
function splitLines (line 9) | function splitLines(string){ return string.split(/\r?\n|\r/); }
function StringStream (line 11) | function StringStream(string) {
FILE: lib/codemirror/addon/runmode/runmode.node.js
function splitLines (line 8) | function splitLines(string){ return string.split(/\r?\n|\r/); }
function StringStream (line 10) | function StringStream(string) {
FILE: lib/codemirror/addon/scroll/annotatescrollbar.js
function Annotation (line 21) | function Annotation(cm, options) {
FILE: lib/codemirror/addon/scroll/scrollpastend.js
function onChange (line 28) | function onChange(cm, change) {
function updateBottomMargin (line 33) | function updateBottomMargin(cm) {
FILE: lib/codemirror/addon/scroll/simplescrollbars.js
function Bar (line 14) | function Bar(cls, orientation, scroll) {
function SimpleScrollbars (line 84) | function SimpleScrollbars(cls, place, scroll) {
FILE: lib/codemirror/addon/search/match-highlighter.js
function State (line 36) | function State(options) {
function cursorActivity (line 66) | function cursorActivity(cm) {
function highlightMatches (line 72) | function highlightMatches(cm) {
function isWord (line 97) | function isWord(cm, from, to) {
function boundariesAround (line 114) | function boundariesAround(stream, re) {
function makeOverlay (line 119) | function makeOverlay(query, hasBoundary, style) {
FILE: lib/codemirror/addon/search/matchesonscrollbar.js
function SearchAnnotation (line 20) | function SearchAnnotation(cm, query, caseFold, options) {
function offsetLine (line 58) | function offsetLine(line, changeStart, sizeChange) {
FILE: lib/codemirror/addon/search/search.js
function searchOverlay (line 21) | function searchOverlay(query, caseInsensitive) {
function SearchState (line 41) | function SearchState() {
function getSearchState (line 45) | function getSearchState(cm) {
function queryCaseInsensitive (line 48) | function queryCaseInsensitive(query) {
function getSearchCursor (line 51) | function getSearchCursor(cm, query, pos) {
function dialog (line 55) | function dialog(cm, text, shortText, deflt, f) {
function confirmDialog (line 59) | function confirmDialog(cm, text, shortText, fs) {
function parseQuery (line 63) | function parseQuery(query) {
function doSearch (line 75) | function doSearch(cm, rev) {
function findNext (line 94) | function findNext(cm, rev) {cm.operation(function() {
function clearSearch (line 105) | function clearSearch(cm) {cm.operation(function() {
function replace (line 117) | function replace(cm, all) {
FILE: lib/codemirror/addon/search/searchcursor.js
function SearchCursor (line 15) | function SearchCursor(doc, query, pos, caseFold) {
function savePosAndFail (line 124) | function savePosAndFail(line) {
function adjustPos (line 162) | function adjustPos(orig, folded, pos) {
FILE: lib/codemirror/addon/selection/active-line.js
function clearActiveLines (line 35) | function clearActiveLines(cm) {
function sameArray (line 42) | function sameArray(a, b) {
function updateActiveLines (line 49) | function updateActiveLines(cm, ranges) {
function selectionChange (line 68) | function selectionChange(cm, sel) {
FILE: lib/codemirror/addon/selection/mark-selection.js
function onCursorActivity (line 36) | function onCursorActivity(cm) {
function onChange (line 40) | function onChange(cm) {
function coverRange (line 49) | function coverRange(cm, from, to, addAt) {
function clear (line 65) | function clear(cm) {
function reset (line 71) | function reset(cm) {
function update (line 78) | function update(cm) {
FILE: lib/codemirror/addon/selection/selection-pointer.js
function mousemove (line 43) | function mousemove(cm, event) {
function mouseout (line 54) | function mouseout(cm, event) {
function reset (line 62) | function reset(cm) {
function scheduleUpdate (line 67) | function scheduleUpdate(cm) {
function update (line 77) | function update(cm) {
FILE: lib/codemirror/addon/tern/tern.js
function getFile (line 147) | function getFile(ts, name, c) {
function findDoc (line 157) | function findDoc(ts, doc, name) {
function resolveDoc (line 169) | function resolveDoc(ts, id) {
function trackChange (line 175) | function trackChange(ts, doc, change) {
function sendDoc (line 195) | function sendDoc(ts, doc) {
function hint (line 204) | function hint(ts, cm, c) {
function typeToIcon (line 239) | function typeToIcon(type) {
function showContextInfo (line 251) | function showContextInfo(ts, cm, pos, queryName, c) {
function updateArgHints (line 274) | function updateArgHints(ts, cm) {
function showArgHints (line 316) | function showArgHints(ts, cm, pos) {
function parseFnType (line 337) | function parseFnType(text) {
function jumpToDef (line 370) | function jumpToDef(ts, cm) {
function jumpBack (line 398) | function jumpBack(ts, cm) {
function moveTo (line 404) | function moveTo(ts, curDoc, doc, start, end) {
function findContext (line 413) | function findContext(doc, data) {
function atInterestingExpression (line 443) | function atInterestingExpression(cm) {
function rename (line 451) | function rename(ts, cm) {
function selectName (line 462) | function selectName(ts, cm) {
function applyChanges (line 480) | function applyChanges(ts, changes) {
function buildRequest (line 500) | function buildRequest(ts, doc, query, pos) {
function getFragmentAround (line 542) | function getFragmentAround(data, start, end) {
function elt (line 573) | function elt(tagname, cls /*, ... elts*/) {
function dialog (line 584) | function dialog(cm, text, f) {
function tempTooltip (line 593) | function tempTooltip(cm, content) {
function makeTooltip (line 623) | function makeTooltip(x, y, content) {
function remove (line 631) | function remove(node) {
function fadeOut (line 636) | function fadeOut(tooltip) {
function showError (line 641) | function showError(ts, cm, msg) {
function closeArgHints (line 648) | function closeArgHints(ts) {
function docValue (line 652) | function docValue(ts, doc) {
function WorkerServer (line 660) | function WorkerServer(ts) {
FILE: lib/codemirror/addon/tern/worker.js
function getFile (line 26) | function getFile(file, c) {
function startServer (line 31) | function startServer(defs, plugins, scripts) {
FILE: lib/codemirror/addon/wrap/hardwrap.js
function findParagraph (line 16) | function findParagraph(cm, pos, options) {
function findBreakPoint (line 32) | function findBreakPoint(text, column, wrapOn, killTrailingSpace) {
function wrapRange (line 42) | function wrapRange(cm, from, to, options) {
FILE: lib/codemirror/lib/codemirror.js
function CodeMirror (line 59) | function CodeMirror(place, options) {
function Display (line 130) | function Display(place, doc, input) {
function loadMode (line 232) | function loadMode(cm) {
function resetModeState (line 237) | function resetModeState(cm) {
function wrappingChanged (line 248) | function wrappingChanged(cm) {
function estimateHeight (line 266) | function estimateHeight(cm) {
function estimateLineHeights (line 284) | function estimateLineHeights(cm) {
function themeChanged (line 292) | function themeChanged(cm) {
function guttersChanged (line 298) | function guttersChanged(cm) {
function updateGutters (line 306) | function updateGutters(cm) {
function updateGutterSpace (line 321) | function updateGutterSpace(cm) {
function lineLength (line 329) | function lineLength(line) {
function findMaxLine (line 348) | function findMaxLine(cm) {
function setGuttersForLineNumbers (line 364) | function setGuttersForLineNumbers(options) {
function measureForScrollbars (line 378) | function measureForScrollbars(cm) {
function NativeScrollbars (line 394) | function NativeScrollbars(place, scroll, cm) {
function NullScrollbars (line 473) | function NullScrollbars() {}
function initScrollbars (line 484) | function initScrollbars(cm) {
function updateScrollbars (line 506) | function updateScrollbars(cm, measure) {
function updateScrollbarsInner (line 520) | function updateScrollbarsInner(cm, measure) {
function visibleLines (line 542) | function visibleLines(display, doc, viewport) {
function alignHorizontally (line 567) | function alignHorizontally(cm) {
function maybeUpdateLineNumberWidth (line 586) | function maybeUpdateLineNumberWidth(cm) {
function lineNumberFor (line 604) | function lineNumberFor(options, i) {
function compensateForHScroll (line 611) | function compensateForHScroll(display) {
function DisplayUpdate (line 617) | function DisplayUpdate(cm, viewport, force) {
function maybeClipScrollbars (line 641) | function maybeClipScrollbars(cm) {
function updateDisplayIfNeeded (line 655) | function updateDisplayIfNeeded(cm, update) {
function postUpdateDisplay (line 727) | function postUpdateDisplay(cm, update) {
function updateDisplaySimple (line 758) | function updateDisplaySimple(cm, viewport) {
function setDocumentHeight (line 771) | function setDocumentHeight(cm, measure) {
function updateHeightsInViewport (line 780) | function updateHeightsInViewport(cm) {
function updateWidgetHeight (line 807) | function updateWidgetHeight(line) {
function getDimensions (line 814) | function getDimensions(cm) {
function patchDisplay (line 832) | function patchDisplay(cm, updateNumbersFrom, dims) {
function updateLineForChanges (line 877) | function updateLineForChanges(cm, lineView, lineN, dims) {
function ensureLineWrapped (line 890) | function ensureLineWrapped(lineView) {
function updateLineBackground (line 901) | function updateLineBackground(lineView) {
function getLineContent (line 915) | function getLineContent(cm, lineView) {
function updateLineText (line 928) | function updateLineText(cm, lineView) {
function updateLineClasses (line 943) | function updateLineClasses(lineView) {
function updateLineGutter (line 953) | function updateLineGutter(cm, lineView, lineN, dims) {
function updateLineWidgets (line 983) | function updateLineWidgets(cm, lineView, dims) {
function buildLineElement (line 994) | function buildLineElement(cm, lineView, lineN, dims) {
function insertLineWidgets (line 1008) | function insertLineWidgets(cm, lineView, dims) {
function insertLineWidgetsFor (line 1014) | function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
function positionLineWidget (line 1030) | function positionLineWidget(widget, node, lineView, dims) {
function copyPos (line 1060) | function copyPos(x) {return Pos(x.line, x.ch);}
function maxPos (line 1061) | function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
function minPos (line 1062) | function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
function ensureFocus (line 1066) | function ensureFocus(cm) {
function isReadOnly (line 1070) | function isReadOnly(cm) {
function applyTextInput (line 1079) | function applyTextInput(cm, inserted, deleted, sel) {
function copyableRanges (line 1132) | function copyableRanges(cm) {
function disableBrowserMagic (line 1143) | function disableBrowserMagic(field) {
function TextareaInput (line 1151) | function TextareaInput(cm) {
function hiddenTextarea (line 1169) | function hiddenTextarea() {
function prepareCopyCut (line 1222) | function prepareCopyCut(e) {
function p (line 1344) | function p() {
function prepareSelectAllHack (line 1440) | function prepareSelectAllHack() {
function rehide (line 1451) | function rehide() {
function ContentEditableInput (line 1490) | function ContentEditableInput(cm) {
function onCopyCut (line 1551) | function onCopyCut(e) {
function poll (line 1665) | function poll() {
function posToDOM (line 1775) | function posToDOM(cm, pos) {
function badPos (line 1791) | function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }
function domToPos (line 1793) | function domToPos(cm, node, offset) {
function locateNodeInLineView (line 1812) | function locateNodeInLineView(lineView, node, offset) {
function domTextBetween (line 1867) | function domTextBetween(cm, from, to, fromLine, toLine) {
function Selection (line 1917) | function Selection(ranges, primIndex) {
function Range (line 1954) | function Range(anchor, head) {
function normalizeSelection (line 1969) | function normalizeSelection(ranges, primIndex) {
function simpleSelection (line 1985) | function simpleSelection(anchor, head) {
function clipLine (line 1991) | function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.fi...
function clipPos (line 1992) | function clipPos(doc, pos) {
function clipToLen (line 1998) | function clipToLen(pos, linelen) {
function isLine (line 2004) | function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.si...
function clipPosArray (line 2005) | function clipPosArray(doc, array) {
function extendRange (line 2020) | function extendRange(doc, range, head, other) {
function extendSelection (line 2039) | function extendSelection(doc, head, other, options) {
function extendSelections (line 2045) | function extendSelections(doc, heads, options) {
function replaceOneSelection (line 2053) | function replaceOneSelection(doc, i, range, options) {
function setSimpleSelection (line 2060) | function setSimpleSelection(doc, anchor, head, options) {
function filterSelectionChange (line 2066) | function filterSelectionChange(doc, sel) {
function setSelectionReplaceHistory (line 2082) | function setSelectionReplaceHistory(doc, sel, options) {
function setSelection (line 2093) | function setSelection(doc, sel, options) {
function setSelectionNoUndo (line 2098) | function setSelectionNoUndo(doc, sel, options) {
function setSelectionInner (line 2110) | function setSelectionInner(doc, sel) {
function reCheckSelection (line 2124) | function reCheckSelection(doc) {
function skipAtomicInSelection (line 2130) | function skipAtomicInSelection(doc, sel, bias, mayClear) {
function skipAtomic (line 2145) | function skipAtomic(doc, pos, bias, mayClear) {
function updateSelection (line 2197) | function updateSelection(cm) {
function prepareSelection (line 2201) | function prepareSelection(cm, primary) {
function drawSelectionCursor (line 2219) | function drawSelectionCursor(cm, range, output) {
function drawSelectionRange (line 2238) | function drawSelectionRange(cm, range, output) {
function restartBlink (line 2313) | function restartBlink(cm) {
function startWorker (line 2329) | function startWorker(cm, time) {
function highlightWorker (line 2334) | function highlightWorker(cm) {
function findStartLine (line 2376) | function findStartLine(cm, n, precise) {
function getStateBefore (line 2392) | function getStateBefore(cm, n, precise) {
function paddingTop (line 2410) | function paddingTop(display) {return display.lineSpace.offsetTop;}
function paddingVert (line 2411) | function paddingVert(display) {return display.mover.offsetHeight - displ...
function paddingH (line 2412) | function paddingH(display) {
function scrollGap (line 2421) | function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }
function displayWidth (line 2422) | function displayWidth(cm) {
function displayHeight (line 2425) | function displayHeight(cm) {
function ensureLineHeights (line 2433) | function ensureLineHeights(cm, lineView, rect) {
function mapFromLineView (line 2454) | function mapFromLineView(lineView, line, lineN) {
function updateExternalMeasurement (line 2467) | function updateExternalMeasurement(cm, line) {
function measureChar (line 2480) | function measureChar(cm, line, ch, bias) {
function findViewForLine (line 2485) | function findViewForLine(cm, lineN) {
function prepareMeasureForLine (line 2498) | function prepareMeasureForLine(cm, line) {
function measureCharPrepared (line 2518) | function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
function nodeAndOffsetInLineMap (line 2540) | function nodeAndOffsetInLineMap(map, ch, bias) {
function measureCharInner (line 2577) | function measureCharInner(cm, prepared, ch, bias) {
function maybeUpdateRectForZooming (line 2636) | function maybeUpdateRectForZooming(measure, rect) {
function clearLineMeasurementCacheFor (line 2646) | function clearLineMeasurementCacheFor(lineView) {
function clearLineMeasurementCache (line 2655) | function clearLineMeasurementCache(cm) {
function clearCaches (line 2662) | function clearCaches(cm) {
function pageScrollX (line 2669) | function pageScrollX() { return window.pageXOffset || (document.document...
function pageScrollY (line 2670) | function pageScrollY() { return window.pageYOffset || (document.document...
function intoCoordSystem (line 2676) | function intoCoordSystem(cm, lineObj, rect, context) {
function fromCoordSystem (line 2698) | function fromCoordSystem(cm, coords, context) {
function charCoords (line 2715) | function charCoords(cm, pos, context, lineObj, bias) {
function cursorCoords (line 2723) | function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHei...
function estimateCoords (line 2755) | function estimateCoords(cm, pos) {
function PosWithInfo (line 2769) | function PosWithInfo(line, ch, outside, xRel) {
function coordsChar (line 2778) | function coordsChar(cm, x, y) {
function coordsCharInner (line 2799) | function coordsCharInner(cm, lineObj, lineNo, x, y) {
function textHeight (line 2841) | function textHeight(display) {
function charWidth (line 2861) | function charWidth(display) {
function startOperation (line 2883) | function startOperation(cm) {
function fireCallbacksForOps (line 2910) | function fireCallbacksForOps(group) {
function endOperation (line 2927) | function endOperation(cm) {
function endOperations (line 2942) | function endOperations(group) {
function endOperation_R1 (line 2956) | function endOperation_R1(op) {
function endOperation_W1 (line 2969) | function endOperation_W1(op) {
function endOperation_R2 (line 2973) | function endOperation_R2(op) {
function endOperation_W2 (line 2994) | function endOperation_W2(op) {
function endOperation_finish (line 3017) | function endOperation_finish(op) {
function runInOp (line 3064) | function runInOp(cm, f) {
function operation (line 3071) | function operation(cm, f) {
function methodOp (line 3081) | function methodOp(f) {
function docMethodOp (line 3089) | function docMethodOp(f) {
function LineView (line 3104) | function LineView(doc, line, lineN) {
function buildViewArray (line 3116) | function buildViewArray(cm, from, to) {
function regChange (line 3132) | function regChange(cm, from, to, lendiff) {
function regLineChange (line 3197) | function regLineChange(cm, line, type) {
function resetView (line 3211) | function resetView(cm) {
function findViewIndex (line 3219) | function findViewIndex(cm, n) {
function viewCuttingPoint (line 3230) | function viewCuttingPoint(cm, oldN, newN, dir) {
function adjustView (line 3256) | function adjustView(cm, from, to) {
function countDirtyView (line 3277) | function countDirtyView(cm) {
function registerEventHandlers (line 3289) | function registerEventHandlers(cm) {
function onResize (line 3398) | function onResize(cm) {
function eventInWidget (line 3411) | function eventInWidget(display, e) {
function posFromMouse (line 3424) | function posFromMouse(cm, e, liberal, forRect) {
function onMouseDown (line 3445) | function onMouseDown(e) {
function leftButtonDown (line 3483) | function leftButtonDown(cm, e, start) {
function leftButtonStartDrag (line 3509) | function leftButtonStartDrag(cm, e, start, modifier) {
function leftButtonSelect (line 3536) | function leftButtonSelect(cm, e, start, type, addNew) {
function gutterEvent (line 3678) | function gutterEvent(cm, e, type, prevent, signalfn) {
function clickInGutter (line 3701) | function clickInGutter(cm, e) {
function onDrop (line 3709) | function onDrop(e) {
function onDragStart (line 3759) | function onDragStart(cm, e) {
function setScrollTop (line 3785) | function setScrollTop(cm, val) {
function setScrollLeft (line 3796) | function setScrollLeft(cm, val, isScroller) {
function onScrollWheel (line 3840) | function onScrollWheel(cm, e) {
function doHandleBinding (line 3912) | function doHandleBinding(cm, bound, dropShift) {
function lookupKeyForEditor (line 3932) | function lookupKeyForEditor(cm, name, handle) {
function dispatchKey (line 3942) | function dispatchKey(cm, name, e, handle) {
function handleKeyBinding (line 3974) | function handleKeyBinding(cm, e) {
function handleCharBinding (line 3993) | function handleCharBinding(cm, e, ch) {
function onKeyDown (line 3999) | function onKeyDown(e) {
function showCrossHair (line 4020) | function showCrossHair(cm) {
function onKeyUp (line 4035) | function onKeyUp(e) {
function onKeyPress (line 4040) | function onKeyPress(e) {
function onFocus (line 4053) | function onFocus(cm) {
function onBlur (line 4070) | function onBlur(cm) {
function onContextMenu (line 4085) | function onContextMenu(cm, e) {
function contextMenuInGutter (line 4090) | function contextMenuInGutter(cm, e) {
function adjustForChange (line 4107) | function adjustForChange(pos, change) {
function computeSelAfterChange (line 4116) | function computeSelAfterChange(doc, change) {
function offsetPos (line 4126) | function offsetPos(pos, old, nw) {
function computeReplacedSel (line 4135) | function computeReplacedSel(doc, changes, hint) {
function filterChange (line 4155) | function filterChange(doc, change, update) {
function makeChange (line 4179) | function makeChange(doc, change, ignoreReadOnly) {
function makeChangeInner (line 4201) | function makeChangeInner(doc, change) {
function makeChangeFromHistory (line 4219) | function makeChangeFromHistory(doc, type, allowSelectionOnly) {
function shiftDoc (line 4285) | function shiftDoc(doc, distance) {
function makeChangeSingleDoc (line 4301) | function makeChangeSingleDoc(doc, change, selAfter, spans) {
function makeChangeSingleDocInEditor (line 4334) | function makeChangeSingleDocInEditor(cm, change, spans) {
function replaceRange (line 4393) | function replaceRange(doc, code, from, to, origin) {
function maybeScrollWindow (line 4404) | function maybeScrollWindow(cm, coords) {
function scrollPosIntoView (line 4424) | function scrollPosIntoView(cm, pos, end, margin) {
function scrollIntoView (line 4448) | function scrollIntoView(cm, x1, y1, x2, y2) {
function calculateScrollPos (line 4458) | function calculateScrollPos(cm, x1, y1, x2, y2) {
function addToScrollPos (line 4488) | function addToScrollPos(cm, left, top) {
function ensureCursorVisible (line 4498) | function ensureCursorVisible(cm) {
function resolveScrollToPos (line 4512) | function resolveScrollToPos(cm) {
function indentLine (line 4532) | function indentLine(cm, n, how, aggressive) {
function changeLine (line 4593) | function changeLine(doc, handle, changeType, op) {
function deleteNearSelection (line 4604) | function deleteNearSelection(cm, compute) {
function findPosH (line 4636) | function findPosH(doc, pos, dir, unit, visually) {
function findPosV (line 4687) | function findPosV(cm, pos, dir, unit) {
function interpret (line 5106) | function interpret(val) {
function option (line 5162) | function option(name, deflt, handle, notOnInit) {
function normalizeKeyName (line 5608) | function normalizeKeyName(name) {
function getKeyMap (line 5694) | function getKeyMap(val) {
function save (line 5715) | function save() {textarea.value = cm.getValue();}
function markText (line 5965) | function markText(doc, from, to, options, type) {
function markTextShared (line 6058) | function markTextShared(doc, from, to, options, type) {
function findSharedMarkers (line 6073) | function findSharedMarkers(doc) {
function copySharedMarkers (line 6078) | function copySharedMarkers(doc, markers) {
function detachSharedMarkers (line 6090) | function detachSharedMarkers(markers) {
function MarkedSpan (line 6106) | function MarkedSpan(marker, from, to) {
function getMarkedSpanFor (line 6112) | function getMarkedSpanFor(spans, marker) {
function removeMarkedSpan (line 6120) | function removeMarkedSpan(spans, span) {
function addMarkedSpan (line 6126) | function addMarkedSpan(line, span) {
function markedSpansBefore (line 6135) | function markedSpansBefore(old, startCh, isInsert) {
function markedSpansAfter (line 6146) | function markedSpansAfter(old, endCh, isInsert) {
function stretchSpansOverChange (line 6165) | function stretchSpansOverChange(doc, change) {
function clearEmptySpans (line 6227) | function clearEmptySpans(spans) {
function mergeOldSpans (line 6241) | function mergeOldSpans(doc, change) {
function removeReadOnlyRanges (line 6264) | function removeReadOnlyRanges(doc, from, to) {
function detachMarkedSpans (line 6293) | function detachMarkedSpans(line) {
function attachMarkedSpans (line 6300) | function attachMarkedSpans(line, spans) {
function extraLeft (line 6309) | function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
function extraRight (line 6310) | function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
function compareCollapsedMarkers (line 6315) | function compareCollapsedMarkers(a, b) {
function collapsedSpanAtSide (line 6328) | function collapsedSpanAtSide(line, start) {
function collapsedSpanAtStart (line 6338) | function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, t...
function collapsedSpanAtEnd (line 6339) | function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, fal...
function conflictingCollapsedRange (line 6344) | function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
function visualLine (line 6364) | function visualLine(line) {
function visualLineContinued (line 6373) | function visualLineContinued(line) {
function visualLineNo (line 6384) | function visualLineNo(doc, lineN) {
function visualLineEndNo (line 6391) | function visualLineEndNo(doc, lineN) {
function lineIsHidden (line 6403) | function lineIsHidden(doc, line) {
function lineIsHiddenInner (line 6414) | function lineIsHiddenInner(doc, line, span) {
function adjustScrollWhenAboveVisible (line 6442) | function adjustScrollWhenAboveVisible(cm, line, diff) {
function widgetHeight (line 6471) | function widgetHeight(widget) {
function addLineWidget (line 6484) | function addLineWidget(cm, handle, node, options) {
function updateLine (line 6518) | function updateLine(line, text, markedSpans, estimateHeight) {
function cleanUpLine (line 6530) | function cleanUpLine(line) {
function extractLineClasses (line 6535) | function extractLineClasses(type, output) {
function callBlankLine (line 6549) | function callBlankLine(mode, state) {
function readToken (line 6556) | function readToken(mode, stream, state, inner) {
function takeToken (line 6566) | function takeToken(cm, pos, precise, asArray) {
function runMode (line 6588) | function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
function highlightLine (line 6629) | function highlightLine(cm, line, state, forceToEnd) {
function getLineStyles (line 6667) | function getLineStyles(cm, line, updateFrontier) {
function processLine (line 6681) | function processLine(cm, text, state, startAt) {
function interpretTokenStyle (line 6696) | function interpretTokenStyle(style, options) {
function buildLineContent (line 6708) | function buildLineContent(cm, lineView) {
function defaultSpecialCharPlaceholder (line 6762) | function defaultSpecialCharPlaceholder(ch) {
function buildToken (line 6771) | function buildToken(builder, text, style, startStyle, endStyle, title, c...
function buildTokenSplitSpaces (line 6824) | function buildTokenSplitSpaces(inner) {
function buildTokenBadBidi (line 6838) | function buildTokenBadBidi(inner, order) {
function buildCollapsedSpan (line 6857) | function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
function insertLineContent (line 6874) | function insertLineContent(line, builder, styles) {
function isWholeLineUpdate (line 6939) | function isWholeLineUpdate(doc, change) {
function updateDoc (line 6945) | function updateDoc(doc, change, markedSpans, estimateHeight) {
function LeafChunk (line 7008) | function LeafChunk(lines) {
function BranchChunk (line 7048) | function BranchChunk(children) {
function linkedDocs (line 7501) | function linkedDocs(doc, f, sharedHistOnly) {
function attachDoc (line 7516) | function attachDoc(cm, doc) {
function getLine (line 7530) | function getLine(doc, n) {
function getBetween (line 7545) | function getBetween(doc, start, end) {
function getLines (line 7557) | function getLines(doc, from, to) {
function updateLineHeight (line 7565) | function updateLineHeight(line, height) {
function lineNo (line 7572) | function lineNo(line) {
function lineAtHeight (line 7586) | function lineAtHeight(chunk, h) {
function heightAtLine (line 7607) | function heightAtLine(lineObj) {
function getOrder (line 7629) | function getOrder(line) {
function History (line 7637) | function History(startGen) {
function historyChangeFromChange (line 7654) | function historyChangeFromChange(doc, change) {
function clearSelectionEvents (line 7663) | function clearSelectionEvents(array) {
function lastChangeEvent (line 7673) | function lastChangeEvent(hist, force) {
function addChangeToHistory (line 7688) | function addChangeToHistory(doc, change, selAfter, opId) {
function selectionEventCanBeMerged (line 7730) | function selectionEventCanBeMerged(doc, origin, prev, sel) {
function addSelectionToHistory (line 7743) | function addSelectionToHistory(doc, sel, opId, options) {
function pushSelectionToHistory (line 7765) | function pushSelectionToHistory(sel, dest) {
function attachLocalSpans (line 7772) | function attachLocalSpans(doc, change, from, to) {
function removeClearedSpans (line 7783) | function removeClearedSpans(spans) {
function getOldSpans (line 7793) | function getOldSpans(doc, change) {
function copyHistoryArray (line 7803) | function copyHistoryArray(events, newGroup, instantiateSel) {
function rebaseHistSelSingle (line 7828) | function rebaseHistSelSingle(pos, from, to, diff) {
function rebaseHistArray (line 7844) | function rebaseHistArray(array, from, to, diff) {
function rebaseHist (line 7872) | function rebaseHist(hist, change) {
function e_defaultPrevented (line 7891) | function e_defaultPrevented(e) {
function e_target (line 7896) | function e_target(e) {return e.target || e.srcElement;}
function e_button (line 7897) | function e_button(e) {
function signalLater (line 7954) | function signalLater(emitter, type /*, values...*/) {
function fireOrphanDelayed (line 7971) | function fireOrphanDelayed() {
function signalDOMEvent (line 7980) | function signalDOMEvent(cm, e, override) {
function signalCursorActivity (line 7987) | function signalCursorActivity(cm) {
function hasHandler (line 7995) | function hasHandler(emitter, type) {
function eventMixin (line 8002) | function eventMixin(ctor) {
function Delayed (line 8019) | function Delayed() {this.id = null;}
function findColumn (line 8044) | function findColumn(string, goal, tabSize) {
function spaceStr (line 8059) | function spaceStr(n) {
function lst (line 8065) | function lst(arr) { return arr[arr.length-1]; }
function indexOf (line 8073) | function indexOf(array, elt) {
function map (line 8078) | function map(array, f) {
function nothing (line 8084) | function nothing() {}
function createObj (line 8086) | function createObj(base, props) {
function copyObj (line 8098) | function copyObj(obj, target, overwrite) {
function bind (line 8106) | function bind(f) {
function isWordChar (line 8116) | function isWordChar(ch, helper) {
function isEmpty (line 8122) | function isEmpty(obj) {
function isExtendingChar (line 8133) | function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendi...
function elt (line 8137) | function elt(tag, content, className, style) {
function removeChildren (line 8163) | function removeChildren(e) {
function removeChildrenAndAdd (line 8169) | function removeChildrenAndAdd(parent, e) {
function activeElt (line 8184) | function activeElt() { return document.activeElement; }
function classTest (line 8192) | function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)...
function joinClasses (line 8205) | function joinClasses(a, b) {
function forEachCodeMirror (line 8218) | function forEachCodeMirror(f) {
function ensureGlobalHandlers (line 8228) | function ensureGlobalHandlers() {
function registerGlobalHandlers (line 8233) | function registerGlobalHandlers() {
function zeroWidthElement (line 8260) | function zeroWidthElement(measure) {
function hasBadBidiRects (line 8275) | function hasBadBidiRects(measure) {
function hasBadZoomedRects (line 8322) | function hasBadZoomedRects(measure) {
function iterateBidiSections (line 8351) | function iterateBidiSections(order, from, to, f) {
function bidiLeft (line 8364) | function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
function bidiRight (line 8365) | function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
function lineLeft (line 8367) | function lineLeft(line) { var order = getOrder(line); return order ? bid...
function lineRight (line 8368) | function lineRight(line) {
function lineStart (line 8374) | function lineStart(cm, lineN) {
function lineEnd (line 8382) | function lineEnd(cm, lineN) {
function lineStartSmart (line 8392) | function lineStartSmart(cm, pos) {
function compareBidiLevel (line 8404) | function compareBidiLevel(order, a, b) {
function getBidiPartAt (line 8411) | function getBidiPartAt(order, pos) {
function moveInLine (line 8431) | function moveInLine(line, pos, dir, byUnit) {
function moveVisually (line 8443) | function moveVisually(line, start, dir, byUnit) {
function moveLogically (line 8466) | function moveLogically(line, start, dir, byUnit) {
function charType (line 8500) | function charType(code) {
function BidiSpan (line 8515) | function BidiSpan(level, from, to) {
FILE: lib/codemirror/mode/asterisk/asterisk.js
function basicToken (line 66) | function basicToken(stream,state){
FILE: lib/codemirror/mode/clike/clike.js
function tokenBase (line 29) | function tokenBase(stream, state) {
function tokenString (line 75) | function tokenString(quote) {
function tokenComment (line 88) | function tokenComment(stream, state) {
function Context (line 100) | function Context(indented, column, type, align, prev) {
function pushContext (line 107) | function pushContext(state, col, type) {
function popContext (line 113) | function popContext(state) {
function words (line 182) | function words(str) {
function cppHook (line 191) | function cppHook(stream, state) {
function cpp11StringHook (line 209) | function cpp11StringHook(stream, state) {
function tokenAtString (line 234) | function tokenAtString(stream, state) {
function tokenRawString (line 247) | function tokenRawString(stream, state) {
function def (line 258) | function def(mimes, mode) {
function tokenTripleString (line 350) | function tokenTripleString(stream, state) {
FILE: lib/codemirror/mode/clojure/clojure.js
function makeKeywords (line 25) | function makeKeywords(str) {
function stateStack (line 65) | function stateStack(indent, type, prev) { // represents a state stack ob...
function pushStack (line 71) | function pushStack(state, indent, type) {
function popStack (line 75) | function popStack(state) {
function isNumber (line 79) | function isNumber(ch, stream){
function eatCharacter (line 113) | function eatCharacter(stream) {
FILE: lib/codemirror/mode/cobol/cobol.js
function makeKeywords (line 22) | function makeKeywords(str) {
function isNumber (line 150) | function isNumber(ch, stream){
FILE: lib/codemirror/mode/coffeescript/coffeescript.js
function wordRegexp (line 21) | function wordRegexp(words) {
function tokenBase (line 50) | function tokenBase(stream, state) {
function tokenFactory (line 177) | function tokenFactory(delimiter, singleline, outclass) {
function longComment (line 204) | function longComment(stream, state) {
function indent (line 216) | function indent(stream, state, type) {
function dedent (line 240) | function dedent(stream, state) {
function tokenLexer (line 264) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/commonlisp/commonlisp.js
function readSym (line 21) | function readSym(stream) {
function base (line 30) | function base(stream, state) {
function inString (line 63) | function inString(stream, state) {
function inComment (line 72) | function inComment(stream, state) {
FILE: lib/codemirror/mode/css/css.js
function ret (line 31) | function ret(style, tp) { type = tp; return style; }
function tokenBase (line 35) | function tokenBase(stream, state) {
function tokenString (line 90) | function tokenString(quote) {
function tokenParenthesized (line 105) | function tokenParenthesized(stream, state) {
function Context (line 116) | function Context(type, indent, prev) {
function pushContext (line 122) | function pushContext(state, stream, type) {
function popContext (line 127) | function popContext(state) {
function pass (line 132) | function pass(type, stream, state) {
function popAndPass (line 135) | function popAndPass(type, stream, state, n) {
function wordAsValue (line 143) | function wordAsValue(stream) {
function keySet (line 375) | function keySet(array) {
function tokenCComment (line 642) | function tokenCComment(stream, state) {
function tokenSGMLComment (line 654) | function tokenSGMLComment(stream, state) {
FILE: lib/codemirror/mode/css/less_test.js
function MT (line 8) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/css/scss_test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/css/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/d/d.js
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 77) | function tokenString(quote) {
function tokenComment (line 90) | function tokenComment(stream, state) {
function tokenNestedComment (line 102) | function tokenNestedComment(stream, state) {
function Context (line 114) | function Context(indented, column, type, align, prev) {
function pushContext (line 121) | function pushContext(state, col, type) {
function popContext (line 127) | function popContext(state) {
function words (line 189) | function words(str) {
FILE: lib/codemirror/mode/dart/dart.js
function set (line 23) | function set(words) {
FILE: lib/codemirror/mode/django/django.js
function tokenBase (line 24) | function tokenBase (stream, state) {
function inTag (line 34) | function inTag (close) {
FILE: lib/codemirror/mode/dtd/dtd.js
function ret (line 23) | function ret(style, tp) {type = tp; return style;}
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenSGMLComment (line 54) | function tokenSGMLComment(stream, state) {
function tokenString (line 66) | function tokenString(quote) {
function inBlock (line 80) | function inBlock(style, terminator) {
FILE: lib/codemirror/mode/dylan/dylan.js
function chain (line 152) | function chain(stream, state, f) {
function ret (line 159) | function ret(_type, style, _content) {
function tokenBase (line 165) | function tokenBase(stream, state) {
function tokenComment (line 250) | function tokenComment(stream, state) {
function tokenString (line 263) | function tokenString(quote, type, style) {
FILE: lib/codemirror/mode/ecl/ecl.js
function words (line 16) | function words(str) {
function metaHook (line 22) | function metaHook(stream, state) {
function tokenBase (line 42) | function tokenBase(stream, state) {
function tokenString (line 108) | function tokenString(quote) {
function tokenComment (line 121) | function tokenComment(stream, state) {
function Context (line 133) | function Context(indented, column, type, align, prev) {
function pushContext (line 140) | function pushContext(state, col, type) {
function popContext (line 143) | function popContext(state) {
FILE: lib/codemirror/mode/eiffel/eiffel.js
function wordObj (line 15) | function wordObj(words) {
function chain (line 89) | function chain(newtok, stream, state) {
function tokenBase (line 94) | function tokenBase(stream, state) {
function readQuoted (line 121) | function readQuoted(quote, style, unescaped) {
FILE: lib/codemirror/mode/erlang/erlang.js
function tokenizer (line 103) | function tokenizer(stream,state) {
function nongreedy (line 294) | function nongreedy(stream,re,words) {
function greedy (line 308) | function greedy(stream,re,words) {
function doubleQuote (line 325) | function doubleQuote(stream) {
function singleQuote (line 329) | function singleQuote(stream) {
function quote (line 333) | function quote(stream,quoteChar,escapeChar) {
function lookahead (line 345) | function lookahead(stream) {
function is_member (line 350) | function is_member(element,list) {
function rval (line 354) | function rval(state,stream,type) {
function aToken (line 388) | function aToken(tok,col,ind,typ) {
function realToken (line 395) | function realToken(type,stream) {
function fakeToken (line 402) | function fakeToken(type) {
function peekToken (line 406) | function peekToken(state,depth) {
function pushToken (line 417) | function pushToken(state,token) {
function maybe_drop_pre (line 425) | function maybe_drop_pre(s,token) {
function maybe_drop_post (line 439) | function maybe_drop_post(s) {
function d (line 466) | function d(stack,tt) {
function indenter (line 506) | function indenter(state,textAfter) {
function wordafter (line 549) | function wordafter(str) {
function postcommaToken (line 555) | function postcommaToken(state) {
function defaultToken (line 562) | function defaultToken(state) {
function getToken (line 576) | function getToken(state,tokens) {
function getTokenIndex (line 583) | function getTokenIndex(objs,propname,propvals) {
function truthy (line 593) | function truthy(x) {
FILE: lib/codemirror/mode/forth/forth.js
function toWordList (line 16) | function toWordList(words) {
function searchWordList (line 67) | function searchWordList (wordList, word) {
FILE: lib/codemirror/mode/fortran/fortran.js
function words (line 15) | function words(array) {
function tokenBase (line 117) | function tokenBase(stream, state) {
function tokenString (line 155) | function tokenString(quote) {
FILE: lib/codemirror/mode/gas/gas.js
function x86 (line 144) | function x86(_parserConfig) {
function armv6 (line 191) | function armv6(_parserConfig) {
function nextUntilUnescaped (line 234) | function nextUntilUnescaped(stream, end) {
function clikeComment (line 245) | function clikeComment(stream, state) {
FILE: lib/codemirror/mode/gfm/gfm.js
function blankLine (line 16) | function blankLine(state) {
FILE: lib/codemirror/mode/gfm/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function FT (line 8) | function FT(name) { test.mode(name, modeHighlightFormatting, Array.proto...
FILE: lib/codemirror/mode/go/go.js
function tokenBase (line 40) | function tokenBase(stream, state) {
function tokenString (line 84) | function tokenString(quote) {
function tokenComment (line 97) | function tokenComment(stream, state) {
function Context (line 109) | function Context(indented, column, type, align, prev) {
function pushContext (line 116) | function pushContext(state, col, type) {
function popContext (line 119) | function popContext(state) {
FILE: lib/codemirror/mode/groovy/groovy.js
function words (line 15) | function words(str) {
function tokenBase (line 30) | function tokenBase(stream, state) {
function startString (line 79) | function startString(quote, stream, state) {
function tokenBaseUntilBrace (line 105) | function tokenBaseUntilBrace() {
function tokenComment (line 123) | function tokenComment(stream, state) {
function expectExpression (line 135) | function expectExpression(last) {
function Context (line 140) | function Context(indented, column, type, align, prev) {
function pushContext (line 147) | function pushContext(state, col, type) {
function popContext (line 150) | function popContext(state) {
FILE: lib/codemirror/mode/haml/haml.js
function rubyInQuote (line 19) | function rubyInQuote(endQuote) {
function ruby (line 33) | function ruby(stream, state) {
function html (line 41) | function html(stream, state) {
FILE: lib/codemirror/mode/haml/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/haskell/haskell.js
function switchState (line 16) | function switchState(source, setState, f) {
function normal (line 32) | function normal(source, setState) {
function ncomment (line 125) | function ncomment(type, nest) {
function stringLiteral (line 149) | function stringLiteral(source, setState) {
function stringGap (line 172) | function stringGap(source, setState) {
function setType (line 184) | function setType(t) {
FILE: lib/codemirror/mode/haxe/haxe.js
function kw (line 20) | function kw(type) {return {type: type, style: "keyword"};}
function chain (line 39) | function chain(stream, state, f) {
function nextUntilUnescaped (line 44) | function nextUntilUnescaped(stream, end) {
function ret (line 57) | function ret(tp, style, cont) {
function haxeTokenBase (line 62) | function haxeTokenBase(stream, state) {
function haxeTokenString (line 125) | function haxeTokenString(quote) {
function haxeTokenComment (line 133) | function haxeTokenComment(stream, state) {
function HaxeLexical (line 149) | function HaxeLexical(indented, column, type, align, prev, info) {
function inScope (line 158) | function inScope(state, varname) {
function parseHaxe (line 163) | function parseHaxe(state, style, type, content, stream) {
function imported (line 185) | function imported(state, typename)
function registerimport (line 195) | function registerimport(importname) {
function pass (line 204) | function pass() {
function cont (line 207) | function cont() {
function register (line 211) | function register(varname) {
function pushcontext (line 224) | function pushcontext() {
function popcontext (line 228) | function popcontext() {
function pushlex (line 232) | function pushlex(type, info) {
function poplex (line 240) | function poplex() {
function expect (line 250) | function expect(wanted) {
function statement (line 259) | function statement(type) {
function expression (line 281) | function expression(type) {
function maybeexpression (line 291) | function maybeexpression(type) {
function maybeoperator (line 296) | function maybeoperator(type, value) {
function maybeattribute (line 305) | function maybeattribute(type) {
function metadef (line 311) | function metadef(type) {
function metaargs (line 316) | function metaargs(type) {
function importdef (line 320) | function importdef (type, value) {
function typedef (line 325) | function typedef (type, value)
function maybelabel (line 331) | function maybelabel(type) {
function property (line 335) | function property(type) {
function objprop (line 338) | function objprop(type) {
function commasep (line 342) | function commasep(what, end) {
function block (line 353) | function block(type) {
function vardef1 (line 357) | function vardef1(type, value) {
function vardef2 (line 361) | function vardef2(type, value) {
function forspec1 (line 365) | function forspec1(type, value) {
function forin (line 371) | function forin(_type, value) {
function functiondef (line 374) | function functiondef(type, value) {
function typeuse (line 379) | function typeuse(type) {
function typestring (line 382) | function typestring(type) {
function typeprop (line 387) | function typeprop(type) {
function funarg (line 390) | function funarg(type, value) {
FILE: lib/codemirror/mode/htmlembedded/htmlembedded.js
function htmlDispatch (line 24) | function htmlDispatch(stream, state) {
function scriptingDispatch (line 34) | function scriptingDispatch(stream, state) {
FILE: lib/codemirror/mode/htmlmixed/htmlmixed.js
function html (line 31) | function html(stream, state) {
function maybeBackup (line 58) | function maybeBackup(stream, pat, style) {
function script (line 68) | function script(stream, state) {
function css (line 77) | function css(stream, state) {
FILE: lib/codemirror/mode/http/http.js
function failFirstLine (line 15) | function failFirstLine(stream, state) {
function start (line 21) | function start(stream, state) {
function responseStatusCode (line 33) | function responseStatusCode(stream, state) {
function responseStatusText (line 54) | function responseStatusText(stream, state) {
function requestPath (line 60) | function requestPath(stream, state) {
function requestProtocol (line 66) | function requestProtocol(stream, state) {
function header (line 75) | function header(stream) {
function body (line 89) | function body(stream) {
FILE: lib/codemirror/mode/idl/idl.js
function wordRegexp (line 14) | function wordRegexp(words) {
function tokenBase (line 244) | function tokenBase(stream) {
FILE: lib/codemirror/mode/jade/jade.js
function State (line 29) | function State() {
function javaScript (line 105) | function javaScript(stream, state) {
function javaScriptArguments (line 122) | function javaScriptArguments(stream, state) {
function yieldStatement (line 143) | function yieldStatement(stream) {
function doctype (line 149) | function doctype(stream) {
function interpolation (line 155) | function interpolation(stream, state) {
function interpolationContinued (line 163) | function interpolationContinued(stream, state) {
function caseStatement (line 179) | function caseStatement(stream, state) {
function when (line 186) | function when(stream, state) {
function defaultStatement (line 194) | function defaultStatement(stream) {
function extendsStatement (line 200) | function extendsStatement(stream, state) {
function append (line 207) | function append(stream, state) {
function prepend (line 213) | function prepend(stream, state) {
function block (line 219) | function block(stream, state) {
function include (line 226) | function include(stream, state) {
function includeFiltered (line 233) | function includeFiltered(stream, state) {
function includeFilteredContinued (line 240) | function includeFilteredContinued(stream, state) {
function mixin (line 249) | function mixin(stream, state) {
function call (line 256) | function call(stream, state) {
function callArguments (line 270) | function callArguments(stream, state) {
function conditional (line 281) | function conditional(stream, state) {
function each (line 288) | function each(stream, state) {
function eachContinued (line 294) | function eachContinued(stream, state) {
function whileStatement (line 309) | function whileStatement(stream, state) {
function tag (line 316) | function tag(stream, state) {
function filter (line 327) | function filter(stream, state) {
function code (line 344) | function code(stream, state) {
function id (line 351) | function id(stream) {
function className (line 357) | function className(stream) {
function attrs (line 363) | function attrs(stream, state) {
function attrsContinued (line 375) | function attrsContinued(stream, state) {
function attributesBlock (line 419) | function attributesBlock(stream, state) {
function indent (line 427) | function indent(stream) {
function comment (line 433) | function comment(stream, state) {
function colon (line 441) | function colon(stream) {
function text (line 447) | function text(stream, state) {
function dot (line 459) | function dot(stream, state) {
function fail (line 472) | function fail(stream) {
function setInnerMode (line 478) | function setInnerMode(stream, state, mode) {
function innerMode (line 491) | function innerMode(stream, state, force) {
function restOfLine (line 511) | function restOfLine(stream, state) {
function startState (line 525) | function startState() {
function copyState (line 528) | function copyState(state) {
function nextToken (line 537) | function nextToken(stream, state) {
FILE: lib/codemirror/mode/javascript/javascript.js
function kw (line 27) | function kw(type) {return {type: type, style: "keyword"};}
function readRegexp (line 73) | function readRegexp(stream) {
function ret (line 88) | function ret(tp, style, cont) {
function tokenBase (line 92) | function tokenBase(stream, state) {
function tokenString (line 144) | function tokenString(quote) {
function tokenComment (line 160) | function tokenComment(stream, state) {
function tokenQuasi (line 172) | function tokenQuasi(stream, state) {
function findFatArrow (line 192) | function findFatArrow(stream, state) {
function JSLexical (line 222) | function JSLexical(indented, column, type, align, prev, info) {
function inScope (line 231) | function inScope(state, varname) {
function parseJS (line 240) | function parseJS(state, style, type, content, stream) {
function pass (line 264) | function pass() {
function cont (line 267) | function cont() {
function register (line 271) | function register(varname) {
function pushcontext (line 292) | function pushcontext() {
function popcontext (line 296) | function popcontext() {
function pushlex (line 300) | function pushlex(type, info) {
function poplex (line 311) | function poplex() {
function expect (line 321) | function expect(wanted) {
function statement (line 330) | function statement(type, value) {
function expression (line 356) | function expression(type) {
function expressionNoComma (line 359) | function expressionNoComma(type) {
function expressionInner (line 362) | function expressionInner(type, noComma) {
function maybeexpression (line 380) | function maybeexpression(type) {
function maybeexpressionNoComma (line 384) | function maybeexpressionNoComma(type) {
function maybeoperatorComma (line 389) | function maybeoperatorComma(type, value) {
function maybeoperatorNoComma (line 393) | function maybeoperatorNoComma(type, value, noComma) {
function quasi (line 408) | function quasi(type, value) {
function continueQuasi (line 413) | function continueQuasi(type) {
function arrowBody (line 420) | function arrowBody(type) {
function arrowBodyNoComma (line 424) | function arrowBodyNoComma(type) {
function maybelabel (line 428) | function maybelabel(type) {
function property (line 432) | function property(type) {
function objprop (line 435) | function objprop(type, value) {
function getterSetter (line 449) | function getterSetter(type) {
function afterprop (line 454) | function afterprop(type) {
function commasep (line 458) | function commasep(what, end) {
function contCommasep (line 473) | function contCommasep(what, end, info) {
function block (line 478) | function block(type) {
function maybetype (line 482) | function maybetype(type) {
function typedef (line 485) | function typedef(type) {
function vardef (line 488) | function vardef() {
function pattern (line 491) | function pattern(type, value) {
function proppattern (line 496) | function proppattern(type, value) {
function maybeAssign (line 504) | function maybeAssign(_type, value) {
function vardefCont (line 507) | function vardefCont(type) {
function maybeelse (line 510) | function maybeelse(type, value) {
function forspec (line 513) | function forspec(type) {
function forspec1 (line 516) | function forspec1(type) {
function formaybeinof (line 522) | function formaybeinof(_type, value) {
function forspec2 (line 526) | function forspec2(type, value) {
function forspec3 (line 531) | function forspec3(type) {
function functiondef (line 534) | function functiondef(type, value) {
function funarg (line 539) | function funarg(type) {
function className (line 543) | function className(type, value) {
function classNameAfter (line 546) | function classNameAfter(type, value) {
function classBody (line 550) | function classBody(type, value) {
function classGetterSetter (line 563) | function classGetterSetter(type) {
function afterModule (line 568) | function afterModule(type, value) {
function afterExport (line 572) | function afterExport(_type, value) {
function afterImport (line 577) | function afterImport(type) {
function importSpec (line 581) | function importSpec(type, value) {
function maybeFrom (line 586) | function maybeFrom(_type, value) {
function arrayLiteral (line 589) | function arrayLiteral(type) {
function maybeArrayComprehension (line 593) | function maybeArrayComprehension(type) {
function comprehension (line 598) | function comprehension(type) {
function isContinuedStatement (line 603) | function isContinuedStatement(state, textAfter) {
FILE: lib/codemirror/mode/javascript/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function LD (line 167) | function LD(name) {
FILE: lib/codemirror/mode/jinja2/jinja2.js
function tokenBase (line 36) | function tokenBase (stream, state) {
FILE: lib/codemirror/mode/julia/julia.js
function wordRegexp (line 17) | function wordRegexp(words) {
function in_array (line 39) | function in_array(state) {
function cur_scope (line 49) | function cur_scope(state) {
function tokenBase (line 57) | function tokenBase(stream, state) {
function tokenStringFactory (line 214) | function tokenStringFactory(delimiter) {
function tokenLexer (line 249) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/kotlin/kotlin.js
function words (line 15) | function words(str) {
function tokenBase (line 34) | function tokenBase(stream, state) {
function startString (line 96) | function startString(quote, stream, state) {
function tokenBaseUntilBrace (line 137) | function tokenBaseUntilBrace() {
function tokenBaseUntilSpace (line 157) | function tokenBaseUntilSpace() {
function tokenComment (line 174) | function tokenComment(stream, state) {
function expectExpression (line 186) | function expectExpression(last) {
function Context (line 191) | function Context(indented, column, type, align, prev) {
function pushContext (line 199) | function pushContext(state, col, type) {
function popContext (line 203) | function popContext(state) {
FILE: lib/codemirror/mode/lua/lua.js
function prefixRE (line 21) | function prefixRE(words) {
function wordRE (line 24) | function wordRE(words) {
function readBracket (line 70) | function readBracket(stream) {
function normal (line 77) | function normal(stream, state) {
function bracketed (line 100) | function bracketed(level, style) {
function string (line 113) | function string(quote) {
FILE: lib/codemirror/mode/markdown/markdown.js
function getMode (line 19) | function getMode(name) {
function switchInline (line 79) | function switchInline(stream, state, f) {
function switchBlock (line 84) | function switchBlock(stream, state, f) {
function blankLine (line 92) | function blankLine(state) {
function blockNormal (line 115) | function blockNormal(stream, state) {
function htmlBlock (line 190) | function htmlBlock(stream, state) {
function local (line 201) | function local(stream, state) {
function leavingLocal (line 214) | function leavingLocal(stream, state) {
function getType (line 226) | function getType(state) {
function handleText (line 308) | function handleText(stream, state) {
function inlineNormal (line 315) | function inlineNormal(stream, state) {
function linkInline (line 532) | function linkInline(stream, state) {
function linkHref (line 552) | function linkHref(stream, state) {
function getLinkHrefInside (line 567) | function getLinkHrefInside(endChar) {
function footnoteLink (line 588) | function footnoteLink(stream, state) {
function footnoteLinkInside (line 599) | function footnoteLinkInside(stream, state) {
function footnoteUrl (line 613) | function footnoteUrl(stream, state) {
function inlineRE (line 631) | function inlineRE(endChar) {
FILE: lib/codemirror/mode/markdown/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function FT (line 8) | function FT(name) { test.mode(name, modeHighlightFormatting, Array.proto...
FILE: lib/codemirror/mode/mirc/mirc.js
function parseWords (line 18) | function parseWords(str) {
function chain (line 86) | function chain(stream, state, f) {
function tokenBase (line 90) | function tokenBase(stream, state) {
function tokenComment (line 153) | function tokenComment(stream, state) {
function tokenUnparsed (line 164) | function tokenUnparsed(stream, state) {
FILE: lib/codemirror/mode/mllike/mllike.js
function tokenBase (line 50) | function tokenBase(stream, state) {
function tokenString (line 91) | function tokenString(stream, state) {
function tokenComment (line 106) | function tokenComment(stream, state) {
FILE: lib/codemirror/mode/modelica/modelica.js
function tokenLineComment (line 30) | function tokenLineComment(stream, state) {
function tokenBlockComment (line 36) | function tokenBlockComment(stream, state) {
function tokenString (line 48) | function tokenString(stream, state) {
function tokenIdent (line 62) | function tokenIdent(stream, state) {
function tokenQIdent (line 81) | function tokenQIdent(stream, state) {
function tokenUnsignedNuber (line 93) | function tokenUnsignedNuber(stream, state) {
function words (line 202) | function words(str) {
function def (line 213) | function def(mimes, mode) {
FILE: lib/codemirror/mode/nginx/nginx.js
function words (line 16) | function words(str) {
function ret (line 36) | function ret(style, tp) {type = tp; return style;}
function tokenBase (line 38) | function tokenBase(stream, state) {
function tokenCComment (line 97) | function tokenCComment(stream, state) {
function tokenSGMLComment (line 109) | function tokenSGMLComment(stream, state) {
function tokenString (line 121) | function tokenString(quote) {
FILE: lib/codemirror/mode/ntriples/ntriples.js
function transitState (line 59) | function transitState(currState, c) {
FILE: lib/codemirror/mode/octave/octave.js
function wordRegexp (line 15) | function wordRegexp(words) {
function tokenTranspose (line 46) | function tokenTranspose(stream, state) {
function tokenComment (line 57) | function tokenComment(stream, state) {
function tokenBase (line 66) | function tokenBase(stream, state) {
FILE: lib/codemirror/mode/pascal/pascal.js
function words (line 15) | function words(str) {
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 65) | function tokenString(quote) {
function tokenComment (line 77) | function tokenComment(stream, state) {
FILE: lib/codemirror/mode/pegjs/pegjs.js
function identifier (line 17) | function identifier(stream) {
FILE: lib/codemirror/mode/perl/perl.js
function tokenChain (line 483) | function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.l...
function tokenSOMETHING (line 503) | function tokenSOMETHING(stream,state,string){
function tokenPerl (line 511) | function tokenPerl(stream,state){
function look (line 804) | function look(stream, c){
function prefix (line 809) | function prefix(stream, c){
function suffix (line 819) | function suffix(stream, c){
function eatSuffix (line 826) | function eatSuffix(stream, c){
FILE: lib/codemirror/mode/php/php.js
function keywords (line 14) | function keywords(str) {
function matchSequence (line 21) | function matchSequence(list, end) {
function stringWithEscapes (line 33) | function stringWithEscapes(closing) {
function stringWithEscapes_ (line 36) | function stringWithEscapes_(stream, state, closing) {
function dispatch (line 152) | function dispatch(stream, state) {
FILE: lib/codemirror/mode/php/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function build_recursive_monsters (line 78) | function build_recursive_monsters(nt, t, n){
function build_recursive_monsters_2 (line 124) | function build_recursive_monsters_2(mf1, mf2, nt, t, n){
FILE: lib/codemirror/mode/pig/pig.js
function chain (line 28) | function chain(stream, state, f) {
function ret (line 34) | function ret(tp, style) {
function tokenComment (line 39) | function tokenComment(stream, state) {
function tokenString (line 52) | function tokenString(quote) {
function tokenBase (line 67) | function tokenBase(stream, state) {
function keywords (line 150) | function keywords(str) {
FILE: lib/codemirror/mode/puppet/puppet.js
function define (line 22) | function define(style, string) {
function tokenString (line 47) | function tokenString(stream, state) {
function tokenize (line 68) | function tokenize(stream, state) {
FILE: lib/codemirror/mode/python/python.js
function wordRegexp (line 14) | function wordRegexp(words) {
function top (line 44) | function top(state) {
function tokenBase (line 87) | function tokenBase(stream, state) {
function tokenBaseInner (line 108) | function tokenBaseInner(stream, state) {
function tokenStringFactory (line 193) | function tokenStringFactory(delimiter) {
function pushScope (line 226) | function pushScope(stream, state, type) {
function dedent (line 238) | function dedent(stream, state) {
function tokenLexer (line 247) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/q/q.js
function buildRE (line 19) | function buildRE(w){return new RegExp("^("+w.join("|")+")$");}
function tokenBase (line 20) | function tokenBase(stream,state){
function tokenLineComment (line 62) | function tokenLineComment(stream,state){
function tokenBlockComment (line 65) | function tokenBlockComment(stream,state){
function tokenCommentToEOF (line 72) | function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";}
function tokenString (line 73) | function tokenString(stream,state){
function pushContext (line 82) | function pushContext(state,type,col){state.context={prev:state.context,i...
function popContext (line 83) | function popContext(state){state.indent=state.context.indent;state.conte...
FILE: lib/codemirror/mode/r/r.js
function wordObj (line 15) | function wordObj(str) {
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 81) | function tokenString(quote) {
function push (line 102) | function push(state, type, stream) {
function pop (line 109) | function pop(state) {
FILE: lib/codemirror/mode/rst/rst.js
function format (line 76) | function format(string) {
function to_normal (line 156) | function to_normal(stream, state) {
function to_explicit (line 356) | function to_explicit(stream, state) {
function to_comment (line 463) | function to_comment(stream, state) {
function to_verbatim (line 467) | function to_verbatim(stream, state) {
function as_block (line 471) | function as_block(stream, state, token) {
function to_mode (line 484) | function to_mode(stream, state) {
function context (line 503) | function context(phase, stage, mode, local) {
function change (line 507) | function change(state, tok, ctx) {
function stage (line 512) | function stage(state) {
function phase (line 516) | function phase(state) {
FILE: lib/codemirror/mode/ruby/ruby.js
function wordObj (line 15) | function wordObj(words) {
function chain (line 34) | function chain(newtok, stream, state) {
function tokenBase (line 39) | function tokenBase(stream, state) {
function tokenBaseUntilBrace (line 152) | function tokenBaseUntilBrace(depth) {
function tokenBaseOnce (line 168) | function tokenBaseOnce() {
function readQuoted (line 179) | function readQuoted(quote, style, embed, unescaped) {
function readHereDoc (line 210) | function readHereDoc(phrase) {
function readBlockComment (line 217) | function readBlockComment(stream, state) {
FILE: lib/codemirror/mode/ruby/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/rust/rust.js
function r (line 40) | function r(tc, style) {
function tokenBase (line 45) | function tokenBase(stream, state) {
function tokenString (line 104) | function tokenString(stream, state) {
function tokenComment (line 118) | function tokenComment(depth) {
function pass (line 144) | function pass() {
function cont (line 147) | function cont() {
function pushlex (line 152) | function pushlex(type, info) {
function poplex (line 161) | function poplex() {
function typecx (line 169) | function typecx() { cx.state.keywords = typeKeywords; }
function valcx (line 170) | function valcx() { cx.state.keywords = valKeywords; }
function commasep (line 173) | function commasep(comb, end) {
function stat_of (line 185) | function stat_of(comb, tag) {
function block (line 188) | function block(type) {
function endstatement (line 201) | function endstatement(type) {
function expression (line 205) | function expression(type) {
function maybeop (line 218) | function maybeop(type) {
function maybeprop (line 225) | function maybeprop() {
function exprbrace (line 229) | function exprbrace(type) {
function record_of (line 239) | function record_of(comb) {
function blockvars (line 249) | function blockvars(type) {
function letdef1 (line 255) | function letdef1(type) {
function letdef2 (line 261) | function letdef2(type) {
function maybetype (line 265) | function maybetype(type) {
function inop (line 269) | function inop(type) {
function fndef (line 273) | function fndef(type) {
function tydef (line 283) | function tydef(type) {
function enumdef (line 289) | function enumdef(type) {
function enumblock (line 296) | function enumblock(type) {
function mod (line 302) | function mod(type) {
function iface (line 307) | function iface(type) {
function impl (line 313) | function impl(type) {
function typarams (line 320) | function typarams() {
function argdef (line 326) | function argdef(type) {
function rtype (line 331) | function rtype(type) {
function rtypemaybeparam (line 340) | function rtypemaybeparam() {
function fntype (line 344) | function fntype(type) {
function pattern (line 349) | function pattern(type) {
function patternmaybeop (line 356) | function patternmaybeop(type) {
function altbody (line 361) | function altbody(type) {
function altblock1 (line 365) | function altblock1(type) {
function altblock2 (line 372) | function altblock2(type) {
function macro (line 377) | function macro(type) {
function matchBrackets (line 381) | function matchBrackets(type, comb) {
function parse (line 388) | function parse(state, stream, style) {
FILE: lib/codemirror/mode/sass/sass.js
function tokenRegexp (line 15) | function tokenRegexp(words) {
function urlTokens (line 28) | function urlTokens(stream, state) {
function comment (line 48) | function comment(indentation, multiLine) {
function buildStringTokenizer (line 67) | function buildStringTokenizer(quote, greedy) {
function buildInterpolationTokenizer (line 93) | function buildInterpolationTokenizer(currentTokenizer) {
function indent (line 105) | function indent(state) {
function dedent (line 114) | function dedent(state) {
function tokenBase (line 120) | function tokenBase(stream, state) {
function tokenLexer (line 356) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/scheme/scheme.js
function makeKeywords (line 23) | function makeKeywords(str) {
function stateStack (line 32) | function stateStack(indent, type, prev) { // represents a state stack ob...
function pushStack (line 38) | function pushStack(state, indent, type) {
function popStack (line 42) | function popStack(state) {
function isBinaryNumber (line 51) | function isBinaryNumber (stream) {
function isOctalNumber (line 55) | function isOctalNumber (stream) {
function isDecimalNumber (line 59) | function isDecimalNumber (stream, backup) {
function isHexNumber (line 66) | function isHexNumber (stream) {
FILE: lib/codemirror/mode/shell/shell.js
function define (line 17) | function define(style, string) {
function tokenBase (line 38) | function tokenBase(stream, state) {
function tokenString (line 84) | function tokenString(quote) {
function tokenize (line 123) | function tokenize(stream, state) {
FILE: lib/codemirror/mode/shell/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/sieve/sieve.js
function words (line 15) | function words(str) {
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenMultiLineString (line 112) | function tokenMultiLineString(stream, state)
function tokenCComment (line 137) | function tokenCComment(stream, state) {
function tokenString (line 149) | function tokenString(quote) {
FILE: lib/codemirror/mode/slim/slim.js
function backup (line 72) | function backup(pos, tokenize, style) {
function maybeBackup (line 87) | function maybeBackup(stream, state, pat, offset, style) {
function continueLine (line 97) | function continueLine(state, column) {
function finishContinue (line 106) | function finishContinue(state) {
function lineContinuable (line 113) | function lineContinuable(column, tokenize) {
function commaContinuable (line 127) | function commaContinuable(column, tokenize) {
function rubyInQuote (line 138) | function rubyInQuote(endQuote, tokenize) {
function startRubySplat (line 152) | function startRubySplat(tokenize) {
function ruby (line 174) | function ruby(stream, state) {
function htmlLine (line 178) | function htmlLine(stream, state) {
function html (line 184) | function html(stream, state) {
function startHtmlLine (line 192) | function startHtmlLine(lastTokenize) {
function startHtmlMode (line 200) | function startHtmlMode(stream, state, offset) {
function comment (line 211) | function comment(stream, state) {
function commentMode (line 216) | function commentMode(stream, state) {
function attributeWrapper (line 227) | function attributeWrapper(stream, state) {
function attributeWrapperAssign (line 241) | function attributeWrapperAssign(stream, state) {
function attributeWrapperValue (line 248) | function attributeWrapperValue(stream, state) {
function startAttributeWrapperMode (line 265) | function startAttributeWrapperMode(state, endQuote, tokenize) {
function sub (line 278) | function sub(stream, state) {
function firstSub (line 292) | function firstSub(stream, state) {
function createMode (line 298) | function createMode(mode) {
function getMode (line 311) | function getMode(mode) {
function startSubMode (line 318) | function startSubMode(mode, state) {
function doctypeLine (line 335) | function doctypeLine(stream, _state) {
function startLine (line 340) | function startLine(stream, state) {
function slim (line 368) | function slim(stream, state) {
function slimTag (line 375) | function slimTag(stream, state) {
function slimTagExtras (line 386) | function slimTagExtras(stream, state) {
function slimClass (line 393) | function slimClass(stream, state) {
function slimAttribute (line 404) | function slimAttribute(stream, state) {
function slimAttributeAssign (line 419) | function slimAttributeAssign(stream, state) {
function slimAttributeValue (line 428) | function slimAttributeValue(stream, state) {
function slimAttributeSymbols (line 447) | function slimAttributeSymbols(stream, state) {
function readQuoted (line 456) | function readQuoted(quote, style, embed, unescaped, nextTokenize) {
function slimContent (line 490) | function slimContent(stream, state) {
FILE: lib/codemirror/mode/slim/test.js
function MT (line 8) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/smartymixed/smartymixed.js
function reEsc (line 41) | function reEsc(str) { return str.replace(/[^\s\w]/g, "\\$&"); }
FILE: lib/codemirror/mode/solr/solr.js
function isNumber (line 21) | function isNumber(word) {
function tokenString (line 25) | function tokenString(quote) {
function tokenOperator (line 38) | function tokenOperator(operator) {
function tokenWord (line 57) | function tokenWord(ch) {
function tokenBase (line 76) | function tokenBase(stream, state) {
FILE: lib/codemirror/mode/soy/soy.js
function last (line 29) | function last(array) {
function tokenUntil (line 33) | function tokenUntil(stream, state, untilRegExp) {
FILE: lib/codemirror/mode/sparql/sparql.js
function wordRegexp (line 18) | function wordRegexp(words) {
function tokenBase (line 37) | function tokenBase(stream, state) {
function tokenLiteral (line 91) | function tokenLiteral(quote) {
function pushContext (line 105) | function pushContext(state, type, col) {
function popContext (line 108) | function popContext(state) {
FILE: lib/codemirror/mode/sql/sql.js
function tokenBase (line 26) | function tokenBase(stream, state) {
function tokenLiteral (line 120) | function tokenLiteral(quote) {
function tokenComment (line 133) | function tokenComment(stream, state) {
function pushContext (line 149) | function pushContext(stream, state, type) {
function popContext (line 158) | function popContext(state) {
function hookIdentifier (line 209) | function hookIdentifier(stream) {
function hookVar (line 221) | function hookVar(stream) {
function hookClient (line 248) | function hookClient(stream) {
function set (line 263) | function set(str) {
FILE: lib/codemirror/mode/stex/stex.js
function pushCommand (line 22) | function pushCommand(state, command) {
function peekCommand (line 26) | function peekCommand(state) {
function popCommand (line 34) | function popCommand(state) {
function getMostPowerful (line 42) | function getMostPowerful(state) {
function addPluginPattern (line 54) | function addPluginPattern(pluginName, cmdStyle, styles) {
function setState (line 88) | function setState(state, f) {
function normal (line 93) | function normal(source, state) {
function inMathMode (line 160) | function inMathMode(source, state, endModeSeq) {
function beginParams (line 205) | function beginParams(source, state) {
FILE: lib/codemirror/mode/stex/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/stylus/stylus.js
function urlTokens (line 312) | function urlTokens(stream, state) {
function multilineComment (line 333) | function multilineComment(stream, state) {
function buildStringTokenizer (line 344) | function buildStringTokenizer(quote, greedy) {
function buildInterpolationTokenizer (line 376) | function buildInterpolationTokenizer(currentTokenizer) {
function indent (line 388) | function indent(state) {
function dedent (line 397) | function dedent(state) {
function wordRegexp (line 429) | function wordRegexp(words) {
function keySet (line 433) | function keySet(array) {
FILE: lib/codemirror/mode/tcl/tcl.js
function parseWords (line 17) | function parseWords(str) {
function chain (line 37) | function chain(stream, state, f) {
function tokenBase (line 41) | function tokenBase(stream, state) {
function tokenString (line 92) | function tokenString(quote) {
function tokenComment (line 106) | function tokenComment(stream, state) {
function tokenUnparsed (line 117) | function tokenUnparsed(stream, state) {
FILE: lib/codemirror/mode/textile/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/textile/textile.js
function startNewLine (line 49) | function startNewLine(stream, state) {
function handlePhraseModifier (line 58) | function handlePhraseModifier(stream, state, ch) {
function togglePhraseModifier (line 119) | function togglePhraseModifier(stream, state, phraseModifier, closeRE, op...
function tokenStyles (line 136) | function tokenStyles(state) {
function textileDisabled (line 153) | function textileDisabled(state) {
function tokenStylesWith (line 168) | function tokenStylesWith(state, extraStyles) {
function activeStyles (line 179) | function activeStyles(state) {
function blankLine (line 188) | function blankLine(state) {
function RE (line 288) | function RE(name) {
FILE: lib/codemirror/mode/tiddlywiki/tiddlywiki.js
function kw (line 36) | function kw(type) {
function chain (line 69) | function chain(stream, state, f) {
function ret (line 78) | function ret(tp, style, cont) {
function jsTokenBase (line 84) | function jsTokenBase(stream, state) {
function twTokenComment (line 221) | function twTokenComment(stream, state) {
function twTokenStrong (line 235) | function twTokenStrong(stream, state) {
function twTokenCode (line 249) | function twTokenCode(stream, state) {
function twTokenEm (line 271) | function twTokenEm(stream, state) {
function twTokenUnderline (line 285) | function twTokenUnderline(stream, state) {
function twTokenStrike (line 300) | function twTokenStrike(stream, state) {
function twTokenMacro (line 314) | function twTokenMacro(stream, state) {
FILE: lib/codemirror/mode/tiki/tiki.js
function inBlock (line 15) | function inBlock(style, terminator, returnTokenizer) {
function inLine (line 31) | function inLine(style) {
function inText (line 41) | function inText(stream, state) {
function inPlugin (line 144) | function inPlugin(stream, state) {
function inAttribute (line 178) | function inAttribute(quote) {
function inAttributeNoQuote (line 190) | function inAttributeNoQuote() {
function pass (line 205) | function pass() {
function cont (line 209) | function cont() {
function pushContext (line 214) | function pushContext(pluginName, startOfLine) {
function popContext (line 225) | function popContext() {
function element (line 229) | function element(type) {
function endplugin (line 250) | function endplugin(startOfLine) {
function endcloseplugin (line 262) | function endcloseplugin(err) {
function attributes (line 270) | function attributes(type) {
function attvalue (line 275) | function attvalue(type) {
function attvaluemaybe (line 280) | function attvaluemaybe(type) {
FILE: lib/codemirror/mode/tornado/tornado.js
function tokenBase (line 25) | function tokenBase (stream, state) {
function inTag (line 35) | function inTag (close) {
FILE: lib/codemirror/mode/turtle/turtle.js
function wordRegexp (line 18) | function wordRegexp(words) {
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenLiteral (line 77) | function tokenLiteral(quote) {
function pushContext (line 91) | function pushContext(state, type, col) {
function popContext (line 94) | function popContext(state) {
FILE: lib/codemirror/mode/vb/vb.js
function wordRegexp (line 17) | function wordRegexp(words) {
function indent (line 53) | function indent(_stream, state) {
function dedent (line 57) | function dedent(_stream, state) {
function tokenBase (line 61) | function tokenBase(stream, state) {
function tokenStringFactory (line 171) | function tokenStringFactory(delimiter) {
function tokenLexer (line 197) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/vbscript/vbscript.js
function wordRegexp (line 28) | function wordRegexp(words) {
function indent (line 108) | function indent(_stream, state) {
function dedent (line 112) | function dedent(_stream, state) {
function tokenBase (line 116) | function tokenBase(stream, state) {
function tokenStringFactory (line 259) | function tokenStringFactory(delimiter) {
function tokenLexer (line 285) | function tokenLexer(stream, state) {
FILE: lib/codemirror/mode/velocity/velocity.js
function parseWords (line 15) | function parseWords(str) {
function chain (line 28) | function chain(stream, state, f) {
function tokenBase (line 32) | function tokenBase(stream, state) {
function tokenString (line 129) | function tokenString(quote) {
function tokenComment (line 149) | function tokenComment(stream, state) {
function tokenUnparsed (line 161) | function tokenUnparsed(stream, state) {
FILE: lib/codemirror/mode/verilog/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/verilog/verilog.js
function words (line 23) | function words(str) {
function tokenBase (line 110) | function tokenBase(stream, state) {
function tokenString (line 204) | function tokenString(quote) {
function tokenComment (line 217) | function tokenComment(stream, state) {
function Context (line 229) | function Context(indented, column, type, align, prev) {
function pushContext (line 236) | function pushContext(state, col, type) {
function popContext (line 241) | function popContext(state) {
function isClosing (line 249) | function isClosing(text, contextClosing) {
function buildElectricInputRegEx (line 264) | function buildElectricInputRegEx() {
function svxGenIndent (line 385) | function svxGenIndent(stream, state) {
FILE: lib/codemirror/mode/xml/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/xml/xml.js
function inText (line 66) | function inText(stream, state) {
function inTag (line 113) | function inTag(stream, state) {
function inAttribute (line 138) | function inAttribute(quote) {
function inBlock (line 152) | function inBlock(style, terminator) {
function doctype (line 164) | function doctype(depth) {
function Context (line 185) | function Context(state, tagName, startOfLine) {
function popContext (line 193) | function popContext(state) {
function maybePopContext (line 196) | function maybePopContext(state, nextTagName) {
function baseState (line 211) | function baseState(type, stream, state) {
function tagNameState (line 221) | function tagNameState(type, stream, state) {
function closeTagNameState (line 231) | function closeTagNameState(type, stream, state) {
function closeState (line 250) | function closeState(type, _stream, state) {
function closeStateErr (line 258) | function closeStateErr(type, stream, state) {
function attrState (line 263) | function attrState(type, _stream, state) {
function attrEqState (line 282) | function attrEqState(type, stream, state) {
function attrValueState (line 287) | function attrValueState(type, stream, state) {
function attrContinuedState (line 293) | function attrContinuedState(type, stream, state) {
FILE: lib/codemirror/mode/xquery/test.js
function MT (line 11) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: lib/codemirror/mode/xquery/xquery.js
function kw (line 21) | function kw(type) {return {type: type, style: "keyword"};}
function ret (line 75) | function ret(tp, style, cont) {
function chain (line 80) | function chain(stream, state, f) {
function tokenBase (line 86) | function tokenBase(stream, state) {
function tokenComment (line 220) | function tokenComment(stream, state) {
function tokenString (line 243) | function tokenString(quote, f) {
function tokenVariable (line 283) | function tokenVariable(stream, state) {
function tokenTag (line 300) | function tokenTag(name, isclose) {
function tokenAttribute (line 323) | function tokenAttribute(stream, state) {
function tokenXMLComment (line 358) | function tokenXMLComment(stream, state) {
function tokenCDATA (line 370) | function tokenCDATA(stream, state) {
function tokenPreProcessing (line 381) | function tokenPreProcessing(stream, state) {
function isInXmlBlock (line 393) | function isInXmlBlock(state) { return isIn(state, "tag"); }
function isInXmlAttributeBlock (line 394) | function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); }
function isInXmlConstructor (line 395) | function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"...
function isInString (line 396) | function isInString(state) { return isIn(state, "string"); }
function isEQNameAhead (line 398) | function isEQNameAhead(stream) {
function isIn (line 408) | function isIn(state, type) {
function pushStateStack (line 412) | function pushStateStack(state, newState) {
function popStateStack (line 416) | function popStateStack(state) {
FILE: tests/js/searchbox.js
function SearchBox (line 47) | function SearchBox(cm) {
function setCssClass (line 536) | function setCssClass(el, className, condition) {
function delayedCall (line 542) | function delayedCall(fcn, defaultTimeout) {
function key (line 578) | function key(str, event) {
function keyCheck (line 666) | function keyCheck(str, event) {
FILE: tests/qunit/qunit-1.16.0.js
function registerLoggingCallback (line 413) | function registerLoggingCallback( key ) {
function done (line 476) | function done() {
function extractStacktrace (line 507) | function extractStacktrace( e, offset ) {
function sourceFromStacktrace (line 549) | function sourceFromStacktrace( offset ) {
function synchronize (line 562) | function synchronize( callback, last ) {
function process (line 576) | function process( last ) {
function begin (line 603) | function begin() {
function resumeProcessing (line 639) | function resumeProcessing() {
function pauseProcessing (line 659) | function pauseProcessing() {
function saveGlobal (line 676) | function saveGlobal() {
function checkPollution (line 692) | function checkPollution() {
function diff (line 711) | function diff( a, b ) {
function extend (line 727) | function extend( a, b, undefOnly ) {
function runLoggingCallbacks (line 745) | function runLoggingCallbacks( key, args ) {
function verifyLoggingCallbacks (line 757) | function verifyLoggingCallbacks() {
function inArray (line 783) | function inArray( elem, array ) {
function Test (line 797) | function Test( settings ) {
function run (line 1021) | function run() {
function generateHash (line 1217) | function generateHash( module, testName ) {
function Assert (line 1239) | function Assert( testContext ) {
function bindCallbacks (line 1460) | function bindCallbacks( o, callbacks, args ) {
function useStrictEquality (line 1488) | function useStrictEquality( b, a ) {
function quote (line 1678) | function quote( str ) {
function literal (line 1681) | function literal( o ) {
function join (line 1684) | function join( pre, arr, post ) {
function array (line 1696) | function array( arr, stack ) {
function applyCurrent (line 1948) | function applyCurrent( current ) {
function diff (line 2024) | function diff( o, n ) {
function escapeText (line 2238) | function escapeText( s ) {
function addEvent (line 2266) | function addEvent( elem, type, fn ) {
function addEvents (line 2283) | function addEvents( elems, type, fn ) {
function hasClass (line 2290) | function hasClass( elem, name ) {
function addClass (line 2294) | function addClass( elem, name ) {
function toggleClass (line 2300) | function toggleClass( elem, name ) {
function removeClass (line 2308) | function removeClass( elem, name ) {
function id (line 2320) | function id( name ) {
function getUrlConfigHtml (line 2324) | function getUrlConfigHtml() {
function toolbarChanged (line 2389) | function toolbarChanged() {
function toolbarUrlConfigContainer (line 2419) | function toolbarUrlConfigContainer() {
function toolbarModuleFilterHtml (line 2433) | function toolbarModuleFilterHtml() {
function toolbarModuleFilter (line 2461) | function toolbarModuleFilter() {
function appendToolbar (line 2489) | function appendToolbar() {
function appendBanner (line 2497) | function appendBanner() {
function appendTestResults (line 2508) | function appendTestResults() {
function storeFixture (line 2526) | function storeFixture() {
function appendUserAgent (line 2533) | function appendUserAgent() {
function appendTestsList (line 2540) | function appendTestsList( modules ) {
function appendTest (line 2558) | function appendTest( name, testId, moduleName ) {
function getNameHtml (line 2667) | function getNameHtml( name, module ) {
Condensed preview — 442 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,837K chars).
[
{
"path": ".gitignore",
"chars": 131,
"preview": "logs\n*.log\n*.pid\n*.seed\nnode_modules/\n.sass-cache/\nresearch/\ntest/\nbackup/\nexamples/uploads/**/*\n*.bat\n*.sh\n.project\n.ur"
},
{
"path": ".jshintrc",
"chars": 335,
"preview": "{\r\n\t\"esnext\": true,\r\n\t\"bitwise\": true,\r\n\t\"camelcase\": true,\r\n\t\"curly\": true,\r\n\t\"eqeqeq\": true,\r\n\t\"immed\": true,\r\n\t\"inden"
},
{
"path": "BUGS.md",
"chars": 361,
"preview": "#Bugs\r\n\r\n> 说明:删除线表示已经解决。\r\n\r\n####IE8\r\n\r\n- ~~不能加载;~~\r\n- flowChart(流程图)、sequenceDiagram(序列图)不支持IE8;\r\n- ~~不支持Markdown转HTML页面"
},
{
"path": "CHANGE.md",
"chars": 16560,
"preview": "## 更新日志\n\n### v1.0.x\n\n##### v1.0.0 beta\n\n预览版:基本功能完成;\n\n##### v1.0.0 releases\n\n发布 v1.0.0 正式版。\n\n主要更新:\n\n- 新建分支 `mathjax-versi"
},
{
"path": "Gulpfile.js",
"chars": 13050,
"preview": "\"use strict\";\r\n\r\nvar os = require(\"os\");\r\nvar gulp = require(\"gulp\");\r\nvar gutil = require(\"gul"
},
{
"path": "LICENSE",
"chars": 1074,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2015 pandao\n\nPermission is hereby granted, free of charge, to any person obtaining "
},
{
"path": "README.md",
"chars": 13462,
"preview": "# Editor.md\r\n\r\n\r\n\r\n {\n var source = document.getElementsByClassName('prettyprint source linenums');\n "
},
{
"path": "docs/scripts/prettify/Apache-License-2.0.txt",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "docs/scripts/prettify/lang-css.js",
"chars": 861,
"preview": "PR.registerLangHandler(PR.createSimpleLexer([[\"pln\",/^[\\t\\n\\f\\r ]+/,null,\" \\t\\r\\n\f\"]],[[\"str\",/^\"(?:[^\\n\\f\\r\"\\\\]|\\\\(?:\\r"
},
{
"path": "docs/scripts/prettify/prettify.js",
"chars": 13632,
"preview": "var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92"
},
{
"path": "docs/styles/jsdoc-default.css",
"chars": 6033,
"preview": "@font-face {\n font-family: 'Open Sans';\n font-weight: normal;\n font-style: normal;\n src: url('../fonts/OpenS"
},
{
"path": "docs/styles/prettify-jsdoc.css",
"chars": 1535,
"preview": "/* JSDoc prettify.js theme */\n\n/* plain text */\n.pln {\n color: #000000;\n font-weight: normal;\n font-style: normal;\n}\n"
},
{
"path": "docs/styles/prettify-tomorrow.css",
"chars": 2026,
"preview": "/* Tomorrow Theme */\n/* Original theme - https://github.com/chriskempson/tomorrow-theme */\n/* Pretty printing styles. Us"
},
{
"path": "editormd.amd.js",
"chars": 162201,
"preview": "/*\r\n * Editor.md\r\n *\r\n * @file editormd.amd.js \r\n * @version v1.5.0 \r\n * @description Open source online mark"
},
{
"path": "editormd.js",
"chars": 159159,
"preview": "/*\r\n * Editor.md\r\n *\r\n * @file editormd.js \r\n * @version v1.5.0 \r\n * @description Open source online markdown"
},
{
"path": "examples/@links.html",
"chars": 4925,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>@links - Editor.md examp"
},
{
"path": "examples/auto-height.html",
"chars": 1850,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Auto height - Editor.md "
},
{
"path": "examples/change-mode.html",
"chars": 16125,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Chnage mode - Editor.md "
},
{
"path": "examples/code-fold.html",
"chars": 1670,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Code folding - Editor.md"
},
{
"path": "examples/css/style.css",
"chars": 1924,
"preview": "* {\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\n*, *:before, *:after {\r\n -webkit-box-sizing: border-box;\r\n -moz-box-siz"
},
{
"path": "examples/custom-keyboard-shortcuts.html",
"chars": 4420,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Custom keyboard shortcut"
},
{
"path": "examples/custom-toolbar.html",
"chars": 7683,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>自定义工具栏 - Editor.md examp"
},
{
"path": "examples/define-plugin.html",
"chars": 4292,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Define extention plugins"
},
{
"path": "examples/delay-renderer-preview.html",
"chars": 2154,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Delay Rerender & Preview"
},
{
"path": "examples/dynamic-create-editormd.html",
"chars": 1787,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>动态创建 Editor.md - Editor."
},
{
"path": "examples/emoji.html",
"chars": 6660,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Emoji - Editor.md exampl"
},
{
"path": "examples/extends.html",
"chars": 4372,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Expanded Editor.md - Edi"
},
{
"path": "examples/external-use.html",
"chars": 4673,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>External use - Editor.md"
},
{
"path": "examples/flowchart.html",
"chars": 1455,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>FlowChart - Editor.md ex"
},
{
"path": "examples/form-get-value.html",
"chars": 3258,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Form get textarea value "
},
{
"path": "examples/full.html",
"chars": 9647,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Full example - Editor.md"
},
{
"path": "examples/goto-line.html",
"chars": 3431,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Goto line - Editor.md ex"
},
{
"path": "examples/html-preview-markdown-to-html-custom-toc-container.html",
"chars": 6271,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>HTML Preview (markdown t"
},
{
"path": "examples/html-preview-markdown-to-html.html",
"chars": 5118,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>HTML Preview(markdown to"
},
{
"path": "examples/html-tags-decode.html",
"chars": 4550,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>识别和解析 HTML 标签 - Editor.m"
},
{
"path": "examples/image-cross-domain-upload.html",
"chars": 4043,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>图片跨域上传示例 - Editor.md exa"
},
{
"path": "examples/image-upload.html",
"chars": 2502,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>图片上传示例 - Editor.md examp"
},
{
"path": "examples/index.html",
"chars": 12556,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Editor.md examples</titl"
},
{
"path": "examples/js/sea.js",
"chars": 6064,
"preview": "/*! Sea.js 2.3.0 | seajs.org/LICENSE.md */\n!function(a,b){function c(a){return function(b){return{}.toString.call(b)==\"["
},
{
"path": "examples/js/seajs-main.js",
"chars": 2225,
"preview": "define(function(require){\r\n\tvar $ = require(\"jquery\");\r\n\tvar editormd = require(\"editormd\");\r\n \r\n require(\"../../s"
},
{
"path": "examples/katex.html",
"chars": 4503,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Tex 科学公式语言 (TeX/LaTeX) -"
},
{
"path": "examples/manually-load-modules.html",
"chars": 4756,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Manually load modules - "
},
{
"path": "examples/multi-editormd.html",
"chars": 2111,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Multi Editor.md - Editor"
},
{
"path": "examples/multi-languages.html",
"chars": 3378,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>多语言支持 - Editor.md exampl"
},
{
"path": "examples/on-off.html",
"chars": 3879,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>On / Off (bind/unbind) e"
},
{
"path": "examples/onchange.html",
"chars": 1687,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onchange - Editor.md exa"
},
{
"path": "examples/onfullscreen.html",
"chars": 1982,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onfullscreen & onfullscr"
},
{
"path": "examples/onload.html",
"chars": 1836,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onload - Editor.md examp"
},
{
"path": "examples/onpreviewing-onpreviewed.html",
"chars": 1956,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onpreviewing / Onpreview"
},
{
"path": "examples/onresize.html",
"chars": 1842,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onresize - Editor.md exa"
},
{
"path": "examples/onscroll-onpreviewscroll.html",
"chars": 2216,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onscroll / Onpreviewscro"
},
{
"path": "examples/onwatch-onunwatch.html",
"chars": 1742,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Onwatch / Onunwatch - Ed"
},
{
"path": "examples/page-break.html",
"chars": 2417,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Page break - Editor.md e"
},
{
"path": "examples/php/cross-domain-upload.php",
"chars": 1792,
"preview": "<?php\r\n\r\n\t/*\r\n\t * PHP cross-domain upload demo for Editor.md\r\n *\r\n * @FileName: upload.php\r\n * @Auther: Pand"
},
{
"path": "examples/php/editormd.uploader.class.php",
"chars": 10569,
"preview": "<?php\r\n\r\n /**\r\n *\r\n * Editor.md PHP简易上传类(仅供演示用,生产环境使用还需谨慎考虑)\r\n *\r\n * @FileName: editormd.uploader.class.ph"
},
{
"path": "examples/php/post.php",
"chars": 475,
"preview": "<?php\r\n header(\"Content-Type:text/html; charset=utf-8\");\r\n header(\"Access-Control-Allow-Origin: *\");\r\n\r\n if (is"
},
{
"path": "examples/php/upload.php",
"chars": 1473,
"preview": "<?php\r\n\r\n\t/*\r\n\t * PHP upload demo for Editor.md\r\n *\r\n * @FileName: upload.php\r\n * @Auther: Pandao\r\n * @E"
},
{
"path": "examples/php/upload_callback.html",
"chars": 1023,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n </head>\r\n <body>\r\n <!--\r\n"
},
{
"path": "examples/readonly.html",
"chars": 2126,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Read only mode - Editor."
},
{
"path": "examples/resettings.html",
"chars": 6226,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Resettings - Editor.md e"
},
{
"path": "examples/search-replace.html",
"chars": 1868,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Search / Replace - Edito"
},
{
"path": "examples/sequence-diagram.html",
"chars": 1677,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>SequenceDiagram - Editor"
},
{
"path": "examples/set-get-replace-selection.html",
"chars": 3672,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>插入字符 / 设置和获取光标位置 / 设置、获取"
},
{
"path": "examples/simple.html",
"chars": 2052,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Simple example - Editor."
},
{
"path": "examples/sync-scrolling.html",
"chars": 2154,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Sync scrolling - Editor."
},
{
"path": "examples/task-lists.html",
"chars": 2355,
"preview": "<!DOCTYPE html>\r\n<html lang=\"zh\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <title>Github Flavored Markdown"
},
{
"path": "examples/test.md",
"chars": 8221,
"preview": "# Editor.md\r\n\r\n\r\n\r\n{\r\n var factory = function (exports) {\r\n var lang = {\r\n name : \"en\",\r\n descri"
},
{
"path": "languages/zh-tw.js",
"chars": 4778,
"preview": "(function(){\r\n var factory = function (exports) {\r\n var lang = {\r\n name : \"zh-tw\",\r\n des"
},
{
"path": "lib/codemirror/AUTHORS",
"chars": 5704,
"preview": "List of CodeMirror contributors. Updated before every release.\n\n4r2r\nAaron Brooks\nAbdelouahab\nAbe Fettig\nAdam Ahmed\nAdam"
},
{
"path": "lib/codemirror/LICENSE",
"chars": 1094,
"preview": "Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others\n\nPermission is hereby granted, free of charge, to "
},
{
"path": "lib/codemirror/README.md",
"chars": 784,
"preview": "# CodeMirror\n[](https://travis-ci.org/codemirror/CodeMir"
},
{
"path": "lib/codemirror/addon/comment/comment.js",
"chars": 8008,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/comment/continuecomment.js",
"chars": 3399,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/dialog/dialog.css",
"chars": 502,
"preview": ".CodeMirror-dialog {\n position: absolute;\n left: 0; right: 0;\n background: white;\n z-index: 15;\n padding: .1em .8em"
},
{
"path": "lib/codemirror/addon/dialog/dialog.js",
"chars": 4875,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/display/fullscreen.css",
"chars": 116,
"preview": ".CodeMirror-fullscreen {\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n height: auto;\n z-index: 9;\n}\n"
},
{
"path": "lib/codemirror/addon/display/fullscreen.js",
"chars": 1494,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/display/panel.js",
"chars": 3102,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/display/placeholder.js",
"chars": 1971,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/display/rulers.js",
"chars": 2134,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/closebrackets.js",
"chars": 6462,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/closetag.js",
"chars": 7590,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/continuelist.js",
"chars": 1752,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/matchbrackets.js",
"chars": 5254,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/matchtags.js",
"chars": 2355,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/edit/trailingspace.js",
"chars": 1003,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/brace-fold.js",
"chars": 3904,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/comment-fold.js",
"chars": 1999,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/foldcode.js",
"chars": 4693,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/foldgutter.css",
"chars": 435,
"preview": ".CodeMirror-foldmarker {\n color: blue;\n text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1p"
},
{
"path": "lib/codemirror/addon/fold/foldgutter.js",
"chars": 4550,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/indent-fold.js",
"chars": 1627,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/markdown-fold.js",
"chars": 1605,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/fold/xml-fold.js",
"chars": 6570,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/anyword-hint.js",
"chars": 1653,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/css-hint.js",
"chars": 1951,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/html-hint.js",
"chars": 11341,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/javascript-hint.js",
"chars": 6163,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/show-hint.css",
"chars": 662,
"preview": ".CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding"
},
{
"path": "lib/codemirror/addon/hint/show-hint.js",
"chars": 14402,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/sql-hint.js",
"chars": 7307,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/hint/xml-hint.js",
"chars": 4735,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/coffeescript-lint.js",
"chars": 1270,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/css-lint.js",
"chars": 1146,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/javascript-lint.js",
"chars": 4452,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/json-lint.js",
"chars": 954,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/lint.css",
"chars": 3012,
"preview": "/* The lint marker gutter */\n.CodeMirror-lint-markers {\n width: 16px;\n}\n\n.CodeMirror-lint-tooltip {\n background-color:"
},
{
"path": "lib/codemirror/addon/lint/lint.js",
"chars": 7115,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/lint/yaml-lint.js",
"chars": 848,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/merge/merge.css",
"chars": 3235,
"preview": ".CodeMirror-merge {\n position: relative;\n border: 1px solid #ddd;\n white-space: pre;\n}\n\n.CodeMirror-merge, .CodeMirro"
},
{
"path": "lib/codemirror/addon/merge/merge.js",
"chars": 27266,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/mode/loadmode.js",
"chars": 2277,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/mode/multiplex.js",
"chars": 4197,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/mode/multiplex_test.js",
"chars": 810,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/mode/overlay.js",
"chars": 3021,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/mode/simple.js",
"chars": 7898,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/runmode/colorize.js",
"chars": 1303,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/runmode/runmode-standalone.js",
"chars": 5302,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/runmode/runmode.js",
"chars": 2501,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/runmode/runmode.node.js",
"chars": 4289,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/scroll/annotatescrollbar.js",
"chars": 3707,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/scroll/scrollpastend.js",
"chars": 1492,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/scroll/simplescrollbars.css",
"chars": 1347,
"preview": ".CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {\n position: absolute;\n background: #cc"
},
{
"path": "lib/codemirror/addon/scroll/simplescrollbars.js",
"chars": 5240,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/search/match-highlighter.js",
"chars": 4943,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/search/matchesonscrollbar.css",
"chars": 188,
"preview": ".CodeMirror-search-match {\n background: gold;\n border-top: 1px solid orange;\n border-bottom: 1px solid orange;\n -moz"
},
{
"path": "lib/codemirror/addon/search/matchesonscrollbar.js",
"chars": 3704,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/search/search.js",
"chars": 7128,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/search/searchcursor.js",
"chars": 7720,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/selection/active-line.js",
"chars": 2442,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/selection/mark-selection.js",
"chars": 3781,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/selection/selection-pointer.js",
"chars": 3292,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/tern/tern.css",
"chars": 1852,
"preview": ".CodeMirror-Tern-completion {\n padding-left: 22px;\n position: relative;\n}\n.CodeMirror-Tern-completion:before {\n posit"
},
{
"path": "lib/codemirror/addon/tern/tern.js",
"chars": 24211,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/tern/worker.js",
"chars": 1207,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/addon/wrap/hardwrap.js",
"chars": 5260,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/bower.json",
"chars": 256,
"preview": "{\n \"name\": \"codemirror\",\n \"version\":\"5.0.0\",\n \"main\": [\"lib/codemirror.js\", \"lib/codemirror.css\"],\n \"ignore\": [\n "
},
{
"path": "lib/codemirror/lib/codemirror.css",
"chars": 8082,
"preview": "/*!\n// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemir"
},
{
"path": "lib/codemirror/lib/codemirror.js",
"chars": 343464,
"preview": "// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror."
},
{
"path": "lib/codemirror/mode/apl/apl.js",
"chars": 4582,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/apl/index.html",
"chars": 2094,
"preview": "<!doctype html>\n\n<title>CodeMirror: APL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "lib/codemirror/mode/asterisk/asterisk.js",
"chars": 7476,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/asterisk/index.html",
"chars": 4591,
"preview": "<!doctype html>\n\n<title>CodeMirror: Asterisk dialplan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\".."
},
{
"path": "lib/codemirror/mode/clike/clike.js",
"chars": 19051,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/clike/index.html",
"chars": 6662,
"preview": "<!doctype html>\n\n<title>CodeMirror: C-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/doc"
},
{
"path": "lib/codemirror/mode/clike/scala.html",
"chars": 28518,
"preview": "<!doctype html>\n\n<title>CodeMirror: Scala mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "lib/codemirror/mode/clojure/clojure.js",
"chars": 14815,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/clojure/index.html",
"chars": 2495,
"preview": "<!doctype html>\n\n<title>CodeMirror: Clojure mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/do"
},
{
"path": "lib/codemirror/mode/cobol/cobol.js",
"chars": 10288,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/cobol/index.html",
"chars": 8084,
"preview": "<!doctype html>\n\n<title>CodeMirror: COBOL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "lib/codemirror/mode/coffeescript/coffeescript.js",
"chars": 10188,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/coffeescript/index.html",
"chars": 22390,
"preview": "<!doctype html>\n\n<title>CodeMirror: CoffeeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../d"
},
{
"path": "lib/codemirror/mode/commonlisp/commonlisp.js",
"chars": 4446,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/commonlisp/index.html",
"chars": 6691,
"preview": "<!doctype html>\n\n<title>CodeMirror: Common Lisp mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../do"
},
{
"path": "lib/codemirror/mode/css/css.js",
"chars": 34298,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/css/index.html",
"chars": 1912,
"preview": "<!doctype html>\n\n<title>CodeMirror: CSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "lib/codemirror/mode/css/less.html",
"chars": 4059,
"preview": "<!doctype html>\n\n<title>CodeMirror: LESS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "lib/codemirror/mode/css/less_test.js",
"chars": 1791,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/css/scss.html",
"chars": 2741,
"preview": "<!doctype html>\n\n<title>CodeMirror: SCSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "lib/codemirror/mode/css/scss_test.js",
"chars": 3125,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/css/test.js",
"chars": 6524,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/cypher/cypher.js",
"chars": 6204,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/cypher/index.html",
"chars": 1908,
"preview": "<!doctype html>\n\n<title>CodeMirror: Cypher Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href"
},
{
"path": "lib/codemirror/mode/d/d.js",
"chars": 7566,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/d/index.html",
"chars": 6332,
"preview": "<!doctype html>\n\n<title>CodeMirror: D mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css"
},
{
"path": "lib/codemirror/mode/dart/dart.js",
"chars": 1820,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/dart/index.html",
"chars": 1627,
"preview": "<!doctype html>\n\n<title>CodeMirror: Dart mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "lib/codemirror/mode/diff/diff.js",
"chars": 1138,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/diff/index.html",
"chars": 4409,
"preview": "<!doctype html>\n\n<title>CodeMirror: Diff mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "lib/codemirror/mode/django/django.js",
"chars": 2316,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/django/index.html",
"chars": 1806,
"preview": "<!doctype html>\n\n<title>CodeMirror: Django template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../."
},
{
"path": "lib/codemirror/mode/dockerfile/dockerfile.js",
"chars": 2171,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/dockerfile/index.html",
"chars": 2267,
"preview": "<!doctype html>\n\n<title>CodeMirror: Dockerfile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc"
},
{
"path": "lib/codemirror/mode/dtd/dtd.js",
"chars": 4808,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/dtd/index.html",
"chars": 3337,
"preview": "<!doctype html>\n\n<title>CodeMirror: DTD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "lib/codemirror/mode/dylan/dylan.js",
"chars": 8778,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/dylan/index.html",
"chars": 13032,
"preview": "<!doctype html>\n\n<title>CodeMirror: Dylan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "lib/codemirror/mode/ebnf/ebnf.js",
"chars": 6075,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/ebnf/index.html",
"chars": 2450,
"preview": "<!doctype html>\n<html>\n <head>\n <title>CodeMirror: EBNF Mode</title>\n <meta charset=\"utf-8\"/>\n <link rel=style"
},
{
"path": "lib/codemirror/mode/ecl/ecl.js",
"chars": 8889,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/ecl/index.html",
"chars": 1409,
"preview": "<!doctype html>\n\n<title>CodeMirror: ECL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "lib/codemirror/mode/eiffel/eiffel.js",
"chars": 3779,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/eiffel/index.html",
"chars": 13198,
"preview": "<!doctype html>\n\n<title>CodeMirror: Eiffel mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/doc"
},
{
"path": "lib/codemirror/mode/erlang/erlang.js",
"chars": 19007,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "lib/codemirror/mode/erlang/index.html",
"chars": 2168,
"preview": "<!doctype html>\n\n<title>CodeMirror: Erlang mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/doc"
},
{
"path": "lib/codemirror/mode/forth/forth.js",
"chars": 5230,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
}
]
// ... and 242 more files (download for full content)
About this extraction
This page contains the full source code of the pandao/editor.md GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 442 files (3.4 MB), approximately 914.0k tokens, and a symbol index with 1411 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.