├── static ├── js │ └── jsMath │ │ ├── blank.gif │ │ ├── test │ │ ├── jsMath40.jpg │ │ ├── index.html │ │ ├── index-images.html │ │ └── sample.html │ │ ├── fonts-sprite │ │ ├── cmbx10 │ │ │ ├── alpha │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ │ └── plain │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ ├── cmex10 │ │ │ ├── alpha │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ │ └── plain │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ ├── cmmi10 │ │ │ ├── alpha │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ │ └── plain │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ ├── cmr10 │ │ │ ├── alpha │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ │ └── plain │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ ├── cmsy10 │ │ │ ├── alpha │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ │ └── plain │ │ │ │ ├── 100.png │ │ │ │ ├── 120.png │ │ │ │ ├── 144.png │ │ │ │ ├── 173.png │ │ │ │ ├── 207.png │ │ │ │ ├── 249.png │ │ │ │ ├── 298.png │ │ │ │ ├── 358.png │ │ │ │ ├── 430.png │ │ │ │ ├── 50.png │ │ │ │ ├── 60.png │ │ │ │ ├── 70.png │ │ │ │ └── 85.png │ │ └── cmti10 │ │ │ ├── alpha │ │ │ ├── 100.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 173.png │ │ │ ├── 207.png │ │ │ ├── 249.png │ │ │ ├── 298.png │ │ │ ├── 358.png │ │ │ ├── 430.png │ │ │ ├── 50.png │ │ │ ├── 60.png │ │ │ ├── 70.png │ │ │ └── 85.png │ │ │ └── plain │ │ │ ├── 100.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 173.png │ │ │ ├── 207.png │ │ │ ├── 249.png │ │ │ ├── 298.png │ │ │ ├── 358.png │ │ │ ├── 430.png │ │ │ ├── 50.png │ │ │ ├── 60.png │ │ │ ├── 70.png │ │ │ └── 85.png │ │ ├── local │ │ └── macros.js │ │ ├── extensions │ │ ├── mimeTeX.js │ │ ├── font.js │ │ ├── underset-overset.js │ │ ├── autobold.js │ │ ├── verb.js │ │ ├── boldsymbol.js │ │ ├── mathchoice.js │ │ ├── fbox.js │ │ ├── moreArrows.js │ │ ├── bbox.js │ │ ├── HTML.js │ │ ├── leaders.js │ │ ├── newcommand.js │ │ ├── eqn-number.js │ │ ├── double-click.js │ │ └── AMSsymbols.js │ │ ├── plugins │ │ ├── noGlobal.js │ │ ├── noImageFonts.js │ │ ├── global.js │ │ ├── noCache.js │ │ ├── smallFonts.js │ │ ├── CHMmode.js │ │ └── mimeTeX.js │ │ ├── jsMath-loader-omniweb4.js │ │ ├── jsMath-msie-mac.js │ │ ├── jsMath-autoload.html │ │ ├── jsMath-old-browsers.js │ │ ├── jsMath-loader-post.html │ │ ├── jsMath-loader.html │ │ ├── jsMath-global-controls.html │ │ ├── jsMath-fallback-mac-mozilla.js │ │ ├── easy │ │ └── load.js │ │ ├── jsMath-easy-load.js │ │ └── jsMath-fallback-mac-msie.js └── css │ └── custom.css ├── templates ├── footer.st ├── userbox.st └── page.st ├── .gitignore ├── gitit-users ├── plugins └── EmbedFeed.hs └── my.conf /static/js/jsMath/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/blank.gif -------------------------------------------------------------------------------- /static/js/jsMath/test/jsMath40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/test/jsMath40.jpg -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmbx10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmbx10/plain/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmex10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmex10/plain/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmmi10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmmi10/plain/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmr10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmr10/plain/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmsy10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmsy10/plain/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/alpha/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/alpha/85.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/100.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/120.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/144.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/173.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/207.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/249.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/298.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/358.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/430.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/50.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/60.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/70.png -------------------------------------------------------------------------------- /static/js/jsMath/fonts-sprite/cmti10/plain/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cprg-gitit/master/static/js/jsMath/fonts-sprite/cmti10/plain/85.png -------------------------------------------------------------------------------- /templates/footer.st: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS junk 2 | .DS_Store 3 | Thumbs.db 4 | 5 | # Plugin build artifacts 6 | *.hi 7 | *.o 8 | 9 | # Gitit junk 10 | gitit.log 11 | 12 | # Gitit data store (a seperate git repo!) 13 | wikidata/ 14 | -------------------------------------------------------------------------------- /gitit-users: -------------------------------------------------------------------------------- 1 | [("mb566",User {uUsername = "mb566", uPassword = Password {pSalt = "a]NKZ4VNjYZgJ6 2 | 6 |   7 | Login with Raven 8 | Logout 9 | 10 | -------------------------------------------------------------------------------- /static/js/jsMath/local/macros.js: -------------------------------------------------------------------------------- 1 | /* 2 | * local/macros.js 3 | * 4 | * Use jsMath.Macro() to declare your own local macro definitions here, 5 | * and add "local/macros.js" to the loadFiles array in easy/load.js so 6 | * that they will be loaded automatically when jsMath is used. 7 | * 8 | * See http://www.math.union.edu/locate/jsMath/authors/macros.html 9 | * for details on defining macros for jsMath. 10 | */ 11 | 12 | // 13 | // Examples: 14 | // 15 | // jsMath.Macro('R','{\\bf R}'); 16 | // jsMath.Macro('red','\\color{red}{#1}',1); 17 | // 18 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/mimeTeX.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/mimeTeX.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file loads the mimeTeX plugin, and can be called either 7 | * by 8 | * 9 | * jsMath.Extension.Require('mimeTeX'); 10 | * 11 | * or by using 12 | * 13 | * \require{mimeTeX} 14 | * 15 | * within a typeset equation. 16 | * 17 | * --------------------------------------------------------------------- 18 | * 19 | * Copyright 2005-2006 by Davide P. Cervone 20 | * 21 | * Licensed under the Apache License, Version 2.0 (the "License"); 22 | * you may not use this file except in compliance with the License. 23 | * You may obtain a copy of the License at 24 | * 25 | * http://www.apache.org/licenses/LICENSE-2.0 26 | * 27 | * Unless required by applicable law or agreed to in writing, software 28 | * distributed under the License is distributed on an "AS IS" BASIS, 29 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 30 | * See the License for the specific language governing permissions and 31 | * limitations under the License. 32 | */ 33 | 34 | /********************************************************************/ 35 | 36 | jsMath.Setup.Script('plugins/mimeTeX.js'); 37 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/noGlobal.js: -------------------------------------------------------------------------------- 1 | /* 2 | * noGlobal.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file disables the Go Global button. It should be loaded 7 | * BEFORE jsMath.js. 8 | * 9 | * --------------------------------------------------------------------- 10 | * 11 | * Copyright 2006 by Davide P. Cervone 12 | * 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | */ 25 | 26 | if (!window.jsMath) {window.jsMath = {}} 27 | if (!jsMath.Controls) {jsMath.Controls = {}} 28 | if (!jsMath.Controls.cookie) {jsMath.Controls.cookie = {}} 29 | 30 | jsMath.noGoGlobal = 1; 31 | jsMath.noChangeGlobal = 1; 32 | jsMath.noShowGlobal = 1; 33 | jsMath.Controls.cookie.global = 'never'; 34 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/font.js: -------------------------------------------------------------------------------- 1 | jsMath.Package(jsMath.Parser,{ 2 | 3 | macros: {font: 'Font'}, 4 | fontCS: {}, 5 | 6 | /* 7 | * Get a CS name or give an error 8 | */ 9 | GetCSname: function (cmd) { 10 | var c = this.GetNext(); 11 | if (c != this.cmd) {this.Error(cmd+" must be followed by a control sequence"); return null} 12 | var cs = this.trimSpaces(this.GetArgument(cmd)); if (this.error) {return null}; 13 | return cs.substr(1); 14 | }, 15 | 16 | /* 17 | * Handle the \font command 18 | */ 19 | Font: function (name) { 20 | var cs = this.GetCSname(this.cmd+name); if (this.error) return; 21 | while (this.nextIsSpace()) {this.i++} 22 | if (this.string.charAt(this.i++) == '=') { 23 | while (this.nextIsSpace()) {this.i++} 24 | var font = this.string.slice(this.i).match(/^[a-z]+[0-9]+/i); 25 | if (font) { 26 | this.i += (new String(font)).length; 27 | if (jsMath.TeX.famName[font] != null) { 28 | this.macros[cs] = ['HandleFont',jsMath.TeX.famName[font]]; 29 | } else { 30 | this.macros[cs] = ['Extension',jsMath.Font.URL(font),"fontCS"]; 31 | this.fontCS[cs] = 1; // so Extension has something to delete 32 | } 33 | } else {this.Error("Missing font name")} 34 | } else {this.Error("Missing font definition")} 35 | } 36 | 37 | }); 38 | 39 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-loader-omniweb4.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jsMath-loader-omniweb4.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file synchronizes the jsMath-loader.html file with 7 | * the actual loading of the source javascript file. 8 | * OmniWeb 4 has a serious bug where the loader file is run 9 | * several times (and out of sequence), which plays havoc 10 | * with the Start() and End() calls. 11 | * 12 | * --------------------------------------------------------------------- 13 | * 14 | * Copyright 2006 by Davide P. Cervone 15 | * 16 | * Licensed under the Apache License, Version 2.0 (the "License"); 17 | * you may not use this file except in compliance with the License. 18 | * You may obtain a copy of the License at 19 | * 20 | * http://www.apache.org/licenses/LICENSE-2.0 21 | * 22 | * Unless required by applicable law or agreed to in writing, software 23 | * distributed under the License is distributed on an "AS IS" BASIS, 24 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25 | * See the License for the specific language governing permissions and 26 | * limitations under the License. 27 | */ 28 | 29 | if (window.jsMath.Autoload) { 30 | jsMath.Autoload.Script.endLoad(); 31 | } else { 32 | if (!window.phase2) { 33 | jsMath.Script.Start(); 34 | window.phase2 = 1; 35 | } else { 36 | jsMath.Script.End(); 37 | jsMath.Script.endLoad(); 38 | } 39 | } -------------------------------------------------------------------------------- /static/js/jsMath/plugins/noImageFonts.js: -------------------------------------------------------------------------------- 1 | /* 2 | * noImageFonts.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file indicates that no image fonts are available. 7 | * It should be loaded BEFORE jsMath.js is loaded. 8 | * 9 | * --------------------------------------------------------------------- 10 | * 11 | * Copyright 2004-2006 by Davide P. Cervone 12 | * 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | */ 25 | 26 | if (!window.jsMath) {window.jsMath = {}} 27 | jsMath.noImgFonts = 1; 28 | 29 | if (!jsMath.Font) {jsMath.Font = {}} 30 | if (!jsMath.Font.extra_message) { 31 | jsMath.Font.extra_message = 32 | 'Extra TeX fonts not found:
' 33 | + 'Using unicode fonts instead. This may be slow and might not print well.
\n' 34 | + 'Use the jsMath control panel to get additional information.'; 35 | } -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-msie-mac.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jsMath-msie-mac.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes changes needed for use with MSIE on the Mac. 7 | * 8 | * --------------------------------------------------------------------- 9 | * 10 | * Copyright 2004-2006 by Davide P. Cervone 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | 26 | 27 | /* 28 | * MSIE crashes if it changes the page too quickly, so we add a 29 | * delay between processing math entries. Unfortunately, this really 30 | * slows down math in MSIE on the mac. 31 | */ 32 | 33 | jsMath.Add(jsMath,{ 34 | 35 | msieProcess: jsMath.Process, 36 | msieProcessBeforeShowing: jsMath.ProcessBeforeShowing, 37 | 38 | Process: function () { 39 | // we need to delay a bit before starting to process the page 40 | // in order to avoid an MSIE display bug 41 | jsMath.Message.Set("Processing Math: 0%"); 42 | setTimeout('jsMath.msieProcess()',jsMath.Browser.delay); 43 | }, 44 | 45 | ProcessBeforeShowing: function () { 46 | // we need to delay a bit before starting to process the page 47 | // in order to avoid an MSIE display bug 48 | setTimeout('jsMath.msieProcessBeforeShowing()',5*jsMath.Browser.delay); 49 | } 50 | 51 | }); 52 | 53 | jsMath.Browser.delay = 75; // hope this is enough of a delay! 54 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/underset-overset.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/underset-overset.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements \underset and \overset macros. It will be loaded 7 | * automatically when needed, or can be loaded by 8 | * 9 | * jsMath.Extension.Require('underset-overset'); 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 200-20065 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | /********************************************************************/ 29 | 30 | jsMath.Package(jsMath.Parser,{ 31 | 32 | macros: { 33 | overset: 'Overset', 34 | underset: 'Underset' 35 | }, 36 | 37 | Overset: function (name) { 38 | var top = this.ProcessArg(this.cmd+name); if (this.error) return; 39 | var bot = this.ProcessArg(this.cmd+name); if (this.error) return; 40 | var op = jsMath.mItem.Atom('op',bot); 41 | op.limits = 1; op.sup = top; 42 | this.mlist.Add(op); 43 | }, 44 | 45 | Underset: function (name) { 46 | var bot = this.ProcessArg(this.cmd+name); if (this.error) return; 47 | var top = this.ProcessArg(this.cmd+name); if (this.error) return; 48 | var op = jsMath.mItem.Atom('op',top); 49 | op.limits = 1; op.sub = bot; 50 | this.mlist.Add(op); 51 | } 52 | 53 | }); 54 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-autoload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 27 | 28 | 29 | 30 | 47 | 48 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-old-browsers.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jsMath-old-browsers.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes changes needed by older versions of some browsers 7 | * 8 | * --------------------------------------------------------------------- 9 | * 10 | * Copyright 2004-2006 by Davide P. Cervone 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | jsMath.Add(jsMath.HTML,{ 26 | /* 27 | * Use the blank GIF image for spacing and rules 28 | */ 29 | Blank: function (w,h,d,isRule) { 30 | var style = ''; 31 | if (isRule) { 32 | if (h*jsMath.em < 1.5) {h = '1px'} else {h = jsMath.HTML.Em(h)} 33 | style = 'border-top:'+h+' solid;'; h = 0; 34 | } 35 | if (d == null) {d = 0} 36 | style += 'width:'+this.Em(w)+'; height:'+this.Em(h+d)+';'; 37 | if (d) {style += 'vertical-align:'+this.Em(-d)} 38 | return ''; 39 | } 40 | }); 41 | 42 | if (jsMath.browser == 'Konqueror') { 43 | 44 | jsMath.Package(jsMath.Box,{Remeasured: function() {return this}}); 45 | 46 | jsMath.Add(jsMath.HTML,{ 47 | Spacer: function (w) { 48 | if (w == 0) {return ''}; 49 | return '' 50 | + ' '; 51 | } 52 | }); 53 | 54 | jsMath.Browser.spaceWidth = this.EmBoxFor('     ').w/5; 55 | 56 | } 57 | 58 | jsMath.styles['.typeset .spacer'] = ''; 59 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/global.js: -------------------------------------------------------------------------------- 1 | /* 2 | * plugins/global.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file call up the global frame, if it is not already in place. 7 | * 8 | * This should be called BEFORE loading jsMath.js 9 | * 10 | * --------------------------------------------------------------------- 11 | * 12 | * Copyright 2006 by Davide P. Cervone 13 | * 14 | * Licensed under the Apache License, Version 2.0 (the "License"); 15 | * you may not use this file except in compliance with the License. 16 | * You may obtain a copy of the License at 17 | * 18 | * http://www.apache.org/licenses/LICENSE-2.0 19 | * 20 | * Unless required by applicable law or agreed to in writing, software 21 | * distributed under the License is distributed on an "AS IS" BASIS, 22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 | * See the License for the specific language governing permissions and 24 | * limitations under the License. 25 | */ 26 | 27 | if (!parent.jsMath || !parent.jsMath.isGlobal) { 28 | var cookie = []; var cookies = document.cookies; 29 | if (window.location.protocol == 'file:') {cookies = unescape(window.location.search.substr(1))} 30 | else if (window.location.protocol == 'mk:') {cookies = unescape(window.location.hash.substr(1))} 31 | if (cookies.match(/jsMath=([^;]+)/)) { 32 | var data = RegExp.$1.split(/,/); 33 | for (var i = 0; i < data.length; i++) { 34 | var x = data[i].match(/(.*):(.*)/); 35 | cookie[x[1]] = x[2]; 36 | } 37 | } 38 | if (cookie.global != "never" && !navigator.accentColorName) { 39 | var script = document.getElementsByTagName('script'); 40 | if (script) { 41 | for (var i = 0; i < script.length; i++) { 42 | src = script[i].src; 43 | if (src && src.match('(^|/)plugins/global.js$')) { 44 | src = src.replace(/plugins\/global.js$/,'jsMath-global.html'); 45 | var sep = (window.location.protocol == 'mk:') ? '#' : '?'; 46 | window.location.replace(src + sep + escape(window.location)); 47 | break; 48 | } 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /plugins/EmbedFeed.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE ViewPatterns, PatternGuards #-} 2 | module EmbedFeed (plugin) where 3 | 4 | import Data.Maybe 5 | import Data.Ord 6 | import Data.List 7 | 8 | import Network.Gitit.Interface 9 | import Network.Browser 10 | import Network.HTTP 11 | 12 | import qualified Text.Atom.Feed as Atom 13 | import qualified Text.RSS.Syntax as RSS 14 | import Text.Feed.Types 15 | import Text.Feed.Import 16 | 17 | 18 | plugin :: Plugin 19 | plugin = mkPageTransformM transformBlock 20 | 21 | transformBlock :: Block -> PluginM Block 22 | transformBlock (CodeBlock (_, classes, namevals) contents) 23 | | "feed" `elem` classes , Just url <- lookup "url" namevals = do 24 | feed_data <- liftIO $ browse $ do 25 | setAllowRedirects True 26 | fmap (rspBody . snd) $ request $ getRequest url 27 | 28 | --liftIO $ print $ parseFeedString feed_data 29 | 30 | return $ case parseFeedString feed_data of 31 | Just (feedToEntries -> Just entries) 32 | -> BulletList [[Plain [Link [title] (uri, linktitle)]] | (title, (uri, linktitle)) <- entries] 33 | _ -> Para [Emph [Str "Error parsing feed from", Str url]] 34 | transformBlock x = return x 35 | 36 | feedToEntries :: Feed -> Maybe [(Inline, (String, String))] 37 | feedToEntries (AtomFeed f) 38 | = Just [ (title, (Atom.linkHref link, fromMaybe (show title) (Atom.linkTitle link))) 39 | | Atom.Entry { Atom.entryTitle = (textContentToInline -> title), Atom.entryLinks = links } <- Atom.feedEntries f 40 | , (link:_) <- [sortBy (comparing (maybe True (\t -> "omment" `isInfixOf` t) . Atom.linkTitle)) 41 | [link | link@(Atom.Link { Atom.linkType = Just "text/html" }) <- links]] 42 | ] 43 | feedToEntries (RSSFeed r) 44 | = Just [ (Str title, (url, title)) 45 | | item@(RSS.RSSItem { RSS.rssItemLink = Just url }) <- RSS.rssItems (RSS.rssChannel r) 46 | , let title = fromMaybe (fromJust $ RSS.rssItemDescription item) (RSS.rssItemTitle item) 47 | ] 48 | feedToEntries _ = Nothing 49 | 50 | textContentToInline (Atom.TextString s) = Str s 51 | textContentToInline (Atom.HTMLString s) = HtmlInline s 52 | textContentToInline (Atom.XHTMLString x) = HtmlInline (show x) 53 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/autobold.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/autobold.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file causes jsMath to use \boldsymbol{...} around mathematics 7 | * that appears within ... tags or has font-weight:bold applied 8 | * via CSS rule. You can activate it by calling 9 | * 10 | * jsMath.Extension.Require('autobold'); 11 | * 12 | * once jsMath.js has been loaded, or by adding "extensions/autobold.js" 13 | * to the loadFiles array in jsMath/easy/load.js. 14 | * 15 | * Note that you will need to install the cmmib10 and cmbsy10 fonts 16 | * that are available from the jsMath extra font page at 17 | * 18 | * http://www.math.union.edu/locate/jsMath/download/extra-fonts/ 19 | * 20 | * to make this work in image mode. Note that there is no unicode 21 | * fallback for these fonts at the moment. 22 | * 23 | * --------------------------------------------------------------------- 24 | * 25 | * Copyright 2008 by Davide P. Cervone 26 | * 27 | * Licensed under the Apache License, Version 2.0 (the "License"); 28 | * you may not use this file except in compliance with the License. 29 | * You may obtain a copy of the License at 30 | * 31 | * http://www.apache.org/licenses/LICENSE-2.0 32 | * 33 | * Unless required by applicable law or agreed to in writing, software 34 | * distributed under the License is distributed on an "AS IS" BASIS, 35 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 36 | * See the License for the specific language governing permissions and 37 | * limitations under the License. 38 | */ 39 | 40 | /********************************************************************/ 41 | 42 | jsMath.Extension.Require("boldsymbol"); 43 | 44 | jsMath.Translate.OldParse = jsMath.Translate.Parse; 45 | jsMath.Translate.Parse = function (style,text,noCache) { 46 | if (jsMath.BBoxFor('MMMMMMMMMM').w > 47 | jsMath.BBoxFor('MMMMMMMMMM').w) { 48 | text = '\\boldsymbol{' + text + '}'; 49 | } 50 | return jsMath.Translate.OldParse(style,text,noCache); 51 | } 52 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/noCache.js: -------------------------------------------------------------------------------- 1 | /* 2 | * noCache.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file disables the equation cache that jsMath uses to 7 | * store the typeset versions of TeX code so that common expressions 8 | * won't need to be re-typeset. 9 | * 10 | * --------------------------------------------------------------------- 11 | * 12 | * Copyright 2006 by Davide P. Cervone 13 | * 14 | * Licensed under the Apache License, Version 2.0 (the "License"); 15 | * you may not use this file except in compliance with the License. 16 | * You may obtain a copy of the License at 17 | * 18 | * http://www.apache.org/licenses/LICENSE-2.0 19 | * 20 | * Unless required by applicable law or agreed to in writing, software 21 | * distributed under the License is distributed on an "AS IS" BASIS, 22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 | * See the License for the specific language governing permissions and 24 | * limitations under the License. 25 | */ 26 | 27 | jsMath.Add(jsMath,{ 28 | 29 | /* 30 | * Get the width and height (in ems) of an HTML string 31 | */ 32 | EmBoxFor: function (s) { 33 | var bbox = this.BBoxFor(s); 34 | return {w: bbox.w/this.em, h: bbox.h/this.em}; 35 | }, 36 | 37 | /* 38 | * For browsers that don't handle sizes of italics properly (MSIE) 39 | */ 40 | EmBoxForItalics: function (s) { 41 | var bbox = this.BBoxFor(s); 42 | if (s.match(/|class=\"(icm|italic|igreek|iaccent)/i)) { 43 | bbox.w = this.BBoxFor(s+jsMath.Browser.italicString).w 44 | - jsMath.Browser.italicCorrection; 45 | } 46 | return {w: bbox.w/this.em, h: bbox.h/this.em}; 47 | } 48 | 49 | }); 50 | 51 | jsMath.Add(jsMath.Translate,{ 52 | 53 | /* 54 | * Typeset a string in \textstyle and return the HTML for it 55 | */ 56 | TextMode: function (s) { 57 | var parse = jsMath.Parse(s,null,null,'T'); 58 | parse.Atomize(); 59 | return parse.Typeset(); 60 | }, 61 | 62 | /* 63 | * Typeset a string in \displaystyle and return the HTML for it 64 | */ 65 | DisplayMode: function (s) { 66 | var parse = jsMath.Parse(s,null,null,'D'); 67 | parse.Atomize(); 68 | return parse.Typeset(); 69 | } 70 | 71 | }); 72 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/verb.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/verb.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \verb macro. You can activate it 7 | * by calling 8 | * 9 | * jsMath.Extension.Macro('verb'); 10 | * 11 | * which will cause the extension to be loaded only when it is 12 | * needed, or you can force it to be loaded via 13 | * 14 | * jsMath.Extension.Require('verb'); 15 | * 16 | * once jsMath.js has been loaded, or by adding "extensions/verb.js" 17 | * to the loadFiles array in the easy/load.js file. 18 | * 19 | * --------------------------------------------------------------------- 20 | * 21 | * Copyright 2008 by Davide P. Cervone 22 | * 23 | * Licensed under the Apache License, Version 2.0 (the "License"); 24 | * you may not use this file except in compliance with the License. 25 | * You may obtain a copy of the License at 26 | * 27 | * http://www.apache.org/licenses/LICENSE-2.0 28 | * 29 | * Unless required by applicable law or agreed to in writing, software 30 | * distributed under the License is distributed on an "AS IS" BASIS, 31 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 32 | * See the License for the specific language governing permissions and 33 | * limitations under the License. 34 | */ 35 | 36 | /********************************************************************/ 37 | 38 | jsMath.Package(jsMath.Parser,{ 39 | 40 | macros: {verb: 'Verb'}, 41 | 42 | /* 43 | * Implement \verb|...| 44 | */ 45 | Verb: function (name) { 46 | var c = this.GetNext(); var start = ++this.i; 47 | if (c == "" ) {this.Error(this.cmd+name+" requires an argument"); return} 48 | while (this.i < this.string.length && this.string.charAt(this.i) != c) {this.i++} 49 | if (this.i == this.string.length) 50 | {this.Error("Can't find closing delimiter for "+this.cmd+name); return} 51 | var text = this.string.slice(start,this.i); this.i++; 52 | text = text.replace(/&/g,'&').replace(//g,'>'); 53 | text = ''+text+''; 54 | var box = jsMath.Box.Text(text,'normal','T',this.mlist.data.size).Styled(); 55 | box.h = box.bh+box.bd -jsMath.d; box.d = jsMath.d; 56 | this.mlist.Add(jsMath.mItem.Typeset(box)); 57 | } 58 | }); 59 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/boldsymbol.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/boldsymbol.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \boldsymbol macro. You can activate it 7 | * by calling 8 | * 9 | * jsMath.Extension.Macro('boldsymbol'); 10 | * 11 | * which will cause the extension to be loaded only when it is 12 | * needed, or you can force it to be loaded via 13 | * 14 | * jsMath.Extension.Require('boldsymbol'); 15 | * 16 | * once jsMath.js has been loaded. 17 | * 18 | * Note that you will need to install the cmmib10 and cmbsy10 fonts 19 | * that are available from the jsMath extra font page at 20 | * 21 | * http://www.math.union.edu/locate/jsMath/download/extra-fonts/ 22 | * 23 | * to make this work in image mode. Note that there is no unicode 24 | * fallback for these fonts at the moment. 25 | * 26 | * --------------------------------------------------------------------- 27 | * 28 | * Copyright 2006-2007 by Davide P. Cervone 29 | * 30 | * Licensed under the Apache License, Version 2.0 (the "License"); 31 | * you may not use this file except in compliance with the License. 32 | * You may obtain a copy of the License at 33 | * 34 | * http://www.apache.org/licenses/LICENSE-2.0 35 | * 36 | * Unless required by applicable law or agreed to in writing, software 37 | * distributed under the License is distributed on an "AS IS" BASIS, 38 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 39 | * See the License for the specific language governing permissions and 40 | * limitations under the License. 41 | */ 42 | 43 | /********************************************************************/ 44 | 45 | jsMath.Package(jsMath.Parser,{ 46 | 47 | macros: {boldsymbol: 'BoldSymbol'}, 48 | 49 | /* 50 | * Implement \boldsymbol{...} 51 | */ 52 | BoldSymbol: function (name) { 53 | var fam = jsMath.TeX.fam; var restart = 0; 54 | var oldfam = [fam[0],fam[1],fam[2]]; 55 | fam[0] = "cmbx10"; fam[1] = "cmmib10"; fam[2] = "cmbsy10"; 56 | try{var box = this.ProcessArg(this.cmd+name)} 57 | catch (e) {restart = (e == "restart")} 58 | fam[0] = oldfam[0]; fam[1] = oldfam[1]; fam[2] = oldfam[2]; 59 | if (this.error) return; if (restart) {throw "restart"} 60 | this.mlist.Add(jsMath.mItem.Atom('ord',box)); 61 | } 62 | 63 | }); 64 | -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- 1 | @import url("screen.css"); /* default gitit screen styles */ 2 | @import url("hk-pyg.css"); /* for syntax highlighting */ 3 | 4 | /* Put your custom style modifications here: */ 5 | 6 | /* Overall text settings */ 7 | 8 | body { 9 | font-family: Arial, Helvetica, sans-serif; 10 | font-size: 95%; 11 | text-align: left; 12 | } 13 | 14 | /* Overall header containers */ 15 | 16 | #cam-header { 17 | margin-bottom: 2px; 18 | } 19 | 20 | #cam-blue-header { 21 | background-color: #0099cc; 22 | height: 16px; 23 | text-align: right; 24 | border-bottom: 2px solid #cccccc; 25 | padding: 0; 26 | margin: 0; 27 | } 28 | 29 | #cam-image-header { 30 | background-color: #fff; 31 | padding: 0; 32 | margin: 0; 33 | } 34 | 35 | /* Cambridge header buttons (Search, A-Z etc) */ 36 | 37 | #cam-insert { 38 | height: 18px; 39 | } 40 | 41 | .cam-insert-button { 42 | width: 53px; 43 | font-size: 0; 44 | } 45 | 46 | /* Main area of the header: our group name and the logo */ 47 | 48 | #cam-logo { 49 | float: left; 50 | height: 46px 51 | } 52 | 53 | #cprg-header { 54 | float: right; 55 | 56 | font-size: 140%; 57 | font-weight: bold; 58 | text-align: right; 59 | } 60 | 61 | /* Seperates the header area from the breadcrumbs */ 62 | 63 | .cam-separator { 64 | clear: both; 65 | height: 4px; 66 | background-color: #0099cc; 67 | border-bottom: 2px solid #cccccc; 68 | width: 100%; 69 | } 70 | 71 | /* Breadcrumbs */ 72 | 73 | #bread p a { 74 | font-size: 80%; 75 | font-weight: bold; 76 | } 77 | 78 | /* Customize colors and link styles to override defaults from screen.css */ 79 | 80 | ul.tabs li a { color: #003399; } 81 | 82 | a:link, a:visited { 83 | text-decoration: none; 84 | } 85 | 86 | a:link { 87 | color: #003399; 88 | } 89 | 90 | a:visited { 91 | color: #c33; 92 | } 93 | 94 | a:hover { 95 | text-decoration: underline; 96 | } 97 | 98 | /* Override style.css settings for the Wiki stuff */ 99 | 100 | #sidebar input[type="submit"] { 101 | border: 1px solid #000; 102 | 103 | font-weight: solid; 104 | 105 | color: #003399; 106 | background-color: #fff; 107 | } 108 | 109 | #content { 110 | font-size: 95%; 111 | } 112 | 113 | /* Userbox customisation */ 114 | 115 | #userbox { 116 | text-align: center; 117 | } 118 | 119 | /* Footer */ 120 | 121 | #cam-footer-text { 122 | font-size: x-small; 123 | } 124 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/mathchoice.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/mathchoice.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the 4-way math choice. It will be loaded 7 | * automatically when needed, or can be loaded by 8 | * 9 | * jsMath.Extension.Require('mathchoice'); 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 2005-2006 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | /********************************************************************/ 29 | 30 | jsMath.Add(jsMath.mList.prototype.Atomize,{ 31 | 32 | /* 33 | * Handle a 4-way choice atom. (Rule 4) 34 | */ 35 | choice: function (style,mitem,i,mlist) { 36 | if (style.charAt(style.length-1) == "'") {style = style.slice(0,style.length-1)} 37 | var nlist = []; var M = mitem[style]; 38 | if (!M) {M = {type: 'mlist', mlist: {mlist: []}}} 39 | if (M.type == 'mlist') { 40 | M = M.mlist.mlist; 41 | for (var k = 0; k < i; k++) {nlist[k] = mlist[k]} 42 | for (k = 0; k < M.length; k++) {nlist[i+k] = M[k]} 43 | for (k = i+1; k < mlist.length; k++) {nlist[nlist.length] = mlist[k]} 44 | return nlist; 45 | } else { 46 | mlist[i] = jsMath.mItem.Atom('ord',M); 47 | return mlist; 48 | } 49 | } 50 | 51 | }); 52 | 53 | jsMath.Package(jsMath.Parser,{ 54 | 55 | macros: {mathchoice: 'MathChoice'}, 56 | 57 | /* 58 | * Implements \mathchoice{}{}{}{} 59 | */ 60 | MathChoice: function (name) { 61 | var D = this.ProcessArg(this.cmd+name); if (this.error) return; 62 | var T = this.ProcessArg(this.cmd+name); if (this.error) return; 63 | var S = this.ProcessArg(this.cmd+name); if (this.error) return; 64 | var SS = this.ProcessArg(this.cmd+name); if (this.error) return; 65 | var box = new jsMath.mItem('choice',{D: D, T: T, S: S, SS: SS}); 66 | this.mlist.Add(new jsMath.mItem('choice',{D: D, T: T, S: S, SS: SS})); 67 | } 68 | 69 | }); 70 | 71 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/fbox.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/fbox.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \fbox macro. It will be loaded 7 | * automatically when needed, or can be loaded by 8 | * 9 | * jsMath.Extension.Require('fbox'); 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 2005-2006 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | /********************************************************************/ 29 | 30 | jsMath.Add(jsMath.HTML,{ 31 | 32 | /* 33 | * Create a colored frame 34 | */ 35 | Frame: function (x,y,w,h,c,pos) { 36 | 37 | h -= 2/jsMath.em; // use 2 pixels to compensate for border size 38 | w -= 2/jsMath.em; 39 | y -= 1/jsMath.em; 40 | if (!c) {c = ''} else {c = ' '+c}; 41 | if (pos) {pos = 'absolute;'} else 42 | {pos = 'relative; margin-right: '+this.Em(-(w+2/jsMath.em))+'; '} 43 | return ''; 48 | } 49 | 50 | }); 51 | 52 | jsMath.Package(jsMath.Parser,{ 53 | 54 | macros: {fbox: 'FBox'}, 55 | 56 | /* 57 | * Implement \fbox{...} 58 | */ 59 | FBox: function (name) { 60 | var text = this.GetArgument(this.cmd+name); if (this.error) return; 61 | var arg = jsMath.Box.InternalMath(text,this.mlist.data.size); 62 | var f = 0.25 * jsMath.sizes[this.mlist.data.size]/100; 63 | var box = jsMath.Box.Set(arg,this.mlist.data.style,this.mlist.data.size,1).Remeasured(); 64 | var frame = jsMath.HTML.Frame(-f,-box.d-f,box.w+2*f,box.h+box.d+2*f); 65 | box.html = frame + box.html + jsMath.HTML.Spacer(f); 66 | box.h += f; box.d += f; box.w +=2*f; box.x += f; 67 | box.bh = Math.max(box.bh,box.h); box.bd = Math.max(box.bd,box.d); 68 | this.mlist.Add(jsMath.mItem.Atom('ord',box)); 69 | } 70 | 71 | }); 72 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/moreArrows.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/moreArrows.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements additional arrow macros with under- and 7 | * overset labels. It can be loaded by 8 | * 9 | * jsMath.Extension.Require('moreArrows'); 10 | * 11 | * or using \require{moreArrows} within a math formula. 12 | * 13 | * --------------------------------------------------------------------- 14 | * 15 | * Copyright 2005-2006 by Davide P. Cervone 16 | * 17 | * Licensed under the Apache License, Version 2.0 (the "License"); 18 | * you may not use this file except in compliance with the License. 19 | * You may obtain a copy of the License at 20 | * 21 | * http://www.apache.org/licenses/LICENSE-2.0 22 | * 23 | * Unless required by applicable law or agreed to in writing, software 24 | * distributed under the License is distributed on an "AS IS" BASIS, 25 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 26 | * See the License for the specific language governing permissions and 27 | * limitations under the License. 28 | */ 29 | 30 | /********************************************************************/ 31 | 32 | jsMath.Extension.Require('leaders'); 33 | 34 | jsMath.Package(jsMath.Parser,{ 35 | 36 | macros: { 37 | xrightarrow: ['HandleArrows','rightarrow'], 38 | xleftarrow: ['HandleArrows','leftarrow'], 39 | xuprightharpoon: ['HandleArrows','uprightharpoon'], 40 | xupleftharpoon: ['HandleArrows','upleftharpoon'], 41 | xdownrightharpoon: ['HandleArrows','downrightharpoon'], 42 | xdownleftharpoon: ['HandleArrows','downleftharpoon'] 43 | }, 44 | 45 | leaders: { 46 | upleftharpoon: {left: [1,0x28], rep: [2,0x00]}, 47 | uprightharpoon: {rep: [2,0x00], right: [1,0x2A]}, 48 | downleftharpoon: {left: [1,0x29], rep: [2,0x00]}, 49 | downrightharpoon: {rep: [2,0x00], right: [1,0x2B]} 50 | }, 51 | 52 | HandleArrows: function (name,data) { 53 | var bot = this.GetBrackets(this.cmd+name); if (this.error) return; 54 | var top = this.ProcessArg(this.cmd+name); if (this.error) return; 55 | var box = jsMath.Box.Set(top,'S',this.mlist.data.size).Remeasured(); 56 | var w = box.w; 57 | if (bot) { 58 | bot = this.Process(bot); if (this.error) return; 59 | var box = jsMath.Box.Set(bot,'S',this.mlist.data.size).Remeasured(); 60 | w = Math.max(w,box.w); 61 | } 62 | var leader = jsMath.Box.Leaders(w+.75,this.leaders[data[0]]); 63 | box = jsMath.mItem.Atom('op',jsMath.Box.SetList([leader],'T',this.mlist.data.size)); 64 | box.limits = 1; box.sup = top; box.sub = bot; 65 | this.mlist.Add(box); 66 | } 67 | 68 | }); 69 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-loader-post.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 28 | 29 | 30 | 31 | 60 | 61 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/smallFonts.js: -------------------------------------------------------------------------------- 1 | /* 2 | * smallFonts.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file changes the sizes of fonts used in subscripts so that they 7 | * are larger. This can be helpful if jsMath is used on a page with a 8 | * small font size, where the subscripts may tend to disappear. 9 | * It should be loaded BEFORE jsMath.js. 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 2006 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | if (!window.jsMath) {window.jsMath = {}} 29 | if (!jsMath.styles) {jsMath.styles = {}} 30 | if (!jsMath.Img) {jsMath.Img = {}} 31 | if (!jsMath.Box) {jsMath.Box = {}} 32 | if (!jsMath.Typeset) {jsMath.Typeset = {}} 33 | 34 | /* 35 | * Replace the smaller font sizes 36 | */ 37 | jsMath.sizes = [70, 77, 85, 92, 100, 120, 144, 173, 207, 249]; 38 | jsMath.Img.fonts = [70, 70, 85, 85, 100, 120, 144, 173, 207, 249, 298, 358, 430]; 39 | 40 | jsMath.styles['.typeset .size0']['font-size'] = '70%'; 41 | jsMath.styles['.typeset .size1']['font-size'] = '77%'; 42 | jsMath.styles['.typeset .size2']['font-size'] = '85%'; 43 | jsMath.styles['.typeset .size3']['font-size'] = '92%'; 44 | 45 | /* 46 | * Fix multiplication factors in these routines 47 | */ 48 | jsMath.Typeset.StyleValue = function (style,v) { 49 | if (style == "S" || style == "S'") {return .85*v} 50 | if (style == "SS" || style == "SS'") {return .70*v} 51 | return v; 52 | }; 53 | 54 | jsMath.Box.DelimBestFit = function (H,c,font,style) { 55 | if (c == 0 && font == 0) return null; 56 | var C; var h; font = jsMath.TeX.fam[font]; 57 | var isSS = (style.charAt(1) == 'S'); 58 | var isS = (style.charAt(0) == 'S'); 59 | while (c != null) { 60 | C = jsMath.TeX[font][c]; 61 | if (C.h == null) {C.h = jsMath.Box.defaultH}; if (C.d == null) {C.d = 0} 62 | h = C.h+C.d; 63 | if (C.delim) {return [c,font,'',H]} 64 | if (isSS && .70*h >= H) {return [c,font,'SS',.7*h]} 65 | if (isS && .85*h >= H) {return [c,font,'S',.85*h]} 66 | if (h >= H || C.n == null) {return [c,font,'T',h]} 67 | c = C.n; 68 | } 69 | return null; 70 | }; 71 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-loader.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 28 | 29 | 30 | 31 | 83 | 84 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/CHMmode.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CHMmode.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes jsMath work with MicroSoft's HTML Help system 7 | * from within .chm files (compiled help archives). 8 | * 9 | * This file should be loaded BEFORE jsMath.js. 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 2006-2007 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | if (!window.jsMath) {window.jsMath = {}} 29 | if (!jsMath.Controls) {jsMath.Controls = {}} 30 | if (!jsMath.Controls.cookie) {jsMath.Controls.cookie = {}} 31 | 32 | jsMath.isCHMmode = 1; 33 | 34 | jsMath.noChangeGlobal = 1; 35 | jsMath.noShowGlobal = 1; 36 | jsMath.noImgFonts = 1; 37 | jsMath.Controls.cookie.global = 'always'; 38 | jsMath.Controls.cookie.hiddenGlobal = 1; 39 | 40 | if (window.location.protocol == "mk:") { 41 | 42 | /* 43 | * Work around bug in hh.exe that causes it to run at 100% CPU 44 | * and not exit if the page is reloaded after an IFRAME is used 45 | * to load the controls file, so fake it using XMLHttpRequest. 46 | * Load the data into a DIV instead of an IFRAME, and make sure 47 | * that the styles are correct for it. Change the GetPanel() 48 | * call to hide the other panel and open the correct one. 49 | */ 50 | 51 | jsMath.Controls.Init = function () { 52 | this.controlPanels = jsMath.Setup.DIV("controlPanels"); 53 | if (!jsMath.Browser.msieButtonBug) {this.Button()} 54 | else {setTimeout("jsMath.Controls.Button()",500)} 55 | } 56 | 57 | jsMath.Controls.Panel = function () { 58 | jsMath.Translate.Cancel(); 59 | jsMath.Setup.AddStyleSheet({ 60 | '#jsMath_options': jsMath.styles['#jsMath_panel'], 61 | '#jsMath_options .disabled': jsMath.styles['#jsMath_panel .disabled'], 62 | '#jsMath_options .infoLink': jsMath.styles['#jsMath_panel .infoLink'] 63 | }); 64 | if (this.loaded) {this.panel = jsMath.Element("panel"); this.Main(); return} 65 | var html = jsMath.Script.xmlRequest(jsMath.root+"jsMath-controls.html"); 66 | var body = (html.match(/([\s\S]*)<\/body>/))[1]; 67 | this.controlPanels.innerHTML = body; 68 | var script = (body.match(/ 38 | 39 | 40 | 48 | 49 |
50 | 51 |
52 | 53 |
54 | 55 |

jsMath Test Page

56 | 57 | If you see typeset mathematics below, then jsMath is working. If you see 58 | TeX code instead, jsMath is not working for you. 59 |

60 | 61 |


62 | 63 | 64 |
65 | \left(\, \sum_{k=1}^n a_k b_k \right)^2 \le 66 | \left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) 67 |
68 |

69 | 70 |

71 | \warning{       jsMath is not working!       } 72 |
73 | 74 | 75 |
76 |

77 | 78 | Once you have jsMath working properly, view the image mode test page to make sure that the 80 | image fallback mode is working as well. 81 | 82 |

83 | 84 | 87 | 88 | 89 | 90 | 91 |

92 |


93 | 94 | 109 | 110 |
95 | 96 | 97 | 98 | 99 | 107 | 108 |
[HOME]jsMath web pages
100 | Created: 14 Feb 2007
101 | 102 | Last modified: Feb 12, 2009 6:14:47 PM 103 | 104 |
105 | Comments to: dpvc@union.edu
106 |
 
111 |
112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /static/js/jsMath/test/index-images.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | jsMath (Test): jsMath Image Mode Test Page 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 17 |
jsMath (Test)
19 |
20 |

21 | 22 | 23 | 24 | 25 | 33 | 34 |

36 | Warning: jsMath 37 | requires JavaScript to process the mathematics on this page.
38 | If your browser supports JavaScript, be sure it is enabled. 39 |
40 |
41 | 42 | 43 |
44 | 45 |

jsMath Image Mode Test Page

46 | 47 | If you see typeset mathematics below, then jsMath Image Mode is working. If you see 48 | TeX code instead, jsMath Image Mode is not working for you. 49 |

50 | 51 |


52 | 53 | 54 |
55 | \left(\, \sum_{k=1}^n a_k b_k \right)^2 \le 56 | \left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) 57 |
58 |

59 | 60 |

61 | \warning{       jsMath image mode is not working!       } 62 |
63 | 64 | 65 |
66 |

67 | If the mathematics does not show up properly, you may not have not 68 | installed the jsMath 70 | image fonts file correctly. Follow the instructions on the linked 71 | page. 72 |

73 | 74 | Once you have jsMath working, go on to the sample 75 | page to see if easy/load.js is configured properly. 76 | 77 |

78 | 79 | 84 | 85 | 86 | 87 | 88 |

89 |


90 | 91 | 106 | 107 |
92 | 93 | 94 | 95 | 96 | 104 | 105 |
[HOME]jsMath web pages
97 | Created: 14 Feb 2007
98 | 99 | Last modified: Jun 16, 2007 8:56:17 AM 100 | 101 |
102 | Comments to: dpvc@union.edu
103 |
 
108 |
109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-global-controls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 28 | 36 | 41 | 42 | 43 | 44 | 48 | 49 |
50 | 51 | 54 | 63 |
52 | 53 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
64 |
65 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/bbox.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/bbox.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \bbox macro, which creates an HTML box that 7 | * can be styled (for background colors, and so on). You can include 8 | * an optional dimension that tells how much extra padding to include 9 | * around the bounding box for the mathematics. E.g., 10 | * 11 | * \bbox[2pt]{x+y} % an invisible box around x+y with 2pt of extra space 12 | * \bbox[green]{x+y} % a green box around x+y 13 | * \bbox[green,2pt]{x+y} % a green box with 2pt of extra space 14 | * \bbox[yellow,2pt,border:1px solid red]{x+y} 15 | * % a yellow box with a red border and 2pt space 16 | * 17 | * This extension is loaded automatically when needed, or you can call 18 | * it directly via 19 | * 20 | * jsMath.Extension.Require('bbox'); 21 | * 22 | * --------------------------------------------------------------------- 23 | * 24 | * Copyright 2006 by Davide P. Cervone 25 | * 26 | * Licensed under the Apache License, Version 2.0 (the "License"); 27 | * you may not use this file except in compliance with the License. 28 | * You may obtain a copy of the License at 29 | * 30 | * http://www.apache.org/licenses/LICENSE-2.0 31 | * 32 | * Unless required by applicable law or agreed to in writing, software 33 | * distributed under the License is distributed on an "AS IS" BASIS, 34 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 35 | * See the License for the specific language governing permissions and 36 | * limitations under the License. 37 | */ 38 | 39 | /********************************************************************/ 40 | 41 | jsMath.Add(jsMath.HTML,{ 42 | 43 | /* 44 | * Create a colored bbounding box 45 | */ 46 | BBox: function (w,h,d,c,s) { 47 | if (w <= 0) {return ''} 48 | if (d == null) {d = 0} 49 | var style = (jsMath.Browser.msieInlineBlockFix ? '' : 'overflow:visible;'); 50 | style += 'width:'+this.Em(w)+'; height:'+this.Em(h+d)+';'; 51 | if (jsMath.Browser.mozInlineBlockBug) {d = -h} 52 | if (jsMath.Browser.msieInlineBlockFix) {d -= jsMath.d} 53 | if (d) {style += ' vertical-align:'+this.Em(-d)+';'} 54 | if (c) {style += ' background-color:'+c+';'} 55 | var html = ''; 56 | return html; 57 | } 58 | 59 | }); 60 | 61 | jsMath.Add(jsMath.mList.prototype.Atomize,{ 62 | /* 63 | * Creates the box HTML 64 | */ 65 | bbox: function (style,size,mitem,prev,mlist) { 66 | var box; var w; var h; var d; 67 | var nuc = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size).Remeasured(); 68 | if (box == null) {w = nuc.w; h = nuc.h; d = nuc.d} // values before super/subs-cript 69 | var nuc = mitem.nuc; nuc.Styled(); var pad = mitem.pad; 70 | if (pad) {w += 2*pad; h += pad; d += pad; nuc.w += pad} 71 | if (jsMath.Browser.msieCenterBugFix) 72 | {nuc.html = ''+nuc.html+''} 73 | nuc.html = 74 | jsMath.HTML.BBox(w,h,d,mitem.color,mitem.style) + 75 | jsMath.HTML.Spacer(pad-w) + 76 | nuc.html; 77 | nuc.Remeasured(); 78 | if (pad && nuc.w < w) { 79 | nuc.html += jsMath.HTML.Spacer(w-nuc.w); 80 | nuc.w = w; 81 | } 82 | nuc.h = Math.max(nuc.h,h); nuc.d = Math.max(nuc.d,d); 83 | nuc.bh = Math.max(nuc.bh,nuc.h); nuc.bd = Math.max(nuc.bd,nuc.d); 84 | mitem.type = 'ord'; 85 | jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); 86 | } 87 | }); 88 | 89 | jsMath.Package(jsMath.Parser,{ 90 | 91 | macros: {bbox: 'BBox'}, 92 | 93 | /* 94 | * Implement \bbox[...]{...} 95 | */ 96 | BBox: function (name) { 97 | var extra = this.GetBrackets(this.cmd+name); if (this.error) return; 98 | var arg = this.GetArgument(this.cmd+name); if (this.error) return; 99 | var nuc = this.Process(arg); if (this.error) return; 100 | var color; var pad = 0; var style = ''; 101 | if (extra != '') { 102 | var parts = extra.split(/,/); 103 | for (var i in parts) { 104 | if (parts[i].match(/^\s*([-+]?(\.\d+|\d+(\.\d*)?))(pt|em|ex|mu|px)\s*$/)) 105 | {pad = this.ParseDimen(parts[i],'',0,1)} 106 | else if (parts[i].match(/:/)) {style = parts[i]} 107 | else {color = parts[i]} 108 | } 109 | } 110 | var atom = {nuc: nuc, atom: 1, pad: pad, color: color, style: style}; 111 | this.mlist.Add(new jsMath.mItem('bbox',atom)); 112 | } 113 | }); 114 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/HTML.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/HTML.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements a number of HTML-specific extensions to TeX, 7 | * including \color, \style, \class, \unicode, etc. It will be loaded 8 | * automatically when needed, or can be loaded by 9 | * 10 | * jsMath.Extension.Require('HTML'); 11 | * 12 | * --------------------------------------------------------------------- 13 | * 14 | * Copyright 2005-2006 by Davide P. Cervone 15 | * 16 | * Licensed under the Apache License, Version 2.0 (the "License"); 17 | * you may not use this file except in compliance with the License. 18 | * You may obtain a copy of the License at 19 | * 20 | * http://www.apache.org/licenses/LICENSE-2.0 21 | * 22 | * Unless required by applicable law or agreed to in writing, software 23 | * distributed under the License is distributed on an "AS IS" BASIS, 24 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25 | * See the License for the specific language governing permissions and 26 | * limitations under the License. 27 | */ 28 | 29 | /********************************************************************/ 30 | 31 | jsMath.Package(jsMath.Parser,{ 32 | 33 | macros: { 34 | color: 'Color', 35 | href: 'Href', 36 | 'class': 'Class', 37 | style: 'Style', 38 | cssId: 'CSSId', 39 | unicode: 'Unicode' 40 | }, 41 | 42 | /* 43 | * Show the argument in a particular color 44 | */ 45 | Color: function (name) { 46 | var color = this.GetArgument(this.cmd+name); if (this.error) return; 47 | this.CheckHTML(color,name); if (this.error) return; 48 | // check that it looks like a color? 49 | this.AddHTML(name,['','']); 50 | }, 51 | 52 | /* 53 | * Make the argument be a link 54 | */ 55 | Href: function (name) { 56 | var href = this.GetArgument(this.cmd+name); if (this.error) return; 57 | this.CheckHTML(href,name); if (this.error) return; 58 | this.AddHTML(name,['','']); 59 | }, 60 | 61 | /* 62 | * Apply a CSS class to the argument 63 | */ 64 | Class: function (name) { 65 | var clss = this.GetArgument(this.cmd+name); if (this.error) return; 66 | this.CheckHTML(clss,name); if (this.error) return; 67 | this.AddHTML(name,['','']); 68 | }, 69 | 70 | /* 71 | * Apply a CSS style to the argument 72 | */ 73 | Style: function (name) { 74 | var style = this.GetArgument(this.cmd+name); if (this.error) return; 75 | this.CheckHTML(style,name); if (this.error) return; 76 | this.AddHTML(name,['','']); 77 | }, 78 | 79 | /* 80 | * Add a CSS element ID to the argument 81 | */ 82 | CSSId: function (name) { 83 | var id = this.GetArgument(this.cmd+name); if (this.error) return; 84 | this.CheckHTML(id,name); if (this.error) return; 85 | this.AddHTML(name,['','']); 86 | }, 87 | 88 | /* 89 | * Insert some raw HTML around the argument (this will not affect 90 | * the spacing or other TeX features) 91 | */ 92 | AddHTML: function (name,params) { 93 | var data = this.mlist.data; 94 | var arg = this.GetArgument(this.cmd+name); if (this.error) return; 95 | arg = jsMath.Parse(arg,data.font,data.size,data.style); 96 | if (arg.error) {this.Error(arg); return} 97 | this.mlist.Add(jsMath.mItem.HTML(params[0])); 98 | for (var i = 0; i < arg.mlist.Length(); i++) {this.mlist.Add(arg.mlist.Get(i))} 99 | this.mlist.Add(jsMath.mItem.HTML(params[1])); 100 | }, 101 | 102 | CheckHTML: function (data,name) { 103 | if (data.match(/[<>&"]/)) 104 | {this.Error("Can't include raw HTML in first argument of "+this.cmd+name)} 105 | }, 106 | 107 | /* 108 | * Insert a unicode reference as an Ord atom. Its argument should 109 | * be the unicode code point, e.g. \unicode{8211}, or \unicode{x203F}. 110 | * You can also specify the height (offset from the x height) and depth 111 | * in ems, together with a CSS class for the character, e.g., 112 | * \unicode{8211,class,.2,-.3} 113 | */ 114 | Unicode: function (name) { 115 | var arg = this.GetArgument(this.cmd+name); if (this.error) return; 116 | this.CheckHTML(arg,name); if (this.error) return; 117 | arg = arg.split(','); arg[0] = '&#'+arg[0]+';'; 118 | if (!arg[1]) {arg[1] = 'normal'} 119 | this.mlist.Add(jsMath.mItem.TextAtom('ord',arg[0],arg[1],arg[2],arg[3])); 120 | } 121 | 122 | }); 123 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/leaders.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/leaders.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \overbrace, \underbrace, \overrightarrow 7 | * and \overleftarrow macros. It will be loaded automatically when needed, 8 | * or can be loaded by 9 | * 10 | * jsMath.Extension.Require('leaders'); 11 | * 12 | * --------------------------------------------------------------------- 13 | * 14 | * Copyright 2005-2006 by Davide P. Cervone 15 | * 16 | * Licensed under the Apache License, Version 2.0 (the "License"); 17 | * you may not use this file except in compliance with the License. 18 | * You may obtain a copy of the License at 19 | * 20 | * http://www.apache.org/licenses/LICENSE-2.0 21 | * 22 | * Unless required by applicable law or agreed to in writing, software 23 | * distributed under the License is distributed on an "AS IS" BASIS, 24 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25 | * See the License for the specific language governing permissions and 26 | * limitations under the License. 27 | */ 28 | 29 | /********************************************************************/ 30 | 31 | jsMath.Add(jsMath.Box,{ 32 | 33 | /* 34 | * Create a horizontally stretchable "delimiter" (like over- and 35 | * underbraces). 36 | */ 37 | //### Add size? 38 | Leaders: function (W,leader) { 39 | var h; var d; var w; var html; var font; 40 | if (leader.lmid) {// braces 41 | font = jsMath.TeX.fam[leader.left[0]]; 42 | var left = this.GetCharCode(leader.left); 43 | var right = this.GetCharCode(leader.right); 44 | var lmid = this.GetCharCode(leader.lmid); 45 | var rmid = this.GetCharCode(leader.rmid); 46 | w = (W - left.w - right.w - lmid.w - rmid.w)/2 - .1; h = .4; d = .3; 47 | if (w < 0) {w = 0} 48 | html = this.AddClass(left.tclass,left.c,left.font) 49 | + jsMath.HTML.Rule(w,left.h) 50 | + this.AddClass(lmid.tclass,lmid.c+rmid.c,lmid.font) 51 | + jsMath.HTML.Rule(w,right.h) 52 | + this.AddClass(right.tclass,right.c,right.font); 53 | } else { //arrows 54 | font = jsMath.TeX.fam[leader.rep[0]]; 55 | var left = this.GetCharCode(leader.left? leader.left: leader.rep); 56 | var rep = this.GetCharCode(leader.rep); 57 | var right = this.GetCharCode(leader.right? leader.right: leader.rep); 58 | var n = Math.ceil((W - left.w - right.w + .4)/(rep.w - .3)); 59 | w = (W - left.w - right.w + .4 - n*(rep.w - .3)); 60 | if (leader.left) {h = left.h; d = left.d} else {h = right.h; d = right.d} 61 | if (d == null) {d = 0}; if (h == null) {h = 0} 62 | var html = this.AddClass(left.tclass,left.c,left.font); var m = Math.floor(n/2); 63 | var ext = jsMath.HTML.Place(rep.c,-.3,0); 64 | var ehtml = ''; for (var i = 0; i < m; i++) {ehtml += ext}; 65 | html += this.AddClass(rep.tclass,ehtml,rep.font) + jsMath.HTML.Spacer(w); 66 | ehtml = ''; for (var i = m; i < n; i++) {ehtml += ext}; 67 | html += this.AddClass(rep.tclass,ehtml,rep.font); 68 | if (jsMath.Browser.msieFontBug) {html += 'x'} 69 | html += jsMath.HTML.Place(this.AddClass(right.tclass,right.c,right.font),-.4,0); 70 | } 71 | w = jsMath.EmBoxFor(html).w; 72 | if (w != W) { 73 | w = jsMath.HTML.Spacer((W-w)/2); 74 | html = w + html + w; 75 | } 76 | var box = new jsMath.Box('html',html,W,h,d); 77 | box.bh = jsMath.TeX[font].h; box.bd = jsMath.TeX[font].d; 78 | return box; 79 | } 80 | 81 | }); 82 | 83 | jsMath.Package(jsMath.Parser,{ 84 | 85 | macros: { 86 | overbrace: ['HandleLeaders','downbrace',1], 87 | underbrace: ['HandleLeaders','upbrace',1,1,-.05], 88 | overrightarrow: ['HandleLeaders','rightarrow'], 89 | underrightarrow: ['HandleLeaders','rightarrow',null,1,-.2], 90 | overleftarrow: ['HandleLeaders','leftarrow'], 91 | underleftarrow: ['HandleLeaders','leftarrow',null,1,-.2], 92 | overleftrightarrow: ['HandleLeaders','leftrightarrow'], 93 | underleftrightarrow: ['HandleLeaders','leftrightarrow',null,1,-.2] 94 | }, 95 | 96 | /* 97 | * The horizontally stretchable delimiters 98 | */ 99 | leaders: { 100 | downbrace: {left: [3,0x7A], lmid: [3,0x7D], rmid: [3,0x7C], right: [3,0x7B]}, 101 | upbrace: {left: [3,0x7C], lmid: [3,0x7B], rmid: [3,0x7A], right: [3,0x7D]}, 102 | leftarrow: {left: [2,0x20], rep: [2,0x00]}, 103 | rightarrow: {rep: [2,0x00], right: [2,0x21]}, 104 | leftrightarrow: {left: [2,0x20], rep: [2, 0x00], right: [2,0x21]} 105 | }, 106 | 107 | /* 108 | * Implements \overbrace, \underbrace, etc. 109 | */ 110 | HandleLeaders: function (name,data) { 111 | var box = this.ProcessArg(this.cmd+name); if (this.error) return; 112 | box = jsMath.Box.Set(box,'D',this.mlist.data.size).Remeasured(); 113 | var leader = jsMath.Box.Leaders(box.w,this.leaders[data[0]]); 114 | if (data[2]) {leader.y = -leader.h-box.d+(data[3]||0)} 115 | else {leader.y = box.h + Math.max(0,leader.d)+(data[3]||0)} 116 | box.x = -(leader.w + box.w)/2; 117 | var space = jsMath.Box.Space((leader.w-box.w)/2); 118 | box = jsMath.mItem.Atom(data[1]? 'op': 'ord', 119 | jsMath.Box.SetList([leader,box,space],'T',this.mlist.data.size)); 120 | box.limits = (data[1]? 1: 0); 121 | this.mlist.Add(box); 122 | } 123 | 124 | }); 125 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-fallback-mac-mozilla.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jsMath-fallback-mac-mozilla.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes changes needed by Mozilla-based browsers on the Mac 7 | * for when the TeX fonts are not available. 8 | * 9 | * --------------------------------------------------------------------- 10 | * 11 | * Copyright 2004-2006 by Davide P. Cervone 12 | * 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | */ 25 | 26 | 27 | 28 | /******************************************************************** 29 | * 30 | * Fix the default non-TeX-font characters to work with Mozilla 31 | * 32 | */ 33 | 34 | jsMath.Update.TeXfonts({ 35 | cmmi10: { 36 | // '41': // leftharpoondown 37 | // '43': // rightharpoondown 38 | '44': {c: '˓'}, 39 | '45': {c: '˒'}, 40 | '47': {c: ''}, 41 | // '92': // natural 42 | '126': {c: ''} 43 | }, 44 | 45 | cmsy10: { 46 | '0': {c: '–', tclass: 'normal'}, 47 | '11': {c: '/', tclass: 'normal'}, 48 | '42': {c: '⥣'}, '43': {c: '⥥'}, 49 | '48': {c: '', tclass: 'normal'}, 50 | '93': {c: '∪+'}, 51 | '104': {c: ''}, 52 | '105': {c: ''}, 53 | '109': {c: '⥣'} 54 | //, '116': // sqcup 55 | // '117': // sqcap 56 | // '118': // sqsubseteq 57 | // '119': // sqsupseteq 58 | }, 59 | 60 | cmex10: { 61 | '10': {c: ''}, 62 | '11': {c: ''}, 63 | '14': {c: '/'}, '15': {c: '\\'}, 64 | '28': {c: ''}, 65 | '29': {c: ''}, 66 | '30': {c: '/'}, '31': {c: '\\'}, 67 | '42': {c: ''}, 68 | '43': {c: ''}, 69 | '44': {c: '/'}, '45': {c: '\\'}, 70 | '46': {c: '/'}, '47': {c: '\\'}, 71 | '68': {c: ''}, 72 | '69': {c: ''}, 73 | // '70': // sqcup 74 | // '71': // big sqcup 75 | '72': {ic: .194}, '73': {ic: .444}, 76 | '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, 77 | '85': {c: '∪+'}, 78 | '93': {c: '∪+'} 79 | } 80 | 81 | }); 82 | 83 | jsMath.Setup.Styles({ 84 | '.typeset .symbol': "font-family: Osaka", 85 | '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", 86 | '.typeset .arrow2': "font-family: AppleGothic; font-size: 100%; position:relative; top: .11em; margin:-1px", 87 | '.typeset .bigop1': "font-family: AppleGothic; font-size: 110%; position:relative; top: .9em; margin:-.05em", 88 | '.typeset .bigop1b': "font-family: Osaka; font-size: 140%; position: relative; top: .8em; margin:-.1em", 89 | '.typeset .bigop1c': "font-family: AppleGothic; font-size: 125%; position:relative; top: .85em; margin:-.3em", 90 | '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", 91 | '.typeset .bigop2': "font-family: AppleGothic; font-size: 175%; position:relative; top: .85em; margin:-.1em", 92 | '.typeset .bigop2b': "font-family: Osaka; font-size: 200%; position: relative; top: .75em; margin:-.15em", 93 | '.typeset .bigop2c': "font-family: AppleGothic; font-size: 300%; position:relative; top: .75em; margin:-.35em", 94 | '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .7em; margin-left:-.1em; margin-right:-.2em", 95 | '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em; margin:.01em", 96 | '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.8em; margin:.01em", 97 | '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.75em; margin:.01em", 98 | '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.725em; margin:.01em" 99 | }); 100 | 101 | 102 | /* 103 | * replace \not and \joinrel with better dimensions 104 | */ 105 | 106 | jsMath.Macro('not','\\mathrel{\\rlap{\\kern 3mu/}}'); 107 | jsMath.Macro('joinrel','\\mathrel{\\kern-3mu}'); 108 | -------------------------------------------------------------------------------- /static/js/jsMath/easy/load.js: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * Customize the values given below to suit your needs. 4 | * You can make additional copies of this file with 5 | * different customizated settings if you need to load 6 | * jsMath with different parameters. 7 | * 8 | * Load this page via: 9 | * 10 | * 11 | * 12 | * (If you are including this file into your page via Server-Side 13 | * Includes, you should remove line above.) 14 | * 15 | * You can make copies of this file with different settings 16 | * if you need to have several different configurations. 17 | * 18 | **********************************************************************/ 19 | 20 | if (!window.jsMath) {window.jsMath = {}} 21 | 22 | jsMath.Easy = { 23 | // 24 | // The URL of the root jsMath directory on your server 25 | // (it must be in the same domain as the HTML page). 26 | // It should include "http://yoursite.com/", or should 27 | // be relative to the root of your server. It is possible 28 | // to be a relative URL, but it will be relative to the 29 | // HTML page loading this file. 30 | // 31 | // If you leave this blank, jsMath will try to look it up from 32 | // the URL where it loaded this file, but that may not work. 33 | // 34 | root: "", 35 | 36 | // 37 | // The default scaling factor for mathematics compared to the 38 | // surrounding text. 39 | // 40 | scale: 120, 41 | 42 | // 43 | // 1 means use the autoload plug-in to decide if jsMath should be loaded 44 | // 0 means always load jsMath 45 | // 46 | autoload: 1, 47 | 48 | // 49 | // Setting any of these will cause the tex2math plugin to be used 50 | // to add the
and tags that jsMath needs. See the 51 | // documentation for the tex2math plugin for more information. 52 | // 53 | processSlashParens: 1, // process \(...\) in text? 54 | processSlashBrackets: 1, // process \[...\] in text? 55 | processDoubleDollars: 1, // process $$...$$ in text? 56 | processSingleDollars: 0, // process $...$ in text? 57 | processLaTeXenvironments: 0, // process \begin{xxx}...\end{xxx} outside math mode? 58 | fixEscapedDollars: 0, // convert \$ to $ outside of math mode? 59 | doubleDollarsAreInLine: 0, // make $$...$$ be in-line math? 60 | allowDisableTag: 1, // allow ID="tex2math_off" to disable tex2math? 61 | // 62 | // If you want to use your own custom delimiters for math instead 63 | // of the usual ones, then uncomment the following four lines and 64 | // insert your own delimiters within the quotes. You may want to 65 | // turn off processing of the dollars and other delimiters above 66 | // as well, though you can use them in combination with the 67 | // custom delimiters if you wish. See the tex2math documentation 68 | // for more details. 69 | // 70 | //customDelimiters: [ 71 | // '[math]','[/math]', // to begin and end in-line math 72 | // '[display]','[/display]' // to begin and end display math 73 | //], 74 | 75 | // 76 | // Disallow the use of the @(...) mechanism for including raw HTML 77 | // in the contents of \hbox{}? (If used in a content-management system 78 | // where users are allowed to enter mathematics, setting this to 0 79 | // would allow them to enter arbitrary HTML code within their 80 | // math formulas, and that poses a security risk.) 81 | // 82 | safeHBoxes: 1, 83 | 84 | // 85 | // Show TeX source when mathematics is double-clicked? 86 | // 87 | allowDoubleClicks: 1, 88 | 89 | // 90 | // Show jsMath font warning messages? (Disabling this prevents yours 91 | // users from finding out that they can have a better experience on your 92 | // site by installing some fonts, so don't disable this). 93 | // 94 | showFontWarnings: 1, 95 | 96 | // 97 | // Use "Process" or "ProcessBeforeShowing". See the jsMath 98 | // author's documentation for the difference between these 99 | // two routines. 100 | // 101 | method: "Process", 102 | 103 | // 104 | // List of plug-ins and extensions that you want to be 105 | // loaded automatically. E.g. 106 | // ["plugins/mimeTeX.js","extensions/AMSsymbols.js"] 107 | // 108 | loadFiles: [], 109 | 110 | // 111 | // List of fonts to load automatically. E.g. 112 | // ["cmmib10"] 113 | // 114 | loadFonts: [], 115 | 116 | // 117 | // List of macros to define. These are of the form 118 | // name: value 119 | // where 'value' is the replacement text for the macro \name. 120 | // The 'value' can also be [value,n] where 'value' is the replacement 121 | // text and 'n' is the number of parameters for the macro. 122 | // Note that backslashes must be doubled in the replacement string. 123 | // E.g., 124 | // { 125 | // RR: '{\\bf R}', 126 | // bold: ['{\\bf #1}', 1] 127 | // } 128 | // 129 | macros: {}, 130 | 131 | // 132 | // Allow jsMath to enter global mode? 133 | // (Uses frames, so may not always work with complex web sites) 134 | // 135 | allowGlobal: 1, 136 | 137 | // 138 | // Disable image fonts? (In case you don't load them on your server.) 139 | // 140 | noImageFonts: 0 141 | 142 | }; 143 | 144 | /****************************************************************/ 145 | /****************************************************************/ 146 | // 147 | // DO NOT MAKE CHANGES BELOW THIS 148 | // 149 | /****************************************************************/ 150 | /****************************************************************/ 151 | 152 | if (jsMath.Easy.root == "") { 153 | jsMath.Easy.root = document.getElementsByTagName("script"); 154 | jsMath.Easy.root = jsMath.Easy.root[jsMath.Easy.root.length-1].src 155 | if (jsMath.Easy.root.match(/\/easy\/[^\/]*$/)) { 156 | jsMath.Easy.root = jsMath.Easy.root.replace(/\/easy\/[^\/]*$/,""); 157 | } else { 158 | jsMath.Easy.root = jsMath.Easy.root.replace(/\/(jsMath\/(easy\/)?)?[^\/]*$/,"/jsMath"); 159 | } 160 | } 161 | jsMath.Easy.root = jsMath.Easy.root.replace(/\/$/,""); // trim trailing "/" if any 162 | 163 | document.write(''); 100 | 101 | } else { 102 | jsMath.Easy.tex2math = 103 | (jsMath.Easy.processSingleDollars || 104 | jsMath.Easy.processDoubleDollars || 105 | jsMath.Easy.processSlashParens || 106 | jsMath.Easy.processSlashBrackets || 107 | jsMath.Easy.processLaTeXenvironments || 108 | jsMath.Easy.fixEscapedDollars || 109 | jsMath.Easy.customDelimiters); 110 | 111 | if (!jsMath.Setup) {jsMath.Setup = {}} 112 | if (!jsMath.Setup.UserEvent) {jsMath.Setup.UserEvent = {}} 113 | jsMath.Setup.UserEvent.onload = function () { 114 | var easy = jsMath.Easy; 115 | if (easy.tex2math) jsMath.Setup.Script("plugins/tex2math.js"); 116 | var i; 117 | if (easy.loadFiles) { 118 | for (i = 0; i < easy.loadFiles.length; i++) 119 | jsMath.Setup.Script(easy.loadFiles[i]); 120 | } 121 | if (easy.loadFonts) { 122 | for (i = 0; i < easy.loadFonts.length; i++) 123 | jsMath.Font.Load(easy.loadFonts[i]); 124 | } 125 | if (easy.macros) { 126 | for (i in easy.macros) { 127 | if (typeof(easy.macros[i]) == 'string') { 128 | jsMath.Macro(i,easy.macros[i]); 129 | } else { 130 | jsMath.Macro(i,easy.macros[i][0],easy.macros[i][1]); 131 | } 132 | } 133 | } 134 | } 135 | document.write(''+"\n"); 136 | } 137 | 138 | jsMath.Easy.onload = function () { 139 | if (jsMath.Easy.loaded) {return} else {jsMath.Easy.loaded = 1} 140 | if (jsMath.Easy.autoloadCheck) jsMath.Autoload.Check(); 141 | if (jsMath.Easy.tex2math) { 142 | jsMath.Synchronize(function () { 143 | if (jsMath.Easy.findCustomSettings) 144 | jsMath.tex2math.Convert(document,jsMath.Easy.findCustomSettings); 145 | if (jsMath.Easy.customDelimiters) { 146 | var s = jsMath.Easy.customDelimiters; 147 | jsMath.tex2math.CustomSearch(s[0],s[1],s[2],s[3]); 148 | jsMath.tex2math.ConvertCustom(); 149 | } 150 | }); 151 | } 152 | (jsMath[jsMath.Easy.method])(); 153 | } 154 | 155 | if (window.addEventListener) {window.addEventListener("load",jsMath.Easy.onload,false)} 156 | else if (window.attachEvent) {window.attachEvent("onload",jsMath.Easy.onload)} 157 | else {window.onload = jsMath.Easy.onload} 158 | -------------------------------------------------------------------------------- /static/js/jsMath/test/sample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | jsMath (Test): jsMath Sample Page 4 | 5 | 13 | 14 | 15 | 16 | 17 | 23 | 31 | 32 |
33 | 34 |

jsMath Sample Page

35 | 36 | This is a sample file showing you how to use jsMath to display mathematics 37 | in your web pages. Be sure you have followed the installation 39 | instructions before loading this file. Also, you may need to edit the 40 | jsMath/easy/load.js file to set the root URL for where jsMath 41 | can be found on your web site. The rest of this document gives examples of 42 | how to enter mathematics in your pages. Depending on the settings in 43 | jsMath/easy/load.js, not all of the mathematics below will be 44 | processed by jsMath. Experiment with the settings in that file to see how 45 | they work. 46 |

47 | 48 |


49 |

50 | 51 |

Some mathematics using tex2math

52 | 53 | The easiest way to enter mathematics is to use jsMath's tex2math 55 | plugin to identify the mathematics in your document by looking for \rm\TeX-like math delimiters. Here are some math 57 | equations using those markers. Some inline math: $\sqrt{1-x^2}$ or \(ax^2+bx+c\), 58 | and some displayed math: 59 | $$\int {1\over x}\,dx = \ln(x)+C$$ 60 | and 61 | \[\sum_{i=1}^n i = {n(n+1)\over 2}.\] 62 | Note that the first of these will not be processed unless you have enabled 63 | processSingleDollars in jsMath/easy/load.js, 64 | which is disabled by default. That is because a single dollar sign can 65 | appear in normal text (as in "That will cost from $3.50 to 66 | $5.00 to repair"), and you don't want jsMath to try to typeset 67 | the "3.50 to " as mathematics. 68 |

69 | 70 | If you enable processSingleDollars, you might also want to 71 | enable fixEscapedDollars, so that it is possible to enter 72 | dollar signs by preceding them with a backslash. Here's one that you can 73 | use to see the results of these settings: \$ (an escaped dollar) and $x+1$ 74 | (not escaped). 75 |

76 | 77 | It is also possible to use your own custom delimiters for marking the 78 | mathematics within your pages. If you uncomment the customDelimiters 79 | array in jsMath/easy/load.js, then the following math will be 80 | typeset by jsMath: some inline math [math]\sin(2\pi x)[/math] and some 81 | display math [display]x={-b\pm \sqrt{b^2-4ac}\over 2a}.[/display] 82 | You may change the delimiters to nearly anything you want, but they can not 83 | look like HTML tags, since some browsers will eliminate unknown tags, and 84 | jsMath doesn't get to look for the custom delimiters until after the 85 | browser has interpreted the page. 86 |

87 | 88 |

89 | You can prevent the tex2math plugin from processing a portion 90 | of a page by enclosing it in a tag that is of 91 | CLASS="tex2math_ignore". Often, that tag will be a 92 | DIV or SPAN, but it can be anything. This 93 | paragraph is wrapped in a DIV tag with 94 | CLASS="tex2math_ignore", and so no math delimiters will be 95 | processed: $f\colon X\to Y$, \(x^2 \gt 5\), $$1\over 1+x^2$$ and 96 | \[\matrix{a& b\cr c& d}.\] 97 | Note that this includes the processing of escaped dollars (\$) and 98 | custom delimiters ([math]a \mapsto a^2[/math]) as well. 99 | This makes it possible to produce examples of how to enter mathematics on 100 | your site, for instance. 101 |
102 |

103 | JsMath will automatically ignore the text within 104 | PRE tags, so you can easily enter examples that way as well: 105 |

106 |    $f\colon X\to Y$, \(x^2 \gt 5\),
107 |    $$1\over 1+x^2$$ and \[\matrix{a& b\cr c& d}.\]
108 | 
109 |

110 | 111 | Note that since the < and > symbols are used to denote HTML tags, 112 | these can be hard to incorporate into your \rm\TeX 113 | code. Often, putting spaces around the < or > will make it work, but 114 | it is probably better to use \lt and \gt instead. 115 | Also note that the tex2math plugin does not allow any HTML 116 | tags to be within the math delimiters, with the exception of 117 | <BR>, which is ignored. 118 |

119 | 120 | See the tex2math 122 | documentation for more information. 123 |

124 | 125 |


126 |

127 | 128 |

Mathematics without tex2math

129 |

130 | 131 | If you are not using tex2math, then you will need to enclose 132 | your mathematics within SPAN or DIV tags that 133 | are of CLASS="math". Use a SPAN for in-line math 134 | and a DIV for displayed math. For instance, P = (x_1,\ldots,x_n) and 136 |

137 | A = \left\lgroup\matrix{a_{11}& \cdots& a_{1m}\cr 138 | \vdots& \ddots& \vdots\cr 139 | a_{n1}& \cdots& a_{nm}\cr}\right\rgroup. 140 |
141 |

142 |


143 |

144 |

More information

145 |

146 | 147 | See the jsMath 148 | example files for more examples of using jsMath. There are several extensions 150 | to \rm\TeX that allow jsMath to interact better 151 | with HTML. These provide features such as colored text, tagging mathematics 152 | with CSS styles, and so on. 153 |

154 | 155 | More information is available from the jsMath author's 157 | documentation site. JsMath also has a home page at 159 | SourceForge, and that includes public forums 161 | for jsMath where you can ask the jsMath user community for help. 162 |

163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/newcommand.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/newcommand.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file implements the \newcommand and \def macros. It will be 7 | * loaded automatically when needed, or can be loaded by 8 | * 9 | * jsMath.Extension.Require('newcommand'); 10 | * 11 | * --------------------------------------------------------------------- 12 | * 13 | * Copyright 2005-2006 by Davide P. Cervone 14 | * 15 | * Licensed under the Apache License, Version 2.0 (the "License"); 16 | * you may not use this file except in compliance with the License. 17 | * You may obtain a copy of the License at 18 | * 19 | * http://www.apache.org/licenses/LICENSE-2.0 20 | * 21 | * Unless required by applicable law or agreed to in writing, software 22 | * distributed under the License is distributed on an "AS IS" BASIS, 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | * See the License for the specific language governing permissions and 25 | * limitations under the License. 26 | */ 27 | 28 | /********************************************************************/ 29 | 30 | jsMath.Package(jsMath.Parser,{ 31 | 32 | macros: { 33 | newcommand: 'NewCommand', 34 | newenvironment: 'NewEnvironment', 35 | def: 'MacroDef' 36 | }, 37 | 38 | /* 39 | * Implement \newcommand{\name}[n]{...} 40 | */ 41 | NewCommand: function (name) { 42 | var cs = this.trimSpaces(this.GetArgument(this.cmd+name)); if (this.error) return; 43 | var n = this.trimSpaces(this.GetBrackets(this.cmd+name)); if (this.error) return; 44 | var def = this.GetArgument(this.cmd+name); if (this.error) return; 45 | if (n == '') {n = null} 46 | if (cs.charAt(0) == this.cmd) {cs = cs.substr(1)} 47 | if (!cs.match(/^(.|[a-z]+)$/i)) {this.Error("Illegal control sequence name for "+this.cmd+name); return} 48 | if (n != null && !n.match(/^[0-9]+$/)) {this.Error("Illegal number of parameters specified in "+this.cmd+name); return} 49 | jsMath.Parser.prototype.macros[cs] = ['Macro',def,n]; 50 | }, 51 | 52 | /* 53 | * Implement \newenvironment{name}[n]{begincmd}{endcmd} 54 | */ 55 | NewEnvironment: function (name) { 56 | var env = this.trimSpaces(this.GetArgument(this.cmd+name)); if (this.error) return; 57 | var n = this.trimSpaces(this.GetBrackets(this.cmd+name)); if (this.error) return; 58 | var bdef = this.GetArgument(this.cmd+name); if (this.error) return; 59 | var edef = this.GetArgument(this.cmd+name); if (this.error) return; 60 | if (n == '') {n = null} 61 | if (n != null && !n.match(/^[0-9]+$/)) {this.Error("Illegal number of parameters specified in "+this.cmd+name); return} 62 | jsMath.Parser.prototype.environments[env] = ['Environment',bdef,edef,n]; 63 | }, 64 | 65 | /* 66 | * Implement \def command 67 | */ 68 | MacroDef: function (name) { 69 | var cs = this.GetCSname(this.cmd+name); if (this.error) return; 70 | var params = this.GetTemplate(this.cmd+name); if (this.error) return; 71 | var def = this.GetArgument(this.cmd+name); if (this.error) return; 72 | if (typeof(params) == 'number') { 73 | jsMath.Parser.prototype.macros[cs] = ['Macro',def,params]; 74 | } else { 75 | jsMath.Parser.prototype.macros[cs] = ['MacroWithTemplate',def,params[0],params[1]]; 76 | } 77 | }, 78 | 79 | /* 80 | * Get a CS name or give an error 81 | */ 82 | GetCSname: function (cmd) { 83 | var c = this.GetNext(); 84 | if (c != this.cmd) {this.Error(cmd+" must be followed by a control sequence"); return null} 85 | var cs = this.trimSpaces(this.GetArgument(cmd)); if (this.error) {return null}; 86 | return cs.substr(1); 87 | }, 88 | 89 | /* 90 | * Get a \def parameter template 91 | */ 92 | GetTemplate: function (cmd) { 93 | var c; var params = []; var n = 0; 94 | c = this.GetNext(); var i = this.i; 95 | while (this.i < this.string.length) { 96 | c = this.GetNext(); 97 | if (c == '#') { 98 | if (i != this.i) {params[n] = this.string.substr(i,this.i-i)} 99 | c = this.string.charAt(++this.i); 100 | if (!c.match(/[1-9]/)) {this.Error("Illegal use of # in "+cmd); return null} 101 | if (1*c != ++n) {this.Error("Parameters must be numbered sequentially"); return null} 102 | i = this.i+1; 103 | } else if (c == '{') { 104 | if (i != this.i) {params[n] = this.string.substr(i,this.i-i)} 105 | if (params.length > 0) {return [n,params]} else {return n} 106 | } 107 | this.i++; 108 | } 109 | this.Error("Missing replacement string for definition of "+cmd); 110 | return null; 111 | }, 112 | 113 | /* 114 | * Process a macro with a parameter template 115 | */ 116 | MacroWithTemplate: function (name,data) { 117 | var text = data[0]; 118 | var n = data[1]; var params = data[2]; 119 | if (n) { 120 | var args = []; var c = this.GetNext(); 121 | if (params[0] && !this.MatchParam(params[0])) 122 | {this.Error("Use of "+this.cmd+name+" doesn't match its definition"); return} 123 | for (var i = 0; i < n; i++) { 124 | args[args.length] = this.GetParameter(this.cmd+name,params[i+1]); 125 | if (this.error) return; 126 | } 127 | text = this.SubstituteArgs(args,text); 128 | } 129 | this.string = this.AddArgs(text,this.string.slice(this.i)); 130 | this.i = 0; 131 | }, 132 | 133 | /* 134 | * Process a user-defined environment 135 | */ 136 | Environment: function (name,data) { 137 | var bdef = data[0]; var edef = data[1]; var n = data[2]; 138 | if (n) { 139 | var args = []; 140 | for (var i = 0; i < n; i++) { 141 | args[args.length] = this.GetArgument(this.cmd+"begin{"+name+"}"); if (this.error) return; 142 | } 143 | bdef = this.SubstituteArgs(args,bdef); 144 | } 145 | var text = this.GetEnd(name); if (this.error) return; 146 | text = this.AddArgs(this.AddArgs(bdef,text),edef); 147 | this.string = this.AddArgs(text,this.string.slice(this.i)); 148 | this.i = 0; 149 | }, 150 | 151 | /* 152 | * Find a single parameter delimited by a trailing template 153 | */ 154 | GetParameter: function (name,param) { 155 | if (param == null) {return this.GetArgument(name)} 156 | var i = this.i; var j = 0; var hasBraces = 0; 157 | while (this.i < this.string.length) { 158 | if (this.string.charAt(this.i) == '{') { 159 | if (this.i == i) {hasBraces = 1} 160 | this.GetArgument(name); j = this.i - i; 161 | } else if (this.MatchParam(param)) { 162 | if (hasBraces) {i++; j -= 2} 163 | return this.string.substr(i,j); 164 | } else { 165 | this.i++; j++; hasBraces = 0; 166 | } 167 | } 168 | this.Error("Runaway argument for "+name+"?"); 169 | return null; 170 | }, 171 | 172 | /* 173 | * Check if a template is at the current location. 174 | * (The match must be exact, with no spacing differences. TeX is 175 | * a little more forgiving about spaces after macro names) 176 | */ 177 | MatchParam: function (param) { 178 | if (this.string.substr(this.i,param.length) != param) {return 0} 179 | this.i += param.length; 180 | return 1; 181 | } 182 | 183 | }); 184 | 185 | /* 186 | * Define a jsMath.Environment() command similar to the 187 | * jsMath.Macro() command. 188 | * 189 | * Usage: jsMath.Environment(name,begin,end[,n]) 190 | * 191 | * where "name" is the name of the environment, "begin" is the 192 | * text that replaces the \begin{name} and "end" is the text that 193 | * replaces the \end{name}. If "n" is provided, it is the number 194 | * of parameters that the \begin{name} accepts, and these are 195 | * used to replace #1, #2, etc within the "begin" text. 196 | */ 197 | 198 | jsMath.Add(jsMath,{ 199 | Environment: function (name) { 200 | var environments = jsMath.Parser.prototype.environments; 201 | environments[name] = ['Environment']; 202 | for (var i = 1; i < arguments.length; i++) 203 | {environments[name][environments[name].length] = arguments[i]} 204 | } 205 | }); 206 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/eqn-number.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/eqn-number.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file causes jsMath to add equation numbers to displayed 7 | * equations. These are displayed at the right, but the styles can 8 | * be controlled through the jsMath.EqnNumber object. Equations 9 | * are numbered if they include a \label{xxx} call, and the macro 10 | * \ref{xxx} can be used to refer to the equation number elsewhere 11 | * in the document (it must appear by itself in a math formula, 12 | * e.g., $\ref{xxx}$). The "label-ref" CSS style can be used to 13 | * style the references. 14 | * 15 | * If jsMath.EqnNumber.autonumber is set to 1, then ALL displayed 16 | * equations will be numberd. Use the \nolabel macro to prevent 17 | * equation numbering on an equation. 18 | * 19 | * You can activate eqn-numbering by calling 20 | * 21 | * jsMath.Extension.Require('eqn-number'); 22 | * 23 | * once jsMath.js has been loaded, or by adding "extensions/eqn-number.js" 24 | * to the loadFiles array in jsMath/easy/load.js. 25 | * 26 | * --------------------------------------------------------------------- 27 | * 28 | * Copyright 2008 by Davide P. Cervone 29 | * 30 | * Licensed under the Apache License, Version 2.0 (the "License"); 31 | * you may not use this file except in compliance with the License. 32 | * You may obtain a copy of the License at 33 | * 34 | * http://www.apache.org/licenses/LICENSE-2.0 35 | * 36 | * Unless required by applicable law or agreed to in writing, software 37 | * distributed under the License is distributed on an "AS IS" BASIS, 38 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 39 | * See the License for the specific language governing permissions and 40 | * limitations under the License. 41 | */ 42 | 43 | /********************************************************************/ 44 | 45 | if (jsMath.EqnNumber) {jsMath.EqnNumber_old = jsMath.EqnNumber} 46 | 47 | jsMath.EqnNumber = { 48 | 49 | styles: { 50 | '.jsMath_displayBox, .tex2math_div': {position: 'relative'}, 51 | '.jsMath_number': { 52 | position: 'absolute', 53 | right: '2em', top: '50%', 'margin-top': '-.5em', 54 | height: 'auto', width: 'auto' 55 | }, 56 | '.jsMath_ref': {'text-decoration': 'none'} 57 | }, 58 | 59 | autonumber: 0, // set to 1 to have ALL equations numbered 60 | 61 | number: 0, 62 | format: function (n) {return n}, 63 | formatLabel: function (n) {return '('+n+')'}, 64 | formatRef: function (n) {return '('+n+')'}, 65 | 66 | _label: null, // flag set when \label{x} is used 67 | _labels: {}, // stores label-name => label-value pairs 68 | _refs: {}, // stores elements referring to undefined labels 69 | _nolabel: 0, // set by \nolabel 70 | 71 | nextNumber: function () { 72 | var ref = this.format(++this.number); 73 | if (this._label) { 74 | this._labels[this._label] = ref; 75 | if (this._refs[this._label]) this.fixRefs(this._label); 76 | } 77 | return this.formatLabel(ref); 78 | }, 79 | 80 | isRef: function (element) { 81 | var tex = element.innerHTML; 82 | var result = tex.match(/^\s*\\ref\s*\{([^\}]+)\}\s*$/); 83 | if (!result) {return 0} 84 | var ref = result[1]; 85 | if (this._labels[ref]) { 86 | this.setRef(element,ref); 87 | } else { 88 | if (!this._refs[ref]) {this._refs[ref] = []} 89 | this._refs[ref][this._refs[ref].length] = element; 90 | } 91 | return 1; 92 | }, 93 | 94 | setRef: function (element,ref) { 95 | element.innerHTML = this.formatRef(this._labels[ref]); 96 | element.className = "label-ref"; 97 | }, 98 | 99 | fixRefs: function (label) { 100 | for (var i = 0; i < this._refs[label].length; i++) 101 | {this.setRef(this._refs[label][i],label)} 102 | delete this._refs[label]; 103 | }, 104 | 105 | badRefs: function () { 106 | for (var label in this._refs) { 107 | for (var i = 0; i < this._refs[label].length; i++) { 108 | var element = this._refs[label][i]; 109 | element.className = "typeset"; 110 | element.innerHTML = "Reference '"+label+"' is undefined"; 111 | } 112 | } 113 | }, 114 | 115 | makeDIV: function (element) { 116 | var div = document.createElement('div'); 117 | div.className = 'jsMath_displayBox'; 118 | div.innerHTML = '
' + this.nextNumber() + '
'; 119 | element.parentNode.insertBefore(div,element); 120 | element.parentNode.removeChild(element); 121 | div.appendChild(element); 122 | }, 123 | 124 | makeSPAN: function (element) { 125 | var span = document.createElement('span'); 126 | span.className = 'jsMath_number'; 127 | span.style.display = 'inline-block'; 128 | span.innerHTML = jsMath.EqnNumber.nextNumber(); 129 | element.parentNode.insertBefore(span,element); 130 | }, 131 | 132 | ConvertMath: function (style,element,nocache) { 133 | var EqnNumber = jsMath.EqnNumber; 134 | if (EqnNumber.isRef(element)) return; 135 | EqnNumber._label = null; EqnNumber._nolabel = 0; 136 | this.ConvertMath_old(style,element,nocache); 137 | if (EqnNumber._label || (EqnNumber.autonumber && !EqnNumber._nolabel)) { 138 | if (element.tagName.toLowerCase() == 'div') { 139 | EqnNumber.makeDIV(element); 140 | } else if (element.parentNode.className == 'tex2math_div') { 141 | EqnNumber.makeSPAN(element); 142 | } 143 | } 144 | }, 145 | 146 | ProcessComplete: function () { 147 | jsMath.EqnNumber.badRefs(); 148 | this.ProcessComplete_old.apply(this,arguments); 149 | }, 150 | 151 | Init: function () { 152 | jsMath.Setup.Styles(this.styles); 153 | jsMath.Translate.ConvertMath_old = jsMath.Translate.ConvertMath; 154 | jsMath.Translate.ConvertMath = this.ConvertMath; 155 | jsMath.Translate.ProcessComplete_old = jsMath.Translate.ProcessComplete; 156 | jsMath.Translate.ProcessComplete = this.ProcessComplete; 157 | }, 158 | 159 | environments: { 160 | 'equation*': 'Star', 161 | 'eqnarray*': 'Star', 162 | 'align*': 'Star', 163 | 'multline*': 'Star', 164 | 'gather*': 'Star', 165 | align: ['StarExtension','AMSmath'], 166 | multline: ['StarExtension','AMSmath'], 167 | gather: ['StarExtension','AMSmath'] 168 | }, 169 | 170 | ResetStarEnvironments: function () { 171 | var Nenv = jsMath.EqnNumber.environments; 172 | var Penv = jsMath.Parser.prototype.environments; 173 | for (var name in Nenv) { 174 | if (name.match(/\*$/)) {Penv[name] = Nenv[name]} 175 | } 176 | } 177 | 178 | }; 179 | 180 | if (jsMath.EqnNumber_old) { 181 | jsMath.Insert(jsMath.EqnNumber,jsMath.EqnNumber_old); 182 | delete jsMath.EqnNumber_old; 183 | } 184 | 185 | jsMath.Package(jsMath.Parser,{ 186 | macros: { 187 | label: 'Label', 188 | nolabel: 'NoLabel', 189 | nonumber: 'NoLabel', 190 | ref: 'Ref' 191 | }, 192 | 193 | environments: jsMath.EqnNumber.environments, 194 | 195 | Label: function (name) { 196 | var label = this.GetArgument(this.cmd+name); if (this.error) return; 197 | var EqnNumber = jsMath.EqnNumber; 198 | if (!EqnNumber._label) { 199 | if (!EqnNumber._labels[label]) { 200 | EqnNumber._label = label; 201 | EqnNumber._nolabel = 0; 202 | } else { 203 | this.Error("Label '"+label+"' is already defined"); 204 | } 205 | } else { 206 | this.Error(this.cmd+name+' can only be used once in an equation'); 207 | } 208 | }, 209 | 210 | NoLabel: function (name) { 211 | var EqnNumber = jsMath.EqnNumber; 212 | EqnNumber._label = null; EqnNumber._nolabel = 1; 213 | }, 214 | 215 | Ref: function (name) { 216 | this.Error(this.cmd+name+' must be used by itself'); 217 | }, 218 | 219 | Star: function (name) { 220 | this.NoLabel(); 221 | var cmd = this.environments[name.substr(0,name.length-1)]; 222 | if (typeof(cmd) === 'string') {cmd = [cmd]} 223 | this[cmd[0]](name,cmd.slice(1)); 224 | }, 225 | 226 | StarExtension: function (name,data) { 227 | try {this.Extension(name,data)} catch (e) {} 228 | jsMath.Synchronize(jsMath.EqnNumber.ResetStarEnvironments); 229 | throw "restart"; 230 | } 231 | 232 | }); 233 | 234 | jsMath.EqnNumber.Init(); 235 | -------------------------------------------------------------------------------- /static/js/jsMath/plugins/mimeTeX.js: -------------------------------------------------------------------------------- 1 | /* 2 | * mimeTeX.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes jsMath more compatible with the mimeTeX program. 7 | * It does not make everything work, but it goes a long way. 8 | * 9 | * --------------------------------------------------------------------- 10 | * 11 | * Copyright 2004-2006 by Davide P. Cervone 12 | * 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | */ 25 | 26 | 27 | /* 28 | * Treat ~ as space 29 | */ 30 | jsMath.Parser.prototype.nextIsSpace = function () { 31 | return this.string.charAt(this.i) == ' ' || 32 | this.string.charAt(this.i) == '~'; 33 | } 34 | jsMath.Parser.prototype.special['~'] = 'Space'; 35 | 36 | /* 37 | * Implement \[ ... \], \( ... \), etc. 38 | */ 39 | jsMath.Macro('[','\\left['); jsMath.Macro(']','\\right]'); 40 | jsMath.Macro('(','\\left('); jsMath.Macro(')','\\right)'); 41 | jsMath.Macro('<','\\left<'); jsMath.Macro('>','\\right>'); 42 | // can't do \. in a reasonable way 43 | jsMath.Parser.prototype.macros['|'] = ['HandleLR','|','|']; 44 | jsMath.Parser.prototype.macros['='] = ['HandleLR','\\|','\\|']; 45 | 46 | /* 47 | * Make non-standard \left{ and \right} work 48 | */ 49 | jsMath.Parser.prototype.delimiter['}'] = [5,2,0x67,3,0x09]; 50 | jsMath.Parser.prototype.delimiter['{'] = [4,2,0x66,3,0x08]; 51 | 52 | 53 | /* 54 | * Immitate mimeTeX \big... and \Big... ops 55 | */ 56 | 57 | // make the normal ones in text mode 58 | jsMath.Macro('int','\\intop\\nolimits'); 59 | jsMath.Macro('oint','\\ointop\\nolimits'); 60 | jsMath.Macro('sum','\\sumop\\nolimits'); 61 | jsMath.Macro('prod','\\prodop\\nolimits'); 62 | jsMath.Macro('coprod','\\coprodop\\nolimits'); 63 | 64 | jsMath.Macro('bigint','\\bigintop\\nolimits'); 65 | jsMath.Macro('bigoint','\\bigointop\\nolimits'); 66 | jsMath.Macro('bigsum','\\bigsumop\\nolimits'); 67 | jsMath.Macro('bigprod','\\bigprodop\\nolimits'); 68 | jsMath.Macro('bigcoprod','\\bigcoprodop\\nolimits'); 69 | 70 | jsMath.Macro('Bigint','\\bigintop\\limits'); 71 | jsMath.Macro('Bigoint','\\bigointop\\limits'); 72 | jsMath.Macro('Bigsum','\\bigsumop\\limits'); 73 | jsMath.Macro('Bigprod','\\bigprodop\\limits'); 74 | jsMath.Macro('Bigcoprod','\\bigcoprod\\limits'); 75 | 76 | /* 77 | * The characters needed for the macros above 78 | */ 79 | jsMath.Parser.prototype.mathchardef['coprodop'] = [1,3,0x60]; 80 | jsMath.Parser.prototype.mathchardef['prodop'] = [1,3,0x51]; 81 | jsMath.Parser.prototype.mathchardef['sumop'] = [1,3,0x50]; 82 | 83 | jsMath.Parser.prototype.mathchardef['bigintop'] = [1,3,0x5A]; 84 | jsMath.Parser.prototype.mathchardef['bigointop'] = [1,3,0x49]; 85 | jsMath.Parser.prototype.mathchardef['bigcoprodop'] = [1,3,0x61]; 86 | jsMath.Parser.prototype.mathchardef['bigprodop'] = [1,3,0x59]; 87 | jsMath.Parser.prototype.mathchardef['bigsumop'] = [1,3,0x58]; 88 | 89 | /* 90 | * Unlink the small versions so they don't enlarge in display mode 91 | */ 92 | jsMath.TeX['cmex10'][0x48].n = null; 93 | jsMath.TeX['cmex10'][0x50].n = null; 94 | jsMath.TeX['cmex10'][0x51].n = null; 95 | jsMath.TeX['cmex10'][0x52].n = null; 96 | jsMath.TeX['cmex10'][0x60].n = null; 97 | 98 | 99 | /* 100 | * Some other missing items 101 | */ 102 | jsMath.Macro('/','{}'); // insert an empty box \/ 103 | jsMath.Macro('raisebox','\\raise #1px ',1); // convert to \raise 104 | jsMath.Macro('hfill','\\quad ',1); // punt 105 | jsMath.Macro('fbox','\\oldfbox{$#1$}',1); // do fbox in math mode 106 | 107 | /* 108 | * These get new JavaScript routines 109 | */ 110 | jsMath.Parser.prototype.macros['unitlength'] = 'unitlength'; 111 | jsMath.Parser.prototype.macros['hspace'] = 'hspace'; 112 | jsMath.Parser.prototype.macros['fs'] = 'fs'; 113 | jsMath.Parser.prototype.macros['oldfbox'] = 'FBox'; 114 | 115 | /* 116 | * Add some JavaScript functions to the parser 117 | */ 118 | jsMath.Package(jsMath.Parser,{ 119 | 120 | /* 121 | * Implement \left x ... \right x 122 | */ 123 | HandleLR: function (name,data) { 124 | var arg = this.GetUpto(name,name); if (this.error) return; 125 | this.string = '\\left'+data[0]+arg+'\\right'+data[1]; 126 | this.i = 0; 127 | }, 128 | 129 | /* 130 | * Hold the unit length in mlist.data 131 | */ 132 | unitlength: function (name) { 133 | var n = this.GetArgument(this.cmd+name); if (this.error) return; 134 | if (!n.match(/^-?(\d+(\.\d*)?|\.\d+)$/)) { 135 | this.Error("Argument for "+this.cmd+name+" must be a number"); 136 | return; 137 | } 138 | this.mlist.data['unitlength'] = n; 139 | }, 140 | 141 | /* 142 | * Get the length (converted to ems) and multiply by the unit length 143 | */ 144 | hspace: function (name) { 145 | var w = this.GetArgument(this.cmd+name); if (this.error) return; 146 | if (!w.match(/^-?(\d+(\.\d*)?|\.\d+)$/)) { 147 | this.Error("Argument for "+this.cmd+name+" must be a number"); 148 | return; 149 | } 150 | w /= jsMath.em 151 | if (this.mlist.data['unitlength']) {w *= this.mlist.data['unitlength']} 152 | this.mlist.Add(jsMath.mItem.Space(w)); 153 | }, 154 | 155 | /* 156 | * Implement \fs{...} for font-size changing 157 | */ 158 | fs: function (name) { 159 | var n = this.GetArgument(this.cmd+name); if (this.error) return; 160 | if (!n.match(/^[-+]?\d+$/)) { 161 | this.Error("Argument for "+this.cmd+name+" must be an integer"); 162 | return; 163 | } 164 | if (n.match(/[-+]/)) {n = n - 0; n += this.mlist.data.size} 165 | this.mlist.data.size = n = Math.max(0,Math.min(9,n)); 166 | this.mlist.Add(new jsMath.mItem('size',{size: n})); 167 | }, 168 | 169 | /* 170 | * Repalce the Array function by one that accepts an optional 171 | * parameter for the column types, and that handle's mimeTeX's 172 | * "preamble" format. 173 | */ 174 | Array: function (name,delim) { 175 | var columns = delim[2]; var cspacing = delim[3]; 176 | if (!columns && this.GetNext() == '{') { 177 | columns = this.GetArgument(this.cmd+'begin{'+name+'}'); 178 | if (this.error) return; 179 | } else { 180 | columns = ''; 181 | } 182 | columns = columns.replace(/[^clr]/g,''); 183 | columns = columns.split(''); 184 | var data = this.mlist.data; var style = delim[5] || 'T'; 185 | var arg = this.GetEnd(name); if (this.error) return; 186 | if (arg.match(/\$/)) {arg = arg.replace(/^([^$]*)\$/,''); columns = RegExp.$1} 187 | var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,style); 188 | parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; 189 | parse.Parse(); if (parse.error) {this.Error(parse); return} 190 | parse.HandleRow(name,1); // be sure the last row is recorded 191 | var box = jsMath.Box.Layout(data.size,parse.table,columns,cspacing,parse.rspacing,delim[4]||null); 192 | // Add parentheses, if needed 193 | if (delim[0] && delim[1]) { 194 | var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); 195 | var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); 196 | box = jsMath.Box.SetList([left,box,right],data.style,data.size); 197 | } 198 | this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); 199 | }, 200 | 201 | /* 202 | * Similarly for Matrix (used by \matrix and \array) 203 | */ 204 | Matrix: function (name,delim) { 205 | var data = this.mlist.data; 206 | var arg = this.GetArgument(this.cmd+name); if (this.error) return; 207 | if (arg.match(/\$/)) {arg = arg.replace(/^([^$]*)\$/,''); delim[2] = RegExp.$1} 208 | var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,delim[5] || 'T'); 209 | parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; 210 | parse.Parse(); if (parse.error) {this.Error(parse); return} 211 | parse.HandleRow(name,1); // be sure the last row is recorded 212 | var box = jsMath.Box.Layout(data.size,parse.table,delim[2]||null,delim[3]||null,parse.rspacing,delim[4]||null); 213 | // Add parentheses, if needed 214 | if (delim[0] && delim[1]) { 215 | var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); 216 | var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); 217 | box = jsMath.Box.SetList([left,box,right],data.style,data.size); 218 | } 219 | this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); 220 | } 221 | }); 222 | -------------------------------------------------------------------------------- /my.conf: -------------------------------------------------------------------------------- 1 | # gitit wiki configuration file 2 | 3 | port: 5001 4 | # sets the port on which the web server will run. 5 | 6 | wiki-title: Cambridge Programming Research Group - Computer Laboratory 7 | # the title of the wiki. 8 | 9 | repository-type: Git 10 | # specifies the type of repository used for wiki content. 11 | # Options are Git, Darcs, and Mercurial. 12 | 13 | repository-path: wikidata 14 | # specifies the path of the repository directory. If it does not 15 | # exist, gitit will create it on startup. 16 | 17 | authentication-method: form 18 | # 'form' means that users will be logged in and registered 19 | # using forms in the gitit web interface. 'http' means 20 | # that gitit will assume that HTTP authentication is in 21 | # place and take the logged in username from the "Authorization" 22 | # field of the HTTP request header (in addition, 23 | # the login/logout and registration links will be 24 | # suppressed). 'generic' means that gitit will assume that 25 | # some form of authentication is in place that directly 26 | # sets REMOTE_USER to the name of the authenticated user 27 | # (e.g. mod_auth_cas on apache). 28 | 29 | user-file: gitit-users 30 | # specifies the path of the file containing user login information. 31 | # If it does not exist, gitit will create it (with an empty user list). 32 | # This file is not used if 'http' is selected for authentication-method. 33 | 34 | static-dir: static 35 | # specifies the path of the static directory (containing javascript, 36 | # css, and images). If it does not exist, gitit will create it 37 | # and populate it with required scripts, stylesheets, and images. 38 | 39 | default-page-type: Markdown 40 | # specifies the type of markup used to interpret pages in the wiki. 41 | # Possible values are Markdown, RST, LaTeX, HTML, Markdown+LHS, RST+LHS, 42 | # and LaTeX+LHS. (The +LHS variants treat the input as 43 | # literate Haskell. See pandoc's documentation for more details.) If 44 | # Markdown is selected, pandoc's syntax extensions (for footnotes, 45 | # delimited code blocks, etc.) will be enabled. Note that pandoc's 46 | # reStructuredText parser is not complete, so some pages may not be 47 | # rendered correctly if RST is selected. The same goes for LaTeX and 48 | # HTML. 49 | 50 | math: jsMath 51 | # specifies how LaTeX math is to be displayed. Possible values 52 | # are MathML, raw, and jsMath. If mathml is selected, gitit will 53 | # convert LaTeX math to MathML and link in a script, MathMLinHTML.js, 54 | # that allows the MathML to be seen in Gecko browsers, IE + 55 | # mathplayer, and Opera. In other browsers you may get a jumble 56 | # of characters. If raw is selected, the LaTeX math will be displayed 57 | # as raw LaTeX math. If jsMath is selected, gitit will link to 58 | # the script /js/jsMath/easy/load.js, and will assume that jsMath 59 | # has been installed into the js/jsMath directory. This is the most 60 | # portable solution. 61 | 62 | show-lhs-bird-tracks: no 63 | # specifies whether to show Haskell code blocks in "bird style", 64 | # with "> " at the beginning of each line. 65 | 66 | templates-dir: templates 67 | # specifies the path of the directory containing page templates. 68 | # If it does not exist, gitit will create it with default templates. 69 | # Users may wish to edit the templates to customize the appearance of 70 | # their wiki. The template files are HStringTemplate templates. 71 | # Variables to be interpolated appear between $'s. Literal $'s must be 72 | # backslash-escaped. 73 | 74 | log-file: gitit.log 75 | # specifies the path of gitit's log file. If it does not exist, 76 | # gitit will create it. The log is in Apache combined log format. 77 | 78 | log-level: WARNING 79 | # determines how much information is logged. 80 | # Possible values (from most to least verbose) are DEBUG, INFO, 81 | # NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY. 82 | 83 | front-page: Front Page 84 | # specifies which wiki page is to be used as the wiki's front page. 85 | # Gitit creates a default front page on startup, if one does not exist 86 | # already. 87 | 88 | no-delete: Front Page, Help 89 | # specifies pages that cannot be deleted through the web interface. 90 | # (They can still be deleted directly using git or darcs.) 91 | # A comma-separated list of page names. Leave blank to allow 92 | # every page to be deleted. 93 | 94 | no-edit: Help 95 | # specifies pages that cannot be edited through the web interface. 96 | # Leave blank to allow every page to be edited. 97 | 98 | default-summary: 99 | # specifies text to be used in the change description if the author 100 | # leaves the "description" field blank. If default-summary is blank 101 | # (the default), the author will be required to fill in the description 102 | # field. 103 | 104 | table-of-contents: yes 105 | # specifies whether to print a tables of contents (with links to 106 | # sections) on each wiki page. 107 | 108 | plugins: plugins/EmbedFeed.hs 109 | # specifies a list of plugins to load. Plugins may be specified 110 | # either by their path or by their module name. If the plugin name 111 | # starts with Gitit.Plugin., gitit will assume that the plugin is 112 | # an installed module and will not try to find a source file. 113 | # Examples: 114 | # plugins: plugins/DotPlugin.hs, CapitalizeEmphasisPlugin.hs 115 | # plugins: plugins/DotPlugin 116 | # plugins: Gitit.Plugin.InterwikiLinks 117 | 118 | use-cache: no 119 | # specifies whether to cache rendered pages. Note that if use-feed 120 | # is selected, feeds will be cached regardless of the value of use-cache. 121 | 122 | cache-dir: cache 123 | # directory where rendered pages will be cached 124 | 125 | max-upload-size: 100K 126 | # specifies an upper limit on the size (in bytes) of files uploaded 127 | # through the wiki's web interface. 128 | 129 | debug-mode: no 130 | # if "yes", causes debug information to be logged while gitit is running. 131 | 132 | compress-responses: yes 133 | # specifies whether HTTP responses should be compressed. 134 | 135 | #mime-types-file: /etc/mime.types 136 | mime-types-file: /private/etc/apache2/mime.types 137 | # specifies the path of a file containing mime type mappings. 138 | # Each line of the file should contain two fields, separated by 139 | # whitespace. The first field is the mime type, the second is a 140 | # file extension. For example: 141 | # video/x-ms-wmx wmx 142 | # If the file is not found, some simple defaults will be used. 143 | 144 | use-recaptcha: no 145 | # if "yes", causes gitit to use the reCAPTCHA service 146 | # (http://recaptcha.net) to prevent bots from creating accounts. 147 | 148 | recaptcha-private-key: 149 | recaptcha-public-key: 150 | # specifies the public and private keys for the reCAPTCHA service. 151 | # To get these, you need to create an account at http://recaptcha.net. 152 | 153 | access-question: 154 | access-question-answers: 155 | # specifies a question that users must answer when they attempt to create 156 | # an account, along with a comma-separated list of acceptable answers. 157 | # This can be used to institute a rudimentary password for signing up as 158 | # a user on the wiki, or as an alternative to reCAPTCHA. 159 | # Example: 160 | # access-question: What is the code given to you by Ms. X? 161 | # access-question-answers: RED DOG, red dog 162 | 163 | mail-command: sendmail %s 164 | # specifies the command to use to send notification emails. 165 | # '%s' will be replaced by the destination email address. 166 | # The body of the message will be read from stdin. 167 | # If this field is left blank, password reset will not be offered. 168 | 169 | reset-password-message: 170 | > From: nobody@$hostname$ 171 | > To: $useremail$ 172 | > Subject: Wiki password reset 173 | > 174 | > Dear $username$: 175 | > 176 | > To reset your password, please follow the link below: 177 | > http://$hostname$:$port$$resetlink$ 178 | > 179 | > Yours sincerely, 180 | > The Wiki Master 181 | 182 | # gives the text of the message that will be sent to the user should she 183 | # want to reset her password, or change other registration info. 184 | # The lines must be indented, and must begin with '>'. The initial 185 | # spaces and '> ' will be stripped off. $username$ will be replaced 186 | # by the user's username, $useremail$ by her email address, 187 | # $hostname$ by the hostname on which the wiki is running (as 188 | # returned by the hostname system call), $port$ by the port on 189 | # which the wiki is running, and $resetlink$ by the 190 | # relative path of a reset link derived from the user's existing 191 | # hashed password. If your gitit wiki is being proxied to a location 192 | # other than the root path of $port$, you should change the link to 193 | # reflect this: for example, to 194 | # http://$hostname$/path/to/wiki$resetlink$ or 195 | # http://gitit.$hostname$$resetlink$ 196 | 197 | use-feed: no 198 | # specifies whether an ATOM feed should be enabled (for the site and for 199 | # individual pages) 200 | 201 | base-url: 202 | # the base URL of the wiki, to be used in constructing feed IDs. 203 | # If this field is left blank, gitit will get the base URL from the 204 | # request header 'Host'. For most users, this should be fine, but 205 | # if you are proxying a gitit instance to a subdirectory URL, you will 206 | # want to set this manually. 207 | 208 | feed-days: 14 209 | # number of days to be included in feeds. 210 | 211 | feed-refresh-time: 60 212 | # number of minutes to cache feeds before refreshing 213 | 214 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/double-click.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/double-click.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file allows users to double click on typeset mathematics 7 | * to view the TeX source for the given expression. It will be loaded 8 | * automatically when needed, or can be loaded by 9 | * 10 | * jsMath.Extension.Require('double-click'); 11 | * 12 | * --------------------------------------------------------------------- 13 | * 14 | * Copyright 2005-2008 by Davide P. Cervone 15 | * 16 | * Licensed under the Apache License, Version 2.0 (the "License"); 17 | * you may not use this file except in compliance with the License. 18 | * You may obtain a copy of the License at 19 | * 20 | * http://www.apache.org/licenses/LICENSE-2.0 21 | * 22 | * Unless required by applicable law or agreed to in writing, software 23 | * distributed under the License is distributed on an "AS IS" BASIS, 24 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 25 | * See the License for the specific language governing permissions and 26 | * limitations under the License. 27 | */ 28 | 29 | /********************************************************************/ 30 | 31 | if (jsMath.Click && jsMath.Click.styles) 32 | {jsMath.Click.oldStyles = jsMath.Click.styles} 33 | 34 | jsMath.Add(jsMath.Click,{ 35 | 36 | dragging: 0, 37 | 38 | styles: { 39 | // Floating windows for displaying TeX source 40 | '#jsMath_float': { 41 | position: 'absolute', top: '0px', left: '0px', 'z-index': '101', 42 | 'max-width': '80%', width: 'auto', height: 'auto', 43 | padding: '0px', margin: '0px', 'font-size': '100%' 44 | }, 45 | '#jsMath_float .drag': { 46 | 'background-color': '#DDDDDD', 47 | border: 'outset 1px', padding: '0px', margin: '0px', 48 | width: 'auto', height: '12px', 'font-size': '1px' 49 | }, 50 | '#jsMath_float .close': { 51 | 'background-color': '#E6E6E6', 52 | border: 'inset 1px', margin: '1px 2px', padding: '0px', 53 | width: '8px', height: '8px' 54 | }, 55 | '#jsMath_float .source': { 56 | 'background-color': '#E2E2E2', 57 | border: 'outset 1px', margin: '0px', padding: '8px 15px', 58 | width: 'auto', height: 'auto', 59 | 'font-family': 'courier, fixed', 'font-size': '90%' 60 | } 61 | }, 62 | 63 | /* 64 | * Create the hidden DIV used for the tex source window 65 | */ 66 | Init: function () { 67 | if (this.oldStyles) {jsMath.Insert(this.styles,this.oldStyles)} 68 | jsMath.Setup.Styles(this.styles); 69 | this.source = jsMath.Setup.DIV("float",{display:'none'}); 70 | this.source.innerHTML = 71 | '
' 72 | + '
'; 73 | this.drag = this.source.firstChild; 74 | this.tex = this.drag.nextSibling.firstChild; 75 | this.drag.firstChild.onclick = jsMath.Click.CloseSource; 76 | this.drag.onmousedown = jsMath.Click.StartDragging; 77 | this.drag.ondragstart = jsMath.Click.False; 78 | this.drag.onselectstart = jsMath.Click.False; 79 | this.source.onclick = jsMath.Click.CheckClose; 80 | }, 81 | False: function () {return false}, 82 | 83 | /* 84 | * Handle a double-click on an equation 85 | */ 86 | DblClick: function (data) { 87 | var event = data[0]; var TeX = data[1]; 88 | var event = jsMath.Click.Event(event); 89 | 90 | var source = jsMath.Click.source 91 | var tex = jsMath.Click.tex; 92 | 93 | source.style.visibility = 'hidden'; 94 | source.style.display = ''; source.style.width = ''; 95 | source.style.left = ''; source.style.top = ''; 96 | tex.innerHTML = ''; 97 | 98 | TeX = TeX.replace(/^\s+|\s+$/g,''); 99 | TeX = TeX.replace(/&/g,'&'); 100 | TeX = TeX.replace(//g,'>'); 102 | TeX = TeX.replace(/\n/g,'
'); 103 | tex.innerHTML = TeX; 104 | 105 | var h = source.offsetHeight; var w; 106 | if (jsMath.Browser.msieDivWidthBug) { 107 | tex.className = 'source'; // Work around MSIE bug where 108 | w = tex.offsetWidth + 5; // DIV's don't collapse to 109 | tex.className = ''; // their natural widths 110 | } else { 111 | w = source.offsetWidth; 112 | } 113 | w = Math.max(50,Math.min(w,.8*event.W,event.W-40)); 114 | var x = Math.floor(event.x-w/2); var y = Math.floor(event.y-h/2); 115 | x = event.X + Math.max(Math.min(x,event.W-w-20),20); 116 | y = event.Y + Math.max(Math.min(y,event.H-h-5),5); 117 | 118 | source.style.left = x+'px'; source.style.top = y+'px'; 119 | source.style.width = w+'px'; 120 | source.style.visibility = ''; 121 | jsMath.Click.left = x + event.X; jsMath.Click.top = y + event.Y; 122 | jsMath.Click.w = w; jsMath.Click.h = source.offsetHeight; 123 | 124 | jsMath.Click.DeselectText(x,y); 125 | return false; 126 | }, 127 | 128 | /* 129 | * Get window width, height, and offsets plus 130 | * position of pointer relative to the window 131 | */ 132 | Event: function (event) { 133 | var W = jsMath.window.innerWidth || jsMath.document.body.clientWidth; 134 | var H = jsMath.window.innerHeight || jsMath.document.body.clientHeight; 135 | var X = jsMath.window.pageXOffset; var Y = jsMath.window.pageYOffset; 136 | if (X == null) { 137 | X = jsMath.document.body.clientLeft; 138 | Y = jsMath.document.body.clientTop; 139 | } 140 | var x = event.pageX; var y = event.pageY; 141 | if (x == null) { 142 | x = event.clientX; y = event.clientY; 143 | if (jsMath.browser == 'MSIE' && jsMath.document.compatMode == 'CSS1Compat') { 144 | X = jsMath.document.documentElement.scrollLeft; 145 | Y = jsMath.document.documentElement.scrollTop; 146 | W = jsMath.document.documentElement.clientWidth; 147 | H = jsMath.document.documentElement.clientHeight; 148 | } else { 149 | X = jsMath.document.body.scrollLeft; 150 | Y = jsMath.document.body.scrollTop; 151 | } 152 | } else {x -= X; y -= Y} 153 | 154 | return {x: x, y: y, W: W, H: H, X: X, Y: Y}; 155 | }, 156 | 157 | /* 158 | * Unselect whatever text is selected (since double-clicking 159 | * usually selects something) 160 | */ 161 | DeselectText: function (x,y) { 162 | if (jsMath.window.getSelection && jsMath.window.getSelection().removeAllRanges) 163 | {jsMath.window.getSelection().removeAllRanges()} 164 | else if (jsMath.document.getSelection && jsMath.document.getSelection().removeAllRanges) 165 | {jsMath.document.getSelection().removeAllRanges()} 166 | else if (jsMath.document.selection && jsMath.document.selection.empty) 167 | {jsMath.document.selection.empty()} 168 | else { 169 | /* Hack to deselect the text in Opera and Safari */ 170 | if (jsMath.browser == 'MSIE') return; // don't try it if MISE on Mac 171 | jsMath.hiddenTop.innerHTML = 172 | ''; 173 | jsMath.hiddenTop.firstChild.style.position = 'absolute'; 174 | jsMath.hiddenTop.firstChild.style.left = x+'px'; 175 | jsMath.hiddenTop.firstChild.style.top = y+'px'; 176 | setTimeout(jsMath.Click.SelectHidden,1); 177 | } 178 | }, 179 | SelectHidden: function () { 180 | jsMath.hiddenTop.firstChild.focus(); 181 | jsMath.hiddenTop.firstChild.select(); 182 | jsMath.hiddenTop.innerHTML = ''; 183 | }, 184 | 185 | /* 186 | * Close the TeX source window 187 | */ 188 | CloseSource: function () { 189 | jsMath.Click.tex.innerHTML = ''; 190 | jsMath.Click.source.style.display = 'none'; 191 | jsMath.Click.source.style.visibility = 'hidden'; 192 | jsMath.Click.StopDragging(); 193 | return false; 194 | }, 195 | CheckClose: function (event) { 196 | if (!event) {event = jsMath.window.event} 197 | if (event.altKey) {jsMath.Click.CloseSource(); return false} 198 | }, 199 | 200 | /* 201 | * Set up for dragging the source panel 202 | */ 203 | StartDragging: function (event) { 204 | if (!event) {event = jsMath.window.event} 205 | if (jsMath.Click.dragging) {jsMath.Click.StopDragging(event)} 206 | var event = jsMath.Click.Event(event); 207 | jsMath.Click.dragging = 1; 208 | jsMath.Click.x = event.x + 2*event.X - jsMath.Click.left; 209 | jsMath.Click.y = event.y + 2*event.Y - jsMath.Click.top; 210 | jsMath.Click.oldonmousemove = jsMath.document.onmousemove; 211 | jsMath.Click.oldonmouseup = jsMath.document.onmouseup; 212 | jsMath.document.onmousemove = jsMath.Click.DragSource; 213 | jsMath.document.onmouseup = jsMath.Click.StopDragging; 214 | return false; 215 | }, 216 | 217 | /* 218 | * Stop dragging the source window 219 | */ 220 | StopDragging: function (event) { 221 | if (jsMath.Click.dragging) { 222 | jsMath.document.onmousemove = jsMath.Click.oldonmousemove; 223 | jsMath.document.onmouseup = jsMath.Click.oldonmouseup; 224 | jsMath.Click.oldonmousemove = null; 225 | jsMath.Click.oldonmouseup = null; 226 | jsMath.Click.dragging = 0; 227 | } 228 | return false; 229 | }, 230 | 231 | /* 232 | * Move the source window (but stay within the browser window) 233 | */ 234 | DragSource: function (event) { 235 | if (!event) {event = jsMath.window.event} 236 | if (jsMath.Browser.buttonCheck && !event.button) {return jsMath.Click.StopDragging(event)} 237 | event = jsMath.Click.Event(event); 238 | var x = event.x + event.X - jsMath.Click.x; 239 | var y = event.y + event.Y - jsMath.Click.y; 240 | x = Math.max(event.X,Math.min(event.W+event.X-jsMath.Click.w,x)); 241 | y = Math.max(event.Y,Math.min(event.H+event.Y-jsMath.Click.h,y)); 242 | jsMath.Click.source.style.left = x + 'px'; 243 | jsMath.Click.source.style.top = y + 'px'; 244 | jsMath.Click.left = x + event.X; jsMath.Click.top = y + event.Y; 245 | return false; 246 | } 247 | 248 | }); 249 | 250 | jsMath.Click.Init(); 251 | -------------------------------------------------------------------------------- /static/js/jsMath/extensions/AMSsymbols.js: -------------------------------------------------------------------------------- 1 | /* 2 | * extensions/AMSsymbol.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file defines the macros needed to access the AMS symbol fonts 7 | * available in msam10 and msbm10. You can activate it by calling 8 | * 9 | * jsMath.Extension.Require('AMSsymbols'); 10 | * 11 | * once jsMath.js has been loaded. 12 | * 13 | * Note that you will need to install the msam10 and msbm10 fonts 14 | * that are available from the jsMath extra font page at 15 | * 16 | * http://www.math.union.edu/locate/jsMath/download/extra-fonts/ 17 | * 18 | * in order to make this work in image mode. Note that there is no 19 | * unicode fallback mode for these fonts at this time. 20 | * 21 | * --------------------------------------------------------------------- 22 | * 23 | * Copyright 2006 by Davide P. Cervone 24 | * 25 | * Licensed under the Apache License, Version 2.0 (the "License"); 26 | * you may not use this file except in compliance with the License. 27 | * You may obtain a copy of the License at 28 | * 29 | * http://www.apache.org/licenses/LICENSE-2.0 30 | * 31 | * Unless required by applicable law or agreed to in writing, software 32 | * distributed under the License is distributed on an "AS IS" BASIS, 33 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 34 | * See the License for the specific language governing permissions and 35 | * limitations under the License. 36 | */ 37 | 38 | /********************************************************************/ 39 | 40 | 41 | delete jsMath.Parser.prototype.macros['hbar']; 42 | delete jsMath.Parser.prototype.macros['angle']; 43 | delete jsMath.Parser.prototype.macros['rightleftharpoons']; 44 | 45 | jsMath.Extension.MathChar("msam10",{ 46 | // Miscellaneous symbols 47 | vartriangle: [3,0x4D], 48 | triangledown: [0,0x4F], 49 | square: [0,0x03], 50 | lozenge: [0,0x06], 51 | circledS: [0,0x73], 52 | angle: [0,0x5C], 53 | measuredangle: [0,0x5D], 54 | backprime: [0,0x38], 55 | blacktriangle: [0,0x4E], 56 | blacktriangledown: [0,0x48], 57 | blacksquare: [0,0x04], 58 | blacklozenge: [0,0x07], 59 | bigstar: [0,0x46], 60 | sphericalangle: [0,0x5E], 61 | complement: [0,0x7B], 62 | 63 | // Binary operators 64 | dotplus: [2,0x75], 65 | Cap: [2,0x65], 66 | doublecap: [2,0x65], 67 | Cup: [2,0x64], 68 | doublecup: [2,0x64], 69 | barwedge: [2,0x5A], 70 | veebar: [2,0x59], 71 | doublebarwedge: [2,0x5B], 72 | boxminus: [2,0x0C], 73 | boxtimes: [2,0x02], 74 | boxdot: [2,0x00], 75 | boxplus: [2,0x01], 76 | leftthreetimes: [2,0x68], 77 | rightthreetimes: [2,0x69], 78 | curlywedge: [2,0x66], 79 | curlyvee: [2,0x67], 80 | circleddash: [2,0x7F], 81 | circledast: [2,0x7E], 82 | circledcirc: [2,0x7D], 83 | centerdot: [2,0x05], 84 | intercal: [2,0x7C], 85 | 86 | // Binary relations 87 | leqq: [3,0x35], 88 | leqslant: [3,0x36], 89 | eqslantless: [3,0x30], 90 | lesssim: [3,0x2E], 91 | lessapprox: [3,0x2F], 92 | lll: [3,0x6E], 93 | llless: [3,0x6E], 94 | lessgtr: [3,0x37], 95 | lesseqgtr: [3,0x51], 96 | lesseqqgtr: [3,0x53], 97 | doteqdot: [3,0x2B], 98 | Doteq: [3,0x2B], 99 | risingdotseq: [3,0x3A], 100 | fallingdotseq: [3,0x3B], 101 | backsim: [3,0x76], 102 | backsimeq: [3,0x77], 103 | subseteqq: [3,0x6A], 104 | Subset: [3,0x62], 105 | sqsubset: [3,0x40], 106 | preccurlyeq: [3,0x34], 107 | curlyeqprec: [3,0x32], 108 | precsim: [3,0x2D], 109 | vartriangleleft: [3,0x43], 110 | trianglelefteq: [3,0x45], 111 | vDash: [3,0x0F], 112 | Vvdash: [3,0x0E], 113 | smallsmile: [3,0x60], 114 | smallfrown: [3,0x61], 115 | bumpeq: [3,0x6C], 116 | Bumpeq: [3,0x6D], 117 | varpropto: [3,0x5F], 118 | blacktriangleleft: [3,0x4A], 119 | therefore: [3,0x29], 120 | geqq: [3,0x3D], 121 | geqslant: [3,0x3E], 122 | eqslantgtr: [3,0x31], 123 | gtrsim: [3,0x26], 124 | gtrapprox: [3,0x27], 125 | ggg: [3,0x6F], 126 | gggtr: [3,0x6F], 127 | gtrless: [3,0x3F], 128 | gtreqless: [3,0x52], 129 | gtreqqless: [3,0x54], 130 | eqcirc: [3,0x50], 131 | circeq: [3,0x24], 132 | triangleq: [3,0x2C], 133 | supseteqq: [3,0x6B], 134 | Supset: [3,0x63], 135 | sqsupset: [3,0x41], 136 | succcurlyeq: [3,0x3C], 137 | curlyeqsucc: [3,0x33], 138 | succsim: [3,0x25], 139 | vartriangleright: [3,0x42], 140 | trianglerighteq: [3,0x44], 141 | Vdash: [3,0x0D], 142 | between: [3,0x47], 143 | pitchfork: [3,0x74], 144 | blacktriangleright: [3,0x49], 145 | because: [3,0x2A], 146 | 147 | // Arrows 148 | leftleftarrows: [3,0x12], 149 | leftrightarrows: [3,0x1C], 150 | Lleftarrow: [3,0x57], 151 | twoheadleftarrow: [3,0x11], 152 | leftarrowtail: [3,0x1B], 153 | looparrowleft: [3,0x22], 154 | leftrightharpoons: [3,0x0B], 155 | circlearrowleft: [3,0x09], 156 | Lsh: [3,0x1E], 157 | upuparrows: [3,0x14], 158 | upharpoonleft: [3,0x18], 159 | downharpoonleft: [3,0x19], 160 | multimap: [3,0x28], 161 | leftrightsquigarrow:[3,0x21], 162 | rightrightarrows: [3,0x13], 163 | rightleftarrows: [3,0x1D], 164 | Rrightarrow: [3,0x56], 165 | twoheadrightarrow: [3,0x10], 166 | rightarrowtail: [3,0x1A], 167 | looparrowright: [3,0x23], 168 | rightleftharpoons: [3,0x0A], 169 | circlearrowright: [3,0x08], 170 | Rsh: [3,0x1F], 171 | downdownarrows: [3,0x15], 172 | upharpoonright: [3,0x16], 173 | downharpoonright: [3,0x17], 174 | rightsquigarrow: [3,0x20] 175 | }); 176 | 177 | jsMath.Extension.MathChar("msbm10",{ 178 | // Lowercase Greek letters 179 | digamma: [0,0x7A], 180 | varkappa: [0,0x7B], 181 | 182 | // Hebrew letters 183 | beth: [0,0x69], 184 | daleth: [0,0x6B], 185 | gimel: [0,0x6A], 186 | 187 | // Miscellaneous symbols 188 | hbar: [0,0x7E], 189 | hslash: [0,0x7D], 190 | nexists: [0,0x40], 191 | mho: [0,0x66], 192 | Finv: [0,0x60], 193 | Game: [0,0x61], 194 | Bbbk: [0,0x7C], 195 | varnothing: [0,0x3F], 196 | eth: [0,0x67], 197 | diagup: [0,0x1E], 198 | diagdown: [0,0x1F], 199 | 200 | // Binary operators 201 | smallsetminus: [2,0x72], 202 | divideontimes: [2,0x3E], 203 | ltimes: [2,0x6E], 204 | rtimes: [2,0x6F], 205 | 206 | // Binary relations 207 | approxeq: [3,0x75], 208 | lessdot: [3,0x6C], 209 | precapprox: [3,0x77], 210 | gtrdot: [3,0x6D], 211 | thicksim: [3,0x73], 212 | thickapprox: [3,0x74], 213 | succapprox: [3,0x76], 214 | shortmid: [3,0x70], 215 | shortparallel: [3,0x71], 216 | backepsilon: [3,0x7F], 217 | 218 | // Negated relations 219 | nless: [3,0x04], 220 | nleq: [3,0x02], 221 | nleqslant: [3,0x0A], 222 | nleqq: [3,0x14], 223 | lneq: [3,0x0C], 224 | lneqq: [3,0x08], 225 | lvertneqq: [3,0x00], 226 | lnsim: [3,0x12], 227 | lnapprox: [3,0x1A], 228 | nprec: [3,0x06], 229 | npreceq: [3,0x0E], 230 | precneqq: [3,0x16], 231 | precnsim: [3,0x10], 232 | precnapprox: [3,0x18], 233 | nsim: [3,0x1C], 234 | nshortmid: [3,0x2E], 235 | nmid: [3,0x2D], 236 | nvdash: [3,0x30], 237 | nVdash: [3,0x31], 238 | ntriangleleft: [3,0x36], 239 | ntrianglelefteq: [3,0x35], 240 | nsubseteq: [3,0x2A], 241 | nsubseteqq: [3,0x22], 242 | subsetneq: [3,0x28], 243 | varsubsetneq: [3,0x20], 244 | subsetneqq: [3,0x24], 245 | varsubsetneqq: [3,0x26], 246 | ngtr: [3,0x05], 247 | ngeq: [3,0x03], 248 | ngeqslant: [3,0x0B], 249 | ngeqq: [3,0x15], 250 | gneq: [3,0x0D], 251 | gneqq: [3,0x09], 252 | gvertneqq: [3,0x01], 253 | gnsim: [3,0x13], 254 | gnapprox: [3,0x1B], 255 | nsucc: [3,0x07], 256 | nsucceq: [3,0x0F], 257 | succneqq: [3,0x17], 258 | succnsim: [3,0x11], 259 | succnapprox: [3,0x19], 260 | ncong: [3,0x1D], 261 | nshortparallel: [3,0x2F], 262 | nparallel: [3,0x2C], 263 | nvDash: [3,0x32], 264 | nVDash: [3,0x33], 265 | ntriangleright: [3,0x37], 266 | ntrianglerighteq: [3,0x34], 267 | nsupseteq: [3,0x2B], 268 | nsupseteqq: [3,0x23], 269 | supsetneq: [3,0x29], 270 | varsupsetneq: [3,0x21], 271 | supsetneqq: [3,0x25], 272 | varsupsetneqq: [3,0x27], 273 | 274 | // Arrows 275 | curvearrowleft: [3,0x78], 276 | curvearrowright: [3,0x79], 277 | 278 | // Negated arrows 279 | nleftarrow: [3,0x38], 280 | nLeftarrow: [3,0x3A], 281 | nleftrightarrow: [3,0x3D], 282 | nrightarrow: [3,0x39], 283 | nRightarrow: [3,0x3B], 284 | nLeftrightarrow: [3,0x3C] 285 | }); 286 | 287 | jsMath.Macro('Bbb','{\\msbm #1}',1); 288 | jsMath.Macro('mathbb','{\\msbm #1}',1); 289 | jsMath.Extension.Font('msbm'); 290 | jsMath.Extension.Font('msam'); 291 | -------------------------------------------------------------------------------- /static/js/jsMath/jsMath-fallback-mac-msie.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jsMath-fallback-mac-msie.js 3 | * 4 | * Part of the jsMath package for mathematics on the web. 5 | * 6 | * This file makes changes needed by Internet Explorer on the Mac 7 | * for when the TeX fonts are not available. 8 | * 9 | * --------------------------------------------------------------------- 10 | * 11 | * Copyright 2004-2006 by Davide P. Cervone 12 | * 13 | * Licensed under the Apache License, Version 2.0 (the "License"); 14 | * you may not use this file except in compliance with the License. 15 | * You may obtain a copy of the License at 16 | * 17 | * http://www.apache.org/licenses/LICENSE-2.0 18 | * 19 | * Unless required by applicable law or agreed to in writing, software 20 | * distributed under the License is distributed on an "AS IS" BASIS, 21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | * See the License for the specific language governing permissions and 23 | * limitations under the License. 24 | */ 25 | 26 | 27 | 28 | /******************************************************************** 29 | * 30 | * Fix the default non-TeX-font characters to work with MSIE 31 | * 32 | */ 33 | 34 | jsMath.Update.TeXfonts({ 35 | cmr10: { 36 | '0': {c: 'G', tclass: 'greek'}, 37 | '1': {c: 'D', tclass: 'greek'}, 38 | '2': {c: 'Q', tclass: 'greek'}, 39 | '3': {c: 'L', tclass: 'greek'}, 40 | '4': {c: 'X', tclass: 'greek'}, 41 | '5': {c: 'P', tclass: 'greek'}, 42 | '6': {c: 'S', tclass: 'greek'}, 43 | '7': {c: '¡', tclass: 'greek'}, 44 | '8': {c: 'F', tclass: 'greek'}, 45 | '9': {c: 'Y', tclass: 'greek'}, 46 | '10': {c: 'W', tclass: 'greek'}, 47 | '22': {c: '`', tclass: 'symbol3'} 48 | }, 49 | 50 | cmti10: { 51 | '0': {c: 'G', tclass: 'igreek'}, 52 | '1': {c: 'D', tclass: 'igreek'}, 53 | '2': {c: 'Q', tclass: 'igreek'}, 54 | '3': {c: 'L', tclass: 'igreek'}, 55 | '4': {c: 'X', tclass: 'igreek'}, 56 | '5': {c: 'P', tclass: 'igreek'}, 57 | '6': {c: 'S', tclass: 'igreek'}, 58 | '7': {c: '¡', tclass: 'igreek'}, 59 | '8': {c: 'F', tclass: 'igreek'}, 60 | '9': {c: 'Y', tclass: 'igreek'}, 61 | '10': {c: 'W', tclass: 'igreek'}, 62 | '22': {c: '`', tclass: 'symbol3'} 63 | }, 64 | 65 | cmbx10: { 66 | '0': {c: 'G', tclass: 'bgreek'}, 67 | '1': {c: 'D', tclass: 'bgreek'}, 68 | '2': {c: 'Q', tclass: 'bgreek'}, 69 | '3': {c: 'L', tclass: 'bgreek'}, 70 | '4': {c: 'X', tclass: 'bgreek'}, 71 | '5': {c: 'P', tclass: 'bgreek'}, 72 | '6': {c: 'S', tclass: 'bgreek'}, 73 | '7': {c: '¡', tclass: 'bgreek'}, 74 | '8': {c: 'F', tclass: 'bgreek'}, 75 | '9': {c: 'Y', tclass: 'bgreek'}, 76 | '10': {c: 'W', tclass: 'bgreek'}, 77 | '22': {c: '`', tclass: 'symbol3'} 78 | }, 79 | cmmi10: { 80 | '0': {c: 'G', tclass: 'igreek'}, 81 | '1': {c: 'D', tclass: 'igreek'}, 82 | '2': {c: 'Q', tclass: 'igreek'}, 83 | '3': {c: 'L', tclass: 'igreek'}, 84 | '4': {c: 'X', tclass: 'igreek'}, 85 | '5': {c: 'P', tclass: 'igreek'}, 86 | '6': {c: 'S', tclass: 'igreek'}, 87 | '7': {c: '¡', tclass: 'igreek'}, 88 | '8': {c: 'F', tclass: 'igreek'}, 89 | '9': {c: 'Y', tclass: 'igreek'}, 90 | '10': {c: 'W', tclass: 'igreek'}, 91 | '11': {c: 'a', tclass: 'greek'}, 92 | '12': {c: 'b', tclass: 'greek'}, 93 | '13': {c: 'g', tclass: 'greek'}, 94 | '14': {c: 'd', tclass: 'greek'}, 95 | '15': {c: 'e', tclass: 'greek'}, 96 | '16': {c: 'z', tclass: 'greek'}, 97 | '17': {c: 'h', tclass: 'greek'}, 98 | '18': {c: 'q', tclass: 'greek'}, 99 | '19': {c: 'i', tclass: 'greek'}, 100 | '20': {c: 'k', tclass: 'greek'}, 101 | '21': {c: 'l', tclass: 'greek'}, 102 | '22': {c: 'm', tclass: 'greek'}, 103 | '23': {c: 'n', tclass: 'greek'}, 104 | '24': {c: 'x', tclass: 'greek'}, 105 | '25': {c: 'p', tclass: 'greek'}, 106 | '26': {c: 'r', tclass: 'greek'}, 107 | '27': {c: 's', tclass: 'greek'}, 108 | '28': {c: 't', tclass: 'greek'}, 109 | '29': {c: 'u', tclass: 'greek'}, 110 | '30': {c: 'f', tclass: 'greek'}, 111 | '31': {c: 'c', tclass: 'greek'}, 112 | '32': {c: 'y', tclass: 'greek'}, 113 | '33': {c: 'w', tclass: 'greek'}, 114 | // '41': // leftharpoondown 115 | // '43': // rightharpoondown 116 | // '44': // hook left 117 | // '45': // hook right 118 | // '92': // natural 119 | '94': {c: ''}, 120 | '95': {c: ''} 121 | // '127': // half-circle down accent? 122 | }, 123 | 124 | cmsy10: { 125 | '0': {c: '–', tclass: 'normal'}, 126 | '11': {c: '/', tclass: 'normal'}, 127 | '16': {c: '', tclass: 'normal'}, 128 | '48': {c: ''}, 129 | '93': {c: '∪+'}, 130 | '96': {c: '|', tclass: 'normal'}, 131 | '104': {c: ''}, 132 | '105': {c: ''}, 133 | '109': {c: '⇑'}, 134 | '110': {c: '\\', d:0, tclass: 'normal'} 135 | // '111': // wr 136 | //, '113': // amalg 137 | // '116': // sqcup 138 | // '117': // sqcap 139 | // '118': // sqsubseteq 140 | // '119': // sqsupseteq 141 | }, 142 | 143 | cmex10: { 144 | '10': {c: ''}, 145 | '11': {c: ''}, 146 | '14': {c: '/'}, '15': {c: '\\'}, 147 | '28': {c: ''}, 148 | '29': {c: ''}, 149 | '30': {c: '/'}, '31': {c: '\\'}, 150 | '42': {c: ''}, 151 | '43': {c: ''}, 152 | '44': {c: '/'}, '45': {c: '\\'}, 153 | '46': {c: '/'}, '47': {c: '\\'}, 154 | '68': {c: ''}, 155 | '69': {c: ''}, 156 | // '70': // sqcup 157 | // '71': // big sqcup 158 | '72': {ic: 0}, '73': {ic: 0}, 159 | '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, 160 | '85': {c: '∪+'}, 161 | '93': {c: '∪+'}, 162 | // '96': // coprod 163 | // '97': // big coprod 164 | '98': {c: '︿', h: 0.722, w: .58, tclass: 'wide1'}, 165 | '99': {c: '︿', h: 0.722, w: .58, tclass: 'wide2'}, 166 | '100': {c: '︿', h: 0.722, w: .58, tclass: 'wide3'}, 167 | '101': {c: '~', h: 0.722, w: .42, tclass: 'wide1a'}, 168 | '102': {c: '~', h: 0.8, w: .73, tclass: 'wide2a'}, 169 | '103': {c: '~', h: 0.8, w: 1.1, tclass: 'wide3a'} 170 | } 171 | 172 | }); 173 | 174 | jsMath.Setup.Styles({ 175 | '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", 176 | '.typeset .arrow2': "font-family: Osaka; position: relative; top: .1em; margin:-1px", 177 | '.typeset .bigop1': "font-family: Symbol; font-size: 110%; position:relative; top: .8em; margin:-.05em", 178 | '.typeset .bigop1b': "font-family: Symbol; font-size: 140%; position: relative; top: .8em; margin:-.1em", 179 | '.typeset .bigop1c': "font-family: Osaka; font-size: 125%; position:relative; top: .85em; margin:-.3em", 180 | '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", 181 | '.typeset .bigop2': "font-family: Symbol; font-size: 175%; position:relative; top: .8em; margin:-.07em", 182 | '.typeset .bigop2a': "font-family: Baskerville; font-size: 175%; position: relative; top: .65em", 183 | '.typeset .bigop2b': "font-family: Symbol; font-size: 175%; position: relative; top: .8em; margin:-.07em", 184 | '.typeset .bigop2c': "font-family: Osaka; font-size: 230%; position:relative; top: .85em; margin:-.35em", 185 | '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .6em; margin-left:-.1em; margin-right:-.2em", 186 | '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em", 187 | '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.75em;", 188 | '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.7em;", 189 | '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.65em;", 190 | '.typeset .symbol3': "font-family: Symbol", 191 | '.typeset .wide1': "font-size: 50%; position: relative; top:-1.1em", 192 | '.typeset .wide2': "font-size: 80%; position: relative; top:-.7em", 193 | '.typeset .wide3': "font-size: 125%; position: relative; top:-.5em", 194 | '.typeset .wide1a': "font-size: 75%; position: relative; top:-.5em", 195 | '.typeset .wide2a': "font-size: 133%; position: relative; top: -.15em", 196 | '.typeset .wide3a': "font-size: 200%; position: relative; top: -.05em", 197 | '.typeset .greek': "font-family: Symbol", 198 | '.typeset .igreek': "font-family: Symbol; font-style:italic", 199 | '.typeset .bgreek': "font-family: Symbol; font-weight:bold" 200 | }); 201 | --------------------------------------------------------------------------------