diff --git a/public/story-formats/chapbook-1.2.0/format.js b/public/story-formats/chapbook-1.2.0/format.js new file mode 100755 index 000000000..98579098d --- /dev/null +++ b/public/story-formats/chapbook-1.2.0/format.js @@ -0,0 +1 @@ +window.storyFormat({"author":"Chris Klimas","description":"A Twine story format emphasizing ease of authoring, multimedia, and playability on many different types of devices. Visit the guide for more information.","image":"logo.svg","name":"Chapbook","proofing":false,"source":"{{STORY_NAME}}
    \"\"
    {{STORY_DATA}}","version":"1.2.0"}); \ No newline at end of file diff --git a/public/story-formats/chapbook-1.2.0/logo.svg b/public/story-formats/chapbook-1.2.0/logo.svg new file mode 100755 index 000000000..4b8506312 --- /dev/null +++ b/public/story-formats/chapbook-1.2.0/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/story-formats/harlowe-1.2.4/format.js b/public/story-formats/harlowe-1.2.4/format.js old mode 100644 new mode 100755 diff --git a/public/story-formats/harlowe-1.2.4/icon.svg b/public/story-formats/harlowe-1.2.4/icon.svg old mode 100644 new mode 100755 diff --git a/public/story-formats/harlowe-2.1.0/format.js b/public/story-formats/harlowe-2.1.0/format.js old mode 100644 new mode 100755 diff --git a/public/story-formats/harlowe-2.1.0/icon.svg b/public/story-formats/harlowe-2.1.0/icon.svg old mode 100644 new mode 100755 diff --git a/public/story-formats/harlowe-3.0.2/format.js b/public/story-formats/harlowe-3.0.2/format.js deleted file mode 100644 index 5b94a1529..000000000 --- a/public/story-formats/harlowe-3.0.2/format.js +++ /dev/null @@ -1,3 +0,0 @@ -window.storyFormat({"name":"Harlowe","version":"3.0.2","author":"Leon Arnott","description":"The default story format for Twine 2. See its documentation.","image":"icon.svg","url":"http://twinery.org/","license":"Zlib","proofing":false,"source":"\n\n\n\n{{STORY_NAME}}\n\n\n\n\n\n\n\n{{STORY_DATA}}\n\n\n\n\n\n\n","setup": function(){"use strict";function _toConsumableArray(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r-1)||e.cannotFollow&&(-1!==e.cannotFollow.indexOf(n&&n.type)||e.cannotFollow.indexOf("text")>-1&&t)||e.peek&&e.peek.toLowerCase()!==r.slice(0,e.peek.length).toLowerCase())}function t(e){for(var r=e.innerText,t=[],o=0,s=o,u=r.length,m=null;o-1&&(k=t.length-1)}if(k>=t.length&&!f.isFront)continue}s0;)t.shift().demote();return e}function a(e,n,t){var a=e.children.indexOf(n),o=e.children.indexOf(t);n.children=e.children.splice(o+1,a-(o+1)),n.children.forEach(function(e){r(n,e)}),n.type=n.matches[t.type],n.innerText="";for(var i=0,s=n.children.length;i=this.end)return null;if(this.childAt)return this.childAt[e]&&this.childAt[e].tokenAt(e)||this;if(this.children.length)for(var r=0;r=this.end)return[];if(this.childAt)return(this.childAt[e]&&this.childAt[e].pathAt(e)||[]).concat(this);var r=[];if(this.children.length)for(var n=0;n=this.end?null:this.children?this.children.reduce(function(r,n){return r||(e>=n.start&&e0&&(e+="["+this.children+"]"),e}},o={lex:function(r,n){return t(new e({type:"root",start:n||0,end:r.length,text:r,innerText:r,children:[],childAt:{},innerMode:o.modes.start}))},rules:i,modes:{}},"object"===("undefined"==typeof module?"undefined":_typeof(module))?module.exports=o:"function"==typeof define&&define.amd?define("lexer",[],function(){return o}):this&&this.loaded?(this.modules||(this.modules={}),this.modules.Lexer=o):this.TwineLexer=o}).call(eval("this")||("undefined"!=typeof global?global:window)),function(){function e(r){return r&&"object"===(void 0===r?"undefined":_typeof(r))?(Object.keys(r).forEach(function(n){r[n]=e(r[n])}),r):(r+"").replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function r(e){return function(){return"("+e+Array.apply(0,arguments).join("|")+")"}}var n=void 0,t=r("?:"),a=r("?!"),o=r("?="),i="[ \\f\\t\\v\\u00a0\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]*",s=i.replace("*","+"),u="\\b",m="[\\w\\-\\u00c0-\\u00de\\u00df-\\u00ff\\u0150\\u0170\\u0151\\u0171\\uD800-\\uDFFF]",l=m.replace("\\-",""),g=t("\\n","$"),c="("+t("\\\\\\n\\\\?|\\n\\\\","[^\\n]")+"+)",p=i+"(\\*+)"+s+c+g,d=i+"((?:0\\.)+)"+s+c+g,h=i+"-{3,}"+i+g,f=i+"(#{1,6})"+i+c+g,y=i+"(==+>|<=+|=+><=+|<==+>)"+i+g,k=i+"(=+\\|+|\\|+=+|=+\\|+=+|\\|=+\\|)"+i+g,b={opener:"\\[\\[(?!\\[)",text:"("+function(){return"[^"+Array.apply(0,arguments).map(e).join("")+"]*"}("]")+")",rightSeparator:t("\\->","\\|"),leftSeparator:"<\\-",closer:"\\]\\]",legacySeparator:"\\|",legacyText:"("+t("[^\\|\\]]","\\]"+a("\\]"))+"+)"},S=l+"*"+l.replace("\\w","a-zA-Z")+l+"*",N="\\$("+S+")",C="'s"+s+"("+S+")",T="("+S+")"+s+"of"+u+a("it\\b"),v="'s"+s,x=t("it","time")+u,A="its"+s+"("+S+")",w="its"+s,O="("+S+")"+s+"of"+s+"it"+u,F="of\\b"+s+"it"+u,L={opener:"\\(",name:"("+t(m+"+",N)+"):"+a("\\/"),closer:"\\)"},H=t("=<","=>","[gl]te?\\b","n?eq\\b","isnot\\b","are\\b","x\\b","isa\\b","or"+s+"a"+u),P={name:"[a-zA-Z][\\w\\-]*",attrs:"(?:\"[^\"]*\"|'[^']*'|[^'\">])*?"},B="\\|("+m+"+)(>|\\))",j="(<|\\()("+m+"+)\\|",M="_("+S+")"+u,I="\\b(\\d+(?:\\.\\d+)?(?:[eE][+\\-]?\\d+)?)"+a("m?s")+u;b.main=b.opener+t(b.text+b.rightSeparator,b.text.replace("*","*?")+b.leftSeparator)+b.text,n={upperLetter:"[A-Z\\u00c0-\\u00de\\u0150\\u0170]",lowerLetter:"[a-z0-9_\\-\\u00df-\\u00ff\\u0151\\u0171]",anyLetter:m,anyLetterStrict:l,whitespace:s,escapedLine:"\\\\\\n\\\\?|\\n\\\\",br:"\\n(?!\\\\)",commentFront:"\x3c!--",commentBack:"--\x3e",tag:"<\\/?"+P.name+P.attrs+">",tagPeek:"<",scriptStyleTag:"<("+t("script","style")+")"+P.attrs+">[^]*?<\\/\\1>",scriptStyleTagOpener:"<",url:"("+t("https?","mailto","javascript","ftp","data")+":\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])",bullet:"\\*",hr:h,heading:f,align:y,column:k,bulleted:p,numbered:d,strikeOpener:e("~~"),italicOpener:e("//"),boldOpener:e("''"),supOpener:e("^^"),strongFront:e("**"),strongBack:e("**"),emFront:e("*"),emBack:e("*"),verbatimOpener:"`+",collapsedFront:"{",collapsedBack:"}",hookAppendedFront:"\\[",hookPrependedFront:B+"\\[",hookFront:"\\[",hookBack:"\\]"+a(j),hookAppendedBack:"\\]"+j,passageLink:b.main+b.closer,passageLinkPeek:"[[",legacyLink:b.opener+b.legacyText+b.legacySeparator+b.legacyText+b.closer,legacyLinkPeek:"[[",simpleLink:b.opener+b.legacyText+b.closer,simpleLinkPeek:"[[",macroFront:L.opener+o(L.name),macroFrontPeek:"(",macroName:L.name,groupingFront:"\\("+a(L.name),groupingFrontPeek:"(",groupingBack:"\\)",twine1Macro:"<<[^>\\s]+\\s*(?:\\\\.|'(?:[^'\\\\]*\\\\.)*[^'\\\\]*'|\"(?:[^\"\\\\]*\\\\.)*[^\"\\\\]*\"|[^'\"\\\\>]|>(?!>))*>>",twine1MacroPeek:"<<",property:C,propertyPeek:"'s",belongingProperty:T,possessiveOperator:v,belongingOperator:"of\\b",belongingOperatorPeek:"of",itsOperator:w,itsOperatorPeek:"its",belongingItOperator:F,belongingItOperatorPeek:"of",variable:N,variablePeek:"$",tempVariable:M,tempVariablePeek:"_",hookRef:"\\?("+m+"+)\\b",hookRefPeek:"?",cssTime:"(\\d+\\.?\\d*|\\d*\\.?\\d+)(m?s)\\b",colour:t(t("Red","Orange","Yellow","Lime","Green","Cyan","Aqua","Blue","Navy","Purple","Fuchsia","Magenta","White","Gray","Grey","Black"),"#[\\dA-Fa-f]{3}(?:[\\dA-Fa-f]{3})?"),datatype:t("array","boolean","changer","colour","color","command","dm","datamap","ds","dataset","number","num","string","str"),number:I,boolean:t("true","false")+u,identifier:x,itsProperty:A,itsPropertyPeek:"its",belongingItProperty:O,escapedStringChar:"\\\\[^\\n]",singleStringOpener:"'",doubleStringOpener:'"',is:"is"+a(s+"not"+u,s+"an?"+u,s+"in"+u,s+"<",s+">")+u,isNot:"is"+s+"not"+a(s+"a"+u)+u,isA:"is"+s+"an?"+u,isNotA:"is"+s+"not"+s+"an?"+u,matches:"matches"+s,and:"and\\b",or:"or\\b",not:"not\\b",inequality:"((?:is(?:"+s+"not)?"+i+")*)("+t("<(?!=)","<=",">(?!=)",">=")+")",isIn:"is"+s+"in"+u,contains:"contains\\b",addition:e("+")+a("="),subtraction:e("-")+a("="),multiplication:e("*")+a("="),division:t("/","%")+a("="),comma:",",spread:"\\.\\.\\."+a("\\."),to:t("to\\b","="),into:"into\\b",making:"making\\b",where:"where\\b",when:"when\\b",via:"via\\b",with:"with\\b",each:"each\\b",augmentedAssign:t("\\+","\\-","\\*","\\/","%")+"=",bind:"bind\\b",incorrectOperator:H},"object"===("undefined"==typeof module?"undefined":_typeof(module))?module.exports=n:"function"==typeof define&&define.amd?define("patterns",[],function(){return n}):this&&this.loaded?(this.modules||(this.modules={}),this.modules.Patterns=n):this.Patterns=n}.call(eval("this")||("undefined"!=typeof global?global:window)),function(){function e(e){function r(e){return e=e||"innerText",function(r){var n=r.reduceRight(function(e,r,n){return e||(n?r:"")},""),t={};return t[e]=n,t}}function t(e,r){var n={};return n[e]=r,function(){return{isFront:!0,matches:n,cannotCross:["verbatimOpener"]}}}function a(e,r){return Object.keys(r).forEach(function(n){var t=r[n].fn;r[n].fn=function(r){var a=t(r);return a.text||(a.text=r[0]),a.type||(a.type=n),a.innerMode||(a.innerMode=e),a}}),r}var o=Object.bind(0,null),i=[],s=[],u=a(i,{hr:{fn:o},bulleted:{fn:function(e){return{depth:e[1].length,innerText:e[2]}}},numbered:{fn:function(e){return{depth:e[1].length/2,innerText:e[2]}}},heading:{fn:function(e){return{depth:e[1].length,innerText:e[2]}}},align:{fn:function(e){var r=void 0,n=e[1],t=n.indexOf("><");return~t?25===(r=Math.round(t/(n.length-2)*50))&&(r="center"):"<"===n[0]&&">"===n.slice(-1)?r="justify":n.indexOf(">")>-1?r="right":n.indexOf("<")>-1&&(r="left"),{align:r}}},column:{fn:function(e){var r=void 0,n=e[1],t=n.indexOf("|");return t&&t-1}}},augmentedAssign:{fn:function(e){return{operator:e[0][0]}}},identifier:{fn:r("name"),cannotFollow:["text"]},whitespace:{fn:o,cannotFollow:"text"},incorrectOperator:{fn:function(e){var r={"=>":">=","=<":"<=",gte:">=",lte:"<=",gt:">",lt:"<",eq:"is",isnot:"is not",neq:"is not",isa:"is a",are:"is",x:"*","or a":"or"}[e[0].toLowerCase().replace(/\s+/g," ")];return{type:"error",message:"Please say "+(r?"'"+r+"'":"something else")+" instead of '"+e[0]+"'.",explanation:"In the interests of readability, I want certain operators to be in a specific form."}},cannotFollow:"text"}},["boolean","is","to","into","where","when","via","with","making","each","and","or","not","isNot","contains","isIn","isA","isNotA","matches","bind"].reduce(function(e,r){return e[r]={fn:o,cannotFollow:["text"]},e},{}),["comma","spread","addition","subtraction","multiplication","division"].reduce(function(e,r){return e[r]={fn:o},e},{})));i.push.apply(i,_toConsumableArray(Object.keys(u)).concat(_toConsumableArray(Object.keys(l)),_toConsumableArray(Object.keys(m)))),s.push.apply(s,_toConsumableArray(Object.keys(l)).concat(_toConsumableArray(Object.keys(g))));var c=Object.assign({},u,m,l,g);return Object.keys(c).forEach(function(e){var r=n[e];c[e].pattern="string"!=typeof r?r:new RegExp("^(?:"+r+")","i"),n[e+"Peek"]&&(c[e].peek=n[e+"Peek"])}),Object.assign(e.rules,c),e.modes.start=e.modes.markup=i,e.modes.macro=s,e}function r(r){return Object.freeze({lex:e(r).lex,Patterns:n})}var n=void 0;Object.assign=Object.assign||function(e){for(var r=1;r Command":{name:"display",sig:" String",returnType:"Command",aka:[]},"(print: Any) -> Command":{name:"print",sig:" Any",returnType:"Command",aka:[]},"(go-to: String) -> Command":{name:"go-to",sig:" String",returnType:"Command",aka:[]},"(undo:) -> Command":{name:"undo",sig:"",returnType:"Command",aka:[]},"(cycling-link: [Bind], ...String) -> Command":{name:"cycling-link",sig:" [Bind], ...String",returnType:"Command",aka:[]},"(dropdown: Bind, ...String) -> Command":{name:"dropdown",sig:" Bind, ...String",returnType:"Command",aka:[]},"(show: ...HookName) -> Command":{name:"show",sig:" ...HookName",returnType:"Command",aka:[]},"(stop:) -> Command":{name:"stop",sig:"",returnType:"Command",aka:[]},"(load-game: String) -> Command":{name:"load-game",sig:" String",returnType:"Command",aka:[]},"(alert: String) -> Command":{name:"alert",sig:" String",returnType:"Command",aka:[]},"(open-url: String) -> Command":{name:"open-url",sig:" String",returnType:"Command",aka:[]},"(reload:) -> Command":{name:"reload",sig:"",returnType:"Command",aka:[]},"(goto-url: String) -> Command":{name:"goto-url",sig:" String",returnType:"Command",aka:[]},"(save-game: String, [String]) -> Boolean":{name:"save-game",sig:" String, [String]",returnType:"Boolean",aka:[]},"(prompt: String, String) -> String":{name:"prompt",sig:" String, String",returnType:"String",aka:[]},"(confirm: String) -> Boolean":{name:"confirm",sig:" String",returnType:"Boolean",aka:[]},"(page-url:) -> String":{name:"page-url",sig:"",returnType:"String",aka:[]},"(set: ...VariableToValue) -> Instant":{name:"set",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(put: ...VariableToValue) -> Instant":{name:"put",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(move: ...VariableToValue) -> Instant":{name:"move",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(a: [...Any]) -> Array":{name:"a",sig:" [...Any]",returnType:"Array",aka:["array"]},"(range: Number, Number) -> Array":{name:"range",sig:" Number, Number",returnType:"Array",aka:[]},"(subarray: Array, Number, Number) -> Array":{name:"subarray",sig:" Array, Number, Number",returnType:"Array",aka:[]},"(reversed: [...Any]) -> Array":{name:"reversed",sig:" [...Any]",returnType:"Array",aka:[]},"(shuffled: Any, ...Any) -> Array":{name:"shuffled",sig:" Any, ...Any",returnType:"Array",aka:[]},"(sorted: Number or String, ...Number or String) -> Array":{name:"sorted",sig:" Number or String, ...Number or String",returnType:"Array",aka:[]},"(rotated: Number, [...Any]) -> Array":{name:"rotated",sig:" Number, [...Any]",returnType:"Array",aka:[]},"(repeated: Number, ...Any) -> Array":{name:"repeated",sig:" Number, ...Any",returnType:"Array",aka:[]},"(interlaced: Array, ...Array) -> Array":{name:"interlaced",sig:" Array, ...Array",returnType:"Array",aka:[]},"(altered: Lambda, [...Any]) -> Array":{name:"altered",sig:" Lambda, [...Any]",returnType:"Array",aka:[]},"(find: Lambda, [...Any]) -> Array":{name:"find",sig:" Lambda, [...Any]",returnType:"Array",aka:[]},"(all-pass: Lambda, [...Any]) -> Boolean":{name:"all-pass",sig:" Lambda, [...Any]",returnType:"Boolean",aka:[]},"(some-pass: Lambda, ...Any) -> Boolean":{name:"some-pass",sig:" Lambda, ...Any",returnType:"Boolean",aka:[]},"(none-pass: Lambda, ...Any) -> Boolean":{name:"none-pass",sig:" Lambda, ...Any",returnType:"Boolean",aka:[]},"(folded: Lambda, ...Any) -> Any":{name:"folded",sig:" Lambda, ...Any",returnType:"Any",aka:[]},"(datanames: Datamap) -> Array":{name:"datanames",sig:" Datamap",returnType:"Array",aka:[]},"(datavalues: Datamap) -> Array":{name:"datavalues",sig:" Datamap",returnType:"Array",aka:[]},"(dataentries: Datamap) -> Array":{name:"dataentries",sig:" Datamap",returnType:"Array",aka:[]},"(history:) -> Array":{name:"history",sig:"",returnType:"Array",aka:[]},"(passage: [String]) -> Datamap":{name:"passage",sig:" [String]",returnType:"Datamap",aka:[]},"(saved-games:) -> Datamap":{name:"saved-games",sig:"",returnType:"Datamap",aka:[]},"(dm: [...Any]) -> Datamap":{name:"dm",sig:" [...Any]",returnType:"Datamap",aka:["datamap"]},"(ds: [...Any]) -> Dataset":{name:"ds",sig:" [...Any]",returnType:"Dataset",aka:["dataset"]},"(count: Array or String, ...Any) -> Number":{name:"count",sig:" Array or String, ...Any",returnType:"Number",aka:[]},"(enchant: HookName or String, Changer) -> Command":{name:"enchant",sig:" HookName or String, Changer",returnType:"Command",aka:[]},"(replace: ...HookName or String) -> Changer":{name:"replace",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(append: ...HookName or String) -> Changer":{name:"append",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(prepend: ...HookName or String) -> Changer":{name:"prepend",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(click: HookName or String) -> Changer":{name:"click",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover: HookName or String) -> Changer":{name:"mouseover",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout: HookName or String) -> Changer":{name:"mouseout",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-replace: HookName or String) -> Changer":{name:"click-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-append: HookName or String) -> Changer":{name:"click-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-prepend: HookName or String) -> Changer":{name:"click-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-replace: HookName or String) -> Changer":{name:"mouseover-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-append: HookName or String) -> Changer":{name:"mouseover-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-prepend: HookName or String) -> Changer":{name:"mouseover-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-replace: HookName or String) -> Changer":{name:"mouseout-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-append: HookName or String) -> Changer":{name:"mouseout-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-prepend: HookName or String) -> Changer":{name:"mouseout-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-goto: HookName or String, String) -> Command":{name:"click-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(mouseover-goto: HookName or String, String) -> Command":{name:"mouseover-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(mouseout-goto: HookName or String, String) -> Command":{name:"mouseout-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(link: String) -> Changer":{name:"link",sig:" String",returnType:"Changer",aka:["link-replace"]},"(link-reveal: String) -> Changer":{name:"link-reveal",sig:" String",returnType:"Changer",aka:[]},"(link-repeat: String) -> Changer":{name:"link-repeat",sig:" String",returnType:"Changer",aka:[]},"(link-goto: String, [String]) -> Command":{name:"link-goto",sig:" String, [String]",returnType:"Command",aka:[]},"(link-undo: String) -> Command":{name:"link-undo",sig:" String",returnType:"Command",aka:[]},"(link-show: String, ...HookName) -> Command":{name:"link-show",sig:" String, ...HookName",returnType:"Command",aka:[]},"(link-reveal-goto: String, [String]) -> Changer":{name:"link-reveal-goto",sig:" String, [String]",returnType:"Changer",aka:[]},"(if: Boolean) -> Changer":{name:"if",sig:" Boolean",returnType:"Changer",aka:[]},"(unless: Boolean) -> Changer":{name:"unless",sig:" Boolean",returnType:"Changer",aka:[]},"(else-if: Boolean) -> Changer":{name:"else-if",sig:" Boolean",returnType:"Changer",aka:[]},"(else:) -> Changer":{name:"else",sig:"",returnType:"Changer",aka:[]},"(hidden:) -> Changer":{name:"hidden",sig:"",returnType:"Changer",aka:[]},"(live: [Number]) -> Changer":{name:"live",sig:" [Number]",returnType:"Changer",aka:[]},"(event: Lambda) -> Changer":{name:"event",sig:" Lambda",returnType:"Changer",aka:[]},"(hook: String) -> Changer":{name:"hook",sig:" String",returnType:"Changer",aka:[]},"(for: Lambda, [...Any]) -> Changer":{name:"for",sig:" Lambda, [...Any]",returnType:"Changer",aka:["loop"]},"(transition: String) -> Changer":{name:"transition",sig:" String",returnType:"Changer",aka:["t8n"]},"(transition-time: Number) -> Changer":{name:"transition-time",sig:" Number",returnType:"Changer",aka:["t8n-time"]},"(transition-depart: String) -> Changer":{name:"transition-depart",sig:" String",returnType:"Changer",aka:["t8n-depart"]},"(transition-arrive: String) -> Changer":{name:"transition-arrive",sig:" String",returnType:"Changer",aka:["t8n-arrive"]},"(font: String) -> Changer":{name:"font",sig:" String",returnType:"Changer",aka:[]},"(align: String) -> Changer":{name:"align",sig:" String",returnType:"Changer",aka:[]},"(text-colour: String or Colour) -> Changer":{name:"text-colour",sig:" String or Colour",returnType:"Changer",aka:["colour","text-color","color"]},"(text-rotate: Number) -> Changer":{name:"text-rotate",sig:" Number",returnType:"Changer",aka:[]},"(background: Colour or String) -> Changer":{name:"background",sig:" Colour or String",returnType:"Changer",aka:[]},"(text-style: String) -> Changer":{name:"text-style",sig:" String",returnType:"Changer",aka:[]},"(hover-style: Changer) -> Changer":{name:"hover-style",sig:" Changer",returnType:"Changer",aka:[]},"(css: String) -> Changer":{name:"css",sig:" String",returnType:"Changer",aka:[]},"(str: ...[Number or String or Boolean or Array]) -> String":{name:"str",sig:" ...[Number or String or Boolean or Array]",returnType:"String",aka:["string","text"]},"(substring: String, Number, Number) -> String":{name:"substring",sig:" String, Number, Number",returnType:"String",aka:[]},"(lowercase: String) -> String":{name:"lowercase",sig:" String",returnType:"String",aka:[]},"(uppercase: String) -> String":{name:"uppercase",sig:" String",returnType:"String",aka:[]},"(lowerfirst: String) -> String":{name:"lowerfirst",sig:" String",returnType:"String",aka:[]},"(upperfirst: String) -> String":{name:"upperfirst",sig:" String",returnType:"String",aka:[]},"(words: String) -> Array":{name:"words",sig:" String",returnType:"Array",aka:[]},"(str-repeated: Number, String) -> String":{name:"str-repeated",sig:" Number, String",returnType:"String",aka:["string-repeated"]},"(str-reversed: String) -> String":{name:"str-reversed",sig:" String",returnType:"String",aka:["string-reversed"]},"(num: String) -> Number":{name:"num",sig:" String",returnType:"Number",aka:["number"]},"(rgb: Number, Number, Number) -> Colour":{name:"rgb",sig:" Number, Number, Number",returnType:"Colour",aka:[]},"(rgba: Number, Number, Number, Number) -> Colour":{name:"rgba",sig:" Number, Number, Number, Number",returnType:"Colour",aka:[]},"(hsl: Number, Number, Number) -> Colour":{name:"hsl",sig:" Number, Number, Number",returnType:"Colour",aka:[]},"(hsla: Number, Number, Number, Number) -> Colour":{name:"hsla",sig:" Number, Number, Number, Number",returnType:"Colour",aka:[]},"(weekday:) -> String":{name:"weekday",sig:"",returnType:"String",aka:[]},"(monthday:) -> Number":{name:"monthday",sig:"",returnType:"Number",aka:[]},"(current-time:) -> String":{name:"current-time",sig:"",returnType:"String",aka:[]},"(current-date:) -> String":{name:"current-date",sig:"",returnType:"String",aka:[]},"(min: ...Number) -> Number":{name:"min",sig:" ...Number",returnType:"Number",aka:[]},"(max: ...Number) -> Number":{name:"max",sig:" ...Number",returnType:"Number",aka:[]},"(abs: Number) -> Number":{name:"abs",sig:" Number",returnType:"Number",aka:[]},"(sign: Number) -> Number":{name:"sign",sig:" Number",returnType:"Number",aka:[]},"(sin: Number) -> Number":{name:"sin",sig:" Number",returnType:"Number",aka:[]},"(cos: Number) -> Number":{name:"cos",sig:" Number",returnType:"Number",aka:[]},"(tan: Number) -> Number":{name:"tan",sig:" Number",returnType:"Number",aka:[]},"(floor: Number) -> Number":{name:"floor",sig:" Number",returnType:"Number",aka:[]},"(round: Number) -> Number":{name:"round",sig:" Number",returnType:"Number",aka:[]},"(ceil: Number) -> Number":{name:"ceil",sig:" Number",returnType:"Number",aka:[]},"(pow: Number, Number) -> Number":{name:"pow",sig:" Number, Number",returnType:"Number",aka:[]},"(exp: Number) -> Number":{name:"exp",sig:" Number",returnType:"Number",aka:[]},"(sqrt: Number) -> Number":{name:"sqrt",sig:" Number",returnType:"Number",aka:[]},"(log: Number) -> Number":{name:"log",sig:" Number",returnType:"Number",aka:[]},"(log10: Number) -> Number":{name:"log10",sig:" Number",returnType:"Number",aka:[]},"(log2: Number) -> Number":{name:"log2",sig:" Number",returnType:"Number",aka:[]},"(random: Number, [Number]) -> Number":{name:"random",sig:" Number, [Number]",returnType:"Number",aka:[]},"(either: ...Any) -> Any":{name:"either",sig:" ...Any",returnType:"Any",aka:[]}},n=r instanceof Object&&Object.keys(r).reduce(function(e,n){return e.concat.apply(e,[r[n].name].concat(_toConsumableArray(r[n].aka)))},[]).map(e),t=void 0;"function"==typeof define&&define.amd?define("markup",[],function(e){t=e.lex}):this&&this.loaded&&this.modules&&(t=this.modules.Markup.lex),window.CodeMirror&&CodeMirror.defineMode("harlowe-3",function(){function r(e,r){if(e.update){var n=e.from.line,t=r.split("\n").slice(0,e.from.line+1);return t[n]=t[n].slice(0,e.from.ch)+e.text[0],t=t.concat(e.text.slice(1)),e.update({line:0,ch:0},e.to,t),t.join("\n")}}function a(e){u.length&&(u.forEach(function(e){return e.clear()}),u=[]);var r=i.tokenAt(e.indexFromPos(e.getCursor()));if(r){if(u.push(e.markText(e.posFromIndex(r.start),e.posFromIndex(r.end),{className:"cm-harlowe-3-cursor"})),"variable"===r.type||"tempVariable"===r.type||"hookRef"===r.type||"hook"===r.type){var n="hook"===r.type?"hookRef":r.type;s[n].forEach(function(n){n!==r&&n.name===r.name&&u.push(e.markText(e.posFromIndex(n.start),e.posFromIndex(n.end),{className:"cm-harlowe-3-variableOccurrence"}))})}"hookRef"!==r.type&&"hook"!==r.type||s.hook.forEach(function(n){if(n!==r&&n.name===r.name){var t="appended"===n.tagPosition?n.end-n.name.length-1:n.start+1;u.push(e.markText(e.posFromIndex(t),e.posFromIndex(t+n.name.length),{className:"cm-harlowe-3-hookOccurrence"}))}})}}var o=void 0,i=void 0,s={variable:[],tempVariable:[],hook:[],hookRef:[],populate:function(){var e=this;this.variable=[],this.tempVariable=[],this.hook=[],this.hookRef=[];var r=function r(n){"variable"!==n.type&&"tempVariable"!==n.type&&"hook"!==n.type&&"hookRef"!==n.type||e[n.type].push(n),n.children.forEach(r)};i.children.forEach(r)}},u=[],m=function(){var e=o.doc;i=t(e.getValue()),s.populate(),e.on("beforeChange",function(n,t){r(t,e.getValue())}),e.on("change",function(){var r=e.getValue();i=t(r),s.populate()}),e.on("swapDoc",m),e.on("cursorActivity",a),m=null};return{startState:function(){return o||(o=CodeMirror.modes["harlowe-3"].cm, -o.setOption("placeholder",["Enter the body text of your passage here.","''Bold'', //italics//, ^^superscript^^, ~~strikethrough~~, and

    HTML tags

    are available.","To display special symbols without them being transformed, put them between `backticks`.","To link to another passage, write the link text and the passage name like this: [[link text->passage name]]\nor this: [[passage name<-link text]]\nor this: [[link text]].","Macros like (set:) and (display:) are the programming of your passage. If you've (set:) a $variable, you can just enter its name to print it out.","To make a 'hook', put [single square brackets] around text - or leave it empty [] - then put a macro like (if:), a $variable, or a |nametag> outside the front, |like>[so].","Hooks can be used for many things: showing text (if:) something happened, applying a (text-style:), making a place to (append:) text later on, and much more!","Consult the Harlowe documentation for more information."].join("\n\n")),o.setOption("lineNumbers",!0),o.setOption("lineNumberFormatter",function(){return"\u2022"})),{pos:0}},blankLine:function(e){e.pos++},token:function(r,t){m&&m();var a=i.pathAt(t.pos),o=a[0];if(!o)return t.pos++,r.next(),null;for(;o===o.tokenAt(t.pos)&&!r.eol();)t.pos++,r.next();r.eol()&&t.pos++;for(var s={},u="",l=0;l1&&(c+="-"+s[c]),g){case"macroName":-1===n.indexOf(e(a[l].text.slice(0,-1)))&&(c+=" harlowe-3-error")}u+=c+" "}return u}}});var a=document.querySelector("style#cm-harlowe-3");a||(a=document.createElement("style"),a.setAttribute("id","cm-harlowe-3"),document.head.appendChild(a)),a.innerHTML=function(){var e=function(e,r,n){return function(t){return"background-color: hsla("+e+","+r+"%,"+n+"%,"+t+");"}},r=e(40,100,50),n=e(220,100,50),t=function(r){return e(320,44,50)(r)+"color: #a84186;"};return{root:"box-sizing:border-box;","cursor:not([class^='cm-harlowe-3-text cm-harlowe-3-root'])":"border-bottom: 2px solid darkgray;",CodeMirror:"padding: 0 !important","CodeMirror-linenumber":"color: #ccc;","CodeMirror-gutters":"left: 0px !important;",hook:r(.05),"hook-2":r(.1),"hook-3":r(.15),"hook-4":r(.2),"hook-5":r(.25),"hook-6":r(.3),"hook-7":r(.35),"hook-8":r(.4),"^=hook , ^=hook-":"font-weight:bold;","error:not([class*='cm-harlowe-3-string'])":"color: firebrick !important; background-color: hsla(17, 100%, 74%, 0.74) !important;",macro:t(.05),"macro-2":t(.1),"macro-3":t(.15),"macro-4":t(.2),"macro-5":t(.25),"macro-6":t(.3),"macro-7":t(.35),"macro-8":t(.4),macroName:"font-style:italic;","^=macro ":"font-weight:bold;","bold, strong":"font-weight:bold;","italic, em":"font-style:italic;",sup:"vertical-align: super;font-size:0.8em;",strike:"text-decoration: line-through;",verbatim:"background-color: hsla(0,0%,50%,0.1);","^=bold, ^=strong, ^=italic, ^=em, ^=sup, ^=verbatim, ^=strike":"font-weight:100; color: hsla(0,0,0,0.5)","^=collapsed":"font-weight:bold; color: hsl(201, 100%, 30%);",collapsed:n(.025),"collapsed.hook":n(.05),"collapsed.hook-2":n(.1),"collapsed.hook-3":n(.15),"collapsed.hook-4":n(.2),"collapsed.hook-5":n(.25),"collapsed.hook-6":n(.3),"collapsed.hook-7":n(.35),"collapsed.hook-8":n(.4),"twineLink:not(.text)":"color: #3333cc;",".theme-dark twineLink:not(.text)":"color: #5555ee;",tag:"color: #4d4d9d;",boolean:"color: #626262;",string:"color: #158383;",number:"color: #A15000;",variable:"color: #0076b2;",tempVariable:"color: #218abe;",hookRef:"color: #007f54;","variableOccurrence, hookOccurrence":"background: #9fdfc9 !important;","^=where, ^=via, ^=with, ^=making, ^=each, ^=when":"color: #007f00; font-style:italic;",heading:"font-weight:bold;",hr:"display:block; background-image: linear-gradient(0deg, transparent, transparent 45%, silver 45%, transparent 55%, transparent);",align:"display:block; color: hsl(14, 99%, 37%); background-color: hsla(14, 99%, 87%, 0.1);",column:"display:block; color: hsl(204, 99%, 37%); background-color: hsla(204, 99%, 87%, 0.1);",escapedLine:"font-weight:bold; color: hsl(51, 100%, 30%);","identifier, property, belongingProperty, itsProperty, belongingItProperty, belongingItOperator":"color: #0076b2;",toString:function(){var e=this;return Object.keys(this).reduce(function(r,n){var t;return"toString"===n?r:"CodeMirror"===n.slice(0,10)?r+"."+n+"{"+e[n]+"}":(t=n.split(", ").map(function e(r){return 0===r.indexOf(".theme-dark")?r.slice(0,11)+" "+e(r.slice(11).trim()):r.indexOf(".")>-1?r.split(/\./g).map(e).join(""):0===r.indexOf("^=")?"[class^='cm-harlowe-3-"+r.slice(2)+"']":".cm-harlowe-3-"+r}),r+t.join(", ")+"{"+e[n]+"}")},"")}}+""}()}.call(eval("this")); -}}); \ No newline at end of file diff --git a/public/story-formats/harlowe-3.1.0/format.js b/public/story-formats/harlowe-3.1.0/format.js new file mode 100755 index 000000000..c3ee15993 --- /dev/null +++ b/public/story-formats/harlowe-3.1.0/format.js @@ -0,0 +1,3 @@ +window.storyFormat({"name":"Harlowe","version":"3.1.0","author":"Leon Arnott","description":"The default story format for Twine 2. See its documentation.","image":"icon.svg","url":"http://twinery.org/","license":"Zlib","proofing":false,"source":"\n\n\n\n{{STORY_NAME}}\n\n\n\n\n\n\n\n{{STORY_DATA}}\n\n\n\n\n\n\n","setup": function(){"use strict";function _toConsumableArray(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r-1)||e.cannotFollow&&(-1!==e.cannotFollow.indexOf(n&&n.type)||e.cannotFollow.indexOf("text")>-1&&t)||e.peek&&e.peek.toLowerCase()!==r.slice(0,e.peek.length).toLowerCase())}function t(e){for(var r=e.innerText,t=[],o=0,s=o,u=r.length,m=null;o-1&&(k=t.length-1)}if(k>=t.length&&!y.isFront)continue}s0;)t.shift().demote();return e}function a(e,n,t){var a=e.children.indexOf(n),o=e.children.indexOf(t);n.children=e.children.splice(o+1,a-(o+1)),n.children.forEach(function(e){r(n,e)}),n.type=n.matches[t.type],n.innerText="";for(var i=0,s=n.children.length;i=this.end)return null;if(this.childAt)return this.childAt[e]&&this.childAt[e].tokenAt(e)||this;if(this.children.length)for(var r=0;r=this.end)return[];if(this.childAt)return(this.childAt[e]&&this.childAt[e].pathAt(e)||[]).concat(this);var r=[];if(this.children.length)for(var n=0;n=this.end?null:this.children?this.children.reduce(function(r,n){return r||(e>=n.start&&e0&&(e+="["+this.children+"]"),e}},o={lex:function(r,n){return t(new e({type:"root",start:n||0,end:r.length,text:r,innerText:r,children:[],childAt:{},innerMode:o.modes.start}))},rules:i,modes:{}},"object"===("undefined"==typeof module?"undefined":_typeof(module))?module.exports=o:"function"==typeof define&&define.amd?define("lexer",[],function(){return o}):this&&this.loaded?(this.modules||(this.modules={}),this.modules.Lexer=o):this.TwineLexer=o}).call(eval("this")||("undefined"!=typeof global?global:window)),function(){function e(r){return r&&"object"===(void 0===r?"undefined":_typeof(r))?(Object.keys(r).forEach(function(n){r[n]=e(r[n])}),r):(r+"").replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function r(e){return function(){return"("+e+Array.apply(0,arguments).join("|")+")"}}var n=void 0,t=r("?:"),a=r("?!"),o=r("?="),i="[ \\f\\t\\v\\u00a0\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]*",s=i.replace("*","+"),u="\\b",m="[\\w\\-\\u00c0-\\u00de\\u00df-\\u00ff\\u0150\\u0170\\u0151\\u0171\\uD800-\\uDFFF]",l=m.replace("\\-",""),g=t("\\n","$"),c="("+t("\\\\\\n\\\\?|\\n\\\\","[^\\n]")+"+)",p=i+"(\\*+)"+s+c+g,d=i+"((?:0\\.)+)"+s+c+g,h=i+"-{3,}"+i+g,y=i+"(#{1,6})"+i+c+g,f=i+"(==+>|<=+|=+><=+|<==+>)"+i+g,k=i+"(=+\\|+|\\|+=+|=+\\|+=+|\\|=+\\|)"+i+g,b={opener:"\\[\\[(?!\\[)",text:"("+function(){return"[^"+Array.apply(0,arguments).map(e).join("")+"]*"}("]")+")",rightSeparator:t("\\->","\\|"),leftSeparator:"<\\-",closer:"\\]\\]",legacySeparator:"\\|",legacyText:"("+t("[^\\|\\]]","\\]"+a("\\]"))+"+)"},S=l+"*"+l.replace("\\w","a-zA-Z")+l+"*",C="\\$("+S+")",N="'s"+s+"("+S+")",T="("+S+")"+s+"of"+u+a("it\\b"),v="'s"+s,x=t("it","time","visits?","exits?")+u,A="its"+s+"("+S+")",w="its"+s,O="("+S+")"+s+"of"+s+"it"+u,F="of\\b"+s+"it"+u,L={opener:"\\(",name:"("+t(m+"+",C)+"):"+a("\\/"),closer:"\\)"},H=t("=<","=>","[gl]te?\\b","n?eq\\b","isnot\\b","are\\b","x\\b","isa\\b","or"+s+"a"+u),P={name:"[a-zA-Z][\\w\\-]*",attrs:"(?:\"[^\"]*\"|'[^']*'|[^'\">])*?"},B="\\|("+m+"+)(>|\\))",j="(<|\\()("+m+"+)\\|",M="_("+S+")"+u,I="\\b(\\d+(?:\\.\\d+)?(?:[eE][+\\-]?\\d+)?)"+a("m?s")+u;b.main=b.opener+t(b.text+b.rightSeparator,b.text.replace("*","*?")+b.leftSeparator)+b.text,n={upperLetter:"[A-Z\\u00c0-\\u00de\\u0150\\u0170]",lowerLetter:"[a-z0-9_\\-\\u00df-\\u00ff\\u0151\\u0171]",anyLetter:m,anyLetterStrict:l,whitespace:s,escapedLine:"\\\\\\n\\\\?|\\n\\\\",br:"\\n(?!\\\\)",commentFront:"\x3c!--",commentBack:"--\x3e",tag:"<\\/?"+P.name+P.attrs+">",tagPeek:"<",scriptStyleTag:"<("+t("script","style","textarea")+")"+P.attrs+">[^]*?<\\/\\1>",scriptStyleTagOpener:"<",url:"("+t("https?","mailto","javascript","ftp","data")+":\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])",bullet:"\\*",hr:h,heading:y,align:f,column:k,bulleted:p,numbered:d,strikeOpener:e("~~"),italicOpener:e("//"),boldOpener:e("''"),supOpener:e("^^"),strongFront:e("**"),strongBack:e("**"),emFront:e("*"),emBack:e("*"),verbatimOpener:"`+",collapsedFront:"{",collapsedBack:"}",hookAppendedFront:"\\["+a("=+"),hookPrependedFront:B+"\\["+a("=+"),hookFront:"\\["+a("=+"),hookBack:"\\]"+a(j),hookAppendedBack:"\\]"+j,unclosedHook:"\\[=+",unclosedHookPrepended:B+"\\[=+",passageLink:b.main+b.closer,passageLinkPeek:"[[",legacyLink:b.opener+b.legacyText+b.legacySeparator+b.legacyText+b.closer,legacyLinkPeek:"[[",simpleLink:b.opener+b.legacyText+b.closer,simpleLinkPeek:"[[",macroFront:L.opener+o(L.name),macroFrontPeek:"(",macroName:L.name,groupingFront:"\\("+a(L.name),groupingFrontPeek:"(",groupingBack:"\\)",twine1Macro:"<<[^>\\s]+\\s*(?:\\\\.|'(?:[^'\\\\]*\\\\.)*[^'\\\\]*'|\"(?:[^\"\\\\]*\\\\.)*[^\"\\\\]*\"|[^'\"\\\\>]|>(?!>))*>>",twine1MacroPeek:"<<",property:N,propertyPeek:"'s",belongingProperty:T,possessiveOperator:v,belongingOperator:"of\\b",belongingOperatorPeek:"of",itsOperator:w,itsOperatorPeek:"its",belongingItOperator:F,belongingItOperatorPeek:"of",variable:C,variablePeek:"$",tempVariable:M,tempVariablePeek:"_",hookRef:"\\?("+m+"+)\\b",hookRefPeek:"?",cssTime:"(\\d+\\.?\\d*|\\d*\\.?\\d+)(m?s)\\b",colour:t(t("Red","Orange","Yellow","Lime","Green","Cyan","Aqua","Blue","Navy","Purple","Fuchsia","Magenta","White","Gray","Grey","Black"),"#[\\dA-Fa-f]{3}(?:[\\dA-Fa-f]{3})?"),datatype:t("array","boolean","changer","colour","gradient","color","command","dm","datamap","ds","dataset","number","num","string","str"),number:I,boolean:t("true","false")+u,identifier:x,itsProperty:A,itsPropertyPeek:"its",belongingItProperty:O,escapedStringChar:"\\\\[^\\n]",singleStringOpener:"'",doubleStringOpener:'"',is:"is"+a(s+"not"+u,s+"an?"+u,s+"in"+u,s+"<",s+">")+u,isNot:"is"+s+"not"+a(s+"a"+u)+u,isA:"is"+s+"an?"+u,isNotA:"is"+s+"not"+s+"an?"+u,matches:"matches"+s,and:"and\\b",or:"or\\b",not:"not\\b",inequality:"((?:is(?:"+s+"not)?"+i+")*)("+t("<(?!=)","<=",">(?!=)",">=")+")",isIn:"is"+s+"in"+u,contains:"contains\\b",addition:e("+")+a("="),subtraction:e("-")+a("="),multiplication:e("*")+a("="),division:t("/","%")+a("="),comma:",",spread:"\\.\\.\\."+a("\\."),to:t("to\\b","="),into:"into\\b",making:"making\\b",where:"where\\b",when:"when\\b",via:"via\\b",with:"with\\b",each:"each\\b",augmentedAssign:t("\\+","\\-","\\*","\\/","%")+"=",bind:"bind\\b",incorrectOperator:H},"object"===("undefined"==typeof module?"undefined":_typeof(module))?module.exports=n:"function"==typeof define&&define.amd?define("patterns",[],function(){return n}):this&&this.loaded?(this.modules||(this.modules={}),this.modules.Patterns=n):this.Patterns=n}.call(eval("this")||("undefined"!=typeof global?global:window)),function(){function e(e){function r(e){return e=e||"innerText",function(r){var n=r.reduceRight(function(e,r,n){return e||(n?r:"")},""),t={};return t[e]=n,t}}function t(e,r){var n={};return n[e]=r,function(){return{isFront:!0,matches:n,cannotCross:["verbatimOpener"]}}}function a(e,r){return Object.keys(r).forEach(function(n){var t=r[n].fn;r[n].fn=function(r){var a=t(r);return a.text||(a.text=r[0]),a.type||(a.type=n),a.innerMode||(a.innerMode=e),a}}),r}var o=Object.bind(0,null),i=[],s=[],u=a(i,{hr:{fn:o},bulleted:{fn:function(e){return{depth:e[1].length,innerText:e[2]}}},numbered:{fn:function(e){return{depth:e[1].length/2,innerText:e[2]}}},heading:{fn:function(e){return{depth:e[1].length,innerText:e[2]}}},align:{fn:function(e){var r=void 0,n=e[1],t=n.indexOf("><");return~t?25===(r=Math.round(t/(n.length-2)*50))&&(r="center"):"<"===n[0]&&">"===n.slice(-1)?r="justify":n.indexOf(">")>-1?r="right":n.indexOf("<")>-1&&(r="left"),{align:r}}},column:{fn:function(e){var r=void 0,n=e[1],t=n.indexOf("|");return t&&t-1}}},augmentedAssign:{fn:function(e){return{operator:e[0][0]}}},identifier:{fn:r("name"),cannotFollow:["text"]},whitespace:{fn:o,cannotFollow:"text"},incorrectOperator:{fn:function(e){var r={"=>":">=","=<":"<=",gte:">=",lte:"<=",gt:">",lt:"<",eq:"is",isnot:"is not",neq:"is not",isa:"is a",are:"is",x:"*","or a":"or"}[e[0].toLowerCase().replace(/\s+/g," ")];return{type:"error",message:"Please say "+(r?"'"+r+"'":"something else")+" instead of '"+e[0]+"'.",explanation:"In the interests of readability, I want certain operators to be in a specific form."}},cannotFollow:"text"}},["boolean","is","to","into","where","when","via","with","making","each","and","or","not","isNot","contains","isIn","isA","isNotA","matches","bind"].reduce(function(e,r){return e[r]={fn:o,cannotFollow:["text"]},e},{}),["comma","spread","addition","subtraction","multiplication","division"].reduce(function(e,r){return e[r]={fn:o},e},{})));i.push.apply(i,_toConsumableArray(Object.keys(u)).concat(_toConsumableArray(Object.keys(l)),_toConsumableArray(Object.keys(m)))),s.push.apply(s,_toConsumableArray(Object.keys(l)).concat(_toConsumableArray(Object.keys(g))));var c=Object.assign({},u,m,l,g);return Object.keys(c).forEach(function(e){var r=n[e];c[e].pattern="string"!=typeof r?r:new RegExp("^(?:"+r+")","i"),n[e+"Peek"]&&(c[e].peek=n[e+"Peek"])}),Object.assign(e.rules,c),e.modes.start=e.modes.markup=i,e.modes.macro=s,e}function r(r){return Object.freeze({lex:e(r).lex,Patterns:n})}var n=void 0;Object.assign=Object.assign||function(e){for(var r=1;r Command":{name:"display",sig:" String",returnType:"Command",aka:[]},"(print: Any) -> Command":{name:"print",sig:" Any",returnType:"Command",aka:[]},"(go-to: String) -> Command":{name:"go-to",sig:" String",returnType:"Command",aka:[]},"(undo:) -> Command":{name:"undo",sig:"",returnType:"Command",aka:[]},"(cycling-link: [Bind], ...String) -> Command":{name:"cycling-link",sig:" [Bind], ...String",returnType:"Command",aka:[]},"(dropdown: Bind, ...String) -> Command":{name:"dropdown",sig:" Bind, ...String",returnType:"Command",aka:[]},"(show: ...HookName) -> Command":{name:"show",sig:" ...HookName",returnType:"Command",aka:[]},"(stop:) -> Command":{name:"stop",sig:"",returnType:"Command",aka:[]},"(load-game: String) -> Command":{name:"load-game",sig:" String",returnType:"Command",aka:[]},"(alert: String) -> Command":{name:"alert",sig:" String",returnType:"Command",aka:[]},"(open-url: String) -> Command":{name:"open-url",sig:" String",returnType:"Command",aka:[]},"(reload:) -> Command":{name:"reload",sig:"",returnType:"Command",aka:[]},"(goto-url: String) -> Command":{name:"goto-url",sig:" String",returnType:"Command",aka:[]},"(save-game: String, [String]) -> Boolean":{name:"save-game",sig:" String, [String]",returnType:"Boolean",aka:[]},"(prompt: String, String) -> String":{name:"prompt",sig:" String, String",returnType:"String",aka:[]},"(confirm: String) -> Boolean":{name:"confirm",sig:" String",returnType:"Boolean",aka:[]},"(page-url:) -> String":{name:"page-url",sig:"",returnType:"String",aka:[]},"(set: ...VariableToValue) -> Instant":{name:"set",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(put: ...VariableToValue) -> Instant":{name:"put",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(move: ...VariableToValue) -> Instant":{name:"move",sig:" ...VariableToValue",returnType:"Instant",aka:[]},"(a: [...Any]) -> Array":{name:"a",sig:" [...Any]",returnType:"Array",aka:["array"]},"(range: Number, Number) -> Array":{name:"range",sig:" Number, Number",returnType:"Array",aka:[]},"(subarray: Array, Number, Number) -> Array":{name:"subarray",sig:" Array, Number, Number",returnType:"Array",aka:[]},"(reversed: [...Any]) -> Array":{name:"reversed",sig:" [...Any]",returnType:"Array",aka:[]},"(shuffled: Any, ...Any) -> Array":{name:"shuffled",sig:" Any, ...Any",returnType:"Array",aka:[]},"(sorted: Number or String, ...Number or String) -> Array":{name:"sorted",sig:" Number or String, ...Number or String",returnType:"Array",aka:[]},"(rotated: Number, [...Any]) -> Array":{name:"rotated",sig:" Number, [...Any]",returnType:"Array",aka:[]},"(repeated: Number, ...Any) -> Array":{name:"repeated",sig:" Number, ...Any",returnType:"Array",aka:[]},"(interlaced: Array, ...Array) -> Array":{name:"interlaced",sig:" Array, ...Array",returnType:"Array",aka:[]},"(altered: Lambda, [...Any]) -> Array":{name:"altered",sig:" Lambda, [...Any]",returnType:"Array",aka:[]},"(find: Lambda, [...Any]) -> Array":{name:"find",sig:" Lambda, [...Any]",returnType:"Array",aka:[]},"(all-pass: Lambda, [...Any]) -> Boolean":{name:"all-pass",sig:" Lambda, [...Any]",returnType:"Boolean",aka:[]},"(some-pass: Lambda, ...Any) -> Boolean":{name:"some-pass",sig:" Lambda, ...Any",returnType:"Boolean",aka:[]},"(none-pass: Lambda, ...Any) -> Boolean":{name:"none-pass",sig:" Lambda, ...Any",returnType:"Boolean",aka:[]},"(folded: Lambda, ...Any) -> Any":{name:"folded",sig:" Lambda, ...Any",returnType:"Any",aka:[]},"(datanames: Datamap) -> Array":{name:"datanames",sig:" Datamap",returnType:"Array",aka:[]},"(datavalues: Datamap) -> Array":{name:"datavalues",sig:" Datamap",returnType:"Array",aka:[]},"(dataentries: Datamap) -> Array":{name:"dataentries",sig:" Datamap",returnType:"Array",aka:[]},"(history: [Lambda]) -> Array":{name:"history",sig:" [Lambda]",returnType:"Array",aka:[]},"(passage: [String]) -> Datamap":{name:"passage",sig:" [String]",returnType:"Datamap",aka:[]},"(passages: [Lambda]) -> Array":{name:"passages",sig:" [Lambda]",returnType:"Array",aka:[]},"(saved-games:) -> Datamap":{name:"saved-games",sig:"",returnType:"Datamap",aka:[]},"(dm: [...Any]) -> Datamap":{name:"dm",sig:" [...Any]",returnType:"Datamap",aka:["datamap"]},"(ds: [...Any]) -> Dataset":{name:"ds",sig:" [...Any]",returnType:"Dataset",aka:["dataset"]},"(count: Array or String, ...Any) -> Number":{name:"count",sig:" Array or String, ...Any",returnType:"Number",aka:[]},"(enchant: HookName or String, Changer) -> Command":{name:"enchant",sig:" HookName or String, Changer",returnType:"Command",aka:[]},"(replace: ...HookName or String) -> Changer":{name:"replace",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(append: ...HookName or String) -> Changer":{name:"append",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(prepend: ...HookName or String) -> Changer":{name:"prepend",sig:" ...HookName or String",returnType:"Changer",aka:[]},"(click: HookName or String) -> Changer":{name:"click",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover: HookName or String) -> Changer":{name:"mouseover",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout: HookName or String) -> Changer":{name:"mouseout",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-replace: HookName or String) -> Changer":{name:"click-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-append: HookName or String) -> Changer":{name:"click-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-prepend: HookName or String) -> Changer":{name:"click-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-replace: HookName or String) -> Changer":{name:"mouseover-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-append: HookName or String) -> Changer":{name:"mouseover-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseover-prepend: HookName or String) -> Changer":{name:"mouseover-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-replace: HookName or String) -> Changer":{name:"mouseout-replace",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-append: HookName or String) -> Changer":{name:"mouseout-append",sig:" HookName or String",returnType:"Changer",aka:[]},"(mouseout-prepend: HookName or String) -> Changer":{name:"mouseout-prepend",sig:" HookName or String",returnType:"Changer",aka:[]},"(click-goto: HookName or String, String) -> Command":{name:"click-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(mouseover-goto: HookName or String, String) -> Command":{name:"mouseover-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(mouseout-goto: HookName or String, String) -> Command":{name:"mouseout-goto",sig:" HookName or String, String",returnType:"Command",aka:[]},"(link: String) -> Changer":{name:"link",sig:" String",returnType:"Changer",aka:["link-replace"]},"(link-reveal: String) -> Changer":{name:"link-reveal",sig:" String",returnType:"Changer",aka:[]},"(link-repeat: String) -> Changer":{name:"link-repeat",sig:" String",returnType:"Changer",aka:[]},"(link-goto: String, [String]) -> Command":{name:"link-goto",sig:" String, [String]",returnType:"Command",aka:[]},"(link-undo: String) -> Command":{name:"link-undo",sig:" String",returnType:"Command",aka:[]},"(link-show: String, ...HookName) -> Command":{name:"link-show",sig:" String, ...HookName",returnType:"Command",aka:[]},"(link-reveal-goto: String, [String]) -> Changer":{name:"link-reveal-goto",sig:" String, [String]",returnType:"Changer",aka:[]},"(if: Boolean) -> Changer":{name:"if",sig:" Boolean",returnType:"Changer",aka:[]},"(unless: Boolean) -> Changer":{name:"unless",sig:" Boolean",returnType:"Changer",aka:[]},"(else-if: Boolean) -> Changer":{name:"else-if",sig:" Boolean",returnType:"Changer",aka:[]},"(else:) -> Changer":{name:"else",sig:"",returnType:"Changer",aka:[]},"(hidden:) -> Changer":{name:"hidden",sig:"",returnType:"Changer",aka:[]},"(live: [Number]) -> Changer":{name:"live",sig:" [Number]",returnType:"Changer",aka:[]},"(event: Lambda) -> Changer":{name:"event",sig:" Lambda",returnType:"Changer",aka:[]},"(more:) -> Changer":{name:"more",sig:"",returnType:"Changer",aka:[]},"(hook: String) -> Changer":{name:"hook",sig:" String",returnType:"Changer",aka:[]},"(for: Lambda, [...Any]) -> Changer":{name:"for",sig:" Lambda, [...Any]",returnType:"Changer",aka:["loop"]},"(transition: String) -> Changer":{name:"transition",sig:" String",returnType:"Changer",aka:["t8n"]},"(transition-time: Number) -> Changer":{name:"transition-time",sig:" Number",returnType:"Changer",aka:["t8n-time"]},"(transition-depart: String) -> Changer":{name:"transition-depart",sig:" String",returnType:"Changer",aka:["t8n-depart"]},"(transition-arrive: String) -> Changer":{name:"transition-arrive",sig:" String",returnType:"Changer",aka:["t8n-arrive"]},"(font: String) -> Changer":{name:"font",sig:" String",returnType:"Changer",aka:[]},"(align: String) -> Changer":{name:"align",sig:" String",returnType:"Changer",aka:[]},"(text-colour: String or Colour) -> Changer":{name:"text-colour",sig:" String or Colour",returnType:"Changer",aka:["colour","text-color","color"]},"(text-rotate: Number) -> Changer":{name:"text-rotate",sig:" Number",returnType:"Changer",aka:[]},"(background: Colour or String or Gradient) -> Changer":{name:"background",sig:" Colour or String or Gradient",returnType:"Changer",aka:[]},"(text-style: String) -> Changer":{name:"text-style",sig:" String",returnType:"Changer",aka:[]},"(hover-style: Changer) -> Changer":{name:"hover-style",sig:" Changer",returnType:"Changer",aka:[]},"(css: String) -> Changer":{name:"css",sig:" String",returnType:"Changer",aka:[]},"(str: ...[Number or String or Boolean or Array]) -> String":{name:"str",sig:" ...[Number or String or Boolean or Array]",returnType:"String",aka:["string","text"]},"(substring: String, Number, Number) -> String":{name:"substring",sig:" String, Number, Number",returnType:"String",aka:[]},"(lowercase: String) -> String":{name:"lowercase",sig:" String",returnType:"String",aka:[]},"(uppercase: String) -> String":{name:"uppercase",sig:" String",returnType:"String",aka:[]},"(lowerfirst: String) -> String":{name:"lowerfirst",sig:" String",returnType:"String",aka:[]},"(upperfirst: String) -> String":{name:"upperfirst",sig:" String",returnType:"String",aka:[]},"(words: String) -> Array":{name:"words",sig:" String",returnType:"Array",aka:[]},"(str-repeated: Number, String) -> String":{name:"str-repeated",sig:" Number, String",returnType:"String",aka:["string-repeated"]},"(str-reversed: String) -> String":{name:"str-reversed",sig:" String",returnType:"String",aka:["string-reversed"]},"(num: String) -> Number":{name:"num",sig:" String",returnType:"Number",aka:["number"]},"(rgb: Number, Number, Number, [Number]) -> Colour":{name:"rgb",sig:" Number, Number, Number, [Number]",returnType:"Colour",aka:["rgba"]},"(hsl: Number, Number, [Number]) -> Colour":{name:"hsl",sig:" Number, Number, [Number]",returnType:"Colour",aka:["hsla"]},"(gradient: Number, ...Number, Colour) -> Gradient":{name:"gradient",sig:" Number, ...Number, Colour",returnType:"Gradient",aka:[]},"(cond: Boolean, Any, ...Any) -> Any":{name:"cond",sig:" Boolean, Any, ...Any",returnType:"Any",aka:[]},"(weekday:) -> String":{name:"weekday",sig:"",returnType:"String",aka:[]},"(monthday:) -> Number":{name:"monthday",sig:"",returnType:"Number",aka:[]},"(current-time:) -> String":{name:"current-time",sig:"",returnType:"String",aka:[]},"(current-date:) -> String":{name:"current-date",sig:"",returnType:"String",aka:[]},"(min: ...Number) -> Number":{name:"min",sig:" ...Number",returnType:"Number",aka:[]},"(max: ...Number) -> Number":{name:"max",sig:" ...Number",returnType:"Number",aka:[]},"(abs: Number) -> Number":{name:"abs",sig:" Number",returnType:"Number",aka:[]},"(sign: Number) -> Number":{name:"sign",sig:" Number",returnType:"Number",aka:[]},"(sin: Number) -> Number":{name:"sin",sig:" Number",returnType:"Number",aka:[]},"(cos: Number) -> Number":{name:"cos",sig:" Number",returnType:"Number",aka:[]},"(tan: Number) -> Number":{name:"tan",sig:" Number",returnType:"Number",aka:[]},"(floor: Number) -> Number":{name:"floor",sig:" Number",returnType:"Number",aka:[]},"(round: Number) -> Number":{name:"round",sig:" Number",returnType:"Number",aka:[]},"(ceil: Number) -> Number":{name:"ceil",sig:" Number",returnType:"Number",aka:[]},"(pow: Number, Number) -> Number":{name:"pow",sig:" Number, Number",returnType:"Number",aka:[]},"(exp: Number) -> Number":{name:"exp",sig:" Number",returnType:"Number",aka:[]},"(sqrt: Number) -> Number":{name:"sqrt",sig:" Number",returnType:"Number",aka:[]},"(log: Number) -> Number":{name:"log",sig:" Number",returnType:"Number",aka:[]},"(log10: Number) -> Number":{name:"log10",sig:" Number",returnType:"Number",aka:[]},"(log2: Number) -> Number":{name:"log2",sig:" Number",returnType:"Number",aka:[]},"(random: Number, [Number]) -> Number":{name:"random",sig:" Number, [Number]",returnType:"Number",aka:[]},"(either: ...Any) -> Any":{name:"either",sig:" ...Any",returnType:"Any",aka:[]},"(nth: Number, ...Any) -> Any":{name:"nth",sig:" Number, ...Any",returnType:"Any",aka:[]}},n=r instanceof Object&&Object.keys(r).reduce(function(e,n){return e.concat.apply(e,[r[n].name].concat(_toConsumableArray(r[n].aka)))},[]).map(e),t=void 0;"function"==typeof define&&define.amd?define("markup",[],function(e){t=e.lex}):this&&this.loaded&&this.modules&&(t=this.modules.Markup.lex),window.CodeMirror&&CodeMirror.defineMode("harlowe-3",function(){function r(e,r){if(e.update){var n=e.from.line,t=r.split("\n").slice(0,e.from.line+1);return t[n]=t[n].slice(0,e.from.ch)+e.text[0],t=t.concat(e.text.slice(1)),e.update({line:0,ch:0},e.to,t),t.join("\n")}}function a(e){u.length&&(u.forEach(function(e){return e.clear()}),u=[]);var r=i.tokenAt(e.indexFromPos(e.getCursor()));if(r){if(u.push(e.markText(e.posFromIndex(r.start),e.posFromIndex(r.end),{className:"cm-harlowe-3-cursor"})),"variable"===r.type||"tempVariable"===r.type||"hookRef"===r.type||"hook"===r.type){var n="hook"===r.type?"hookRef":r.type;s[n].forEach(function(n){n!==r&&n.name===r.name&&u.push(e.markText(e.posFromIndex(n.start),e.posFromIndex(n.end),{className:"cm-harlowe-3-variableOccurrence"}))})}"hookRef"!==r.type&&"hook"!==r.type||s.hook.forEach(function(n){if(n!==r&&n.name===r.name){var t="appended"===n.tagPosition?n.end-n.name.length-1:n.start+1;u.push(e.markText(e.posFromIndex(t),e.posFromIndex(t+n.name.length),{className:"cm-harlowe-3-hookOccurrence"}))}})}}var o=void 0,i=void 0,s={variable:[],tempVariable:[],hook:[],hookRef:[],populate:function(){var e=this;this.variable=[],this.tempVariable=[],this.hook=[],this.hookRef=[];var r=function r(n){"variable"!==n.type&&"tempVariable"!==n.type&&"hook"!==n.type&&"hookRef"!==n.type||e[n.type].push(n),n.children.forEach(r)};i.children.forEach(r)}},u=[],m=function(){var e=o.doc;i=t(e.getValue()),s.populate(),e.on("beforeChange",function(n,t){r(t,e.getValue())}),e.on("change",function(){var r=e.getValue();i=t(r),s.populate()}),e.on("swapDoc",m),e.on("cursorActivity",a),m=null};return{startState:function(){return o||(o=CodeMirror.modes["harlowe-3"].cm, +o.setOption("placeholder",["Enter the body text of your passage here.","''Bold'', //italics//, ^^superscript^^, ~~strikethrough~~, and

    HTML tags

    are available.","To display special symbols without them being transformed, put them between `backticks`.","To link to another passage, write the link text and the passage name like this: [[link text->passage name]]\nor this: [[passage name<-link text]]\nor this: [[link text]].","Macros like (set:) and (display:) are the programming of your passage. If you've (set:) a $variable, you can just enter its name to print it out.","To make a 'hook', put [single square brackets] around text - or leave it empty [] - then put a macro like (if:), a $variable, or a |nametag> outside the front, |like>[so].","Hooks can be used for many things: showing text (if:) something happened, applying a (text-style:), making a place to (append:) text later on, and much more!","Consult the Harlowe documentation for more information."].join("\n\n")),o.setOption("lineNumbers",!0),o.setOption("lineNumberFormatter",function(){return"\u2022"})),{pos:0}},blankLine:function(e){e.pos++},token:function(r,t){m&&m();var a=i.pathAt(t.pos),o=a[0];if(!o)return t.pos++,r.next(),null;for(;o===o.tokenAt(t.pos)&&!r.eol();)t.pos++,r.next();r.eol()&&t.pos++;for(var s={},u="",l=0;l1&&(c+="-"+s[c]),g){case"macroName":-1===n.indexOf(e(a[l].text.slice(0,-1)))&&(c+=" harlowe-3-error")}u+=c+" "}return u}}});var a=document.querySelector("style#cm-harlowe-3");a||(a=document.createElement("style"),a.setAttribute("id","cm-harlowe-3"),document.head.appendChild(a)),a.innerHTML=function(){var e=function(e,r,n){return function(t){return"background-color: hsla("+e+","+r+"%,"+n+"%,"+t+");"}},r=e(40,100,50),n=e(220,100,50),t=function(r){return e(320,44,50)(r)+"color: #a84186;"};return{root:"box-sizing:border-box;","cursor:not([class^='cm-harlowe-3-text cm-harlowe-3-root'])":"border-bottom: 2px solid darkgray;",CodeMirror:"padding: 0 !important","CodeMirror-linenumber":"color: #ccc;","CodeMirror-gutters":"left: 0px !important;",hook:r(.05),"hook-2":r(.1),"hook-3":r(.15),"hook-4":r(.2),"hook-5":r(.25),"hook-6":r(.3),"hook-7":r(.35),"hook-8":r(.4),"^=hook , ^=hook-":"font-weight:bold;",unclosedHook:r(.05)+"font-weight:bold;","error:not([class*='cm-harlowe-3-string'])":"color: firebrick !important; background-color: hsla(17, 100%, 74%, 0.74) !important;",macro:t(.05),"macro-2":t(.1),"macro-3":t(.15),"macro-4":t(.2),"macro-5":t(.25),"macro-6":t(.3),"macro-7":t(.35),"macro-8":t(.4),macroName:"font-style:italic;","^=macro ":"font-weight:bold;","bold, strong":"font-weight:bold;","italic, em":"font-style:italic;",sup:"vertical-align: super;font-size:0.8em;",strike:"text-decoration: line-through;",verbatim:"background-color: hsla(0,0%,50%,0.1);","^=bold, ^=strong, ^=italic, ^=em, ^=sup, ^=verbatim, ^=strike":"font-weight:100; color: hsla(0,0,0,0.5)","^=collapsed":"font-weight:bold; color: hsl(201, 100%, 30%);",collapsed:n(.025),"collapsed.hook":n(.05),"collapsed.hook-2":n(.1),"collapsed.hook-3":n(.15),"collapsed.hook-4":n(.2),"collapsed.hook-5":n(.25),"collapsed.hook-6":n(.3),"collapsed.hook-7":n(.35),"collapsed.hook-8":n(.4),"twineLink:not(.text)":"color: #3333cc;",".theme-dark twineLink:not(.text)":"color: #5555ee;",tag:"color: #4d4d9d;",boolean:"color: #626262;",string:"color: #158383;",number:"color: #A15000;",variable:"color: #0076b2;",tempVariable:"color: #218abe;",hookRef:"color: #007f54;","variableOccurrence, hookOccurrence":"background: #9fdfc9 !important;","^=where, ^=via, ^=with, ^=making, ^=each, ^=when":"color: #007f00; font-style:italic;",heading:"font-weight:bold;",hr:"display:block; background-image: linear-gradient(0deg, transparent, transparent 45%, silver 45%, transparent 55%, transparent);",align:"display:block; color: hsl(14, 99%, 37%); background-color: hsla(14, 99%, 87%, 0.1);",column:"display:block; color: hsl(204, 99%, 37%); background-color: hsla(204, 99%, 87%, 0.1);",escapedLine:"font-weight:bold; color: hsl(51, 100%, 30%);","identifier, property, belongingProperty, itsProperty, belongingItProperty, belongingItOperator":"color: #0076b2;",toString:function(){var e=this;return Object.keys(this).reduce(function(r,n){var t;return"toString"===n?r:"CodeMirror"===n.slice(0,10)?r+"."+n+"{"+e[n]+"}":(t=n.split(", ").map(function e(r){return 0===r.indexOf(".theme-dark")?r.slice(0,11)+" "+e(r.slice(11).trim()):r.indexOf(".")>-1?r.split(/\./g).map(e).join(""):0===r.indexOf("^=")?"[class^='cm-harlowe-3-"+r.slice(2)+"']":".cm-harlowe-3-"+r}),r+t.join(", ")+"{"+e[n]+"}")},"")}}+""}()}.call(eval("this")); +}}); \ No newline at end of file diff --git a/public/story-formats/harlowe-3.0.2/icon.svg b/public/story-formats/harlowe-3.1.0/icon.svg old mode 100644 new mode 100755 similarity index 100% rename from public/story-formats/harlowe-3.0.2/icon.svg rename to public/story-formats/harlowe-3.1.0/icon.svg diff --git a/public/story-formats/paperthin-1.0.0/format.js b/public/story-formats/paperthin-1.0.0/format.js old mode 100644 new mode 100755 diff --git a/public/story-formats/paperthin-1.0.0/icon.svg b/public/story-formats/paperthin-1.0.0/icon.svg old mode 100644 new mode 100755 diff --git a/public/story-formats/snowman-1.3.0/format.js b/public/story-formats/snowman-1.3.0/format.js deleted file mode 100644 index 84684fb2b..000000000 --- a/public/story-formats/snowman-1.3.0/format.js +++ /dev/null @@ -1 +0,0 @@ -window.storyFormat({"description":"A minimal story format for authors experienced with HTML, CSS, and JavaScript.","author":"Chris Klimas","image":"icon.svg","name":"Snowman","url":"https://bitbucket.org/klembot/snowman-2","version":"1.3.0","proofing":false,"source":"\n\n\n\n{{STORY_NAME}}\n\n\n\n\n\n
    \n\n{{STORY_DATA}}\n\n\n\n\n"}); \ No newline at end of file diff --git a/public/story-formats/snowman-1.4.0/format.js b/public/story-formats/snowman-1.4.0/format.js new file mode 100755 index 000000000..c0aff6495 --- /dev/null +++ b/public/story-formats/snowman-1.4.0/format.js @@ -0,0 +1 @@ +window.storyFormat({"author":"Dan Cox","description":"A minimal story format for authors experienced with HTML, CSS, and JavaScript. See its documentation.","image":"icon.svg","name":"Snowman","proofing":false,"source":"\n\n\t\n\t\t{{STORY_NAME}}\n\t\t\n\t\t\n\t\n\t\n\t\t
    \n\t\t{{STORY_DATA}}\n\t\t\n\t\n\n","url":"https://github.com/videlais/snowman/tree/1.X","version":"1.4.0"}); \ No newline at end of file diff --git a/public/story-formats/snowman-1.3.0/icon.svg b/public/story-formats/snowman-1.4.0/icon.svg old mode 100644 new mode 100755 similarity index 100% rename from public/story-formats/snowman-1.3.0/icon.svg rename to public/story-formats/snowman-1.4.0/icon.svg diff --git a/public/story-formats/snowman-2.0.2/format.js b/public/story-formats/snowman-2.0.2/format.js new file mode 100755 index 000000000..bd2cd7778 --- /dev/null +++ b/public/story-formats/snowman-2.0.2/format.js @@ -0,0 +1 @@ +window.storyFormat({"author":"Dan Cox","description":"A minimal story format for authors more experienced with HTML, CSS, and JavaScript. See its documentation.","image":"icon.svg","name":"Snowman","proofing":false,"source":"\n\n\t\n\t\t\n\t\t\n\t\t{{STORY_NAME}}\n\t\t\n\t\n\t\n\t\t\n\t\t{{STORY_DATA}}\n\t\t\n\t\n\n","url":"https://github.com/videlais/snowman/","version":"2.0.2"}); \ No newline at end of file diff --git a/public/story-formats/snowman-2.0.2/icon.svg b/public/story-formats/snowman-2.0.2/icon.svg new file mode 100755 index 000000000..fd7ae5b53 --- /dev/null +++ b/public/story-formats/snowman-2.0.2/icon.svg @@ -0,0 +1,436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/public/story-formats/sugarcube-2.28.2/format.js b/public/story-formats/sugarcube-2.28.2/format.js deleted file mode 100644 index 122cc1aa3..000000000 --- a/public/story-formats/sugarcube-2.28.2/format.js +++ /dev/null @@ -1 +0,0 @@ -window.storyFormat({"name":"SugarCube","version":"2.28.2","description":"A full featured, highly customizable story format. See its documentation.","author":"Thomas Michael Edwards","image":"icon.svg","url":"http://www.motoslave.net/sugarcube/","license":"BSD-2-Clause","proofing":false,"source":"\n\n\n\n{{STORY_NAME}}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t
    \n\t\t
    \n\t\t
    Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
    \n\t\t
    Loading…
    \n\t
    \n\t\n\t\n\n\n"}); \ No newline at end of file diff --git a/public/story-formats/sugarcube-2.28.2/LICENSE b/public/story-formats/sugarcube-2.31.1/LICENSE old mode 100644 new mode 100755 similarity index 94% rename from public/story-formats/sugarcube-2.28.2/LICENSE rename to public/story-formats/sugarcube-2.31.1/LICENSE index b814382d1..95e2dab3c --- a/public/story-formats/sugarcube-2.28.2/LICENSE +++ b/public/story-formats/sugarcube-2.31.1/LICENSE @@ -1,5 +1,4 @@ - -Copyright (c) 2013-2018 Thomas Michael Edwards . +Copyright (c) 2013-2020, Thomas Michael Edwards . All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/public/story-formats/sugarcube-2.31.1/format.js b/public/story-formats/sugarcube-2.31.1/format.js new file mode 100755 index 000000000..319ad78c3 --- /dev/null +++ b/public/story-formats/sugarcube-2.31.1/format.js @@ -0,0 +1 @@ +window.storyFormat({"name":"SugarCube","version":"2.31.1","description":"A full featured, highly customizable story format. See its documentation.","author":"Thomas Michael Edwards","image":"icon.svg","url":"http://www.motoslave.net/sugarcube/","license":"BSD-2-Clause","proofing":false,"source":"\n\n\n\n{{STORY_NAME}}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t
    \n\t\t
    \n\t\t
    Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
    \n\t\t
    Loading…
    \n\t
    \n\t{{STORY_DATA}}\n\t\n\n\n"}); \ No newline at end of file diff --git a/public/story-formats/sugarcube-2.28.2/icon.svg b/public/story-formats/sugarcube-2.31.1/icon.svg old mode 100644 new mode 100755 similarity index 100% rename from public/story-formats/sugarcube-2.28.2/icon.svg rename to public/story-formats/sugarcube-2.31.1/icon.svg diff --git a/src/store/modules/story-format/defaults.js b/src/store/modules/story-format/defaults.js index a484ef946..9c5ab6e67 100644 --- a/src/store/modules/story-format/defaults.js +++ b/src/store/modules/story-format/defaults.js @@ -11,6 +11,12 @@ export const formatDefaults = { }; export const builtinFormats = [ + { + name: 'Chapbook', + url: 'story-formats/chapbook-1.2.0/format.js', + version: '1.1.0', + userAdded: false + }, { name: 'Harlowe', url: 'story-formats/harlowe-1.2.4/format.js', @@ -25,8 +31,8 @@ export const builtinFormats = [ }, { name: 'Harlowe', - url: 'story-formats/harlowe-3.0.2/format.js', - version: '3.0.2', + url: 'story-formats/harlowe-3.1.0/format.js', + version: '3.1.0', userAdded: false }, { @@ -37,8 +43,14 @@ export const builtinFormats = [ }, { name: 'Snowman', - url: 'story-formats/snowman-1.3.0/format.js', - version: '1.3.0', + url: 'story-formats/snowman-1.4.0/format.js', + version: '1.4.0', + userAdded: false + }, + { + name: 'Snowman', + url: 'story-formats/snowman-2.0.2/format.js', + version: '2.0.2', userAdded: false }, { @@ -49,8 +61,8 @@ export const builtinFormats = [ }, { name: 'SugarCube', - url: 'story-formats/sugarcube-2.28.2/format.js', - version: '2.28.2', + url: 'story-formats/sugarcube-2.31.1/format.js', + version: '2.31.1', userAdded: false } ];