openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

slim.min.js (8140B)


      1 (function(t){if(typeof exports=="object"&&typeof module=="object")t(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../ruby/ruby"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror","../htmlmixed/htmlmixed","../ruby/ruby"],t);else t(CodeMirror)})(function(t){"use strict";t.defineMode("slim",function(e){var s=t.getMode(e,{name:"htmlmixed"});var u=t.getMode(e,"ruby"),f={html:s,ruby:u};var h={ruby:"ruby",javascript:"javascript",css:"text/css",sass:"text/x-sass",scss:"text/x-scss",less:"text/x-less",styl:"text/x-styl",coffee:"coffeescript",asciidoc:"text/x-asciidoc",markdown:"text/x-markdown",textile:"text/x-textile",creole:"text/x-creole",wiki:"text/x-wiki",mediawiki:"text/x-mediawiki",rdoc:"text/x-rdoc",builder:"text/x-builder",nokogiri:"text/x-nokogiri",erb:"application/x-erb"};var U=function(t){var e=[];for(var n in t)e.push(n);return new RegExp("^("+e.join("|")+"):")}(h),x={"commentLine":"comment","slimSwitch":"operator special","slimTag":"tag","slimId":"attribute def","slimClass":"attribute qualifier","slimAttribute":"attribute","slimSubmode":"keyword special","closeAttributeTag":null,"slimDoctype":null,"lineContinuation":null};var T={"{":"}","[":"]","(":")"};var c="_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD",l=c+"\\-0-9\xB7\u0300-\u036F\u203F-\u2040",C=new RegExp("^[:"+c+"](?::["+l+"]|["+l+"]*)"),D=new RegExp("^[:"+c+"][:\\."+l+"]*(?=\\s*=)"),E=new RegExp("^[:"+c+"][:\\."+l+"]*"),A=/^\.-?[_a-zA-Z]+[\w\-]*/,L=/^#[_a-zA-Z]+[\w\-]*/;function O(t,e,n){var i=function(i,r){r.tokenize=e;if(i.pos<t){i.pos=t;return n};return r.tokenize(i,r)};return function(t,n){n.tokenize=i;return e(t,n)}};function R(t,e,n,r,i){var u=t.current(),o=u.search(n);if(o>-1){e.tokenize=O(t.pos,e.tokenize,i);t.backUp(u.length-o-r)};return i};function k(t,e){t.stack={parent:t.stack,style:"continuation",indented:e,tokenize:t.line};t.line=t.tokenize};function d(t){if(t.line==t.tokenize){t.line=t.stack.tokenize;t.stack=t.stack.parent}};function j(t,e){return function(n,i){d(i);if(n.match(/^\\$/)){k(i,t);return"lineContinuation"};var r=e(n,i);if(n.eol()&&n.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)){n.backUp(1)};return r}};function I(t,e){return function(n,i){d(i);var r=e(n,i);if(n.eol()&&n.current().match(/,$/)){k(i,t)};return r}};function m(t,e){return function(n,i){var r=n.peek();if(r==t&&i.rubyState.tokenize.length==1){n.next();i.tokenize=e;return"closeAttributeTag"}
      2 else{return o(n,i)}}};function n(e){var n,i=function(t,i){if(i.rubyState.tokenize.length==1&&!i.rubyState.context.prev){t.backUp(1);if(t.eatSpace()){i.rubyState=n;i.tokenize=e;return e(t,i)};t.next()};return o(t,i)};return function(e,r){n=r.rubyState;r.rubyState=t.startState(u);r.tokenize=i;return o(e,r)}};function o(t,e){return u.token(t,e.rubyState)};function P(t,e){if(t.match(/^\\$/)){return"lineContinuation"};return y(t,e)};function y(t,e){if(t.match(/^#\{/)){e.tokenize=m("}",e.tokenize);return null};return R(t,e,/[^\\]#\{/,1,s.token(t,e.htmlState))};function q(t){return function(e,n){var i=P(e,n);if(e.eol())n.tokenize=t;return i}};function S(t,e,n){e.stack={parent:e.stack,style:"html",indented:t.column()+n,tokenize:e.line};e.line=e.tokenize=y;return null};function v(t,e){t.skipToEnd();return e.stack.style};function Z(t,e){e.stack={parent:e.stack,style:"comment",indented:e.indented+1,tokenize:e.line};e.line=v;return v(t,e)};function r(t,e){if(t.eat(e.stack.endQuote)){e.line=e.stack.line;e.tokenize=e.stack.tokenize;e.stack=e.stack.parent;return null};if(t.match(E)){e.tokenize=Q;return"slimAttribute"};t.next();return null};function Q(t,e){if(t.match(/^==?/)){e.tokenize=V;return null};return r(t,e)};function V(t,e){var i=t.peek();if(i=="\""||i=="'"){e.tokenize=g(i,"string",!0,!1,r);t.next();return e.tokenize(t,e)};if(i=="["){return n(r)(t,e)};if(t.match(/^(true|false|nil)\b/)){e.tokenize=r;return"keyword"};return n(r)(t,e)};function B(t,e,n){t.stack={parent:t.stack,style:"wrapper",indented:t.indented+1,tokenize:n,line:t.line,endQuote:e};t.line=t.tokenize=r;return null};function tt(e,n){if(e.match(/^#\{/)){n.tokenize=m("}",n.tokenize);return null};var i=new t.StringStream(e.string.slice(n.stack.indented),e.tabSize);i.pos=e.pos-n.stack.indented;i.start=e.start-n.stack.indented;i.lastColumnPos=e.lastColumnPos-n.stack.indented;i.lastColumnValue=e.lastColumnValue-n.stack.indented;var r=n.subMode.token(i,n.subState);e.pos=i.pos+n.stack.indented;return r};function et(t,e){e.stack.indented=t.column();e.line=e.tokenize=tt;return e.tokenize(t,e)};function nt(n){var i=h[n],u=t.mimeModes[i];if(u){return t.getMode(e,u)};var r=t.modes[i];if(r){return r(e,{name:i})};return t.getMode(e,"null")};function it(t){if(!f.hasOwnProperty(t)){return f[t]=nt(t)};return f[t]};function rt(e,n){var i=it(e),r=t.startState(i);n.subMode=i;n.subState=r;n.stack={parent:n.stack,style:"sub",indented:n.indented+1,tokenize:n.line};n.line=n.tokenize=et;return"slimSubmode"};function ut(t,e){t.skipToEnd();return"slimDoctype"};function ot(t,e){var i=t.peek();if(i=="<"){return(e.tokenize=q(e.tokenize))(t,e)};if(t.match(/^[|']/)){return S(t,e,1)};if(t.match(/^\/(!|\[\w+])?/)){return Z(t,e)};if(t.match(/^(-|==?[<>]?)/)){e.tokenize=j(t.column(),I(t.column(),o));return"slimSwitch"};if(t.match(/^doctype\b/)){e.tokenize=ut;return"keyword"};var n=t.match(U);if(n){return rt(n[1],e)};return z(t,e)};function b(t,e){if(e.startOfLine){return ot(t,e)};return z(t,e)};function z(t,e){if(t.eat("*")){e.tokenize=n(w);return null};if(t.match(C)){e.tokenize=w;return"slimTag"};return a(t,e)};function w(t,e){if(t.match(/^(<>?|><?)/)){e.tokenize=a;return null};return a(t,e)};function a(t,e){if(t.match(L)){e.tokenize=a;return"slimId"};if(t.match(A)){e.tokenize=a;return"slimClass"};return i(t,e)};function i(t,e){if(t.match(/^([\[\{\(])/)){return B(e,T[RegExp.$1],i)};if(t.match(D)){e.tokenize=at;return"slimAttribute"};if(t.peek()=="*"){t.next();e.tokenize=n(F);return null};return F(t,e)};function at(t,e){if(t.match(/^==?/)){e.tokenize=ct;return null};return i(t,e)};function ct(t,e){var r=t.peek();if(r=="\""||r=="'"){e.tokenize=g(r,"string",!0,!1,i);t.next();return e.tokenize(t,e)};if(r=="["){return n(i)(t,e)};if(r==":"){return n(M)(t,e)};if(t.match(/^(true|false|nil)\b/)){e.tokenize=i;return"keyword"};return n(i)(t,e)};function M(t,e){t.backUp(1);if(t.match(/^[^\s],(?=:)/)){e.tokenize=n(M);return null};t.next();return i(t,e)};function g(t,e,n,i,r){return function(u,o){d(o);var l=u.current().length==0;if(u.match(/^\\$/,l)){if(!l)return e;k(o,o.indented);return"lineContinuation"};if(u.match(/^#\{/,l)){if(!l)return e;o.tokenize=m("}",o.tokenize);return null};var a=!1,c;while((c=u.next())!=null){if(c==t&&(i||!a)){o.tokenize=r;break};if(n&&c=="#"&&!a){if(u.eat("{")){u.backUp(2);break}};a=!a&&c=="\\"};if(u.eol()&&a){u.backUp(1)};return e}};function F(t,e){if(t.match(/^==?/)){e.tokenize=o;return"slimSwitch"};if(t.match(/^\/$/)){e.tokenize=b;return null};if(t.match(/^:/)){e.tokenize=z;return"slimSwitch"};S(t,e,0);return e.tokenize(t,e)};var p={startState:function(){var e=t.startState(s),n=t.startState(u);return{htmlState:e,rubyState:n,stack:null,last:null,tokenize:b,line:b,indented:0}},copyState:function(e){return{htmlState:t.copyState(s,e.htmlState),rubyState:t.copyState(u,e.rubyState),subMode:e.subMode,subState:e.subMode&&t.copyState(e.subMode,e.subState),stack:e.stack,last:e.last,tokenize:e.tokenize,line:e.line}},token:function(e,t){if(e.sol()){t.indented=e.indentation();t.startOfLine=!0;t.tokenize=t.line;while(t.stack&&t.stack.indented>t.indented&&t.last!="slimSubmode"){t.line=t.tokenize=t.stack.tokenize;t.stack=t.stack.parent;t.subMode=null;t.subState=null}};if(e.eatSpace())return null;var n=t.tokenize(e,t);t.startOfLine=!1;if(n)t.last=n;return x.hasOwnProperty(n)?x[n]:n},blankLine:function(t){if(t.subMode&&t.subMode.blankLine){return t.subMode.blankLine(t.subState)}},innerMode:function(t){if(t.subMode)return{state:t.subState,mode:t.subMode};return{state:t,mode:p}}};return p},"htmlmixed","ruby");t.defineMIME("text/x-slim","slim");t.defineMIME("application/x-slim","slim")});