diff options
| author | Wu Cheng-Han | 2016-11-28 01:36:48 +0800 | 
|---|---|---|
| committer | Wu Cheng-Han | 2016-11-28 01:36:48 +0800 | 
| commit | 9f79ed929e4156dc8b5b45161895d70d51cfa5a2 (patch) | |
| tree | 760e0491a52558036b93b0c986e96aa95b4c0127 /public/vendor/codemirror/mode/textile | |
| parent | 3a305b8258782797b328f2ce46e8bb74e9603594 (diff) | |
Update to move custom CodeMirror codebase to our own repo and update webpack build config
Diffstat (limited to 'public/vendor/codemirror/mode/textile')
| -rw-r--r-- | public/vendor/codemirror/mode/textile/index.html | 191 | ||||
| -rw-r--r-- | public/vendor/codemirror/mode/textile/test.js | 417 | ||||
| -rw-r--r-- | public/vendor/codemirror/mode/textile/textile.js | 469 | 
3 files changed, 0 insertions, 1077 deletions
diff --git a/public/vendor/codemirror/mode/textile/index.html b/public/vendor/codemirror/mode/textile/index.html deleted file mode 100644 index 42b156b1..00000000 --- a/public/vendor/codemirror/mode/textile/index.html +++ /dev/null @@ -1,191 +0,0 @@ -<!doctype html> - -<title>CodeMirror: Textile mode</title> -<meta charset="utf-8"/> -<link rel=stylesheet href="../../doc/docs.css"> - -<link rel="stylesheet" href="../../lib/codemirror.css"> -<script src="../../lib/codemirror.js"></script> -<script src="textile.js"></script> -<style>.CodeMirror {background: #f8f8f8;}</style> -<div id=nav> -  <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> - -  <ul> -    <li><a href="../../index.html">Home</a> -    <li><a href="../../doc/manual.html">Manual</a> -    <li><a href="https://github.com/marijnh/codemirror">Code</a> -  </ul> -  <ul> -    <li><a href="../index.html">Language modes</a> -    <li><a class="active" href="#">Textile</a> -  </ul> -</div> - -<article> -    <h2>Textile mode</h2> -    <form><textarea id="code" name="code"> -h1. Textile Mode - -A paragraph without formatting. - -p. A simple Paragraph. - - -h2. Phrase Modifiers - -Here are some simple phrase modifiers: *strong*, _emphasis_, **bold**, and __italic__. - -A ??citation??, -deleted text-, +inserted text+, some ^superscript^, and some ~subscript~. - -A %span element% and @code element@ - -A "link":http://example.com, a "link with (alt text)":urlAlias - -[urlAlias]http://example.com/ - -An image: !http://example.com/image.png! and an image with a link: !http://example.com/image.png!:http://example.com - -A sentence with a footnote.[123] - -fn123. The footnote is defined here. - -Registered(r), Trademark(tm), and Copyright(c) - - -h2. Headers - -h1. Top level -h2. Second level -h3. Third level -h4. Fourth level -h5. Fifth level -h6. Lowest level - - -h2.  Lists - -* An unordered list -** foo bar -*** foo bar -**** foo bar -** foo bar - -# An ordered list -## foo bar -### foo bar -#### foo bar -## foo bar - -- definition list := description -- another item    := foo bar -- spanning ines   := -                     foo bar - -                     foo bar =: - - -h2. Attributes - -Layouts and phrase modifiers can be modified with various kinds of attributes: alignment, CSS ID, CSS class names, language, padding, and CSS styles. - -h3. Alignment - -div<. left align -div>. right align - -h3. CSS ID and class name - -You are a %(my-id#my-classname) rad% person. - -h3. Language - -p[en_CA]. Strange weather, eh? - -h3. Horizontal Padding - -p(())). 2em left padding, 3em right padding - -h3. CSS styling - -p{background: red}. Fire! - - -h2. Table - -|_.              Header 1               |_.      Header 2        | -|{background:#ddd}. Cell with background|         Normal         | -|\2.         Cell spanning 2 columns                             | -|/2.         Cell spanning 2 rows       |(cell-class). one       | -|                                                two             | -|>.                  Right aligned cell |<. Left aligned cell    | - - -h3. A table with attributes: - -table(#prices). -|Adults|$5| -|Children|$2| - - -h2. Code blocks - -bc. -function factorial(n) { -    if (n === 0) { -        return 1; -    } -    return n * factorial(n - 1); -} - -pre.. -                ,,,,,, -            o#'9MMHb':'-,o, -         .oH":HH$' "' ' -*R&o, -        dMMM*""'`'      .oM"HM?. -       ,MMM'          "HLbd< ?&H\ -      .:MH ."\          ` MM  MM&b -     . "*H    -        &MMMMMMMMMH: -     .    dboo        MMMMMMMMMMMM. -     .   dMMMMMMb      *MMMMMMMMMP. -     .    MMMMMMMP        *MMMMMP . -          `#MMMMM           MM6P , -       '    `MMMP"           HM*`, -        '    :MM             .- , -         '.   `#?..  .       ..' -            -.   .         .- -              ''-.oo,oo.-'' - -\. _(9> - \==_) -  -'= - -h2. Temporarily disabling textile markup - -notextile. Don't __touch this!__ - -Surround text with double-equals to disable textile inline. Example: Use ==*asterisks*== for *strong* text. - - -h2. HTML - -Some block layouts are simply textile versions of HTML tags with the same name, like @div@, @pre@, and @p@. HTML tags can also exist on their own line: - -<section> -  <h1>Title</h1> -  <p>Hello!</p> -</section> - -</textarea></form> -    <script> -        var editor = CodeMirror.fromTextArea(document.getElementById("code"), { -            lineNumbers: true, -            mode: "text/x-textile" -        }); -    </script> - -    <p><strong>MIME types defined:</strong> <code>text/x-textile</code>.</p> - -    <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#textile_*">normal</a>,  <a href="../../test/index.html#verbose,textile_*">verbose</a>.</p> - -</article> diff --git a/public/vendor/codemirror/mode/textile/test.js b/public/vendor/codemirror/mode/textile/test.js deleted file mode 100644 index 49cdaf9c..00000000 --- a/public/vendor/codemirror/mode/textile/test.js +++ /dev/null @@ -1,417 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { -  var mode = CodeMirror.getMode({tabSize: 4}, 'textile'); -  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - -  MT('simpleParagraphs', -      'Some text.', -      '', -      'Some more text.'); - -  /* -   * Phrase Modifiers -   */ - -  MT('em', -      'foo [em _bar_]'); - -  MT('emBoogus', -      'code_mirror'); - -  MT('strong', -      'foo [strong *bar*]'); - -  MT('strongBogus', -      '3 * 3 = 9'); - -  MT('italic', -      'foo [em __bar__]'); - -  MT('italicBogus', -      'code__mirror'); - -  MT('bold', -      'foo [strong **bar**]'); - -  MT('boldBogus', -      '3 ** 3 = 27'); - -  MT('simpleLink', -      '[link "CodeMirror":http://codemirror.net]'); - -  MT('referenceLink', -      '[link "CodeMirror":code_mirror]', -      'Normal Text.', -      '[link [[code_mirror]]http://codemirror.net]'); - -  MT('footCite', -      'foo bar[qualifier [[1]]]'); - -  MT('footCiteBogus', -      'foo bar[[1a2]]'); - -  MT('special-characters', -          'Registered [tag (r)], ' + -          'Trademark [tag (tm)], and ' + -          'Copyright [tag (c)] 2008'); - -  MT('cite', -      "A book is [keyword ??The Count of Monte Cristo??] by Dumas."); - -  MT('additionAndDeletion', -      'The news networks declared [negative -Al Gore-] ' + -        '[positive +George W. Bush+] the winner in Florida.'); - -  MT('subAndSup', -      'f(x, n) = log [builtin ~4~] x [builtin ^n^]'); - -  MT('spanAndCode', -      'A [quote %span element%] and [atom @code element@]'); - -  MT('spanBogus', -      'Percentage 25% is not a span.'); - -  MT('citeBogus', -      'Question? is not a citation.'); - -  MT('codeBogus', -      'user@example.com'); - -  MT('subBogus', -      '~username'); - -  MT('supBogus', -      'foo ^ bar'); - -  MT('deletionBogus', -      '3 - 3 = 0'); - -  MT('additionBogus', -      '3 + 3 = 6'); - -  MT('image', -      'An image: [string !http://www.example.com/image.png!]'); - -  MT('imageWithAltText', -      'An image: [string !http://www.example.com/image.png (Alt Text)!]'); - -  MT('imageWithUrl', -      'An image: [string !http://www.example.com/image.png!:http://www.example.com/]'); - -  /* -   * Headers -   */ - -  MT('h1', -      '[header&header-1 h1. foo]'); - -  MT('h2', -      '[header&header-2 h2. foo]'); - -  MT('h3', -      '[header&header-3 h3. foo]'); - -  MT('h4', -      '[header&header-4 h4. foo]'); - -  MT('h5', -      '[header&header-5 h5. foo]'); - -  MT('h6', -      '[header&header-6 h6. foo]'); - -  MT('h7Bogus', -      'h7. foo'); - -  MT('multipleHeaders', -      '[header&header-1 h1. Heading 1]', -      '', -      'Some text.', -      '', -      '[header&header-2 h2. Heading 2]', -      '', -      'More text.'); - -  MT('h1inline', -      '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1  baz]'); - -  /* -   * Lists -   */ - -  MT('ul', -      'foo', -      'bar', -      '', -      '[variable-2 * foo]', -      '[variable-2 * bar]'); - -  MT('ulNoBlank', -      'foo', -      'bar', -      '[variable-2 * foo]', -      '[variable-2 * bar]'); - -  MT('ol', -      'foo', -      'bar', -      '', -      '[variable-2 # foo]', -      '[variable-2 # bar]'); - -  MT('olNoBlank', -      'foo', -      'bar', -      '[variable-2 # foo]', -      '[variable-2 # bar]'); - -  MT('ulFormatting', -      '[variable-2 * ][variable-2&em _foo_][variable-2  bar]', -      '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' + -        '[variable-2&strong *][variable-2  bar]', -      '[variable-2 * ][variable-2&strong *foo*][variable-2  bar]'); - -  MT('olFormatting', -      '[variable-2 # ][variable-2&em _foo_][variable-2  bar]', -      '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' + -        '[variable-2&strong *][variable-2  bar]', -      '[variable-2 # ][variable-2&strong *foo*][variable-2  bar]'); - -  MT('ulNested', -      '[variable-2 * foo]', -      '[variable-3 ** bar]', -      '[keyword *** bar]', -      '[variable-2 **** bar]', -      '[variable-3 ** bar]'); - -  MT('olNested', -      '[variable-2 # foo]', -      '[variable-3 ## bar]', -      '[keyword ### bar]', -      '[variable-2 #### bar]', -      '[variable-3 ## bar]'); - -  MT('ulNestedWithOl', -      '[variable-2 * foo]', -      '[variable-3 ## bar]', -      '[keyword *** bar]', -      '[variable-2 #### bar]', -      '[variable-3 ** bar]'); - -  MT('olNestedWithUl', -      '[variable-2 # foo]', -      '[variable-3 ** bar]', -      '[keyword ### bar]', -      '[variable-2 **** bar]', -      '[variable-3 ## bar]'); - -  MT('definitionList', -      '[number - coffee := Hot ][number&em _and_][number  black]', -      '', -      'Normal text.'); - -  MT('definitionListSpan', -      '[number - coffee :=]', -      '', -      '[number Hot ][number&em _and_][number  black =:]', -      '', -      'Normal text.'); - -  MT('boo', -      '[number - dog := woof woof]', -      '[number - cat := meow meow]', -      '[number - whale :=]', -      '[number Whale noises.]', -      '', -      '[number Also, ][number&em _splashing_][number . =:]'); - -  /* -   * Attributes -   */ - -  MT('divWithAttribute', -      '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]'); - -  MT('divWithAttributeAnd2emRightPadding', -      '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]'); - -  MT('divWithClassAndId', -      '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]'); - -  MT('paragraphWithCss', -      'p[attribute {color:red;}]. foo bar'); - -  MT('paragraphNestedStyles', -      'p. [strong *foo ][strong&em _bar_][strong *]'); - -  MT('paragraphWithLanguage', -      'p[attribute [[fr]]]. Parlez-vous français?'); - -  MT('paragraphLeftAlign', -      'p[attribute <]. Left'); - -  MT('paragraphRightAlign', -      'p[attribute >]. Right'); - -  MT('paragraphRightAlign', -      'p[attribute =]. Center'); - -  MT('paragraphJustified', -      'p[attribute <>]. Justified'); - -  MT('paragraphWithLeftIndent1em', -      'p[attribute (]. Left'); - -  MT('paragraphWithRightIndent1em', -      'p[attribute )]. Right'); - -  MT('paragraphWithLeftIndent2em', -      'p[attribute ((]. Left'); - -  MT('paragraphWithRightIndent2em', -      'p[attribute ))]. Right'); - -  MT('paragraphWithLeftIndent3emRightIndent2em', -      'p[attribute ((())]. Right'); - -  MT('divFormatting', -      '[punctuation div. ][punctuation&strong *foo ]' + -        '[punctuation&strong&em _bar_][punctuation&strong *]'); - -  MT('phraseModifierAttributes', -      'p[attribute (my-class)]. This is a paragraph that has a class and' + -      ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' + -      ' has an id.'); - -  MT('linkWithClass', -      '[link "(my-class). This is a link with class":http://redcloth.org]'); - -  /* -   * Layouts -   */ - -  MT('paragraphLayouts', -      'p. This is one paragraph.', -      '', -      'p. This is another.'); - -  MT('div', -      '[punctuation div. foo bar]'); - -  MT('pre', -      '[operator pre. Text]'); - -  MT('bq.', -      '[bracket bq. foo bar]', -      '', -      'Normal text.'); - -  MT('footnote', -      '[variable fn123. foo ][variable&strong *bar*]'); - -  /* -   * Spanning Layouts -   */ - -  MT('bq..ThenParagraph', -      '[bracket bq.. foo bar]', -      '', -      '[bracket More quote.]', -      'p. Normal Text'); - -  MT('bq..ThenH1', -      '[bracket bq.. foo bar]', -      '', -      '[bracket More quote.]', -      '[header&header-1 h1. Header Text]'); - -  MT('bc..ThenParagraph', -      '[atom bc.. # Some ruby code]', -      '[atom obj = {foo: :bar}]', -      '[atom puts obj]', -      '', -      '[atom obj[[:love]] = "*love*"]', -      '[atom puts obj.love.upcase]', -      '', -      'p. Normal text.'); - -  MT('fn1..ThenParagraph', -      '[variable fn1.. foo bar]', -      '', -      '[variable More.]', -      'p. Normal Text'); - -  MT('pre..ThenParagraph', -      '[operator pre.. foo bar]', -      '', -      '[operator More.]', -      'p. Normal Text'); - -  /* -   * Tables -   */ - -  MT('table', -      '[variable-3&operator |_. name |_. age|]', -      '[variable-3 |][variable-3&strong *Walter*][variable-3 |   5  |]', -      '[variable-3 |Florence|   6  |]', -      '', -      'p. Normal text.'); - -  MT('tableWithAttributes', -      '[variable-3&operator |_. name |_. age|]', -      '[variable-3 |][variable-3&attribute /2.][variable-3  Jim |]', -      '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3  Sam |]'); - -  /* -   * HTML -   */ - -  MT('html', -      '[comment <div id="wrapper">]', -      '[comment <section id="introduction">]', -      '', -      '[header&header-1 h1. Welcome]', -      '', -      '[variable-2 * Item one]', -      '[variable-2 * Item two]', -      '', -      '[comment <a href="http://example.com">Example</a>]', -      '', -      '[comment </section>]', -      '[comment </div>]'); - -  MT('inlineHtml', -      'I can use HTML directly in my [comment <span class="youbetcha">Textile</span>].'); - -  /* -   * No-Textile -   */ - -  MT('notextile', -    '[string-2 notextile. *No* formatting]'); - -  MT('notextileInline', -      'Use [string-2 ==*asterisks*==] for [strong *strong*] text.'); - -  MT('notextileWithPre', -      '[operator pre. *No* formatting]'); - -  MT('notextileWithSpanningPre', -      '[operator pre.. *No* formatting]', -      '', -      '[operator *No* formatting]'); - -  /* Only toggling phrases between non-word chars. */ - -  MT('phrase-in-word', -     'foo_bar_baz'); - -  MT('phrase-non-word', -     '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]'); - -  MT('phrase-lone-dash', -     'foo - bar - baz'); -})(); diff --git a/public/vendor/codemirror/mode/textile/textile.js b/public/vendor/codemirror/mode/textile/textile.js deleted file mode 100644 index a6f75765..00000000 --- a/public/vendor/codemirror/mode/textile/textile.js +++ /dev/null @@ -1,469 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { -  if (typeof exports == "object" && typeof module == "object") { // CommonJS -    mod(require("../../lib/codemirror")); -  } else if (typeof define == "function" && define.amd) { // AMD -    define(["../../lib/codemirror"], mod); -  } else { // Plain browser env -    mod(CodeMirror); -  } -})(function(CodeMirror) { -  "use strict"; - -  var TOKEN_STYLES = { -    addition: "positive", -    attributes: "attribute", -    bold: "strong", -    cite: "keyword", -    code: "atom", -    definitionList: "number", -    deletion: "negative", -    div: "punctuation", -    em: "em", -    footnote: "variable", -    footCite: "qualifier", -    header: "header", -    html: "comment", -    image: "string", -    italic: "em", -    link: "link", -    linkDefinition: "link", -    list1: "variable-2", -    list2: "variable-3", -    list3: "keyword", -    notextile: "string-2", -    pre: "operator", -    p: "property", -    quote: "bracket", -    span: "quote", -    specialChar: "tag", -    strong: "strong", -    sub: "builtin", -    sup: "builtin", -    table: "variable-3", -    tableHeading: "operator" -  }; - -  function startNewLine(stream, state) { -    state.mode = Modes.newLayout; -    state.tableHeading = false; - -    if (state.layoutType === "definitionList" && state.spanningLayout && -        stream.match(RE("definitionListEnd"), false)) -      state.spanningLayout = false; -  } - -  function handlePhraseModifier(stream, state, ch) { -    if (ch === "_") { -      if (stream.eat("_")) -        return togglePhraseModifier(stream, state, "italic", /__/, 2); -      else -        return togglePhraseModifier(stream, state, "em", /_/, 1); -    } - -    if (ch === "*") { -      if (stream.eat("*")) { -        return togglePhraseModifier(stream, state, "bold", /\*\*/, 2); -      } -      return togglePhraseModifier(stream, state, "strong", /\*/, 1); -    } - -    if (ch === "[") { -      if (stream.match(/\d+\]/)) state.footCite = true; -      return tokenStyles(state); -    } - -    if (ch === "(") { -      var spec = stream.match(/^(r|tm|c)\)/); -      if (spec) -        return tokenStylesWith(state, TOKEN_STYLES.specialChar); -    } - -    if (ch === "<" && stream.match(/(\w+)[^>]+>[^<]+<\/\1>/)) -      return tokenStylesWith(state, TOKEN_STYLES.html); - -    if (ch === "?" && stream.eat("?")) -      return togglePhraseModifier(stream, state, "cite", /\?\?/, 2); - -    if (ch === "=" && stream.eat("=")) -      return togglePhraseModifier(stream, state, "notextile", /==/, 2); - -    if (ch === "-" && !stream.eat("-")) -      return togglePhraseModifier(stream, state, "deletion", /-/, 1); - -    if (ch === "+") -      return togglePhraseModifier(stream, state, "addition", /\+/, 1); - -    if (ch === "~") -      return togglePhraseModifier(stream, state, "sub", /~/, 1); - -    if (ch === "^") -      return togglePhraseModifier(stream, state, "sup", /\^/, 1); - -    if (ch === "%") -      return togglePhraseModifier(stream, state, "span", /%/, 1); - -    if (ch === "@") -      return togglePhraseModifier(stream, state, "code", /@/, 1); - -    if (ch === "!") { -      var type = togglePhraseModifier(stream, state, "image", /(?:\([^\)]+\))?!/, 1); -      stream.match(/^:\S+/); // optional Url portion -      return type; -    } -    return tokenStyles(state); -  } - -  function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) { -    var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null; -    var charAfter = stream.peek(); -    if (state[phraseModifier]) { -      if ((!charAfter || /\W/.test(charAfter)) && charBefore && /\S/.test(charBefore)) { -        var type = tokenStyles(state); -        state[phraseModifier] = false; -        return type; -      } -    } else if ((!charBefore || /\W/.test(charBefore)) && charAfter && /\S/.test(charAfter) && -               stream.match(new RegExp("^.*\\S" + closeRE.source + "(?:\\W|$)"), false)) { -      state[phraseModifier] = true; -      state.mode = Modes.attributes; -    } -    return tokenStyles(state); -  }; - -  function tokenStyles(state) { -    var disabled = textileDisabled(state); -    if (disabled) return disabled; - -    var styles = []; -    if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]); - -    styles = styles.concat(activeStyles( -      state, "addition", "bold", "cite", "code", "deletion", "em", "footCite", -      "image", "italic", "link", "span", "strong", "sub", "sup", "table", "tableHeading")); - -    if (state.layoutType === "header") -      styles.push(TOKEN_STYLES.header + "-" + state.header); - -    return styles.length ? styles.join(" ") : null; -  } - -  function textileDisabled(state) { -    var type = state.layoutType; - -    switch(type) { -    case "notextile": -    case "code": -    case "pre": -      return TOKEN_STYLES[type]; -    default: -      if (state.notextile) -        return TOKEN_STYLES.notextile + (type ? (" " + TOKEN_STYLES[type]) : ""); -      return null; -    } -  } - -  function tokenStylesWith(state, extraStyles) { -    var disabled = textileDisabled(state); -    if (disabled) return disabled; - -    var type = tokenStyles(state); -    if (extraStyles) -      return type ? (type + " " + extraStyles) : extraStyles; -    else -      return type; -  } - -  function activeStyles(state) { -    var styles = []; -    for (var i = 1; i < arguments.length; ++i) { -      if (state[arguments[i]]) -        styles.push(TOKEN_STYLES[arguments[i]]); -    } -    return styles; -  } - -  function blankLine(state) { -    var spanningLayout = state.spanningLayout, type = state.layoutType; - -    for (var key in state) if (state.hasOwnProperty(key)) -      delete state[key]; - -    state.mode = Modes.newLayout; -    if (spanningLayout) { -      state.layoutType = type; -      state.spanningLayout = true; -    } -  } - -  var REs = { -    cache: {}, -    single: { -      bc: "bc", -      bq: "bq", -      definitionList: /- [^(?::=)]+:=+/, -      definitionListEnd: /.*=:\s*$/, -      div: "div", -      drawTable: /\|.*\|/, -      foot: /fn\d+/, -      header: /h[1-6]/, -      html: /\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/, -      link: /[^"]+":\S/, -      linkDefinition: /\[[^\s\]]+\]\S+/, -      list: /(?:#+|\*+)/, -      notextile: "notextile", -      para: "p", -      pre: "pre", -      table: "table", -      tableCellAttributes: /[\/\\]\d+/, -      tableHeading: /\|_\./, -      tableText: /[^"_\*\[\(\?\+~\^%@|-]+/, -      text: /[^!"_=\*\[\(<\?\+~\^%@-]+/ -    }, -    attributes: { -      align: /(?:<>|<|>|=)/, -      selector: /\([^\(][^\)]+\)/, -      lang: /\[[^\[\]]+\]/, -      pad: /(?:\(+|\)+){1,2}/, -      css: /\{[^\}]+\}/ -    }, -    createRe: function(name) { -      switch (name) { -      case "drawTable": -        return REs.makeRe("^", REs.single.drawTable, "$"); -      case "html": -        return REs.makeRe("^", REs.single.html, "(?:", REs.single.html, ")*", "$"); -      case "linkDefinition": -        return REs.makeRe("^", REs.single.linkDefinition, "$"); -      case "listLayout": -        return REs.makeRe("^", REs.single.list, RE("allAttributes"), "*\\s+"); -      case "tableCellAttributes": -        return REs.makeRe("^", REs.choiceRe(REs.single.tableCellAttributes, -                                            RE("allAttributes")), "+\\."); -      case "type": -        return REs.makeRe("^", RE("allTypes")); -      case "typeLayout": -        return REs.makeRe("^", RE("allTypes"), RE("allAttributes"), -                          "*\\.\\.?", "(\\s+|$)"); -      case "attributes": -        return REs.makeRe("^", RE("allAttributes"), "+"); - -      case "allTypes": -        return REs.choiceRe(REs.single.div, REs.single.foot, -                            REs.single.header, REs.single.bc, REs.single.bq, -                            REs.single.notextile, REs.single.pre, REs.single.table, -                            REs.single.para); - -      case "allAttributes": -        return REs.choiceRe(REs.attributes.selector, REs.attributes.css, -                            REs.attributes.lang, REs.attributes.align, REs.attributes.pad); - -      default: -        return REs.makeRe("^", REs.single[name]); -      } -    }, -    makeRe: function() { -      var pattern = ""; -      for (var i = 0; i < arguments.length; ++i) { -        var arg = arguments[i]; -        pattern += (typeof arg === "string") ? arg : arg.source; -      } -      return new RegExp(pattern); -    }, -    choiceRe: function() { -      var parts = [arguments[0]]; -      for (var i = 1; i < arguments.length; ++i) { -        parts[i * 2 - 1] = "|"; -        parts[i * 2] = arguments[i]; -      } - -      parts.unshift("(?:"); -      parts.push(")"); -      return REs.makeRe.apply(null, parts); -    } -  }; - -  function RE(name) { -    return (REs.cache[name] || (REs.cache[name] = REs.createRe(name))); -  } - -  var Modes = { -    newLayout: function(stream, state) { -      if (stream.match(RE("typeLayout"), false)) { -        state.spanningLayout = false; -        return (state.mode = Modes.blockType)(stream, state); -      } -      var newMode; -      if (!textileDisabled(state)) { -        if (stream.match(RE("listLayout"), false)) -          newMode = Modes.list; -        else if (stream.match(RE("drawTable"), false)) -          newMode = Modes.table; -        else if (stream.match(RE("linkDefinition"), false)) -          newMode = Modes.linkDefinition; -        else if (stream.match(RE("definitionList"))) -          newMode = Modes.definitionList; -        else if (stream.match(RE("html"), false)) -          newMode = Modes.html; -      } -      return (state.mode = (newMode || Modes.text))(stream, state); -    }, - -    blockType: function(stream, state) { -      var match, type; -      state.layoutType = null; - -      if (match = stream.match(RE("type"))) -        type = match[0]; -      else -        return (state.mode = Modes.text)(stream, state); - -      if (match = type.match(RE("header"))) { -        state.layoutType = "header"; -        state.header = parseInt(match[0][1]); -      } else if (type.match(RE("bq"))) { -        state.layoutType = "quote"; -      } else if (type.match(RE("bc"))) { -        state.layoutType = "code"; -      } else if (type.match(RE("foot"))) { -        state.layoutType = "footnote"; -      } else if (type.match(RE("notextile"))) { -        state.layoutType = "notextile"; -      } else if (type.match(RE("pre"))) { -        state.layoutType = "pre"; -      } else if (type.match(RE("div"))) { -        state.layoutType = "div"; -      } else if (type.match(RE("table"))) { -        state.layoutType = "table"; -      } - -      state.mode = Modes.attributes; -      return tokenStyles(state); -    }, - -    text: function(stream, state) { -      if (stream.match(RE("text"))) return tokenStyles(state); - -      var ch = stream.next(); -      if (ch === '"') -        return (state.mode = Modes.link)(stream, state); -      return handlePhraseModifier(stream, state, ch); -    }, - -    attributes: function(stream, state) { -      state.mode = Modes.layoutLength; - -      if (stream.match(RE("attributes"))) -        return tokenStylesWith(state, TOKEN_STYLES.attributes); -      else -        return tokenStyles(state); -    }, - -    layoutLength: function(stream, state) { -      if (stream.eat(".") && stream.eat(".")) -        state.spanningLayout = true; - -      state.mode = Modes.text; -      return tokenStyles(state); -    }, - -    list: function(stream, state) { -      var match = stream.match(RE("list")); -      state.listDepth = match[0].length; -      var listMod = (state.listDepth - 1) % 3; -      if (!listMod) -        state.layoutType = "list1"; -      else if (listMod === 1) -        state.layoutType = "list2"; -      else -        state.layoutType = "list3"; - -      state.mode = Modes.attributes; -      return tokenStyles(state); -    }, - -    link: function(stream, state) { -      state.mode = Modes.text; -      if (stream.match(RE("link"))) { -        stream.match(/\S+/); -        return tokenStylesWith(state, TOKEN_STYLES.link); -      } -      return tokenStyles(state); -    }, - -    linkDefinition: function(stream, state) { -      stream.skipToEnd(); -      return tokenStylesWith(state, TOKEN_STYLES.linkDefinition); -    }, - -    definitionList: function(stream, state) { -      stream.match(RE("definitionList")); - -      state.layoutType = "definitionList"; - -      if (stream.match(/\s*$/)) -        state.spanningLayout = true; -      else -        state.mode = Modes.attributes; - -      return tokenStyles(state); -    }, - -    html: function(stream, state) { -      stream.skipToEnd(); -      return tokenStylesWith(state, TOKEN_STYLES.html); -    }, - -    table: function(stream, state) { -      state.layoutType = "table"; -      return (state.mode = Modes.tableCell)(stream, state); -    }, - -    tableCell: function(stream, state) { -      if (stream.match(RE("tableHeading"))) -        state.tableHeading = true; -      else -        stream.eat("|"); - -      state.mode = Modes.tableCellAttributes; -      return tokenStyles(state); -    }, - -    tableCellAttributes: function(stream, state) { -      state.mode = Modes.tableText; - -      if (stream.match(RE("tableCellAttributes"))) -        return tokenStylesWith(state, TOKEN_STYLES.attributes); -      else -        return tokenStyles(state); -    }, - -    tableText: function(stream, state) { -      if (stream.match(RE("tableText"))) -        return tokenStyles(state); - -      if (stream.peek() === "|") { // end of cell -        state.mode = Modes.tableCell; -        return tokenStyles(state); -      } -      return handlePhraseModifier(stream, state, stream.next()); -    } -  }; - -  CodeMirror.defineMode("textile", function() { -    return { -      startState: function() { -        return { mode: Modes.newLayout }; -      }, -      token: function(stream, state) { -        if (stream.sol()) startNewLine(stream, state); -        return state.mode(stream, state); -      }, -      blankLine: blankLine -    }; -  }); - -  CodeMirror.defineMIME("text/x-textile", "textile"); -});  | 
