├── .gitignore ├── Procfile ├── README.md ├── project.clj ├── resources ├── .DS_Store └── public │ ├── .DS_Store │ ├── bootstrap │ ├── .DS_Store │ ├── .travis.yml │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── component.json │ ├── css │ │ ├── bootstrap-ie6.css │ │ ├── bootstrap-ie6.min.css │ │ ├── bootstrap.css │ │ ├── bootstrap.min.css │ │ └── ie.css │ ├── img │ │ ├── glyphicons-halflings-8.png │ │ ├── glyphicons-halflings-white.png │ │ └── glyphicons-halflings.png │ ├── js │ │ ├── .jshintrc │ │ ├── bootstrap-affix.js │ │ ├── bootstrap-alert.js │ │ ├── bootstrap-button.js │ │ ├── bootstrap-carousel.js │ │ ├── bootstrap-collapse.js │ │ ├── bootstrap-dropdown.js │ │ ├── bootstrap-modal.js │ │ ├── bootstrap-popover.js │ │ ├── bootstrap-scrollspy.js │ │ ├── bootstrap-tab.js │ │ ├── bootstrap-tooltip.js │ │ ├── bootstrap-transition.js │ │ ├── bootstrap-typeahead.js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ └── tests │ │ │ ├── index.html │ │ │ ├── phantom.js │ │ │ ├── server.js │ │ │ ├── unit │ │ │ ├── bootstrap-affix.js │ │ │ ├── bootstrap-alert.js │ │ │ ├── bootstrap-button.js │ │ │ ├── bootstrap-carousel.js │ │ │ ├── bootstrap-collapse.js │ │ │ ├── bootstrap-dropdown.js │ │ │ ├── bootstrap-modal.js │ │ │ ├── bootstrap-phantom.js │ │ │ ├── bootstrap-popover.js │ │ │ ├── bootstrap-scrollspy.js │ │ │ ├── bootstrap-tab.js │ │ │ ├── bootstrap-tooltip.js │ │ │ ├── bootstrap-transition.js │ │ │ └── bootstrap-typeahead.js │ │ │ └── vendor │ │ │ ├── jquery.js │ │ │ ├── qunit.css │ │ │ └── qunit.js │ ├── less-ie6 │ │ ├── accordion.less │ │ ├── alerts.less │ │ ├── bootstrap-ie6.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── grid.less │ │ ├── hero-unit.less │ │ ├── labels-badges.less │ │ ├── layouts.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── popovers.less │ │ ├── progress-bars.less │ │ ├── reset.less │ │ ├── responsive-1200px-min.less │ │ ├── responsive-767px-max.less │ │ ├── responsive-768px-979px.less │ │ ├── responsive-navbar.less │ │ ├── responsive-utilities.less │ │ ├── responsive.less │ │ ├── scaffolding.less │ │ ├── sprites.less │ │ ├── tables.less │ │ ├── tests │ │ │ ├── buttons.html │ │ │ ├── css-tests.css │ │ │ ├── css-tests.html │ │ │ ├── forms-responsive.html │ │ │ ├── forms.html │ │ │ ├── navbar-fixed-top.html │ │ │ ├── navbar-static-top.html │ │ │ └── navbar.html │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ ├── less │ │ ├── accordion.less │ │ ├── alerts.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── grid.less │ │ ├── hero-unit.less │ │ ├── labels-badges.less │ │ ├── layouts.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── popovers.less │ │ ├── progress-bars.less │ │ ├── reset.less │ │ ├── responsive-1200px-min.less │ │ ├── responsive-767px-max.less │ │ ├── responsive-768px-979px.less │ │ ├── responsive-navbar.less │ │ ├── responsive-utilities.less │ │ ├── responsive.less │ │ ├── scaffolding.less │ │ ├── sprites.less │ │ ├── tables.less │ │ ├── tests │ │ │ ├── buttons.html │ │ │ ├── css-tests.css │ │ │ ├── css-tests.html │ │ │ ├── forms-responsive.html │ │ │ ├── forms.html │ │ │ ├── navbar-fixed-top.html │ │ │ ├── navbar-static-top.html │ │ │ └── navbar.html │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ └── package.json │ ├── css │ ├── .DS_Store │ ├── baoliang.css │ ├── base.css │ ├── ie.css │ ├── plugins │ │ ├── .DS_Store │ │ ├── buttons │ │ │ ├── icons │ │ │ │ ├── cross.png │ │ │ │ ├── key.png │ │ │ │ └── tick.png │ │ │ ├── readme.txt │ │ │ └── screen.css │ │ ├── fancy-type │ │ │ ├── readme.txt │ │ │ └── screen.css │ │ ├── link-icons │ │ │ ├── icons │ │ │ │ ├── doc.png │ │ │ │ ├── email.png │ │ │ │ ├── external.png │ │ │ │ ├── feed.png │ │ │ │ ├── im.png │ │ │ │ ├── lock.png │ │ │ │ ├── pdf.png │ │ │ │ ├── visited.png │ │ │ │ └── xls.png │ │ │ ├── readme.txt │ │ │ └── screen.css │ │ └── rtl │ │ │ ├── readme.txt │ │ │ └── screen.css │ ├── print.css │ ├── screen.css │ └── timeline.css │ ├── img │ ├── timeline_century_tick.gif │ └── timeline_decade_tick.gif │ ├── js │ ├── bootstrap-ie.js │ ├── colorbox.js │ ├── jquery-1.7.2.min.js │ └── timeline.js │ ├── markdown │ ├── .DS_Store │ ├── CodeMirror │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── addon │ │ │ ├── dialog │ │ │ │ ├── dialog.css │ │ │ │ └── dialog.js │ │ │ ├── display │ │ │ │ └── placeholder.js │ │ │ ├── edit │ │ │ │ ├── closebrackets.js │ │ │ │ ├── closetag.js │ │ │ │ ├── continuecomment.js │ │ │ │ ├── continuelist.js │ │ │ │ └── matchbrackets.js │ │ │ ├── fold │ │ │ │ ├── brace-fold.js │ │ │ │ ├── foldcode.js │ │ │ │ ├── indent-fold.js │ │ │ │ └── xml-fold.js │ │ │ ├── hint │ │ │ │ ├── html-hint.js │ │ │ │ ├── javascript-hint.js │ │ │ │ ├── pig-hint.js │ │ │ │ ├── python-hint.js │ │ │ │ ├── show-hint.css │ │ │ │ ├── show-hint.js │ │ │ │ └── xml-hint.js │ │ │ ├── lint │ │ │ │ ├── javascript-lint.js │ │ │ │ ├── json-lint.js │ │ │ │ ├── lint.css │ │ │ │ └── lint.js │ │ │ ├── mode │ │ │ │ ├── loadmode.js │ │ │ │ ├── multiplex.js │ │ │ │ └── overlay.js │ │ │ ├── runmode │ │ │ │ ├── colorize.js │ │ │ │ ├── runmode-standalone.js │ │ │ │ ├── runmode.js │ │ │ │ └── runmode.node.js │ │ │ ├── search │ │ │ │ ├── match-highlighter.js │ │ │ │ ├── search.js │ │ │ │ └── searchcursor.js │ │ │ └── selection │ │ │ │ ├── active-line.js │ │ │ │ └── mark-selection.js │ │ ├── index.html │ │ ├── keymap │ │ │ ├── emacs.js │ │ │ └── vim.js │ │ ├── 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 │ │ │ ├── coffeescript │ │ │ │ ├── LICENSE │ │ │ │ ├── coffeescript.js │ │ │ │ └── index.html │ │ │ ├── commonlisp │ │ │ │ ├── commonlisp.js │ │ │ │ └── index.html │ │ │ ├── css │ │ │ │ ├── css.js │ │ │ │ ├── index.html │ │ │ │ ├── scss.html │ │ │ │ ├── scss_test.js │ │ │ │ └── test.js │ │ │ ├── d │ │ │ │ ├── d.js │ │ │ │ └── index.html │ │ │ ├── diff │ │ │ │ ├── diff.js │ │ │ │ └── index.html │ │ │ ├── ecl │ │ │ │ ├── ecl.js │ │ │ │ └── index.html │ │ │ ├── erlang │ │ │ │ ├── erlang.js │ │ │ │ └── index.html │ │ │ ├── gas │ │ │ │ ├── gas.js │ │ │ │ └── index.html │ │ │ ├── gfm │ │ │ │ ├── gfm.js │ │ │ │ ├── index.html │ │ │ │ └── test.js │ │ │ ├── go │ │ │ │ ├── go.js │ │ │ │ └── index.html │ │ │ ├── groovy │ │ │ │ ├── groovy.js │ │ │ │ └── index.html │ │ │ ├── haskell │ │ │ │ ├── haskell.js │ │ │ │ └── index.html │ │ │ ├── haxe │ │ │ │ ├── haxe.js │ │ │ │ └── index.html │ │ │ ├── htmlembedded │ │ │ │ ├── htmlembedded.js │ │ │ │ └── index.html │ │ │ ├── htmlmixed │ │ │ │ ├── htmlmixed.js │ │ │ │ └── index.html │ │ │ ├── http │ │ │ │ ├── http.js │ │ │ │ └── index.html │ │ │ ├── javascript │ │ │ │ ├── index.html │ │ │ │ ├── javascript.js │ │ │ │ └── typescript.html │ │ │ ├── jinja2 │ │ │ │ ├── index.html │ │ │ │ └── jinja2.js │ │ │ ├── less │ │ │ │ ├── index.html │ │ │ │ └── less.js │ │ │ ├── livescript │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ ├── livescript.js │ │ │ │ └── livescript.ls │ │ │ ├── lua │ │ │ │ ├── index.html │ │ │ │ └── lua.js │ │ │ ├── markdown │ │ │ │ ├── index.html │ │ │ │ ├── markdown.js │ │ │ │ └── test.js │ │ │ ├── meta.js │ │ │ ├── mirc │ │ │ │ ├── index.html │ │ │ │ └── mirc.js │ │ │ ├── ntriples │ │ │ │ ├── index.html │ │ │ │ └── ntriples.js │ │ │ ├── ocaml │ │ │ │ ├── index.html │ │ │ │ └── ocaml.js │ │ │ ├── pascal │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── pascal.js │ │ │ ├── perl │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── perl.js │ │ │ ├── php │ │ │ │ ├── index.html │ │ │ │ └── php.js │ │ │ ├── pig │ │ │ │ ├── index.html │ │ │ │ └── pig.js │ │ │ ├── properties │ │ │ │ ├── index.html │ │ │ │ └── properties.js │ │ │ ├── python │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── python.js │ │ │ ├── q │ │ │ │ ├── index.html │ │ │ │ └── q.js │ │ │ ├── r │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── r.js │ │ │ ├── rpm │ │ │ │ ├── changes │ │ │ │ │ ├── changes.js │ │ │ │ │ └── index.html │ │ │ │ └── spec │ │ │ │ │ ├── index.html │ │ │ │ │ ├── spec.css │ │ │ │ │ └── spec.js │ │ │ ├── rst │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── rst.js │ │ │ ├── ruby │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── ruby.js │ │ │ ├── rust │ │ │ │ ├── index.html │ │ │ │ └── rust.js │ │ │ ├── sass │ │ │ │ ├── index.html │ │ │ │ └── sass.js │ │ │ ├── scheme │ │ │ │ ├── index.html │ │ │ │ └── scheme.js │ │ │ ├── shell │ │ │ │ ├── index.html │ │ │ │ └── shell.js │ │ │ ├── sieve │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── sieve.js │ │ │ ├── smalltalk │ │ │ │ ├── index.html │ │ │ │ └── smalltalk.js │ │ │ ├── smarty │ │ │ │ ├── index.html │ │ │ │ └── smarty.js │ │ │ ├── sparql │ │ │ │ ├── index.html │ │ │ │ └── sparql.js │ │ │ ├── sql │ │ │ │ ├── index.html │ │ │ │ └── sql.js │ │ │ ├── stex │ │ │ │ ├── index.html │ │ │ │ ├── stex.js │ │ │ │ └── test.js │ │ │ ├── tcl │ │ │ │ ├── index.html │ │ │ │ └── tcl.js │ │ │ ├── tiddlywiki │ │ │ │ ├── index.html │ │ │ │ ├── tiddlywiki.css │ │ │ │ └── tiddlywiki.js │ │ │ ├── tiki │ │ │ │ ├── index.html │ │ │ │ ├── tiki.css │ │ │ │ └── tiki.js │ │ │ ├── turtle │ │ │ │ ├── index.html │ │ │ │ └── turtle.js │ │ │ ├── vb │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── vb.js │ │ │ ├── vbscript │ │ │ │ ├── index.html │ │ │ │ └── vbscript.js │ │ │ ├── velocity │ │ │ │ ├── index.html │ │ │ │ └── velocity.js │ │ │ ├── verilog │ │ │ │ ├── index.html │ │ │ │ └── verilog.js │ │ │ ├── xml │ │ │ │ ├── index.html │ │ │ │ └── xml.js │ │ │ ├── xquery │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ ├── test.js │ │ │ │ └── xquery.js │ │ │ ├── yaml │ │ │ │ ├── index.html │ │ │ │ └── yaml.js │ │ │ └── z80 │ │ │ │ ├── index.html │ │ │ │ └── z80.js │ │ └── theme │ │ │ ├── ambiance-mobile.css │ │ │ ├── ambiance.css │ │ │ ├── blackboard.css │ │ │ ├── cobalt.css │ │ │ ├── eclipse.css │ │ │ ├── elegant.css │ │ │ ├── erlang-dark.css │ │ │ ├── lesser-dark.css │ │ │ ├── monokai.css │ │ │ ├── neat.css │ │ │ ├── night.css │ │ │ ├── rubyblue.css │ │ │ ├── solarized.css │ │ │ ├── twilight.css │ │ │ ├── vibrant-ink.css │ │ │ ├── xq-dark.css │ │ │ └── xq-light.css │ ├── codemirror.plugins.js │ ├── css.css │ ├── jQuery │ │ ├── README.md │ │ ├── jquery-1.9.1.min.js │ │ ├── jquery-ui-1.10.2.css │ │ ├── jquery-ui-1.10.2.min.js │ │ └── jquery.base64.min.js │ ├── jquery.plugins.js │ ├── js.js │ ├── keymaster │ │ ├── README.md │ │ └── keymaster.min.js │ └── marked │ │ ├── LICENSE │ │ ├── README.md │ │ └── lib │ │ └── marked.js │ └── md │ └── docs.md ├── src ├── blog │ ├── handler.clj │ ├── models │ │ ├── db.clj │ │ └── schema.clj │ ├── repl.clj │ ├── routes │ │ └── home.clj │ ├── util.clj │ └── views │ │ ├── layout.clj │ │ └── templates │ │ ├── admin │ │ ├── base.html │ │ ├── home.html │ │ ├── login.html │ │ └── set-init-user.html │ │ ├── base.html │ │ ├── detail.html │ │ ├── home.html │ │ ├── post-blog.html │ │ └── resume.html └── log4j.xml ├── target ├── .DS_Store └── stale │ └── extract-native.dependencies ├── test.rb └── test └── blog └── test └── handler.clj /.gitignore: -------------------------------------------------------------------------------- 1 | pom.xml 2 | *jar 3 | /lib/ 4 | /classes/ 5 | /targets/ 6 | .lein-deps-sum 7 | /checkouts 8 | *.jar 9 | *.class 10 | /.lein-* 11 | /.env 12 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: lein with-profile production trampoline ring server 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Blog 2 | ### Language 3 | Server clojure 4 | [Clojure](http://clojure.org) 5 | 6 | Web Server 7 | [Ring](https://github.com/ring-clojure/ring) 8 | 9 | Web framwork 10 | [Luminusweb](http://www.luminusweb.net/) 11 | 12 | Template 13 | [Fleet](https://github.com/Flamefork/fleet) [Clabango](https://github.com/danlarkin/clabango) 14 | 15 | 16 | ORM [SQLkorma](http://sqlkorma.com/) 17 | 18 | MarkDownEdior [https://github.com/miclle/Markdown-Editor](https://github.com/miclle/Markdown-Editor) 19 | ### Storeage 20 | [Postgresql](http://postgresql.org) 21 | 22 | ### Install 23 | Create database use follow sql in postgresql! 24 | CREATE DATABASE blog; 25 | 26 | CREATE TABLE content 27 | ( 28 | title text, 29 | content text, 30 | md text, 31 | "created-at" timestamp with time zone, 32 | "updated-at" timestamp with time zone, 33 | tag text, 34 | id bigserial NOT NULL 35 | ) 36 | 37 | CREATE TABLE users 38 | ( 39 | email character varying(30), 40 | admin boolean, 41 | last_login time without time zone, 42 | is_active boolean, 43 | pass character varying(100), 44 | id bigserial NOT NULL 45 | ) 46 | 47 | 48 | -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | (defproject 2 | blog 3 | "0.1.0-SNAPSHOT" 4 | :dependencies 5 | [[org.clojure/clojure "1.5.1"] 6 | [lib-noir "0.4.9"] 7 | [compojure "1.1.5"] 8 | [ring-server "0.2.7"] 9 | [com.taoensso/timbre "1.5.2"] 10 | [com.taoensso/tower "1.2.0"] 11 | [markdown-clj "0.9.19"] 12 | [fleet "0.10.1"] 13 | [org.clojure/java.jdbc "0.2.3"] 14 | [org.clojars.kbarber/postgresql "9.2-1002.jdbc4"] 15 | [korma "0.3.0-RC2"] 16 | [log4j 17 | "1.2.15" 18 | :exclusions 19 | [javax.mail/mail 20 | javax.jms/jms 21 | com.sun.jdmk/jmxtools 22 | com.sun.jmx/jmxri]] 23 | [clabango "0.5"]] 24 | :ring 25 | {:handler blog.handler/war-handler, 26 | :init blog.handler/init, 27 | :destroy blog.handler/destroy} 28 | :profiles 29 | {:production 30 | {:ring 31 | {:open-browser? false, :stacktraces? false, :auto-reload? false}}, 32 | :dev 33 | {:dependencies [[ring-mock "0.1.3"] [ring/ring-devel "1.1.8"]]}} 34 | :url 35 | "http://example.com/FIXME" 36 | :plugins 37 | [[lein-ring "0.8.3"]] 38 | :description 39 | "FIXME: write description" 40 | :min-lein-version "2.0.0") 41 | -------------------------------------------------------------------------------- /resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/.DS_Store -------------------------------------------------------------------------------- /resources/public/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/.DS_Store -------------------------------------------------------------------------------- /resources/public/bootstrap/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/bootstrap/.DS_Store -------------------------------------------------------------------------------- /resources/public/bootstrap/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 -------------------------------------------------------------------------------- /resources/public/bootstrap/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "version": "2.2.1", 4 | "main": ["./docs/assets/js/bootstrap.js", "./docs/assets/css/bootstrap.css"], 5 | "dependencies": { 6 | "jquery": "~1.8.0" 7 | } 8 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/css/ie.css: -------------------------------------------------------------------------------- 1 | /* NAVBAR */ 2 | 3 | /* !CPU HIGH, fix for IE6 shake when scroll */ 4 | * html,* html body { 5 | _background-image:url(about:blank); 6 | _background-attachment:fixed; 7 | } 8 | /* !CPU HIGH, fix for IE6 not support fixed position */ 9 | .navbar-fixed-top { 10 | _position:absolute; 11 | _bottom:auto; 12 | _top:expression(eval(document.documentElement.scrollTop)); 13 | } 14 | /* !CPU HIGH, fix for IE6 not support fixed position */ 15 | .navbar-fixed-bottom { 16 | _position:absolute; 17 | _bottom:auto; 18 | _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0))); 19 | } 20 | 21 | /* DROPDOWN */ 22 | .dropup, 23 | .dropdown { 24 | *zoom:1; 25 | } 26 | 27 | /* CLOSE */ 28 | .close { 29 | _font-size: 15px; 30 | } 31 | 32 | .modal-header h3 { 33 | *display: inline; 34 | *zoom:1; 35 | } 36 | 37 | /* MODALS */ 38 | .modal-backdrop { 39 | _position: absolute; 40 | _top:0; 41 | _margin-top:0; 42 | _width:expression(eval(document.documentElement.scrollWidth)); 43 | _height:expression(eval(document.documentElement.scrollHeight)); 44 | } 45 | .modal { 46 | _position:absolute; 47 | _top:0; 48 | _margin-top:0; 49 | _top:expression(eval(document.documentElement.scrollTop)); 50 | } 51 | .modal.fade.in { 52 | _filter:alpha(opacity=100); 53 | } 54 | .modal-backdrop { 55 | _filter: alpha(opacity=80); 56 | } 57 | .modal-body { 58 | _height:expression(this.scrollHeight > 400 ? "400px" : "auto"); 59 | } 60 | -------------------------------------------------------------------------------- /resources/public/bootstrap/img/glyphicons-halflings-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/bootstrap/img/glyphicons-halflings-8.png -------------------------------------------------------------------------------- /resources/public/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /resources/public/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /resources/public/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "validthis": true, 3 | "laxcomma" : true, 4 | "laxbreak" : true, 5 | "browser" : true, 6 | "eqnull" : true, 7 | "debug" : true, 8 | "devel" : true, 9 | "boss" : true, 10 | "expr" : true, 11 | "asi" : true 12 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/js/bootstrap-transition.js: -------------------------------------------------------------------------------- 1 | /* =================================================== 2 | * bootstrap-transition.js v2.2.1 3 | * http://twitter.github.com/bootstrap/javascript.html#transitions 4 | * =================================================== 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) 27 | * ======================================================= */ 28 | 29 | $(function () { 30 | 31 | $.support.transition = (function () { 32 | 33 | var transitionEnd = (function () { 34 | 35 | var el = document.createElement('bootstrap') 36 | , transEndEventNames = { 37 | 'WebkitTransition' : 'webkitTransitionEnd' 38 | , 'MozTransition' : 'transitionend' 39 | , 'OTransition' : 'oTransitionEnd otransitionend' 40 | , 'transition' : 'transitionend' 41 | } 42 | , name 43 | 44 | for (name in transEndEventNames){ 45 | if (el.style[name] !== undefined) { 46 | return transEndEventNames[name] 47 | } 48 | } 49 | 50 | }()) 51 | 52 | return transitionEnd && { 53 | end: transitionEnd 54 | } 55 | 56 | })() 57 | 58 | }) 59 | 60 | }(window.jQuery); -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/server.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple connect server for phantom.js 3 | * Adapted from Modernizr 4 | */ 5 | 6 | var connect = require('connect') 7 | , http = require('http') 8 | , fs = require('fs') 9 | , app = connect() 10 | .use(connect.static(__dirname + '/../../')); 11 | 12 | http.createServer(app).listen(3000); 13 | 14 | fs.writeFileSync(__dirname + '/pid.txt', process.pid, 'utf-8') -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/unit/bootstrap-affix.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-affix") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).affix, 'affix method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).affix()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should exit early if element is not visible", function () { 14 | var $affix = $('
').affix() 15 | $affix.data('affix').checkPosition() 16 | ok(!$affix.hasClass('affix'), 'affix class was not added') 17 | }) 18 | 19 | }) -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/unit/bootstrap-alert.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-alerts") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).alert, 'alert method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).alert()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should fade element out on clicking .close", function () { 14 | var alertHTML = '
' 15 | + '×' 16 | + '

Holy guacamole! Best check yo self, you\'re not looking too good.

' 17 | + '
' 18 | , alert = $(alertHTML).alert() 19 | 20 | alert.find('.close').click() 21 | 22 | ok(!alert.hasClass('in'), 'remove .in class on .close click') 23 | }) 24 | 25 | test("should remove element when clicking .close", function () { 26 | $.support.transition = false 27 | 28 | var alertHTML = '
' 29 | + '×' 30 | + '

Holy guacamole! Best check yo self, you\'re not looking too good.

' 31 | + '
' 32 | , alert = $(alertHTML).appendTo('#qunit-fixture').alert() 33 | 34 | ok($('#qunit-fixture').find('.alert-message').length, 'element added to dom') 35 | 36 | alert.find('.close').click() 37 | 38 | ok(!$('#qunit-fixture').find('.alert-message').length, 'element removed from dom') 39 | }) 40 | 41 | test("should not fire closed when close is prevented", function () { 42 | $.support.transition = false 43 | stop(); 44 | $('
') 45 | .bind('close', function (e) { 46 | e.preventDefault(); 47 | ok(true); 48 | start(); 49 | }) 50 | .bind('closed', function () { 51 | ok(false); 52 | }) 53 | .alert('close') 54 | }) 55 | 56 | }) -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/unit/bootstrap-phantom.js: -------------------------------------------------------------------------------- 1 | // Logging setup for phantom integration 2 | // adapted from Modernizr 3 | 4 | QUnit.begin = function () { 5 | console.log("Starting test suite") 6 | console.log("================================================\n") 7 | } 8 | 9 | QUnit.moduleDone = function (opts) { 10 | if (opts.failed === 0) { 11 | console.log("\u2714 All tests passed in '" + opts.name + "' module") 12 | } else { 13 | console.log("\u2716 " + opts.failed + " tests failed in '" + opts.name + "' module") 14 | } 15 | } 16 | 17 | QUnit.done = function (opts) { 18 | console.log("\n================================================") 19 | console.log("Tests completed in " + opts.runtime + " milliseconds") 20 | console.log(opts.passed + " tests of " + opts.total + " passed, " + opts.failed + " failed.") 21 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/unit/bootstrap-scrollspy.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-scrollspy") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).scrollspy, 'scrollspy method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).scrollspy()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should switch active class on scroll", function () { 14 | var sectionHTML = '
' 15 | , $section = $(sectionHTML).append('#qunit-fixture') 16 | , topbarHTML ='
' 17 | + '
' 18 | + '
' 19 | + '

Bootstrap

' 20 | + '' 23 | + '
' 24 | + '
' 25 | + '
' 26 | , $topbar = $(topbarHTML).scrollspy() 27 | 28 | ok($topbar.find('.active', true)) 29 | }) 30 | 31 | }) -------------------------------------------------------------------------------- /resources/public/bootstrap/js/tests/unit/bootstrap-transition.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-transition") 4 | 5 | test("should be defined on jquery support object", function () { 6 | ok($.support.transition !== undefined, 'transition object is defined') 7 | }) 8 | 9 | test("should provide an end object", function () { 10 | ok($.support.transition ? $.support.transition.end : true, 'end string is defined') 11 | }) 12 | 13 | }) -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/accordion.less: -------------------------------------------------------------------------------- 1 | // 2 | // Accordion 3 | // -------------------------------------------------- 4 | 5 | 6 | // Parent container 7 | .accordion { 8 | margin-bottom: @baseLineHeight; 9 | } 10 | 11 | // Group == heading + body 12 | .accordion-group { 13 | margin-bottom: 2px; 14 | border: 1px solid #e5e5e5; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .accordion-heading { 18 | border-bottom: 0; 19 | } 20 | .accordion-heading .accordion-toggle { 21 | display: block; 22 | padding: 8px 15px; 23 | } 24 | 25 | // General toggle styles 26 | .accordion-toggle { 27 | cursor: pointer; 28 | } 29 | 30 | // Inner needs the styles because you can't animate properly with any styles on the element 31 | .accordion-inner { 32 | padding: 9px 15px; 33 | border-top: 1px solid #e5e5e5; 34 | } 35 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: 8px 35px 8px 14px; 11 | margin-bottom: @baseLineHeight; 12 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 13 | background-color: @warningBackground; 14 | border: 1px solid @warningBorder; 15 | .border-radius(@baseBorderRadius); 16 | color: @warningText; 17 | } 18 | .alert h4 { 19 | margin: 0; 20 | 21 | *display:inline; 22 | *zoom:1; 23 | } 24 | 25 | // Adjust close link position 26 | .alert .close { 27 | position: relative; 28 | top: -2px; 29 | right: -21px; 30 | line-height: @baseLineHeight; 31 | } 32 | 33 | 34 | // Alternate styles 35 | // ------------------------- 36 | 37 | .alert-success { 38 | background-color: @successBackground; 39 | border-color: @successBorder; 40 | color: @successText; 41 | } 42 | .alert-danger, 43 | .alert-error { 44 | background-color: @errorBackground; 45 | border-color: @errorBorder; 46 | color: @errorText; 47 | } 48 | .alert-info { 49 | background-color: @infoBackground; 50 | border-color: @infoBorder; 51 | color: @infoText; 52 | } 53 | 54 | 55 | // Block alerts 56 | // ------------------------- 57 | 58 | .alert-block { 59 | padding-top: 14px; 60 | padding-bottom: 14px; 61 | } 62 | // .alert-block > p, 63 | // .alert-block > ul { 64 | .alert-block p, 65 | .alert-block ul { 66 | margin-bottom: 0; 67 | } 68 | .alert-block p + p { 69 | margin-top: 5px; 70 | } 71 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/bootstrap-ie6.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.2.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | // CSS Reset 12 | @import "reset.less"; 13 | 14 | // Core variables and mixins 15 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 16 | @import "mixins.less"; 17 | 18 | // Grid system and page structure 19 | @import "scaffolding.less"; 20 | @import "grid.less"; 21 | // @import "layouts.less"; 22 | 23 | // // Base CSS 24 | // @import "type.less"; 25 | // @import "code.less"; 26 | @import "forms.less"; 27 | @import "tables.less"; 28 | 29 | // // Components: common 30 | @import "sprites.less"; 31 | @import "dropdowns.less"; 32 | // @import "wells.less"; 33 | // @import "component-animations.less"; 34 | // @import "close.less"; 35 | 36 | // // Components: Buttons & Alerts 37 | @import "buttons.less"; 38 | @import "button-groups.less"; 39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less 40 | 41 | // Components: Nav 42 | @import "navs.less"; 43 | @import "navbar.less"; 44 | @import "breadcrumbs.less"; 45 | @import "pagination.less"; 46 | @import "pager.less"; 47 | 48 | // // Components: Popovers 49 | // @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | 53 | // // Components: Misc 54 | // @import "thumbnails.less"; 55 | // @import "media.less"; 56 | // @import "labels-badges.less"; 57 | // @import "progress-bars.less"; 58 | // @import "accordion.less"; 59 | @import "carousel.less"; 60 | // @import "hero-unit.less"; 61 | 62 | // // Utility classes 63 | @import "utilities.less"; // Has to be last to override when necessary 64 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: 8px 15px; 8 | margin: 0 0 @baseLineHeight; 9 | list-style: none; 10 | background-color: #f5f5f5; 11 | .border-radius(@baseBorderRadius); 12 | li { 13 | display: inline-block; 14 | .ie7-inline-block(); 15 | text-shadow: 0 1px 0 @white; 16 | } 17 | .divider { 18 | padding: 0 5px; 19 | color: #ccc; 20 | } 21 | .active { 22 | color: @grayLight; 23 | background-color: #f5f5f5; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: 20px; 9 | font-weight: bold; 10 | line-height: @baseLineHeight; 11 | color: @black; 12 | text-shadow: 0 1px 0 rgba(255,255,255,1); 13 | .opacity(20); 14 | &:hover { 15 | color: @black; 16 | text-decoration: none; 17 | cursor: pointer; 18 | .opacity(40); 19 | } 20 | } 21 | 22 | // Additional properties for button version 23 | // iOS requires the button element instead of an anchor tag. 24 | // If you want the anchor version, it requires `href="#"`. 25 | button.close { 26 | padding: 0; 27 | cursor: pointer; 28 | background: transparent; 29 | border: 0; 30 | -webkit-appearance: none; 31 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and blocK) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | pre { 9 | padding: 0 3px 2px; 10 | #font > #family > .monospace; 11 | font-size: @baseFontSize - 2; 12 | color: @grayDark; 13 | .border-radius(3px); 14 | } 15 | 16 | // Inline code 17 | code { 18 | padding: 2px 4px; 19 | color: #d14; 20 | background-color: #f7f7f9; 21 | border: 1px solid #e1e1e8; 22 | } 23 | 24 | // Blocks of code 25 | pre { 26 | display: block; 27 | padding: (@baseLineHeight - 1) / 2; 28 | margin: 0 0 @baseLineHeight / 2; 29 | font-size: @baseFontSize - 1; // 14px to 13px 30 | line-height: @baseLineHeight; 31 | word-break: break-all; 32 | word-wrap: break-word; 33 | white-space: pre; 34 | white-space: pre-wrap; 35 | background-color: #f5f5f5; 36 | border: 1px solid #ccc; // fallback for IE7-8 37 | border: 1px solid rgba(0,0,0,.15); 38 | .border-radius(@baseBorderRadius); 39 | 40 | // Make prettyprint styles more spaced out for readability 41 | &.prettyprint { 42 | margin-bottom: @baseLineHeight; 43 | } 44 | 45 | // Account for some code outputs that place code tags in pre tags 46 | code { 47 | padding: 0; 48 | color: inherit; 49 | background-color: transparent; 50 | border: 0; 51 | } 52 | } 53 | 54 | // Enable scrollable blocks of code 55 | .pre-scrollable { 56 | max-height: 340px; 57 | overflow-y: scroll; 58 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | 6 | .fade { 7 | opacity: 0; 8 | .transition(opacity .15s linear); 9 | &.in { 10 | opacity: 1; 11 | } 12 | } 13 | 14 | .collapse { 15 | position: relative; 16 | height: 0; 17 | overflow: hidden; 18 | .transition(height .35s ease); 19 | &.in { 20 | height: auto; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Fixed (940px) 7 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 8 | 9 | // Fluid (940px) 10 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); 11 | 12 | // Reset utility classes due to specificity 13 | [class*="span"].hide, 14 | .row-fluid [class*="span"].hide { 15 | display: none; 16 | } 17 | 18 | [class*="span"].pull-right, 19 | .row-fluid [class*="span"].pull-right { 20 | float: right; 21 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/hero-unit.less: -------------------------------------------------------------------------------- 1 | // 2 | // Hero unit 3 | // -------------------------------------------------- 4 | 5 | 6 | .hero-unit { 7 | padding: 60px; 8 | margin-bottom: 30px; 9 | font-size: 18px; 10 | font-weight: 200; 11 | line-height: @baseLineHeight * 1.5; 12 | color: @heroUnitLeadColor; 13 | background-color: @heroUnitBackground; 14 | .border-radius(6px); 15 | h1 { 16 | margin-bottom: 0; 17 | font-size: 60px; 18 | line-height: 1; 19 | color: @heroUnitHeadingColor; 20 | letter-spacing: -1px; 21 | } 22 | li { 23 | line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/labels-badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels and badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .label, 8 | .badge { 9 | display: inline-block; 10 | padding: 2px 4px; 11 | font-size: @baseFontSize * .846; 12 | font-weight: bold; 13 | line-height: 14px; // ensure proper line-height if floated 14 | color: @white; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 18 | background-color: @grayLight; 19 | } 20 | // Set unique padding and border-radii 21 | .label { 22 | .border-radius(3px); 23 | } 24 | .badge { 25 | padding-left: 9px; 26 | padding-right: 9px; 27 | .border-radius(9px); 28 | } 29 | 30 | // Hover state, but only for links 31 | a { 32 | &.label:hover, 33 | &.badge:hover { 34 | color: @white; 35 | text-decoration: none; 36 | cursor: pointer; 37 | } 38 | } 39 | 40 | // Colors 41 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) 42 | .label, 43 | .badge { 44 | // Important (red) 45 | &-important { background-color: @errorText; } 46 | &-important[href] { background-color: darken(@errorText, 10%); } 47 | // Warnings (orange) 48 | &-warning { background-color: @orange; } 49 | &-warning[href] { background-color: darken(@orange, 10%); } 50 | // Success (green) 51 | &-success { background-color: @successText; } 52 | &-success[href] { background-color: darken(@successText, 10%); } 53 | // Info (turquoise) 54 | &-info { background-color: @infoText; } 55 | &-info[href] { background-color: darken(@infoText, 10%); } 56 | // Inverse (black) 57 | &-inverse { background-color: @grayDark; } 58 | &-inverse[href] { background-color: darken(@grayDark, 10%); } 59 | } 60 | 61 | // Quick fix for labels/badges in buttons 62 | .btn { 63 | .label, 64 | .badge { 65 | position: relative; 66 | top: -1px; 67 | } 68 | } 69 | .btn-mini { 70 | .label, 71 | .badge { 72 | top: 0; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/layouts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Layouts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container (centered, fixed-width layouts) 7 | .container { 8 | .container-fixed(); 9 | } 10 | 11 | // Fluid layouts (left aligned, with sidebar, min- & max-width content) 12 | .container-fluid { 13 | padding-right: @gridGutterWidth; 14 | padding-left: @gridGutterWidth; 15 | .clearfix(); 16 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | *overflow: visible; 14 | zoom: 1; 15 | } 16 | 17 | // Proper spacing between instances of .media 18 | .media, 19 | .media .media { 20 | margin-top: 15px; 21 | } 22 | .media:first-child { 23 | margin-top: 0; 24 | } 25 | 26 | // For images and videos, set to block 27 | .media-object { 28 | display: block; 29 | } 30 | 31 | // Reset margins on headings for tighter default spacing 32 | .media-heading { 33 | margin: 0 0 5px; 34 | } 35 | 36 | 37 | // Media image alignment 38 | // ------------------------- 39 | 40 | .media .pull-left { 41 | margin-right: 10px; 42 | } 43 | .media .pull-right { 44 | margin-left: 10px; 45 | } 46 | 47 | 48 | // Media list variation 49 | // ------------------------- 50 | 51 | // Undo default ul/ol styles 52 | .media-list { 53 | margin-left: 0; 54 | list-style: none; 55 | } 56 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | margin: @baseLineHeight 0; 8 | list-style: none; 9 | text-align: center; 10 | .clearfix(); 11 | } 12 | .pager li { 13 | display: inline; 14 | } 15 | // .pager li > a, 16 | // .pager li > span { 17 | .pager li a, 18 | .pager li span { 19 | display: inline-block; 20 | padding: 5px 14px; 21 | background-color: #fff; 22 | border: 1px solid #ddd; 23 | .border-radius(15px); 24 | } 25 | // .pager li > a:hover { 26 | .pager li a:hover { 27 | text-decoration: none; 28 | background-color: #f5f5f5; 29 | } 30 | // .pager .next > a, 31 | // .pager .next > span { 32 | .pager .next a, 33 | .pager .next span { 34 | float: right; 35 | } 36 | // .pager .previous > a, 37 | // .pager .previous > span { 38 | .pager .previous a, 39 | .pager .previous span { 40 | float: left; 41 | } 42 | // .pager .disabled > a, 43 | // .pager .disabled > a:hover, 44 | // .pager .disabled > span { 45 | .pager .disabled a, 46 | .pager .disabled a:hover, 47 | .pager .disabled span { 48 | color: @grayLight; 49 | background-color: #fff; 50 | cursor: default; 51 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/responsive-1200px-min.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Large desktop and up 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 1200px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); 16 | 17 | // Thumbnails 18 | .thumbnails { 19 | margin-left: -@gridGutterWidth1200; 20 | } 21 | .thumbnails > li { 22 | margin-left: @gridGutterWidth1200; 23 | } 24 | .row-fluid .thumbnails { 25 | margin-left: 0; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/responsive-768px-979px.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Tablet to desktop 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 768px) and (max-width: 979px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768); 16 | 17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth 18 | 19 | } 20 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Hide from screenreaders and browsers 7 | // Credit: HTML5 Boilerplate 8 | .hidden { 9 | display: none; 10 | visibility: hidden; 11 | } 12 | 13 | // Visibility utilities 14 | 15 | // For desktops 16 | .visible-phone { display: none !important; } 17 | .visible-tablet { display: none !important; } 18 | .hidden-phone { } 19 | .hidden-tablet { } 20 | .hidden-desktop { display: none !important; } 21 | .visible-desktop { display: inherit !important; } 22 | 23 | // Tablets & small desktops only 24 | @media (min-width: 768px) and (max-width: 979px) { 25 | // Hide everything else 26 | .hidden-desktop { display: inherit !important; } 27 | .visible-desktop { display: none !important ; } 28 | // Show 29 | .visible-tablet { display: inherit !important; } 30 | // Hide 31 | .hidden-tablet { display: none !important; } 32 | } 33 | 34 | // Phones only 35 | @media (max-width: 767px) { 36 | // Hide everything else 37 | .hidden-desktop { display: inherit !important; } 38 | .visible-desktop { display: none !important; } 39 | // Show 40 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior 41 | // Hide 42 | .hidden-phone { display: none !important; } 43 | } 44 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/responsive.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.2.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | 12 | // Responsive.less 13 | // For phone and tablet devices 14 | // ------------------------------------------------------------- 15 | 16 | 17 | // REPEAT VARIABLES & MIXINS 18 | // ------------------------- 19 | // Required since we compile the responsive stuff separately 20 | 21 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 22 | @import "mixins.less"; 23 | 24 | 25 | // RESPONSIVE CLASSES 26 | // ------------------ 27 | 28 | @import "responsive-utilities.less"; 29 | 30 | 31 | // MEDIA QUERIES 32 | // ------------------ 33 | 34 | // Large desktops 35 | @import "responsive-1200px-min.less"; 36 | 37 | // Tablets to regular desktops 38 | @import "responsive-768px-979px.less"; 39 | 40 | // Phones to portrait tablets and narrow desktops 41 | @import "responsive-767px-max.less"; 42 | 43 | 44 | // RESPONSIVE NAVBAR 45 | // ------------------ 46 | 47 | // From 979px and below, show a button to toggle navbar contents 48 | @import "responsive-navbar.less"; 49 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Body reset 7 | // ------------------------- 8 | 9 | body { 10 | margin: 0; 11 | font-family: @baseFontFamily; 12 | font-size: @baseFontSize; 13 | line-height: @baseLineHeight; 14 | color: @textColor; 15 | background-color: @bodyBackground; 16 | } 17 | 18 | 19 | // Links 20 | // ------------------------- 21 | 22 | a { 23 | color: @linkColor; 24 | text-decoration: none; 25 | } 26 | a:hover { 27 | color: @linkColorHover; 28 | text-decoration: underline; 29 | } 30 | 31 | 32 | // Images 33 | // ------------------------- 34 | 35 | // Rounded corners 36 | .img-rounded { 37 | .border-radius(6px); 38 | } 39 | 40 | // Add polaroid-esque trim 41 | .img-polaroid { 42 | padding: 4px; 43 | background-color: #fff; 44 | border: 1px solid #ccc; 45 | border: 1px solid rgba(0,0,0,.2); 46 | .box-shadow(0 1px 3px rgba(0,0,0,.1)); 47 | } 48 | 49 | // Perfect circle 50 | .img-circle { 51 | .border-radius(500px); // crank the border-radius so it works with most reasonably sized images 52 | } 53 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files 7 | 8 | // Make wrapper ul behave like the grid 9 | .thumbnails { 10 | margin-left: -@gridGutterWidth; 11 | list-style: none; 12 | .clearfix(); 13 | } 14 | // Fluid rows have no left margin 15 | .row-fluid .thumbnails { 16 | margin-left: 0; 17 | } 18 | 19 | // Float li to make thumbnails appear in a row 20 | .thumbnails > li { 21 | float: left; // Explicity set the float since we don't require .span* classes 22 | margin-bottom: @baseLineHeight; 23 | margin-left: @gridGutterWidth; 24 | } 25 | 26 | // The actual thumbnail (can be `a` or `div`) 27 | .thumbnail { 28 | display: block; 29 | padding: 4px; 30 | line-height: @baseLineHeight; 31 | border: 1px solid #ddd; 32 | .border-radius(@baseBorderRadius); 33 | .box-shadow(0 1px 3px rgba(0,0,0,.055)); 34 | .transition(all .2s ease-in-out); 35 | } 36 | // Add a hover state for linked versions only 37 | a.thumbnail:hover { 38 | border-color: @linkColor; 39 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 40 | } 41 | 42 | // Images and captions 43 | .thumbnail > img { 44 | display: block; 45 | max-width: 100%; 46 | margin-left: auto; 47 | margin-right: auto; 48 | } 49 | .thumbnail .caption { 50 | padding: 9px; 51 | color: @gray; 52 | } 53 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Quick floats 7 | .pull-right { 8 | float: right; 9 | } 10 | .pull-left { 11 | float: left; 12 | } 13 | 14 | // Toggling content 15 | .hide { 16 | display: none; 17 | } 18 | .show { 19 | display: block; 20 | } 21 | 22 | // Visibility 23 | .invisible { 24 | visibility: hidden; 25 | } 26 | 27 | // For Affix plugin 28 | .affix { 29 | position: fixed; 30 | } 31 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less-ie6/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @wellBackground; 12 | border: 1px solid darken(@wellBackground, 7%); 13 | .border-radius(@baseBorderRadius); 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-large { 23 | padding: 24px; 24 | .border-radius(@borderRadiusLarge); 25 | } 26 | .well-small { 27 | padding: 9px; 28 | .border-radius(@borderRadiusSmall); 29 | } 30 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/accordion.less: -------------------------------------------------------------------------------- 1 | // 2 | // Accordion 3 | // -------------------------------------------------- 4 | 5 | 6 | // Parent container 7 | .accordion { 8 | margin-bottom: @baseLineHeight; 9 | } 10 | 11 | // Group == heading + body 12 | .accordion-group { 13 | margin-bottom: 2px; 14 | border: 1px solid #e5e5e5; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .accordion-heading { 18 | border-bottom: 0; 19 | } 20 | .accordion-heading .accordion-toggle { 21 | display: block; 22 | padding: 8px 15px; 23 | } 24 | 25 | // General toggle styles 26 | .accordion-toggle { 27 | cursor: pointer; 28 | } 29 | 30 | // Inner needs the styles because you can't animate properly with any styles on the element 31 | .accordion-inner { 32 | padding: 9px 15px; 33 | border-top: 1px solid #e5e5e5; 34 | } 35 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: 8px 35px 8px 14px; 11 | margin-bottom: @baseLineHeight; 12 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 13 | background-color: @warningBackground; 14 | border: 1px solid @warningBorder; 15 | .border-radius(@baseBorderRadius); 16 | color: @warningText; 17 | } 18 | .alert h4 { 19 | margin: 0; 20 | } 21 | 22 | // Adjust close link position 23 | .alert .close { 24 | position: relative; 25 | top: -2px; 26 | right: -21px; 27 | line-height: @baseLineHeight; 28 | } 29 | 30 | 31 | // Alternate styles 32 | // ------------------------- 33 | 34 | .alert-success { 35 | background-color: @successBackground; 36 | border-color: @successBorder; 37 | color: @successText; 38 | } 39 | .alert-danger, 40 | .alert-error { 41 | background-color: @errorBackground; 42 | border-color: @errorBorder; 43 | color: @errorText; 44 | } 45 | .alert-info { 46 | background-color: @infoBackground; 47 | border-color: @infoBorder; 48 | color: @infoText; 49 | } 50 | 51 | 52 | // Block alerts 53 | // ------------------------- 54 | 55 | .alert-block { 56 | padding-top: 14px; 57 | padding-bottom: 14px; 58 | } 59 | .alert-block > p, 60 | .alert-block > ul { 61 | margin-bottom: 0; 62 | } 63 | .alert-block p + p { 64 | margin-top: 5px; 65 | } 66 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.2.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | // CSS Reset 12 | @import "reset.less"; 13 | 14 | // Core variables and mixins 15 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 16 | @import "mixins.less"; 17 | 18 | // Grid system and page structure 19 | @import "scaffolding.less"; 20 | @import "grid.less"; 21 | @import "layouts.less"; 22 | 23 | // Base CSS 24 | @import "type.less"; 25 | @import "code.less"; 26 | @import "forms.less"; 27 | @import "tables.less"; 28 | 29 | // Components: common 30 | @import "sprites.less"; 31 | @import "dropdowns.less"; 32 | @import "wells.less"; 33 | @import "component-animations.less"; 34 | @import "close.less"; 35 | 36 | // Components: Buttons & Alerts 37 | @import "buttons.less"; 38 | @import "button-groups.less"; 39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less 40 | 41 | // Components: Nav 42 | @import "navs.less"; 43 | @import "navbar.less"; 44 | @import "breadcrumbs.less"; 45 | @import "pagination.less"; 46 | @import "pager.less"; 47 | 48 | // Components: Popovers 49 | @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | 53 | // Components: Misc 54 | @import "thumbnails.less"; 55 | @import "media.less"; 56 | @import "labels-badges.less"; 57 | @import "progress-bars.less"; 58 | @import "accordion.less"; 59 | @import "carousel.less"; 60 | @import "hero-unit.less"; 61 | 62 | // Utility classes 63 | @import "utilities.less"; // Has to be last to override when necessary 64 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: 8px 15px; 8 | margin: 0 0 @baseLineHeight; 9 | list-style: none; 10 | background-color: #f5f5f5; 11 | .border-radius(@baseBorderRadius); 12 | li { 13 | display: inline-block; 14 | .ie7-inline-block(); 15 | text-shadow: 0 1px 0 @white; 16 | } 17 | .divider { 18 | padding: 0 5px; 19 | color: #ccc; 20 | } 21 | .active { 22 | color: @grayLight; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: 20px; 9 | font-weight: bold; 10 | line-height: @baseLineHeight; 11 | color: @black; 12 | text-shadow: 0 1px 0 rgba(255,255,255,1); 13 | .opacity(20); 14 | &:hover { 15 | color: @black; 16 | text-decoration: none; 17 | cursor: pointer; 18 | .opacity(40); 19 | } 20 | } 21 | 22 | // Additional properties for button version 23 | // iOS requires the button element instead of an anchor tag. 24 | // If you want the anchor version, it requires `href="#"`. 25 | button.close { 26 | padding: 0; 27 | cursor: pointer; 28 | background: transparent; 29 | border: 0; 30 | -webkit-appearance: none; 31 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and blocK) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | pre { 9 | padding: 0 3px 2px; 10 | #font > #family > .monospace; 11 | font-size: @baseFontSize - 2; 12 | color: @grayDark; 13 | .border-radius(3px); 14 | } 15 | 16 | // Inline code 17 | code { 18 | padding: 2px 4px; 19 | color: #d14; 20 | background-color: #f7f7f9; 21 | border: 1px solid #e1e1e8; 22 | } 23 | 24 | // Blocks of code 25 | pre { 26 | display: block; 27 | padding: (@baseLineHeight - 1) / 2; 28 | margin: 0 0 @baseLineHeight / 2; 29 | font-size: @baseFontSize - 1; // 14px to 13px 30 | line-height: @baseLineHeight; 31 | word-break: break-all; 32 | word-wrap: break-word; 33 | white-space: pre; 34 | white-space: pre-wrap; 35 | background-color: #f5f5f5; 36 | border: 1px solid #ccc; // fallback for IE7-8 37 | border: 1px solid rgba(0,0,0,.15); 38 | .border-radius(@baseBorderRadius); 39 | 40 | // Make prettyprint styles more spaced out for readability 41 | &.prettyprint { 42 | margin-bottom: @baseLineHeight; 43 | } 44 | 45 | // Account for some code outputs that place code tags in pre tags 46 | code { 47 | padding: 0; 48 | color: inherit; 49 | background-color: transparent; 50 | border: 0; 51 | } 52 | } 53 | 54 | // Enable scrollable blocks of code 55 | .pre-scrollable { 56 | max-height: 340px; 57 | overflow-y: scroll; 58 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | 6 | .fade { 7 | opacity: 0; 8 | .transition(opacity .15s linear); 9 | &.in { 10 | opacity: 1; 11 | } 12 | } 13 | 14 | .collapse { 15 | position: relative; 16 | height: 0; 17 | overflow: hidden; 18 | .transition(height .35s ease); 19 | &.in { 20 | height: auto; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Fixed (940px) 7 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 8 | 9 | // Fluid (940px) 10 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); 11 | 12 | // Reset utility classes due to specificity 13 | [class*="span"].hide, 14 | .row-fluid [class*="span"].hide { 15 | display: none; 16 | } 17 | 18 | [class*="span"].pull-right, 19 | .row-fluid [class*="span"].pull-right { 20 | float: right; 21 | } 22 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/hero-unit.less: -------------------------------------------------------------------------------- 1 | // 2 | // Hero unit 3 | // -------------------------------------------------- 4 | 5 | 6 | .hero-unit { 7 | padding: 60px; 8 | margin-bottom: 30px; 9 | font-size: 18px; 10 | font-weight: 200; 11 | line-height: @baseLineHeight * 1.5; 12 | color: @heroUnitLeadColor; 13 | background-color: @heroUnitBackground; 14 | .border-radius(6px); 15 | h1 { 16 | margin-bottom: 0; 17 | font-size: 60px; 18 | line-height: 1; 19 | color: @heroUnitHeadingColor; 20 | letter-spacing: -1px; 21 | } 22 | li { 23 | line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/labels-badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels and badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .label, 8 | .badge { 9 | display: inline-block; 10 | padding: 2px 4px; 11 | font-size: @baseFontSize * .846; 12 | font-weight: bold; 13 | line-height: 14px; // ensure proper line-height if floated 14 | color: @white; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 18 | background-color: @grayLight; 19 | } 20 | // Set unique padding and border-radii 21 | .label { 22 | .border-radius(3px); 23 | } 24 | .badge { 25 | padding-left: 9px; 26 | padding-right: 9px; 27 | .border-radius(9px); 28 | } 29 | 30 | // Hover state, but only for links 31 | a { 32 | &.label:hover, 33 | &.badge:hover { 34 | color: @white; 35 | text-decoration: none; 36 | cursor: pointer; 37 | } 38 | } 39 | 40 | // Colors 41 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) 42 | .label, 43 | .badge { 44 | // Important (red) 45 | &-important { background-color: @errorText; } 46 | &-important[href] { background-color: darken(@errorText, 10%); } 47 | // Warnings (orange) 48 | &-warning { background-color: @orange; } 49 | &-warning[href] { background-color: darken(@orange, 10%); } 50 | // Success (green) 51 | &-success { background-color: @successText; } 52 | &-success[href] { background-color: darken(@successText, 10%); } 53 | // Info (turquoise) 54 | &-info { background-color: @infoText; } 55 | &-info[href] { background-color: darken(@infoText, 10%); } 56 | // Inverse (black) 57 | &-inverse { background-color: @grayDark; } 58 | &-inverse[href] { background-color: darken(@grayDark, 10%); } 59 | } 60 | 61 | // Quick fix for labels/badges in buttons 62 | .btn { 63 | .label, 64 | .badge { 65 | position: relative; 66 | top: -1px; 67 | } 68 | } 69 | .btn-mini { 70 | .label, 71 | .badge { 72 | top: 0; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/layouts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Layouts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container (centered, fixed-width layouts) 7 | .container { 8 | .container-fixed(); 9 | } 10 | 11 | // Fluid layouts (left aligned, with sidebar, min- & max-width content) 12 | .container-fluid { 13 | padding-right: @gridGutterWidth; 14 | padding-left: @gridGutterWidth; 15 | .clearfix(); 16 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | *overflow: visible; 14 | zoom: 1; 15 | } 16 | 17 | // Proper spacing between instances of .media 18 | .media, 19 | .media .media { 20 | margin-top: 15px; 21 | } 22 | .media:first-child { 23 | margin-top: 0; 24 | } 25 | 26 | // For images and videos, set to block 27 | .media-object { 28 | display: block; 29 | } 30 | 31 | // Reset margins on headings for tighter default spacing 32 | .media-heading { 33 | margin: 0 0 5px; 34 | } 35 | 36 | 37 | // Media image alignment 38 | // ------------------------- 39 | 40 | .media .pull-left { 41 | margin-right: 10px; 42 | } 43 | .media .pull-right { 44 | margin-left: 10px; 45 | } 46 | 47 | 48 | // Media list variation 49 | // ------------------------- 50 | 51 | // Undo default ul/ol styles 52 | .media-list { 53 | margin-left: 0; 54 | list-style: none; 55 | } 56 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | margin: @baseLineHeight 0; 8 | list-style: none; 9 | text-align: center; 10 | .clearfix(); 11 | } 12 | .pager li { 13 | display: inline; 14 | } 15 | .pager li > a, 16 | .pager li > span { 17 | display: inline-block; 18 | padding: 5px 14px; 19 | background-color: #fff; 20 | border: 1px solid #ddd; 21 | .border-radius(15px); 22 | } 23 | .pager li > a:hover { 24 | text-decoration: none; 25 | background-color: #f5f5f5; 26 | } 27 | .pager .next > a, 28 | .pager .next > span { 29 | float: right; 30 | } 31 | .pager .previous > a, 32 | .pager .previous > span { 33 | float: left; 34 | } 35 | .pager .disabled > a, 36 | .pager .disabled > a:hover, 37 | .pager .disabled > span { 38 | color: @grayLight; 39 | background-color: #fff; 40 | cursor: default; 41 | } -------------------------------------------------------------------------------- /resources/public/bootstrap/less/responsive-1200px-min.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Large desktop and up 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 1200px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); 16 | 17 | // Thumbnails 18 | .thumbnails { 19 | margin-left: -@gridGutterWidth1200; 20 | } 21 | .thumbnails > li { 22 | margin-left: @gridGutterWidth1200; 23 | } 24 | .row-fluid .thumbnails { 25 | margin-left: 0; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/responsive-768px-979px.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Tablet to desktop 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 768px) and (max-width: 979px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768); 16 | 17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth 18 | 19 | } 20 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Hide from screenreaders and browsers 7 | // Credit: HTML5 Boilerplate 8 | .hidden { 9 | display: none; 10 | visibility: hidden; 11 | } 12 | 13 | // Visibility utilities 14 | 15 | // For desktops 16 | .visible-phone { display: none !important; } 17 | .visible-tablet { display: none !important; } 18 | .hidden-phone { } 19 | .hidden-tablet { } 20 | .hidden-desktop { display: none !important; } 21 | .visible-desktop { display: inherit !important; } 22 | 23 | // Tablets & small desktops only 24 | @media (min-width: 768px) and (max-width: 979px) { 25 | // Hide everything else 26 | .hidden-desktop { display: inherit !important; } 27 | .visible-desktop { display: none !important ; } 28 | // Show 29 | .visible-tablet { display: inherit !important; } 30 | // Hide 31 | .hidden-tablet { display: none !important; } 32 | } 33 | 34 | // Phones only 35 | @media (max-width: 767px) { 36 | // Hide everything else 37 | .hidden-desktop { display: inherit !important; } 38 | .visible-desktop { display: none !important; } 39 | // Show 40 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior 41 | // Hide 42 | .hidden-phone { display: none !important; } 43 | } 44 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/responsive.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.2.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | 12 | // Responsive.less 13 | // For phone and tablet devices 14 | // ------------------------------------------------------------- 15 | 16 | 17 | // REPEAT VARIABLES & MIXINS 18 | // ------------------------- 19 | // Required since we compile the responsive stuff separately 20 | 21 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 22 | @import "mixins.less"; 23 | 24 | 25 | // RESPONSIVE CLASSES 26 | // ------------------ 27 | 28 | @import "responsive-utilities.less"; 29 | 30 | 31 | // MEDIA QUERIES 32 | // ------------------ 33 | 34 | // Large desktops 35 | @import "responsive-1200px-min.less"; 36 | 37 | // Tablets to regular desktops 38 | @import "responsive-768px-979px.less"; 39 | 40 | // Phones to portrait tablets and narrow desktops 41 | @import "responsive-767px-max.less"; 42 | 43 | 44 | // RESPONSIVE NAVBAR 45 | // ------------------ 46 | 47 | // From 979px and below, show a button to toggle navbar contents 48 | @import "responsive-navbar.less"; 49 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Body reset 7 | // ------------------------- 8 | 9 | body { 10 | margin: 0; 11 | font-family: @baseFontFamily; 12 | font-size: @baseFontSize; 13 | line-height: @baseLineHeight; 14 | color: @textColor; 15 | background-color: @bodyBackground; 16 | } 17 | 18 | 19 | // Links 20 | // ------------------------- 21 | 22 | a { 23 | color: @linkColor; 24 | text-decoration: none; 25 | } 26 | a:hover { 27 | color: @linkColorHover; 28 | text-decoration: underline; 29 | } 30 | 31 | 32 | // Images 33 | // ------------------------- 34 | 35 | // Rounded corners 36 | .img-rounded { 37 | .border-radius(6px); 38 | } 39 | 40 | // Add polaroid-esque trim 41 | .img-polaroid { 42 | padding: 4px; 43 | background-color: #fff; 44 | border: 1px solid #ccc; 45 | border: 1px solid rgba(0,0,0,.2); 46 | .box-shadow(0 1px 3px rgba(0,0,0,.1)); 47 | } 48 | 49 | // Perfect circle 50 | .img-circle { 51 | .border-radius(500px); // crank the border-radius so it works with most reasonably sized images 52 | } 53 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files 7 | 8 | // Make wrapper ul behave like the grid 9 | .thumbnails { 10 | margin-left: -@gridGutterWidth; 11 | list-style: none; 12 | .clearfix(); 13 | } 14 | // Fluid rows have no left margin 15 | .row-fluid .thumbnails { 16 | margin-left: 0; 17 | } 18 | 19 | // Float li to make thumbnails appear in a row 20 | .thumbnails > li { 21 | float: left; // Explicity set the float since we don't require .span* classes 22 | margin-bottom: @baseLineHeight; 23 | margin-left: @gridGutterWidth; 24 | } 25 | 26 | // The actual thumbnail (can be `a` or `div`) 27 | .thumbnail { 28 | display: block; 29 | padding: 4px; 30 | line-height: @baseLineHeight; 31 | border: 1px solid #ddd; 32 | .border-radius(@baseBorderRadius); 33 | .box-shadow(0 1px 3px rgba(0,0,0,.055)); 34 | .transition(all .2s ease-in-out); 35 | } 36 | // Add a hover state for linked versions only 37 | a.thumbnail:hover { 38 | border-color: @linkColor; 39 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 40 | } 41 | 42 | // Images and captions 43 | .thumbnail > img { 44 | display: block; 45 | max-width: 100%; 46 | margin-left: auto; 47 | margin-right: auto; 48 | } 49 | .thumbnail .caption { 50 | padding: 9px; 51 | color: @gray; 52 | } 53 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/tooltip.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: @zindexTooltip; 10 | display: block; 11 | visibility: visible; 12 | padding: 5px; 13 | font-size: 11px; 14 | .opacity(0); 15 | &.in { .opacity(80); } 16 | &.top { margin-top: -3px; } 17 | &.right { margin-left: 3px; } 18 | &.bottom { margin-top: 3px; } 19 | &.left { margin-left: -3px; } 20 | } 21 | 22 | // Wrapper for the tooltip content 23 | .tooltip-inner { 24 | max-width: 200px; 25 | padding: 3px 8px; 26 | color: @tooltipColor; 27 | text-align: center; 28 | text-decoration: none; 29 | background-color: @tooltipBackground; 30 | .border-radius(@baseBorderRadius); 31 | } 32 | 33 | // Arrows 34 | .tooltip-arrow { 35 | position: absolute; 36 | width: 0; 37 | height: 0; 38 | border-color: transparent; 39 | border-style: solid; 40 | } 41 | .tooltip { 42 | &.top .tooltip-arrow { 43 | bottom: 0; 44 | left: 50%; 45 | margin-left: -@tooltipArrowWidth; 46 | border-width: @tooltipArrowWidth @tooltipArrowWidth 0; 47 | border-top-color: @tooltipArrowColor; 48 | } 49 | &.right .tooltip-arrow { 50 | top: 50%; 51 | left: 0; 52 | margin-top: -@tooltipArrowWidth; 53 | border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; 54 | border-right-color: @tooltipArrowColor; 55 | } 56 | &.left .tooltip-arrow { 57 | top: 50%; 58 | right: 0; 59 | margin-top: -@tooltipArrowWidth; 60 | border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; 61 | border-left-color: @tooltipArrowColor; 62 | } 63 | &.bottom .tooltip-arrow { 64 | top: 0; 65 | left: 50%; 66 | margin-left: -@tooltipArrowWidth; 67 | border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; 68 | border-bottom-color: @tooltipArrowColor; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Quick floats 7 | .pull-right { 8 | float: right; 9 | } 10 | .pull-left { 11 | float: left; 12 | } 13 | 14 | // Toggling content 15 | .hide { 16 | display: none; 17 | } 18 | .show { 19 | display: block; 20 | } 21 | 22 | // Visibility 23 | .invisible { 24 | visibility: hidden; 25 | } 26 | 27 | // For Affix plugin 28 | .affix { 29 | position: fixed; 30 | } 31 | -------------------------------------------------------------------------------- /resources/public/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @wellBackground; 12 | border: 1px solid darken(@wellBackground, 7%); 13 | .border-radius(@baseBorderRadius); 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-large { 23 | padding: 24px; 24 | .border-radius(@borderRadiusLarge); 25 | } 26 | .well-small { 27 | padding: 9px; 28 | .border-radius(@borderRadiusSmall); 29 | } 30 | -------------------------------------------------------------------------------- /resources/public/bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap" 3 | , "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development." 4 | , "version": "2.2.1" 5 | , "keywords": ["bootstrap", "css"] 6 | , "homepage": "http://twitter.github.com/bootstrap/" 7 | , "author": "Twitter Inc." 8 | , "scripts": { "test": "make test" } 9 | , "repository": { 10 | "type": "git" 11 | , "url": "https://github.com/twitter/bootstrap.git" 12 | } 13 | , "licenses": [ 14 | { 15 | "type": "Apache-2.0" 16 | , "url": "http://www.apache.org/licenses/LICENSE-2.0" 17 | } 18 | ] 19 | , "devDependencies": { 20 | "uglify-js": "1.2.6" 21 | , "jshint": "0.6.1" 22 | , "recess": "1.0.3" 23 | , "connect": "2.1.3" 24 | } 25 | } -------------------------------------------------------------------------------- /resources/public/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/.DS_Store -------------------------------------------------------------------------------- /resources/public/css/base.css: -------------------------------------------------------------------------------- 1 | .hide {display: none} -------------------------------------------------------------------------------- /resources/public/css/ie.css: -------------------------------------------------------------------------------- 1 | /* ----------------------------------------------------------------------- 2 | 3 | 4 | Blueprint CSS Framework 1.0.1 5 | http://blueprintcss.org 6 | 7 | * Copyright (c) 2007-Present. See LICENSE for more info. 8 | * See README for instructions on how to use Blueprint. 9 | * For credits and origins, see AUTHORS. 10 | * This is a compressed file. See the sources in the 'src' directory. 11 | 12 | ----------------------------------------------------------------------- */ 13 | 14 | /* ie.css */ 15 | body {text-align:center;} 16 | .container {text-align:left;} 17 | * html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} 18 | * html legend {margin:0px -8px 16px 0;padding:0;} 19 | sup {vertical-align:text-top;} 20 | sub {vertical-align:text-bottom;} 21 | html>body p code {*white-space:normal;} 22 | hr {margin:-8px auto 11px;} 23 | img {-ms-interpolation-mode:bicubic;} 24 | .clearfix, .container {display:inline-block;} 25 | * html .clearfix, * html .container {height:1%;} 26 | fieldset {padding-top:0;} 27 | legend {margin-top:-0.2em;margin-bottom:1em;margin-left:-0.5em;} 28 | textarea {overflow:auto;} 29 | label {vertical-align:middle;position:relative;top:-0.25em;} 30 | input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} 31 | input.text:focus, input.title:focus {border-color:#666;} 32 | input.text, input.title, textarea, select {margin:0.5em 0;} 33 | input.checkbox, input.radio {position:relative;top:.25em;} 34 | form.inline div, form.inline p {vertical-align:middle;} 35 | form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} 36 | button, input.button {position:relative;top:0.25em;} -------------------------------------------------------------------------------- /resources/public/css/plugins/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/.DS_Store -------------------------------------------------------------------------------- /resources/public/css/plugins/buttons/icons/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/buttons/icons/cross.png -------------------------------------------------------------------------------- /resources/public/css/plugins/buttons/icons/key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/buttons/icons/key.png -------------------------------------------------------------------------------- /resources/public/css/plugins/buttons/icons/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/buttons/icons/tick.png -------------------------------------------------------------------------------- /resources/public/css/plugins/buttons/readme.txt: -------------------------------------------------------------------------------- 1 | Buttons 2 | 3 | * Gives you great looking CSS buttons, for both and 25 | 26 | 27 | Change Password 28 | 29 | 30 | 31 | Cancel 32 | 33 | -------------------------------------------------------------------------------- /resources/public/css/plugins/fancy-type/readme.txt: -------------------------------------------------------------------------------- 1 | Fancy Type 2 | 3 | * Gives you classes to use if you'd like some 4 | extra fancy typography. 5 | 6 | Credits and instructions are specified above each class 7 | in the fancy-type.css file in this directory. 8 | 9 | 10 | Usage 11 | ---------------------------------------------------------------- 12 | 13 | 1) Add this plugin to lib/settings.yml. 14 | See compress.rb for instructions. 15 | -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/doc.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/email.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/external.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/feed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/feed.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/im.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/lock.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/pdf.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/visited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/visited.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/icons/xls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/css/plugins/link-icons/icons/xls.png -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/readme.txt: -------------------------------------------------------------------------------- 1 | Link Icons 2 | * Icons for links based on protocol or file type. 3 | 4 | This is not supported in IE versions < 7. 5 | 6 | 7 | Credits 8 | ---------------------------------------------------------------- 9 | 10 | * Marc Morgan 11 | * Olav Bjorkoy [bjorkoy.com] 12 | 13 | 14 | Usage 15 | ---------------------------------------------------------------- 16 | 17 | 1) Add this line to your HTML: 18 | 19 | -------------------------------------------------------------------------------- /resources/public/css/plugins/link-icons/screen.css: -------------------------------------------------------------------------------- 1 | /* -------------------------------------------------------------- 2 | 3 | link-icons.css 4 | * Icons for links based on protocol or file type. 5 | 6 | See the Readme file in this folder for additional instructions. 7 | 8 | -------------------------------------------------------------- */ 9 | 10 | /* Use this class if a link gets an icon when it shouldn't. */ 11 | body a.noicon { 12 | background:transparent none !important; 13 | padding:0 !important; 14 | margin:0 !important; 15 | } 16 | 17 | /* Make sure the icons are not cut */ 18 | a[href^="http:"], a[href^="https:"], 19 | a[href^="http:"]:visited, a[href^="https:"]:visited, 20 | a[href^="mailto:"], a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], 21 | a[href$=".rss"], a[href$=".rdf"], a[href^="aim:"] { 22 | padding:2px 22px 2px 0; 23 | margin:-2px 0; 24 | background-repeat: no-repeat; 25 | background-position: right center; 26 | } 27 | 28 | /* External links */ 29 | a[href^="http:"] { background-image: url(icons/external.png); } 30 | a[href^="https:"] { background-image: url(icons/lock.png); } 31 | a[href^="mailto:"] { background-image: url(icons/email.png); } 32 | a[href^="http:"]:visited { background-image: url(icons/visited.png); } 33 | 34 | /* Files */ 35 | a[href$=".pdf"] { background-image: url(icons/pdf.png); } 36 | a[href$=".doc"] { background-image: url(icons/doc.png); } 37 | a[href$=".xls"] { background-image: url(icons/xls.png); } 38 | 39 | /* Misc */ 40 | a[href$=".rss"], 41 | a[href$=".rdf"] { background-image: url(icons/feed.png); } 42 | a[href^="aim:"] { background-image: url(icons/im.png); } 43 | -------------------------------------------------------------------------------- /resources/public/css/plugins/rtl/readme.txt: -------------------------------------------------------------------------------- 1 | RTL 2 | * Mirrors Blueprint, so it can be used with Right-to-Left languages. 3 | 4 | By Ran Yaniv Hartstein, ranh.co.il 5 | 6 | Usage 7 | ---------------------------------------------------------------- 8 | 9 | 1) Add this line to your HTML: 10 | 11 | -------------------------------------------------------------------------------- /resources/public/css/print.css: -------------------------------------------------------------------------------- 1 | /* ----------------------------------------------------------------------- 2 | 3 | 4 | Blueprint CSS Framework 1.0.1 5 | http://blueprintcss.org 6 | 7 | * Copyright (c) 2007-Present. See LICENSE for more info. 8 | * See README for instructions on how to use Blueprint. 9 | * For credits and origins, see AUTHORS. 10 | * This is a compressed file. See the sources in the 'src' directory. 11 | 12 | ----------------------------------------------------------------------- */ 13 | 14 | /* print.css */ 15 | body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} 16 | .container {background:none;} 17 | hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} 18 | hr.space {background:#fff;color:#fff;visibility:hidden;} 19 | h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} 20 | code {font:.9em "Courier New", Monaco, Courier, monospace;} 21 | a img {border:none;} 22 | p img.top {margin-top:0;} 23 | blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} 24 | .small {font-size:.9em;} 25 | .large {font-size:1.1em;} 26 | .quiet {color:#999;} 27 | .hide {display:none;} 28 | a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} 29 | a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} -------------------------------------------------------------------------------- /resources/public/img/timeline_century_tick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/img/timeline_century_tick.gif -------------------------------------------------------------------------------- /resources/public/img/timeline_decade_tick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/img/timeline_decade_tick.gif -------------------------------------------------------------------------------- /resources/public/js/timeline.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Timeliner.js 3 | * @version 1.4 4 | * @copyright Tarek Anandan (http://www.technotarek.com) 5 | */ 6 | ;(function(e){var t;e.timeliner=function(n){t=jQuery.extend({timelineContainer:"#timelineContainer",startState:"closed",startOpen:"",baseSpeed:200,speed:4,fontOpen:"1.2em",fontClosed:"1em",expandAllText:"+ expand all",collapseAllText:"- collapse all"},n);e(document).ready(function(){function n(n,r){e(n).removeClass("closed").addClass("open").animate({fontSize:t.fontOpen},t.baseSpeed);e(r).show(t.speed*t.baseSpeed)}function r(n,r){e(n).animate({fontSize:t.fontClosed},0).removeClass("open").addClass("closed");e(r).hide(t.speed*t.baseSpeed)}if(t.startState==="closed"){e(".timelineEvent").hide();n(e(t.startOpen).parent(".timelineMinor").find("dt a"),e(t.startOpen))}else{n(e(".timelineMinor dt, .timelineMinor dt a"),e(".timelineEvent"))}e(".timelineMinor dt").click(function(){var t=e(this).attr("id");if(e(this).find("a").is(".open")){r(e("a",this),e("#"+t+"EX"))}else{n(e("a",this),e("#"+t+"EX"))}});e(".timelineMajorMarker").click(function(){var t=e(this).parents(".timelineMajor").find(".timelineMinor").length;var i=e(this).parents(".timelineMajor").find(".open").length;if(t>i){n(e(this).parents(".timelineMajor").find("dt a","dl.timelineMinor"),e(this).parents(".timelineMajor").find(".timelineEvent"))}else{r(e(this).parents(".timelineMajor").find("dl.timelineMinor a"),e(this).parents(".timelineMajor").find(".timelineEvent"))}});e(".expandAll").click(function(){if(e(this).hasClass("expanded")){r(e(this).parents(t.timelineContainer).find("dt a","dl.timelineMinor"),e(this).parents(t.timelineContainer).find(".timelineEvent"));e(this).removeClass("expanded").html(t.expandAllText)}else{n(e(this).parents(t.timelineContainer).find("dt a","dl.timelineMinor"),e(this).parents(t.timelineContainer).find(".timelineEvent"));e(this).addClass("expanded").html(t.collapseAllText)}})})}})(jQuery) -------------------------------------------------------------------------------- /resources/public/markdown/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/resources/public/markdown/.DS_Store -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 by Marijn Haverbeke 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | Please note that some subdirectories of the CodeMirror distribution 22 | include their own LICENSE files, and are released under different 23 | licences. 24 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror [![Build Status](https://secure.travis-ci.org/marijnh/CodeMirror.png?branch=master)](http://travis-ci.org/marijnh/CodeMirror) 2 | 3 | CodeMirror is a JavaScript component that provides a code editor in 4 | the browser. When a mode is available for the language you are coding 5 | in, it will color your code, and optionally help with indentation. 6 | 7 | The project page is http://codemirror.net 8 | The manual is at http://codemirror.net/doc/manual.html 9 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/marijnh/CodeMirror/blob/master/CONTRIBUTING.md) 10 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/display/placeholder.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { 3 | var prev = old && old != CodeMirror.Init; 4 | if (val && !prev) { 5 | cm.on("focus", onFocus); 6 | cm.on("blur", onBlur); 7 | cm.on("change", onChange); 8 | onChange(cm); 9 | } else if (!val && prev) { 10 | cm.off("focus", onFocus); 11 | cm.off("blur", onBlur); 12 | cm.off("change", onChange); 13 | clearPlaceholder(cm); 14 | var wrapper = cm.getWrapperElement(); 15 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", ""); 16 | } 17 | 18 | if (val && !cm.hasFocus()) onBlur(cm); 19 | }); 20 | 21 | function clearPlaceholder(cm) { 22 | if (cm._placeholder) { 23 | cm._placeholder.parentNode.removeChild(cm._placeholder); 24 | cm._placeholder = null; 25 | } 26 | } 27 | function setPlaceholder(cm) { 28 | clearPlaceholder(cm); 29 | var elt = cm._placeholder = document.createElement("pre"); 30 | elt.style.cssText = "height: 0; overflow: visible"; 31 | elt.className = "CodeMirror-placeholder"; 32 | elt.appendChild(document.createTextNode(cm.getOption("placeholder"))); 33 | cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild); 34 | } 35 | 36 | function onFocus(cm) { 37 | clearPlaceholder(cm); 38 | } 39 | function onBlur(cm) { 40 | if (isEmpty(cm)) setPlaceholder(cm); 41 | } 42 | function onChange(cm) { 43 | var wrapper = cm.getWrapperElement(), empty = isEmpty(cm); 44 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : ""); 45 | 46 | if (cm.hasFocus()) return; 47 | if (empty) setPlaceholder(cm); 48 | else clearPlaceholder(cm); 49 | } 50 | 51 | function isEmpty(cm) { 52 | return (cm.lineCount() === 1) && (cm.getLine(0) === ""); 53 | } 54 | })(); 55 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/edit/continuecomment.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var modes = ["clike", "css", "javascript"]; 3 | for (var i = 0; i < modes.length; ++i) 4 | CodeMirror.extendMode(modes[i], {blockCommentStart: "/*", 5 | blockCommentEnd: "*/", 6 | blockCommentContinue: " * "}); 7 | 8 | function continueComment(cm) { 9 | var pos = cm.getCursor(), token = cm.getTokenAt(pos); 10 | var mode = CodeMirror.innerMode(cm.getMode(), token.state).mode; 11 | var space; 12 | 13 | if (token.type == "comment" && mode.blockCommentStart) { 14 | var end = token.string.indexOf(mode.blockCommentEnd); 15 | var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found; 16 | if (end != -1 && end == token.string.length - mode.blockCommentEnd.length) { 17 | // Comment ended, don't continue it 18 | } else if (token.string.indexOf(mode.blockCommentStart) == 0) { 19 | space = full.slice(0, token.start); 20 | if (!/^\s*$/.test(space)) { 21 | space = ""; 22 | for (var i = 0; i < token.start; ++i) space += " "; 23 | } 24 | } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 && 25 | found + mode.blockCommentContinue.length > token.start && 26 | /^\s*$/.test(full.slice(0, found))) { 27 | space = full.slice(0, found); 28 | } 29 | } 30 | 31 | if (space != null) 32 | cm.replaceSelection("\n" + space + mode.blockCommentContinue, "end"); 33 | else 34 | return CodeMirror.Pass; 35 | } 36 | 37 | CodeMirror.defineOption("continueComments", null, function(cm, val, prev) { 38 | if (prev && prev != CodeMirror.Init) 39 | cm.removeKeyMap("continueComment"); 40 | var map = {name: "continueComment"}; 41 | map[typeof val == "string" ? val : "Enter"] = continueComment; 42 | cm.addKeyMap(map); 43 | }); 44 | })(); 45 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/edit/continuelist.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/, 5 | unorderedBullets = '*+-'; 6 | 7 | CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { 8 | var pos = cm.getCursor(), 9 | inList = cm.getStateAfter(pos.line).list, 10 | match; 11 | 12 | if (!inList || !(match = cm.getLine(pos.line).match(listRE))) { 13 | cm.execCommand('newlineAndIndent'); 14 | return; 15 | } 16 | 17 | var indent = match[1], after = match[4]; 18 | var bullet = unorderedBullets.indexOf(match[2]) >= 0 19 | ? match[2] 20 | : (parseInt(match[3], 10) + 1) + '.'; 21 | 22 | cm.replaceSelection('\n' + indent + bullet + after, 'end'); 23 | }; 24 | 25 | }()); 26 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/fold/brace-fold.js: -------------------------------------------------------------------------------- 1 | CodeMirror.braceRangeFinder = function(cm, start) { 2 | var line = start.line, lineText = cm.getLine(line); 3 | var at = lineText.length, startChar, tokenType; 4 | for (;;) { 5 | var found = lineText.lastIndexOf("{", at); 6 | if (found < start.ch) break; 7 | tokenType = cm.getTokenAt(CodeMirror.Pos(line, found + 1)).type; 8 | if (!/^(comment|string)/.test(tokenType)) { startChar = found; break; } 9 | at = found - 1; 10 | } 11 | if (startChar == null || lineText.lastIndexOf("}") > startChar) return; 12 | var count = 1, lastLine = cm.lineCount(), end, endCh; 13 | outer: for (var i = line + 1; i < lastLine; ++i) { 14 | var text = cm.getLine(i), pos = 0; 15 | for (;;) { 16 | var nextOpen = text.indexOf("{", pos), nextClose = text.indexOf("}", pos); 17 | if (nextOpen < 0) nextOpen = text.length; 18 | if (nextClose < 0) nextClose = text.length; 19 | pos = Math.min(nextOpen, nextClose); 20 | if (pos == text.length) break; 21 | if (cm.getTokenAt(CodeMirror.Pos(i, pos + 1)).type == tokenType) { 22 | if (pos == nextOpen) ++count; 23 | else if (!--count) { end = i; endCh = pos; break outer; } 24 | } 25 | ++pos; 26 | } 27 | } 28 | if (end == null || end == line + 1) return; 29 | return {from: CodeMirror.Pos(line, startChar + 1), 30 | to: CodeMirror.Pos(end, endCh)}; 31 | }; 32 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/fold/foldcode.js: -------------------------------------------------------------------------------- 1 | CodeMirror.newFoldFunction = function(rangeFinder, widget) { 2 | if (widget == null) widget = "\u2194"; 3 | if (typeof widget == "string") { 4 | var text = document.createTextNode(widget); 5 | widget = document.createElement("span"); 6 | widget.appendChild(text); 7 | widget.className = "CodeMirror-foldmarker"; 8 | } 9 | 10 | return function(cm, pos) { 11 | if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0); 12 | var range = rangeFinder(cm, pos); 13 | if (!range) return; 14 | 15 | var present = cm.findMarksAt(range.from), cleared = 0; 16 | for (var i = 0; i < present.length; ++i) { 17 | if (present[i].__isFold) { 18 | ++cleared; 19 | present[i].clear(); 20 | } 21 | } 22 | if (cleared) return; 23 | 24 | var myWidget = widget.cloneNode(true); 25 | CodeMirror.on(myWidget, "mousedown", function() {myRange.clear();}); 26 | var myRange = cm.markText(range.from, range.to, { 27 | replacedWith: myWidget, 28 | clearOnEnter: true, 29 | __isFold: true 30 | }); 31 | }; 32 | }; 33 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | CodeMirror.indentRangeFinder = function(cm, start) { 2 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line); 3 | var myIndent = CodeMirror.countColumn(firstLine, null, tabSize); 4 | for (var i = start.line + 1, end = cm.lineCount(); i < end; ++i) { 5 | var curLine = cm.getLine(i); 6 | if (CodeMirror.countColumn(curLine, null, tabSize) < myIndent && 7 | CodeMirror.countColumn(cm.getLine(i-1), null, tabSize) > myIndent) 8 | return {from: CodeMirror.Pos(start.line, firstLine.length), 9 | to: CodeMirror.Pos(i, curLine.length)}; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | .CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 2 | 3 | CodeMirror.jsonValidator = function(text) { 4 | var found = []; 5 | jsonlint.parseError = function(str, hash) { 6 | var loc = hash.loc; 7 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 8 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 9 | message: str}); 10 | }; 11 | try { jsonlint.parse(text); } 12 | catch(e) {} 13 | return found; 14 | }; 15 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/mode/loadmode.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js"; 3 | 4 | var loading = {}; 5 | function splitCallback(cont, n) { 6 | var countDown = n; 7 | return function() { if (--countDown == 0) cont(); }; 8 | } 9 | function ensureDeps(mode, cont) { 10 | var deps = CodeMirror.modes[mode].dependencies; 11 | if (!deps) return cont(); 12 | var missing = []; 13 | for (var i = 0; i < deps.length; ++i) { 14 | if (!CodeMirror.modes.hasOwnProperty(deps[i])) 15 | missing.push(deps[i]); 16 | } 17 | if (!missing.length) return cont(); 18 | var split = splitCallback(cont, missing.length); 19 | for (var i = 0; i < missing.length; ++i) 20 | CodeMirror.requireMode(missing[i], split); 21 | } 22 | 23 | CodeMirror.requireMode = function(mode, cont) { 24 | if (typeof mode != "string") mode = mode.name; 25 | if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont); 26 | if (loading.hasOwnProperty(mode)) return loading[mode].push(cont); 27 | 28 | var script = document.createElement("script"); 29 | script.src = CodeMirror.modeURL.replace(/%N/g, mode); 30 | var others = document.getElementsByTagName("script")[0]; 31 | others.parentNode.insertBefore(script, others); 32 | var list = loading[mode] = [cont]; 33 | var count = 0, poll = setInterval(function() { 34 | if (++count > 100) return clearInterval(poll); 35 | if (CodeMirror.modes.hasOwnProperty(mode)) { 36 | clearInterval(poll); 37 | loading[mode] = null; 38 | ensureDeps(mode, function() { 39 | for (var i = 0; i < list.length; ++i) list[i](); 40 | }); 41 | } 42 | }, 200); 43 | }; 44 | 45 | CodeMirror.autoLoadMode = function(instance, mode) { 46 | if (!CodeMirror.modes.hasOwnProperty(mode)) 47 | CodeMirror.requireMode(mode, function() { 48 | instance.setOption("mode", instance.getOption("mode")); 49 | }); 50 | }; 51 | }()); 52 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | CodeMirror.colorize = (function() { 2 | 3 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 4 | 5 | function textContent(node, out) { 6 | if (node.nodeType == 3) return out.push(node.nodeValue); 7 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 8 | textContent(ch, out); 9 | if (isBlock.test(node.nodeType)) out.push("\n"); 10 | } 11 | } 12 | 13 | return function(collection, defaultMode) { 14 | if (!collection) collection = document.body.getElementsByTagName("pre"); 15 | 16 | for (var i = 0; i < collection.length; ++i) { 17 | var node = collection[i]; 18 | var mode = node.getAttribute("data-lang") || defaultMode; 19 | if (!mode) continue; 20 | 21 | var text = []; 22 | textContent(node, text); 23 | node.innerHTML = ""; 24 | CodeMirror.runMode(text.join(""), mode, node); 25 | 26 | node.className += " cm-s-default"; 27 | } 28 | }; 29 | })(); 30 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/runmode/runmode.js: -------------------------------------------------------------------------------- 1 | CodeMirror.runMode = function(string, modespec, callback, options) { 2 | var mode = CodeMirror.getMode(CodeMirror.defaults, modespec); 3 | 4 | if (callback.nodeType == 1) { 5 | var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize; 6 | var node = callback, col = 0; 7 | node.innerHTML = ""; 8 | callback = function(text, style) { 9 | if (text == "\n") { 10 | node.appendChild(document.createElement("br")); 11 | col = 0; 12 | return; 13 | } 14 | var content = ""; 15 | // replace tabs 16 | for (var pos = 0;;) { 17 | var idx = text.indexOf("\t", pos); 18 | if (idx == -1) { 19 | content += text.slice(pos); 20 | col += text.length - pos; 21 | break; 22 | } else { 23 | col += idx - pos; 24 | content += text.slice(pos, idx); 25 | var size = tabSize - col % tabSize; 26 | col += size; 27 | for (var i = 0; i < size; ++i) content += " "; 28 | pos = idx + 1; 29 | } 30 | } 31 | 32 | if (style) { 33 | var sp = node.appendChild(document.createElement("span")); 34 | sp.className = "cm-" + style.replace(/ +/g, " cm-"); 35 | sp.appendChild(document.createTextNode(content)); 36 | } else { 37 | node.appendChild(document.createTextNode(content)); 38 | } 39 | }; 40 | } 41 | 42 | var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode); 43 | for (var i = 0, e = lines.length; i < e; ++i) { 44 | if (i) callback("\n"); 45 | var stream = new CodeMirror.StringStream(lines[i]); 46 | while (!stream.eol()) { 47 | var style = mode.token(stream, state); 48 | callback(stream.current(), style, i, stream.start); 49 | stream.start = stream.pos; 50 | } 51 | } 52 | }; 53 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/selection/active-line.js: -------------------------------------------------------------------------------- 1 | // Because sometimes you need to style the cursor's line. 2 | // 3 | // Adds an option 'styleActiveLine' which, when enabled, gives the 4 | // active line's wrapping
the CSS class "CodeMirror-activeline", 5 | // and gives its background
the class "CodeMirror-activeline-background". 6 | 7 | (function() { 8 | "use strict"; 9 | var WRAP_CLASS = "CodeMirror-activeline"; 10 | var BACK_CLASS = "CodeMirror-activeline-background"; 11 | 12 | CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) { 13 | var prev = old && old != CodeMirror.Init; 14 | if (val && !prev) { 15 | updateActiveLine(cm); 16 | cm.on("cursorActivity", updateActiveLine); 17 | } else if (!val && prev) { 18 | cm.off("cursorActivity", updateActiveLine); 19 | clearActiveLine(cm); 20 | delete cm._activeLine; 21 | } 22 | }); 23 | 24 | function clearActiveLine(cm) { 25 | if ("_activeLine" in cm) { 26 | cm.removeLineClass(cm._activeLine, "wrap", WRAP_CLASS); 27 | cm.removeLineClass(cm._activeLine, "background", BACK_CLASS); 28 | } 29 | } 30 | 31 | function updateActiveLine(cm) { 32 | var line = cm.getLineHandle(cm.getCursor().line); 33 | if (cm._activeLine == line) return; 34 | clearActiveLine(cm); 35 | cm.addLineClass(line, "wrap", WRAP_CLASS); 36 | cm.addLineClass(line, "background", BACK_CLASS); 37 | cm._activeLine = line; 38 | } 39 | })(); 40 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/addon/selection/mark-selection.js: -------------------------------------------------------------------------------- 1 | // Because sometimes you need to mark the selected *text*. 2 | // 3 | // Adds an option 'styleSelectedText' which, when enabled, gives 4 | // selected text the CSS class "CodeMirror-selectedtext". 5 | 6 | (function() { 7 | "use strict"; 8 | 9 | CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) { 10 | var prev = old && old != CodeMirror.Init; 11 | if (val && !prev) { 12 | updateSelectedText(cm); 13 | cm.on("cursorActivity", updateSelectedText); 14 | } else if (!val && prev) { 15 | cm.off("cursorActivity", updateSelectedText); 16 | clearSelectedText(cm); 17 | delete cm._selectionMark; 18 | } 19 | }); 20 | 21 | function clearSelectedText(cm) { 22 | if (cm._selectionMark) cm._selectionMark.clear(); 23 | } 24 | 25 | function updateSelectedText(cm) { 26 | clearSelectedText(cm); 27 | 28 | if (cm.somethingSelected()) 29 | cm._selectionMark = cm.markText(cm.getCursor("start"), cm.getCursor("end"), 30 | {className: "CodeMirror-selectedtext"}); 31 | else 32 | cm._selectionMark = null; 33 | } 34 | })(); 35 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/keymap/emacs.js: -------------------------------------------------------------------------------- 1 | // TODO number prefixes 2 | (function() { 3 | // Really primitive kill-ring implementation. 4 | var killRing = []; 5 | function addToRing(str) { 6 | killRing.push(str); 7 | if (killRing.length > 50) killRing.shift(); 8 | } 9 | function getFromRing() { return killRing[killRing.length - 1] || ""; } 10 | function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); } 11 | 12 | CodeMirror.keyMap.emacs = { 13 | "Ctrl-X": function(cm) {cm.setOption("keyMap", "emacs-Ctrl-X");}, 14 | "Ctrl-W": function(cm) {addToRing(cm.getSelection()); cm.replaceSelection("");}, 15 | "Ctrl-Alt-W": function(cm) {addToRing(cm.getSelection()); cm.replaceSelection("");}, 16 | "Alt-W": function(cm) {addToRing(cm.getSelection());}, 17 | "Ctrl-Y": function(cm) {cm.replaceSelection(getFromRing());}, 18 | "Alt-Y": function(cm) {cm.replaceSelection(popFromRing());}, 19 | "Ctrl-/": "undo", "Shift-Ctrl--": "undo", "Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd", 20 | "Ctrl-S": "findNext", "Ctrl-R": "findPrev", "Ctrl-G": "clearSearch", "Shift-Alt-5": "replace", 21 | "Ctrl-Z": "undo", "Cmd-Z": "undo", "Alt-/": "autocomplete", "Alt-V": "goPageUp", 22 | "Ctrl-J": "newlineAndIndent", "Enter": false, "Tab": "indentAuto", 23 | fallthrough: ["basic", "emacsy"] 24 | }; 25 | 26 | CodeMirror.keyMap["emacs-Ctrl-X"] = { 27 | "Ctrl-S": "save", "Ctrl-W": "save", "S": "saveAll", "F": "open", "U": "undo", "K": "close", 28 | auto: "emacs", nofallthrough: true 29 | }; 30 | })(); 31 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/apl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: APL mode 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 |

CodeMirror: APL mode

17 | 18 |
44 | 45 | 52 | 53 |

Simple mode that tries to handle APL as well as it can.

54 |

It attempts to label functions/operators based upon 55 | monadic/dyadic usage (but this is far from fully fleshed out). 56 | This means there are meaningful classnames so hover states can 57 | have popups etc.

58 | 59 |

MIME types defined: text/apl (APL code)

60 | 61 | 62 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/coffeescript/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2011 Jeff Pickhardt 4 | Modified from the Python CodeMirror mode, Copyright (c) 2010 Timothy Farrell 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/css/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: CSS mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: CSS mode

14 |
49 | 52 | 53 |

MIME types defined: text/css.

54 | 55 |

Parsing/Highlighting Tests: normal, verbose.

56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("diff", function() { 2 | 3 | var TOKEN_NAMES = { 4 | '+': 'positive', 5 | '-': 'negative', 6 | '@': 'meta' 7 | }; 8 | 9 | return { 10 | token: function(stream) { 11 | var tw_pos = stream.string.search(/[\t ]+?$/); 12 | 13 | if (!stream.sol() || tw_pos === 0) { 14 | stream.skipToEnd(); 15 | return ("error " + ( 16 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 17 | } 18 | 19 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 20 | 21 | if (tw_pos === -1) { 22 | stream.skipToEnd(); 23 | } else { 24 | stream.pos = tw_pos; 25 | } 26 | 27 | return token_name; 28 | } 29 | }; 30 | }); 31 | 32 | CodeMirror.defineMIME("text/x-diff", "diff"); 33 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/ecl/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | CodeMirror: ECL mode 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

CodeMirror: ECL mode

13 |
31 | 34 | 35 |

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

36 |

MIME types defined: text/x-ecl.

37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/erlang/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Erlang mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

CodeMirror: Erlang mode

16 | 17 |
52 | 53 | 61 | 62 |

MIME types defined: text/x-erlang.

63 | 64 | 65 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/gas/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Gas mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Gas mode

14 | 15 |
16 | 38 |
39 | 40 | 46 | 47 |

Handles AT&T assembler syntax (more specifically this handles 48 | the GNU Assembler (gas) syntax.) 49 | It takes a single optional configuration parameter: 50 | architecture, which can be one of "ARM", 51 | "ARMv6" or "x86". 52 | Including the parameter adds syntax for the registers and special 53 | directives for the supplied architecture. 54 | 55 |

MIME types defined: text/x-gas

56 | 57 | 58 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/go/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Go mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

CodeMirror: Go mode

16 | 17 |
60 | 61 | 71 | 72 |

MIME type: text/x-go

73 | 74 | 75 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/groovy/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Groovy mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

CodeMirror: Groovy mode

15 | 16 |
62 | 63 | 70 | 71 |

MIME types defined: text/x-groovy

72 | 73 | 74 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/haskell/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Haskell mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

CodeMirror: Haskell mode

16 | 17 |
51 | 52 | 59 | 60 |

MIME types defined: text/x-haskell.

61 | 62 | 63 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/haxe/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Haxe mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Haxe mode

14 | 15 |
79 | 80 | 87 | 88 |

MIME types defined: text/x-haxe.

89 | 90 | 91 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/htmlembedded/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Html Embedded Scripts mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

CodeMirror: Html Embedded Scripts mode

18 | 19 |
31 | 32 | 42 | 43 |

Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on 44 | JavaScript, CSS and XML.
Other dependancies include those of the scriping language chosen.

45 | 46 |

MIME types defined: application/x-aspx (ASP.NET), 47 | application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages)

48 | 49 | 50 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: HTTP mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: HTTP mode

14 | 15 |
25 | 26 | 29 | 30 |

MIME types defined: message/http.

31 | 32 | 33 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/javascript/typescript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: TypeScript mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: TypeScript mode

14 | 15 |
37 | 38 | 45 | 46 |

This is a specialization of the JavaScript mode.

47 | 48 | 49 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/jinja2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Jinja2 mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Jinja2 mode

14 |
32 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/jinja2/jinja2.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("jinja2", function() { 2 | var keywords = ["block", "endblock", "for", "endfor", "in", "true", "false", 3 | "loop", "none", "self", "super", "if", "as", "not", "and", 4 | "else", "import", "with", "without", "context"]; 5 | keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); 6 | 7 | function tokenBase (stream, state) { 8 | var ch = stream.next(); 9 | if (ch == "{") { 10 | if (ch = stream.eat(/\{|%|#/)) { 11 | stream.eat("-"); 12 | state.tokenize = inTag(ch); 13 | return "tag"; 14 | } 15 | } 16 | } 17 | function inTag (close) { 18 | if (close == "{") { 19 | close = "}"; 20 | } 21 | return function (stream, state) { 22 | var ch = stream.next(); 23 | if ((ch == close || (ch == "-" && stream.eat(close))) 24 | && stream.eat("}")) { 25 | state.tokenize = tokenBase; 26 | return "tag"; 27 | } 28 | if (stream.match(keywords)) { 29 | return "keyword"; 30 | } 31 | return close == "#" ? "comment" : "string"; 32 | }; 33 | } 34 | return { 35 | startState: function () { 36 | return {tokenize: tokenBase}; 37 | }, 38 | token: function (stream, state) { 39 | return state.tokenize(stream, state); 40 | } 41 | }; 42 | }); 43 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/livescript/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2013 Kenneth Bentley 4 | Modified from the CoffeeScript CodeMirror mode, Copyright (c) 2011 Jeff Pickhardt 5 | Modified from the Python CodeMirror mode, Copyright (c) 2010 Timothy Farrell 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/lua/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Lua mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

CodeMirror: Lua mode

16 |
57 | 64 | 65 |

Loosely based on Franciszek 66 | Wawrzak's CodeMirror 67 | 1 mode. One configuration parameter is 68 | supported, specials, to which you can provide an 69 | array of strings to have those identifiers highlighted with 70 | the lua-special style.

71 |

MIME types defined: text/x-lua.

72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: NTriples mode 6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 |

CodeMirror: NTriples mode

18 |
19 | 26 |
27 | 28 | 31 |

MIME types defined: text/n-triples.

32 | 33 | 34 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/pascal/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 souceLair 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/pascal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Pascal mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Pascal mode

14 | 15 |
38 | 39 | 45 | 46 |

MIME types defined: text/x-pascal.

47 | 48 | 49 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/perl/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 by Sabaca under the MIT license. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/perl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Perl mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Perl mode

14 | 15 |
53 | 54 | 59 | 60 |

MIME types defined: text/x-perl.

61 | 62 | 63 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/php/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: PHP mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

CodeMirror: PHP mode

20 | 21 |
32 | 33 | 44 | 45 |

Simple HTML/PHP mode based on 46 | the C-like mode. Depends on XML, 47 | JavaScript, CSS, HTMLMixed, and C-like modes.

48 | 49 |

MIME types defined: application/x-httpd-php (HTML with PHP code), text/x-php (plain, non-wrapped PHP code).

50 | 51 | 52 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/pig/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Pig Latin mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Pig Latin mode

14 | 15 |
27 | 28 | 35 | 36 |

37 | Simple mode that handles Pig Latin language. 38 |

39 | 40 |

MIME type defined: text/x-pig 41 | (PIG code) 42 | 43 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/properties/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Properties files mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Properties files mode

14 |
33 | 36 | 37 |

MIME types defined: text/x-properties, 38 | text/x-ini.

39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/properties/properties.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("properties", function() { 2 | return { 3 | token: function(stream, state) { 4 | var sol = stream.sol() || state.afterSection; 5 | var eol = stream.eol(); 6 | 7 | state.afterSection = false; 8 | 9 | if (sol) { 10 | if (state.nextMultiline) { 11 | state.inMultiline = true; 12 | state.nextMultiline = false; 13 | } else { 14 | state.position = "def"; 15 | } 16 | } 17 | 18 | if (eol && ! state.nextMultiline) { 19 | state.inMultiline = false; 20 | state.position = "def"; 21 | } 22 | 23 | if (sol) { 24 | while(stream.eatSpace()); 25 | } 26 | 27 | var ch = stream.next(); 28 | 29 | if (sol && (ch === "#" || ch === "!" || ch === ";")) { 30 | state.position = "comment"; 31 | stream.skipToEnd(); 32 | return "comment"; 33 | } else if (sol && ch === "[") { 34 | state.afterSection = true; 35 | stream.skipTo("]"); stream.eat("]"); 36 | return "header"; 37 | } else if (ch === "=" || ch === ":") { 38 | state.position = "quote"; 39 | return null; 40 | } else if (ch === "\\" && state.position === "quote") { 41 | if (stream.next() !== "u") { // u = Unicode sequence \u1234 42 | // Multiline value 43 | state.nextMultiline = true; 44 | } 45 | } 46 | 47 | return state.position; 48 | }, 49 | 50 | startState: function() { 51 | return { 52 | position : "def", // Current position, "def", "quote" or "comment" 53 | nextMultiline : false, // Is the next line multiline value 54 | inMultiline : false, // Is the current line a multiline value 55 | afterSection : false // Did we just open a section 56 | }; 57 | } 58 | 59 | }; 60 | }); 61 | 62 | CodeMirror.defineMIME("text/x-properties", "properties"); 63 | CodeMirror.defineMIME("text/x-ini", "properties"); 64 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/python/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010 Timothy Farrell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/r/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011, Ubalo, Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of the Ubalo, Inc nor the names of its 12 | contributors may be used to endorse or promote products derived 13 | from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL UBALO, INC BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/rpm/changes/changes.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("changes", function() { 2 | var headerSeperator = /^-+$/; 3 | var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; 4 | var simpleEmail = /^[\w+.-]+@[\w.-]+/; 5 | 6 | return { 7 | token: function(stream) { 8 | if (stream.sol()) { 9 | if (stream.match(headerSeperator)) { return 'tag'; } 10 | if (stream.match(headerLine)) { return 'tag'; } 11 | } 12 | if (stream.match(simpleEmail)) { return 'string'; } 13 | stream.next(); 14 | return null; 15 | } 16 | }; 17 | }); 18 | 19 | CodeMirror.defineMIME("text/x-rpm-changes", "changes"); 20 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/rpm/changes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: RPM changes mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: RPM changes mode

14 | 15 |
42 | 50 | 51 |

MIME types defined: text/x-rpm-changes.

52 | 53 | 54 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/rpm/spec/spec.css: -------------------------------------------------------------------------------- 1 | .cm-s-default span.cm-preamble {color: #b26818; font-weight: bold;} 2 | .cm-s-default span.cm-macro {color: #b218b2;} 3 | .cm-s-default span.cm-section {color: green; font-weight: bold;} 4 | .cm-s-default span.cm-script {color: red;} 5 | .cm-s-default span.cm-issue {color: yellow;} 6 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/rst/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2013 Hasan Karahan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/ruby/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011, Ubalo, Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of the Ubalo, Inc. nor the names of its 12 | contributors may be used to endorse or promote products derived 13 | from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL UBALO, INC BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/rust/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Rust mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Rust mode

14 | 15 |
38 | 39 | 45 | 46 |

MIME types defined: text/x-rustsrc.

47 | 48 | 49 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/sass/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Sass mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

CodeMirror: Sass mode

15 |
45 | 51 | 52 |

MIME types defined: text/x-sass.

53 | 54 | 55 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/shell/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Shell mode 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 |

CodeMirror: Shell mode

17 | 18 | 42 | 43 | 50 | 51 |

MIME types defined: text/x-sh.

52 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/sieve/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2012 Thomas Schmid 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/smalltalk/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Smalltalk mode 6 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 |

CodeMirror: Smalltalk mode

19 | 20 |
43 | 44 | 52 | 53 |

Simple Smalltalk mode.

54 | 55 |

MIME types defined: text/x-stsrc.

56 | 57 | 58 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/sparql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: SPARQL mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

CodeMirror: SPARQL mode

15 |
31 | 38 | 39 |

MIME types defined: application/x-sparql-query.

40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/tiki/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CodeMirror: Tiki wiki mode 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Tiki wiki mode

14 | 15 |
72 | 73 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/turtle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Turtle mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Turtle mode

14 |
28 | 35 | 36 |

MIME types defined: text/turtle.

37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/vb/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2012 Codility Limited, 107 Cheapside, London EC2V 6DN, UK 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/vbscript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: VBScript mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: VBScript mode

14 | 15 |
32 | 33 | 38 | 39 |

MIME types defined: text/vbscript.

40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/vbscript/vbscript.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("vbscript", function() { 2 | var regexVBScriptKeyword = /^(?:Call|Case|CDate|Clear|CInt|CLng|Const|CStr|Description|Dim|Do|Each|Else|ElseIf|End|Err|Error|Exit|False|For|Function|If|LCase|Loop|LTrim|Next|Nothing|Now|Number|On|Preserve|Quit|ReDim|Resume|RTrim|Select|Set|Sub|Then|To|Trim|True|UBound|UCase|Until|VbCr|VbCrLf|VbLf|VbTab)$/im; 3 | 4 | return { 5 | token: function(stream) { 6 | if (stream.eatSpace()) return null; 7 | var ch = stream.next(); 8 | if (ch == "'") { 9 | stream.skipToEnd(); 10 | return "comment"; 11 | } 12 | if (ch == '"') { 13 | stream.skipTo('"'); 14 | return "string"; 15 | } 16 | 17 | if (/\w/.test(ch)) { 18 | stream.eatWhile(/\w/); 19 | if (regexVBScriptKeyword.test(stream.current())) return "keyword"; 20 | } 21 | return null; 22 | } 23 | }; 24 | }); 25 | 26 | CodeMirror.defineMIME("text/vbscript", "vbscript"); 27 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/xml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: XML mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: XML mode

14 |
26 | 32 |

The XML mode supports two configuration parameters:

33 |
34 |
htmlMode (boolean)
35 |
This switches the mode to parse HTML instead of XML. This 36 | means attributes do not have to be quoted, and some elements 37 | (such as br) do not require a closing tag.
38 |
alignCDATA (boolean)
39 |
Setting this to true will force the opening tag of CDATA 40 | blocks to not be indented.
41 |
42 | 43 |

MIME types defined: application/xml, text/html.

44 | 45 | 46 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/xquery/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 by MarkLogic Corporation 2 | Author: Mike Brevoort 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/yaml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: YAML mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: YAML mode

14 |
61 | 64 | 65 |

MIME types defined: text/x-yaml.

66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/mode/z80/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: Z80 assembly mode 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

CodeMirror: Z80 assembly mode

14 | 15 |
30 | 31 | 36 | 37 |

MIME type defined: text/x-z80.

38 | 39 | 40 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/blackboard.css: -------------------------------------------------------------------------------- 1 | /* Port of TextMate's Blackboard theme */ 2 | 3 | .cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; } 4 | .cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; } 5 | .cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; } 6 | .cm-s-blackboard .CodeMirror-linenumber { color: #888; } 7 | .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } 8 | 9 | .cm-s-blackboard .cm-keyword { color: #FBDE2D; } 10 | .cm-s-blackboard .cm-atom { color: #D8FA3C; } 11 | .cm-s-blackboard .cm-number { color: #D8FA3C; } 12 | .cm-s-blackboard .cm-def { color: #8DA6CE; } 13 | .cm-s-blackboard .cm-variable { color: #FF6400; } 14 | .cm-s-blackboard .cm-operator { color: #FBDE2D;} 15 | .cm-s-blackboard .cm-comment { color: #AEAEAE; } 16 | .cm-s-blackboard .cm-string { color: #61CE3C; } 17 | .cm-s-blackboard .cm-string-2 { color: #61CE3C; } 18 | .cm-s-blackboard .cm-meta { color: #D8FA3C; } 19 | .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; } 20 | .cm-s-blackboard .cm-builtin { color: #8DA6CE; } 21 | .cm-s-blackboard .cm-tag { color: #8DA6CE; } 22 | .cm-s-blackboard .cm-attribute { color: #8DA6CE; } 23 | .cm-s-blackboard .cm-header { color: #FF6400; } 24 | .cm-s-blackboard .cm-hr { color: #AEAEAE; } 25 | .cm-s-blackboard .cm-link { color: #8DA6CE; } 26 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 4 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 5 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 6 | 7 | .cm-s-cobalt span.cm-comment { color: #08f; } 8 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 9 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 10 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 11 | .cm-s-cobalt span.cm-string { color: #3ad900; } 12 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 13 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 14 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 15 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 16 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 17 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 18 | .cm-s-cobalt span.cm-link { color: #845dc4; } 19 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-error {color: #f00;} 15 | .cm-s-eclipse span.cm-qualifier {color: #555;} 16 | .cm-s-eclipse span.cm-builtin {color: #30a;} 17 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 18 | .cm-s-eclipse span.cm-tag {color: #170;} 19 | .cm-s-eclipse span.cm-attribute {color: #00c;} 20 | .cm-s-eclipse span.cm-link {color: #219;} 21 | 22 | .cm-s-eclipse .CodeMirror-matchingbracket { 23 | outline:1px solid grey; 24 | color:black !important;; 25 | } 26 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-error {background-color: #fdd;} 10 | .cm-s-elegant span.cm-link {color: #762;} 11 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/erlang-dark.css: -------------------------------------------------------------------------------- 1 | .cm-s-erlang-dark.CodeMirror { background: #002240; color: white; } 2 | .cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 4 | .cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; } 5 | .cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; } 6 | 7 | .cm-s-erlang-dark span.cm-atom { color: #845dc4; } 8 | .cm-s-erlang-dark span.cm-attribute { color: #ff80e1; } 9 | .cm-s-erlang-dark span.cm-bracket { color: #ff9d00; } 10 | .cm-s-erlang-dark span.cm-builtin { color: #eaa; } 11 | .cm-s-erlang-dark span.cm-comment { color: #77f; } 12 | .cm-s-erlang-dark span.cm-def { color: #e7a; } 13 | .cm-s-erlang-dark span.cm-error { color: #9d1e15; } 14 | .cm-s-erlang-dark span.cm-keyword { color: #ffee80; } 15 | .cm-s-erlang-dark span.cm-meta { color: #50fefe; } 16 | .cm-s-erlang-dark span.cm-number { color: #ffd0d0; } 17 | .cm-s-erlang-dark span.cm-operator { color: #d11; } 18 | .cm-s-erlang-dark span.cm-string { color: #3ad900; } 19 | .cm-s-erlang-dark span.cm-tag { color: #9effff; } 20 | .cm-s-erlang-dark span.cm-variable { color: #50fe50; } 21 | .cm-s-erlang-dark span.cm-variable-2 { color: #e0e; } 22 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/lesser-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | http://lesscss.org/ dark theme 3 | Ported to CodeMirror by Peter Kroon 4 | */ 5 | .cm-s-lesser-dark { 6 | line-height: 1.3em; 7 | } 8 | .cm-s-lesser-dark { 9 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Monaco', Courier, monospace !important; 10 | } 11 | 12 | .cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; } 13 | .cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/ 14 | .cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; } 15 | .cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/ 16 | 17 | div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/ 18 | 19 | .cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; } 20 | .cm-s-lesser-dark .CodeMirror-linenumber { color: #777; } 21 | 22 | .cm-s-lesser-dark span.cm-keyword { color: #599eff; } 23 | .cm-s-lesser-dark span.cm-atom { color: #C2B470; } 24 | .cm-s-lesser-dark span.cm-number { color: #B35E4D; } 25 | .cm-s-lesser-dark span.cm-def {color: white;} 26 | .cm-s-lesser-dark span.cm-variable { color:#D9BF8C; } 27 | .cm-s-lesser-dark span.cm-variable-2 { color: #669199; } 28 | .cm-s-lesser-dark span.cm-variable-3 { color: white; } 29 | .cm-s-lesser-dark span.cm-property {color: #92A75C;} 30 | .cm-s-lesser-dark span.cm-operator {color: #92A75C;} 31 | .cm-s-lesser-dark span.cm-comment { color: #666; } 32 | .cm-s-lesser-dark span.cm-string { color: #BCD279; } 33 | .cm-s-lesser-dark span.cm-string-2 {color: #f50;} 34 | .cm-s-lesser-dark span.cm-meta { color: #738C73; } 35 | .cm-s-lesser-dark span.cm-error { color: #9d1e15; } 36 | .cm-s-lesser-dark span.cm-qualifier {color: #555;} 37 | .cm-s-lesser-dark span.cm-builtin { color: #ff9e59; } 38 | .cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; } 39 | .cm-s-lesser-dark span.cm-tag { color: #669199; } 40 | .cm-s-lesser-dark span.cm-attribute {color: #00c;} 41 | .cm-s-lesser-dark span.cm-header {color: #a0a;} 42 | .cm-s-lesser-dark span.cm-quote {color: #090;} 43 | .cm-s-lesser-dark span.cm-hr {color: #999;} 44 | .cm-s-lesser-dark span.cm-link {color: #00c;} 45 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} 6 | .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} 7 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 8 | 9 | .cm-s-monokai span.cm-comment {color: #75715e;} 10 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 11 | .cm-s-monokai span.cm-number {color: #ae81ff;} 12 | 13 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 14 | .cm-s-monokai span.cm-keyword {color: #f92672;} 15 | .cm-s-monokai span.cm-string {color: #e6db74;} 16 | 17 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 18 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 19 | .cm-s-monokai span.cm-def {color: #fd971f;} 20 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 21 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 22 | .cm-s-monokai span.cm-tag {color: #f92672;} 23 | .cm-s-monokai span.cm-link {color: #ae81ff;} 24 | 25 | .cm-s-monokai .CodeMirror-matchingbracket { 26 | text-decoration: underline; 27 | color: white !important; 28 | } 29 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/night.css: -------------------------------------------------------------------------------- 1 | /* Loosely based on the Midnight Textmate theme */ 2 | 3 | .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } 4 | .cm-s-night div.CodeMirror-selected { background: #447 !important; } 5 | .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } 6 | .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } 7 | .cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } 8 | 9 | .cm-s-night span.cm-comment { color: #6900a1; } 10 | .cm-s-night span.cm-atom { color: #845dc4; } 11 | .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } 12 | .cm-s-night span.cm-keyword { color: #599eff; } 13 | .cm-s-night span.cm-string { color: #37f14a; } 14 | .cm-s-night span.cm-meta { color: #7678e2; } 15 | .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } 16 | .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } 17 | .cm-s-night span.cm-error { color: #9d1e15; } 18 | .cm-s-night span.cm-bracket { color: #8da6ce; } 19 | .cm-s-night span.cm-comment { color: #6900a1; } 20 | .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } 21 | .cm-s-night span.cm-link { color: #845dc4; } 22 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/rubyblue.css: -------------------------------------------------------------------------------- 1 | .cm-s-rubyblue { font:13px/1.4em Trebuchet, Verdana, sans-serif; } /* - customized editor font - */ 2 | 3 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } 4 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } 5 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } 6 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; } 7 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } 8 | 9 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } 10 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; } 11 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } 12 | .cm-s-rubyblue span.cm-keyword { color: #F0F; } 13 | .cm-s-rubyblue span.cm-string { color: #F08047; } 14 | .cm-s-rubyblue span.cm-meta { color: #F0F; } 15 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } 16 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } 17 | .cm-s-rubyblue span.cm-error { color: #AF2018; } 18 | .cm-s-rubyblue span.cm-bracket { color: #F0F; } 19 | .cm-s-rubyblue span.cm-link { color: #F4C20B; } 20 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } 21 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } 22 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/twilight.css: -------------------------------------------------------------------------------- 1 | .cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/ 2 | .cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/ 3 | 4 | .cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; } 5 | .cm-s-twilight .CodeMirror-linenumber { color: #aaa; } 6 | .cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; } 7 | 8 | .cm-s-twilight .cm-keyword { color: #f9ee98; } /**/ 9 | .cm-s-twilight .cm-atom { color: #FC0; } 10 | .cm-s-twilight .cm-number { color: #ca7841; } /**/ 11 | .cm-s-twilight .cm-def { color: #8DA6CE; } 12 | .cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/ 13 | .cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/ 14 | .cm-s-twilight .cm-operator { color: #cda869; } /**/ 15 | .cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/ 16 | .cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/ 17 | .cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/ 18 | .cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/ 19 | .cm-s-twilight .cm-error { border-bottom: 1px solid red; } 20 | .cm-s-twilight .cm-builtin { color: #cda869; } /*?*/ 21 | .cm-s-twilight .cm-tag { color: #997643; } /**/ 22 | .cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/ 23 | .cm-s-twilight .cm-header { color: #FF6400; } 24 | .cm-s-twilight .cm-hr { color: #AEAEAE; } 25 | .cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/ 26 | 27 | -------------------------------------------------------------------------------- /resources/public/markdown/CodeMirror/theme/vibrant-ink.css: -------------------------------------------------------------------------------- 1 | /* Taken from the popular Visual Studio Vibrant Ink Schema */ 2 | 3 | .cm-s-vibrant-ink.CodeMirror { background: black; color: white; } 4 | .cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; } 5 | 6 | .cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 7 | .cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; } 8 | .cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; } 9 | 10 | .cm-s-vibrant-ink .cm-keyword { color: #CC7832; } 11 | .cm-s-vibrant-ink .cm-atom { color: #FC0; } 12 | .cm-s-vibrant-ink .cm-number { color: #FFEE98; } 13 | .cm-s-vibrant-ink .cm-def { color: #8DA6CE; } 14 | .cm-s-vibrant-ink span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #FFC66D } 15 | .cm-s-vibrant-ink span.cm-variable-3, .cm-s-cobalt span.cm-def { color: #FFC66D } 16 | .cm-s-vibrant-ink .cm-operator { color: #888; } 17 | .cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; } 18 | .cm-s-vibrant-ink .cm-string { color: #A5C25C } 19 | .cm-s-vibrant-ink .cm-string-2 { color: red } 20 | .cm-s-vibrant-ink .cm-meta { color: #D8FA3C; } 21 | .cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; } 22 | .cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; } 23 | .cm-s-vibrant-ink .cm-tag { color: #8DA6CE; } 24 | .cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; } 25 | .cm-s-vibrant-ink .cm-header { color: #FF6400; } 26 | .cm-s-vibrant-ink .cm-hr { color: #AEAEAE; } 27 | .cm-s-vibrant-ink .cm-link { color: blue; } 28 | -------------------------------------------------------------------------------- /resources/public/markdown/codemirror.plugins.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Extension for CodeMirror. 3 | * 4 | * @author Miclle 5 | * Contributed under the same license terms as CodeMirror. 6 | */ 7 | (function() { 8 | 9 | /** 10 | * insert '## text' 11 | */ 12 | CodeMirror.defineExtension("insertTitle", function(num) { 13 | var pos = this.getCursor(); 14 | pos.ch = 0; 15 | this.replaceRange("###### ".slice(6 - num), pos, pos); 16 | }); 17 | 18 | /** 19 | * insert '*text*' '**text**' 20 | */ 21 | CodeMirror.defineExtension("wrapSymbolTag", function(star) { 22 | var selectString = this.getSelection(); 23 | this.replaceSelection(star + selectString + star); 24 | var cursor = this.getCursor(false); 25 | if(selectString == "") cursor.ch = cursor.ch - star.length; 26 | this.setCursor(cursor); 27 | }); 28 | 29 | /** 30 | * save markdown content 31 | */ 32 | CodeMirror.defineExtension("saveMarkdownContent", function() { 33 | function eventFire(el, etype){ 34 | if (el.fireEvent) { 35 | (el.fireEvent('on' + etype)); 36 | } else { 37 | var evObj = document.createEvent('Events'); 38 | evObj.initEvent(etype, true, false); 39 | el.dispatchEvent(evObj); 40 | } 41 | } 42 | var link = document.createElement("a"); 43 | link.download = "markdown.md"; 44 | link.href = "data:application/stream;base64," + $.base64.encode(this.getValue()); 45 | eventFire(link, "click"); 46 | }); 47 | 48 | })(); 49 | -------------------------------------------------------------------------------- /resources/public/markdown/jQuery/README.md: -------------------------------------------------------------------------------- 1 | jQuery 2 | =============== 3 | 4 | [http://jquery.com/](http://jquery.com/). 5 | 6 | [http://jqueryui.com/](http://jqueryui.com/). 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /resources/public/markdown/jQuery/jquery.base64.min.js: -------------------------------------------------------------------------------- 1 | "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); -------------------------------------------------------------------------------- /resources/public/markdown/js.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | 3 | $markdown_preview = $('#markdown-preview'); 4 | 5 | $("#markdown-input").resizable({ 6 | handles: "e", 7 | resize: function(event, ui) { 8 | $markdown_preview.width($('body').width() - ui.size.width - 10); //10 is padding value 9 | } 10 | }); 11 | 12 | var editor = $('.markdown-input').markdown(); 13 | 14 | console.log(editor); 15 | 16 | 17 | 18 | key('⌘+s, ctrl+s', function(event, handler){ 19 | 20 | console.log(handler.shortcut, handler.scope); 21 | 22 | return false; 23 | }); 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /resources/public/markdown/keymaster/README.md: -------------------------------------------------------------------------------- 1 | # keymaster.js 2 | 3 | Keymaster is a simple (100 LoC or so) micro-library for defining and 4 | dispatching keyboard shortcuts. It has no dependencies. 5 | 6 | https://github.com/madrobby/keymaster -------------------------------------------------------------------------------- /resources/public/markdown/marked/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2013, Christopher Jeffrey (https://github.com/chjj/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /resources/public/markdown/marked/README.md: -------------------------------------------------------------------------------- 1 | # marked 2 | 3 | A full-featured markdown parser and compiler, written in javascript. Built for speed. 4 | 5 | https://github.com/chjj/marked 6 | -------------------------------------------------------------------------------- /resources/public/md/docs.md: -------------------------------------------------------------------------------- 1 | ## Some links to get started 2 | 3 | 1. [HTML templating](http://www.luminusweb.net/docs/html_templating.md) 4 | 2. [Accessing the database](http://www.luminusweb.net/docs/database.md) 5 | 3. [Serving static resources](http://www.luminusweb.net/docs/static_resources.md) 6 | 4. [Setting response types](http://www.luminusweb.net/docs/responses.md) 7 | 5. [Defining routes](http://www.luminusweb.net/docs/routes.md) 8 | 6. [Adding middleware](http://www.luminusweb.net/docs/middleware.md) 9 | 7. [Sessions and cookies](http://www.luminusweb.net/docs/sessions_cookies.md) 10 | 8. [Security](http://www.luminusweb.net/docs/security.md) 11 | 9. [Deploying the application](http://www.luminusweb.net/docs/deployment.md) 12 | -------------------------------------------------------------------------------- /src/blog/handler.clj: -------------------------------------------------------------------------------- 1 | (ns blog.handler 2 | (:use blog.routes.home 3 | compojure.core) 4 | (:require [noir.util.middleware :as middleware] 5 | [noir.session :as session] 6 | [noir.response :as res] 7 | [blog.models.schema :as schema] 8 | [compojure.route :as route])) 9 | 10 | (defroutes app-routes 11 | (route/resources "/") 12 | (route/not-found "Not Found")) 13 | 14 | (defn init 15 | "init will be called once when 16 | app is deployed as a servlet on 17 | an app server such as Tomcat 18 | put any initialization code here" 19 | [] 20 | (println "blog started successfully...")) 21 | 22 | (defn destroy 23 | "destroy will be called when your application 24 | shuts down, put any clean up code here" 25 | [] 26 | (println "shutting down...")) 27 | 28 | ;;append your application routes to the all-routes vector 29 | (def all-routes [home-routes app-routes]) 30 | (def admin-uri-l ["/admin" 31 | "/post-blog" 32 | "/blog/delete" 33 | "/blog/detail" 34 | ]) 35 | (defn admin-auth [handler] 36 | (fn [request] 37 | (if (and (contains? admin-uri-l (request :uri)) 38 | (= nil (session/get :user))) 39 | (res/redirect "/admin-blog") 40 | (handler request)))) 41 | 42 | 43 | (def app (-> all-routes 44 | middleware/app-handler 45 | admin-auth 46 | ;;add your middlewares here 47 | )) 48 | 49 | (def war-handler (middleware/war-handler app)) 50 | -------------------------------------------------------------------------------- /src/blog/models/db.clj: -------------------------------------------------------------------------------- 1 | (ns blog.models.db 2 | (:use korma.core 3 | [korma.db :only (defdb)]) 4 | (:require [blog.models.schema :as schema])) 5 | 6 | (defdb db schema/db-spec) 7 | 8 | (defentity users) 9 | (defentity content) 10 | (defentity kv) 11 | 12 | (defn get-user [id] 13 | (first (select 14 | users 15 | (where {:id id}) 16 | (limit 1)))) 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/blog/models/schema.clj: -------------------------------------------------------------------------------- 1 | (ns blog.models.schema 2 | (:require [clojure.java.jdbc :as sql])) 3 | 4 | (def db-spec 5 | {:subprotocol "postgresql" 6 | :subname "//localhost/blog" 7 | :user "postgres" 8 | :password "wwwsunboy"}) 9 | 10 | (defn initialized? [] 11 | (throw (new Exception "TODO: initialize the database schema!"))) 12 | 13 | (defn create-users-table [] 14 | (sql/with-connection db-spec 15 | (sql/create-table 16 | :users 17 | [:id "varchar(20) PRIMARY KEY"] 18 | [:first_name "varchar(30)"] 19 | [:last_name "varchar(30)"] 20 | [:email "varchar(30)"] 21 | [:admin :boolean] 22 | [:last_login :time] 23 | [:is_active :boolean] 24 | [:pass "varchar(100)"]))) 25 | 26 | (defn create-tables 27 | "creates the database tables used by the application" 28 | [] 29 | 30 | (create-users-table)) 31 | -------------------------------------------------------------------------------- /src/blog/repl.clj: -------------------------------------------------------------------------------- 1 | (ns blog.repl 2 | (:use blog.handler 3 | ring.server.standalone 4 | [ring.middleware file-info file])) 5 | 6 | (defonce server (atom nil)) 7 | 8 | (defn get-handler [] 9 | ;; #'app expands to (var app) so that when we reload our code, 10 | ;; the server is forced to re-resolve the symbol in the var 11 | ;; rather than having its own copy. When the root binding 12 | ;; changes, the server picks it up without having to restart. 13 | (-> #'app 14 | ; Makes static assets in $PROJECT_DIR/resources/public/ available. 15 | (wrap-file "resources") 16 | ; Content-Type, Content-Length, and Last Modified headers for files in body 17 | (wrap-file-info))) 18 | 19 | (defn start-server 20 | "used for starting the server in development mode from REPL" 21 | [& [port]] 22 | (let [port (if port (Integer/parseInt port) 8080)] 23 | (reset! server 24 | (serve (get-handler) 25 | {:port port 26 | :init init 27 | :auto-reload? true 28 | :destroy destroy 29 | :join true})) 30 | (println (str "You can view the site at http://localhost:" port)))) 31 | 32 | (defn stop-server [] 33 | (.stop @server) 34 | (reset! server nil)) 35 | -------------------------------------------------------------------------------- /src/blog/util.clj: -------------------------------------------------------------------------------- 1 | (ns blog.util 2 | (:require [noir.io :as io] 3 | [markdown.core :as md])) 4 | 5 | (defn format-time 6 | "formats the time using SimpleDateFormat, the default format is 7 | \"dd MMM, yyyy\" and a custom one can be passed in as the second argument" 8 | ([time] (format-time time "dd MMM, yyyy")) 9 | ([time fmt] 10 | (.format (new java.text.SimpleDateFormat fmt) time))) 11 | 12 | (defn md->html 13 | "reads a markdown file from public/md and returns an HTML string" 14 | [filename] 15 | (->> 16 | (io/slurp-resource filename) 17 | (md/md-to-html-string))) 18 | -------------------------------------------------------------------------------- /src/blog/views/layout.clj: -------------------------------------------------------------------------------- 1 | (ns blog.views.layout 2 | (:use 3 | noir.request 4 | fleet) 5 | (:require [clabango.parser :as parser])) 6 | 7 | (def template-path "blog/views/templates/") 8 | 9 | (defn fleet-compile [name] 10 | (fleet [params] 11 | (parser/render-file (str template-path name) {}))) 12 | 13 | (defn render 14 | ([name params] 15 | (str ((fleet-compile name) params))) 16 | ([name] 17 | (str ((fleet-compile name) {})))) 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/blog/views/templates/admin/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Myblog manage! 5 | 6 | 7 | 8 | 9 | 14 | 15 | {%block style%} 16 | {%endblock%} 17 | 18 | 19 | 20 | 21 | 39 | 40 |
41 | {%block content%} 42 | {%endblock%} 43 |
44 | 45 | 46 | 47 | 48 | {%block js%} 49 | {%endblock%} 50 | 51 | -------------------------------------------------------------------------------- /src/blog/views/templates/admin/home.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "blog/views/templates/admin/base.html" %} 3 | {%block style %} 4 | 5 | {%endblock%} 6 | {% block content %} 7 |
8 | 9 | 10 | 11 | 14 | 17 | 20 | 23 | 26 | 27 | 28 | 29 | 30 | <(for [l (:contents params)]"> 31 | 32 | 35 | 36 | 39 | 40 | 41 | 44 | 47 | 51 | 52 | <")> 53 | 54 |
12 | # 13 | 15 | Title 16 | 18 | Tag 19 | 21 | Created at 22 | 24 | 25 |
33 | <(:id l)> 34 | 37 | <(:title l)> 38 | 42 | <(:tag l)> 43 | 45 | <(str (:created-at l))> 46 | 48 | Delete 49 | Edit 50 |
55 | 56 | 57 | 58 | {%endblock%} 59 | -------------------------------------------------------------------------------- /src/blog/views/templates/admin/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Myblog manage! 5 | 6 | 7 | 8 | 9 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | 52 | 53 |
54 | 55 | 56 | <(get params :error "")> 57 | 58 | 59 |
60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/blog/views/templates/admin/set-init-user.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "blog/views/templates/admin/base.html" %} 3 | {%block style %} 4 | 37 | {%endblock%} 38 | {% block content %} 39 |
40 | 41 | 42 | 43 | 44 |
45 | 46 | 47 | <(get params :error "")> 48 | 49 | 50 |
51 | {%endblock%} 52 | -------------------------------------------------------------------------------- /src/blog/views/templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {% block style %} 11 | 12 | {% endblock %} 13 | 14 | 15 | 16 |
17 |
18 | 22 | 23 | 24 |
25 |
26 | {% block content %} 27 | 28 | {% endblock %} 29 | 30 |
31 |
32 | 33 | 38 | 39 | 40 | 41 | 42 | {% block js %} 43 | 44 | {% endblock %} -------------------------------------------------------------------------------- /src/blog/views/templates/detail.html: -------------------------------------------------------------------------------- 1 | {% extends "blog/views/templates/base.html" %} 2 | {%block content%} 3 |
4 | <(params :content)> 5 | 6 |
7 | {%endblock%} 8 | -------------------------------------------------------------------------------- /src/blog/views/templates/home.html: -------------------------------------------------------------------------------- 1 | {% extends "blog/views/templates/base.html" %} 2 | {%block content%} 3 |
4 |
    5 | <(for [l (:content-l params)]"> 6 |
  • 7 | <(:title l)> 8 | <(str (:created-at l))> 9 |
  • 10 | <")> 11 |
12 |
13 | {%endblock%} 14 | -------------------------------------------------------------------------------- /src/log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /target/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baoliang/clojure-blog/ae69e69d586c7f26156ab7e7c3d04fb641524676/target/.DS_Store -------------------------------------------------------------------------------- /target/stale/extract-native.dependencies: -------------------------------------------------------------------------------- 1 | ([:dependencies ([org.clojure/clojure "1.5.1"] [lib-noir/lib-noir "0.4.9"] [compojure/compojure "1.1.5"] [ring-server/ring-server "0.2.7"] [com.taoensso/timbre "1.5.2"] [com.taoensso/tower "1.2.0"] [markdown-clj/markdown-clj "0.9.19"] [fleet/fleet "0.10.1"] [org.clojure/java.jdbc "0.2.3"] [org.clojars.kbarber/postgresql "9.2-1002.jdbc4"] [korma/korma "0.3.0-RC2"] [log4j/log4j "1.2.15" :exclusions ([javax.mail/mail] [javax.jms/jms] [com.sun.jdmk/jmxtools] [com.sun.jmx/jmxri])] [clabango/clabango "0.5"] [ring-mock/ring-mock "0.1.3"] [ring/ring-devel "1.1.8"] [org.thnetos/cd-client "0.3.6" :exclusions ([org.clojure/clojure])] [org.clojure/tools.nrepl "0.2.1" :exclusions ([org.clojure/clojure])] [clojure-complete/clojure-complete "0.2.2" :exclusions ([org.clojure/clojure])])]) -------------------------------------------------------------------------------- /test.rb: -------------------------------------------------------------------------------- 1 | require 'date' 2 | def test 3 | p DateTime.now() 4 | system "lein -v" 5 | p DateTime.now() 6 | end 7 | test() 8 | -------------------------------------------------------------------------------- /test/blog/test/handler.clj: -------------------------------------------------------------------------------- 1 | (ns blog.test.handler 2 | (:use clojure.test 3 | ring.mock.request 4 | blog.handler)) 5 | 6 | (deftest test-app 7 | (testing "main route" 8 | (let [response (app (request :get "/"))] 9 | (is (= (:status response) 200)) 10 | (is (= (:body response) 11 | "\n \n Welcome to blog\n \n \n \n
\n \n
\n \n
Copyright ...
\n \n\n\n\n")))) 12 | 13 | (testing "not-found route" 14 | (let [response (app (request :get "/invalid"))] 15 | (is (= (:status response) 404))))) 16 | --------------------------------------------------------------------------------