From 921bdd12428f0a4f2111995b192cc70053702f0c Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 25 Aug 2017 11:27:41 +0200 Subject: [PATCH] - beautified composer.json - added borgar/textile-js to composer requirements (composer.json) - removed textile.min.js from include directory - replaced old textile js path with the new one in header.php - changed the call of js textile in application/views/system/phraseinhaltEdit.php --- application/views/system/phraseinhaltEdit.php | 4 +- application/views/templates/header.php | 6 +- composer.json | 216 +++++++++--------- include/js/textile.min.js | 1 - 4 files changed, 117 insertions(+), 110 deletions(-) delete mode 100644 include/js/textile.min.js diff --git a/application/views/system/phraseinhaltEdit.php b/application/views/system/phraseinhaltEdit.php index 76771f122..a0dd11eaa 100644 --- a/application/views/system/phraseinhaltEdit.php +++ b/application/views/system/phraseinhaltEdit.php @@ -91,12 +91,12 @@ function initTextile() { // use a simple timer to check if the textarea content has changed var value = $content.val(); - $preview.html(textile.convert(value)); + $preview.html(textile.parse(value)); setInterval(function () { var newValue = $content.val(); if (value != newValue) { value = newValue; - $preview.html(textile.convert(newValue)); // convert the textile to html + $preview.html(textile.parse(newValue)); // convert the textile to html } }, 500); }; diff --git a/application/views/templates/header.php b/application/views/templates/header.php index a1f042b7b..fe502d323 100644 --- a/application/views/templates/header.php +++ b/application/views/templates/header.php @@ -28,7 +28,7 @@ if($jqueryui) $jqueryComposer = true; if($jquery && $jqueryComposer) - show_error("Two JQuery versions used: composer and includefolderversion"); + show_error("Two JQuery versions used: composer and include folder version"); ?> @@ -93,7 +93,7 @@ if($jquery && $jqueryComposer) - + @@ -106,4 +106,4 @@ if($jquery && $jqueryComposer) - \ No newline at end of file + diff --git a/composer.json b/composer.json index c2fdfe1f7..69c63dc1b 100755 --- a/composer.json +++ b/composer.json @@ -1,113 +1,121 @@ { - "name": "fh-complete/fhc-core", - "type": "app", - "description": "FH-Complete Core", - "keywords": ["fhc", "fh-complete", "campusmanagement"], - "homepage": "https://github.com/FH-Complete/FHC-Core", - "license": "GPLv3", - "authors": [ - { - "name": "Christian Paminger", - "email": "christian.paminger@fhcomplete.org", - "homepage": "http://fhcomplete.org" - }, - { - "name": "Andreas Österreicher", - "email": "oesi@technikum-wien.at", - "homepage": "http://fhcomplete.org" - }], - "support": - { - "email": "info@fhcomplete.org", - "forum": "https://plus.google.com/communities/113278802529782592610", - "wiki": "http://wiki.fhcomplete.org/" - }, - "repositories": [ - { - "type": "package", - "package": - { - "name": "codeigniter-restserver", - "version": "2.6", - "dist": - { - "url": "https://github.com/chriskacerguis/codeigniter-restserver/archive/master.zip", - "type": "zip" - } + "name": "fh-complete/fhc-core", + "type": "app", + "description": "FH-Complete Core", + "keywords": [ + "fhc", + "fh-complete", + "campusmanagement" + ], + "homepage": "https://github.com/FH-Complete/FHC-Core", + "license": "GPLv3", + "authors": [ + { + "name": "Christian Paminger", + "email": "christian.paminger@fhcomplete.org", + "homepage": "http://fhcomplete.org" + }, + { + "name": "Andreas Österreicher", + "email": "oesi@technikum-wien.at", + "homepage": "http://fhcomplete.org" } + ], + "support": { + "email": "info@fhcomplete.org", + "forum": "https://plus.google.com/communities/113278802529782592610", + "wiki": "http://wiki.fhcomplete.org/" }, - { - "type": "package", - "package": - { - "name": "jsoneditor", - "version": "5.5.6", - "dist": - { - "url": "https://github.com/josdejong/jsoneditor/archive/v5.5.6.zip", - "type": "zip" + "repositories": [ + { + "type": "package", + "package": { + "name": "codeigniter-restserver", + "version": "2.6", + "dist": { + "url": "https://github.com/chriskacerguis/codeigniter-restserver/archive/master.zip", + "type": "zip" + } + } + }, + { + "type": "package", + "package": { + "name": "jsoneditor", + "version": "5.5.6", + "dist": { + "url": "https://github.com/josdejong/jsoneditor/archive/v5.5.6.zip", + "type": "zip" + } + } + }, + { + "type": "package", + "package": { + "name": "json-forms", + "version": "1.4.0", + "dist": { + "url": "https://github.com/brutusin/json-forms/archive/v1.4.0.zip", + "type": "zip" + } + } + }, + { + "type": "package", + "package": { + "name": "borgar/textile-js", + "version": "1.0", + "source": { + "url": "https://github.com/borgar/textile-js.git", + "type": "git", + "reference": "master" + } } } + ], + "require": { + "php": ">=5.4.0", + "codeigniter/framework": "3.*", + "codeigniter-restserver": "2.6", + "jsoneditor": "5.5.6", + "kingsquare/json-schema-form": "*", + "easyrdf/easyrdf": "0.9.*", + "ml/json-ld": "1.*", + "rougin/combustor": "1.1.*", + "rougin/refinery": "*", + "components/jquery": "2.1.4", + "components/jqueryui": "1.12.*", + "components/angular.js": "1.3.16", + "components/bootstrap": "3.3.5", + "michelf/php-markdown": "1.5.0", + "tinymce/tinymce": "4.*", + "zetacomponents/workflow": "1.*", + "zetacomponents/document": "1.*", + "zetacomponents/workflow-database-tiein": "1.*", + "zetacomponents/workflow-event-log-tiein": "1.*", + "json-forms": "1.4.0", + "wikimedia/composer-merge-plugin": "^1.3", + "fzaninotto/faker": "1.*", + "netcarver/textile": "^3.5", + "netcarver/textile": "^3.5", + "borgar/textile-js": "1.0" + }, + "require-dev": { + "squizlabs/php_codesniffer": "2.*" + }, + "config": { + "bin-dir": "bin" }, - { - "type": "package", - "package": - { - "name": "json-forms", - "version": "1.4.0", - "dist": - { - "url": "https://github.com/brutusin/json-forms/archive/v1.4.0.zip", - "type": "zip" - } - } - } - ], - "require": - { - "php": ">=5.4.0", - "codeigniter/framework":"3.*", - "codeigniter-restserver": "2.6", - "jsoneditor": "5.5.6", - "kingsquare/json-schema-form": "*", - "easyrdf/easyrdf": "0.9.*", - "ml/json-ld": "1.*", - "rougin/combustor": "1.1.*", - "rougin/refinery": "*", - "components/jquery": "2.1.4", - "components/jqueryui": "1.12.*", - "components/angular.js": "1.3.16", - "components/bootstrap": "3.3.5", - "michelf/php-markdown": "1.5.0", - "tinymce/tinymce": "4.*", - "zetacomponents/workflow": "1.*", - "zetacomponents/document": "1.*", - "zetacomponents/workflow-database-tiein": "1.*", - "zetacomponents/workflow-event-log-tiein": "1.*", - "json-forms": "1.4.0", - "wikimedia/composer-merge-plugin": "^1.3", - "fzaninotto/faker": "1.*", - "netcarver/textile": "^3.5" - }, - "require-dev": - { - "squizlabs/php_codesniffer": "2.*" - }, - "config": - { - "bin-dir": "bin" - }, - "extra": { - "merge-plugin": { - "include": [ - "composer.json", - "addons/*/composer.json" - ], - "recurse": true, - "replace": false, - "merge-dev": false, - "merge-extra": false - } + "merge-plugin": { + "include": [ + "composer.json", + "addons/*/composer.json" + ], + "recurse": true, + "replace": false, + "merge-dev": false, + "merge-extra": false + } } } diff --git a/include/js/textile.min.js b/include/js/textile.min.js deleted file mode 100644 index 81b80100e..000000000 --- a/include/js/textile.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){"use strict";var re={_cache:{},pattern:{punct:"[!-/:-@\\[\\\\\\]-`{-~]",space:"\\s"},escape:function(src){return src.replace(/[\-\[\]\{\}\(\)\*\+\?\.\,\\\^\$\|\#\s]/g,"\\$&")},collapse:function(src){return src.replace(/(?:#.*?(?:\n|$))/g,"").replace(/\s+/g,"")},expand_patterns:function(src){return src.replace(/\[\:\s*(\w+)\s*\:\]/g,function(m,k){return k in re.pattern?re.expand_patterns(re.pattern[k]):k})},isRegExp:function(r){return Object.prototype.toString.call(r)==="[object RegExp]"},compile:function(src,flags){if(re.isRegExp(src)){if(arguments.length===1){flags=(src.global?"g":"")+(src.ignoreCase?"i":"")+(src.multiline?"m":"")}src=src.source}var ckey=src+(flags||"");if(ckey in re._cache){return re._cache[ckey]}var rx=re.expand_patterns(src);if(flags&&/x/.test(flags)){rx=re.collapse(rx)}if(flags&&/s/.test(flags)){rx=rx.replace(/([^\\])\./g,"$1[^\\0]")}flags=(flags||"").replace(/[^gim]/g,"");return re._cache[ckey]=new RegExp(rx,flags)}};var JSONML={escape:function(text,esc_quotes){return text.replace(/&(?!(#\d{2,}|#x[\da-fA-F]{2,}|[a-zA-Z][a-zA-Z1-4]{1,6});)/g,"&").replace(//g,">").replace(/"/g,esc_quotes?""":'"').replace(/'/g,esc_quotes?"'":"'")},toHTML:function(jsonml){jsonml=jsonml.concat();if(typeof jsonml==="string"){return JSONML.escape(jsonml)}var tag=jsonml.shift(),attributes={},content=[],tag_attrs="",a;if(jsonml.length&&typeof jsonml[0]==="object"&&!_isArray(jsonml[0])){attributes=jsonml.shift()}while(jsonml.length){content.push(JSONML.toHTML(jsonml.shift()))}for(a in attributes){tag_attrs+=attributes[a]==null?" "+a:" "+a+'="'+JSONML.escape(String(attributes[a]),true)+'"'}if(tag=="!"){return""}else if(tag in html_singletons){return"<"+tag+tag_attrs+" />"}else{return"<"+tag+tag_attrs+">"+content.join("")+""}}};function merge(a,b){if(b){for(var k in b){a[k]=b[k]}}return a}var _isArray=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"};re.pattern["blocks"]="(?:b[qc]|div|notextile|pre|h[1-6]|fn\\d+|p|###)";re.pattern["pba_class"]="\\([^\\)]+\\)";re.pattern["pba_style"]="\\{[^\\}]+\\}";re.pattern["pba_lang"]="\\[[^\\[\\]]+\\]";re.pattern["pba_align"]="(?:<>|<|>|=)";re.pattern["pba_pad"]="[\\(\\)]+";re.pattern["pba_attr"]="(?:[:pba_class:]|[:pba_style:]|[:pba_lang:]|[:pba_align:]|[:pba_pad:])*";re.pattern["url_punct"]="[.,«»″‹›!?]";re.pattern["html_id"]="[a-zA-Z][a-zA-Z\\d:]*";re.pattern["html_attr"]="(?:\"[^\"]+\"|'[^']+'|[^>\\s]+)";re.pattern["tx_urlch"]='[\\w"$\\-_.+!*\'(),";\\/?:@=&%#{}|\\\\^~\\[\\]`]';re.pattern["tx_cite"]=":((?:[^\\s()]|\\([^\\s()]+\\)|[()])+?)(?=[!-\\.:-@\\[\\\\\\]-`{-~]+(?:$|\\s)|$|\\s)";re.pattern["listhd"]="[\\t ]*[\\#\\*]*(\\*|\\#(?:_|\\d+)?)[:pba_attr:](?: \\S|\\.\\s*(?=\\S|\\n))";re.pattern["ucaps"]="A-Z"+"À-ÖØ-Þ"+"ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿ"+"ŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽ"+"ƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼ"+"DŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾ"+"ȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾ"+"ɁɃ-ɆɈɊɌɎ"+"ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀ"+"ṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾ"+"ẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾ"+"ỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾ"+"ⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾⱿ"+"ꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾ"+"ꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾ"+"ꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪ";var re_block=re.compile(/^([:blocks:])/),re_block_se=re.compile(/^[:blocks:]$/),re_block_normal=re.compile(/^(.*?)($|\r?\n(?=[:listhd:])|\r?\n(?:\s*\n|$)+)/,"s"),re_block_extended=re.compile(/^(.*?)($|\r?\n(?=[:listhd:])|\r?\n+(?=[:blocks:][:pba_attr:]\.))/,"s"),re_ruler=/^(\-\-\-+|\*\*\*+|___+)(\r?\n\s+|$)/,re_list=re.compile(/^((?:[:listhd:][^\0]*?(?:\r?\n|$))+)(\s*\n|$)/,"s"),re_list_item=re.compile(/^([\#\*]+)([^\0]+?)(\n(?=[:listhd:])|$)/,"s"),re_deflist=/^((?:- (?:[^\n]\n?)+?)+:=(?: *\n[^\0]+?=:(?:\n|$)|(?:[^\0]+?(?:$|\n(?=\n|- )))))+/,re_deflist_item=/^((?:- (?:[^\n]\n?)+?)+):=( *\n[^\0]+?=:\s*(?:\n|$)|(?:[^\0]+?(?:$|\n(?=\n|- ))))/,re_table=re.compile(/^((?:table[:pba_attr:]\.(?:\s(.+?))\s*\n)?(?:(?:[:pba_attr:]\.[^\n\S]*)?\|.*?\|[^\n\S]*(?:\n|$))+)([^\n\S]*\n)?/,"s"),re_table_head=/^table(_?)([^\n]*?)\.(?:[ \t](.+?))?\s*\n/,re_table_row=re.compile(/^(?:\|([~\^\-][:pba_attr:])\.\s*\n)?([:pba_attr:]\.[^\n\S]*)?\|(.*?)\|[^\n\S]*(\n|$)/,"s"),re_table_caption=/^\|=([^\n+]*)\n/,re_table_colgroup=/^\|:([^\n+]*)\|[\r\t ]*\n/,re_table_rowgroup=/^\|([\^\-\~])([^\n+]*)\.[ \t\r]*\n/,re_fenced_phrase=/^\[(__?|\*\*?|\?\?|[\-\+\^~@%])([^\n]+)\1\]/,re_phrase=/^([\[\{]?)(__?|\*\*?|\?\?|[\-\+\^~@%])/,re_text=re.compile(/^.+?(?=[\\(\n*)/),re_html_tag=re.compile(/^<([:html_id:])((?:\s[^=\s\/]+(?:\s*=\s*[:html_attr:])?)+)?\s*(\/?)>(\n*)/),re_html_comment=re.compile(/^/,"s"),re_html_end_tag=re.compile(/^<\/([:html_id:])([^>]*)>/),re_html_attr=re.compile(/^\s*([^=\s]+)(?:\s*=\s*("[^"]+"|'[^']+'|[^>\s]+))?/),re_entity=/&(#\d\d{2,}|#x[\da-fA-F]{2,}|[a-zA-Z][a-zA-Z1-4]{1,6});/,re_dimsign=/([\d\.,]+['"]? ?)x( ?)(?=[\d\.,]['"]?)/g,re_emdash=/(^|[\s\w])--([\s\w]|$)/g,re_trademark=/(\b ?|\s|^)(?:\((?:TM|tm)\)|\[(?:TM|tm)\])/g,re_registered=/(\b ?|\s|^)(?:\(R\)|\[R\])/gi,re_copyright=/(\b ?|\s|^)(?:\(C\)|\[C\])/gi,re_apostrophe=/(\w)\'(\w)/g,re_double_prime=re.compile(/(\d*[\.,]?\d+)"(?=\s|$|[:punct:])/g),re_single_prime=re.compile(/(\d*[\.,]?\d+)'(?=\s|$|[:punct:])/g),re_closing_dquote=re.compile(/([^\s\[\(])"(?=$|\s|[:punct:])/g),re_closing_squote=re.compile(/([^\s\[\(])'(?=$|\s|[:punct:])/g),re_pba_classid=/^\(([^\(\)\n]+)\)/,re_pba_padding_l=/^(\(+)/,re_pba_padding_r=/^(\)+)/,re_pba_align_blk=/^(<>|<|>|=)/,re_pba_align_img=/^(<|>|=)/,re_pba_valign=/^(~|\^|\-)/,re_pba_colspan=/^\\(\d+)/,re_pba_rowspan=/^\/(\d+)/,re_pba_styles=/^\{([^\}]*)\}/,re_pba_css=/^\s*([^:\s]+)\s*:\s*(.+)\s*$/,re_pba_lang=/^\[([^\[\]\n]+)\]/;var phrase_convert={"*":"strong","**":"b","??":"cite",_:"em",__:"i","-":"del","%":"span","+":"ins","~":"sub","^":"sup","@":"code"};var html_singletons={br:1,hr:1,img:1,link:1,meta:1,wbr:1,area:1,param:1,input:1,option:1,base:1,col:1};var pba_align_lookup={"<":"left","=":"center",">":"right","<>":"justify"};var pba_valign_lookup={"~":"bottom","^":"top","-":"middle"};var allowed_blocktags={p:0,hr:0,ul:1,ol:0,li:0,div:1,pre:0,object:1,script:0,noscript:0,blockquote:1,notextile:1};function ribbon(feed){var _slot=null,org=feed+"",pos=0;return{save:function(){_slot=pos},load:function(){pos=_slot;feed=org.slice(pos)},advance:function(n){pos+=typeof n==="string"?n.length:n;return feed=org.slice(pos)},lookbehind:function(nchars){nchars=nchars==null?1:nchars;return org.slice(pos-nchars,pos)},startsWith:function(s){return feed.substring(0,s.length)===s},valueOf:function(){return feed},toString:function(){return feed}}}function builder(arr){var _arr=_isArray(arr)?arr:[];return{add:function(node){if(typeof node==="string"&&typeof _arr[_arr.length-1]==="string"){_arr[_arr.length-1]+=node}else if(_isArray(node)){var f=node.filter(function(s){return s!==undefined});_arr.push(f)}else if(node){_arr.push(node)}return this},merge:function(s){for(var i=0,l=s.length;i=0;i--){var head=_stack[i];if(head[0]===tag){_stack.splice(i);list=_stack[_stack.length-1]||root;break}}}src.advance(m[0])}else if((m=re_html_tag.exec(src))&&oktag(m[1])){src.advance(m[0]);tag=m[1];var single=m[3]||m[1]in html_singletons,tail=m[4],element=[tag];if(m[2]){element.push(parse_html_attr(m[2]))}if(single){list.push(element);if(tail){list.push(tail)}}else{if(tail){element.push(tail)}_stack.push(element);list.push(element);list=element}}else{m=/([^<]+|[^\0])/.exec(src);if(m){list.push(m[0])}src.advance(m?m[0].length||1:1)}}while(src.valueOf());return root}function parse_attr(input,element,end_token){input+="";if(!input||element==="notextile"){return undefined}var m,st={},o={style:st},remaining=input,is_block=/^(?:table|t[dh]|t(?:foot|head|body))$/.test(element)||re_block_se.test(element),is_img=element==="img",is_list=element==="li",is_phrase=!is_block&&!is_img&&element!=="a",re_pba_align=is_img?re_pba_align_img:re_pba_align_blk;do{if(m=re_pba_styles.exec(remaining)){m[1].split(";").forEach(function(p){var d=p.match(re_pba_css);if(d){st[d[1]]=d[2]}});remaining=remaining.slice(m[0].length);continue}if(m=re_pba_lang.exec(remaining)){var rm=remaining.slice(m[0].length);if(!rm&&is_phrase||end_token&&end_token===rm.slice(0,end_token.length)){m=null}else{o["lang"]=m[1];remaining=remaining.slice(m[0].length)}continue}if(m=re_pba_classid.exec(remaining)){var rm=remaining.slice(m[0].length);if(!rm&&is_phrase||end_token&&(rm[0]===" "||end_token===rm.slice(0,end_token.length))){m=null}else{var bits=m[1].split("#");if(bits[0]){o["class"]=bits[0]}if(bits[1]){o["id"]=bits[1]}remaining=rm}continue}if(is_block||is_list){if(m=re_pba_padding_l.exec(remaining)){st["padding-left"]=m[1].length+"em";remaining=remaining.slice(m[0].length);continue}if(m=re_pba_padding_r.exec(remaining)){st["padding-right"]=m[1].length+"em";remaining=remaining.slice(m[0].length);continue}}if(is_img||is_block||is_list){if(m=re_pba_align.exec(remaining)){var align=pba_align_lookup[m[1]];if(is_img){o["align"]=align}else{st["text-align"]=align}remaining=remaining.slice(m[0].length);continue}}if(element==="td"||element==="tr"){if(m=re_pba_valign.exec(remaining)){st["vertical-align"]=pba_valign_lookup[m[1]];remaining=remaining.slice(m[0].length);continue}}if(element==="td"){if(m=re_pba_colspan.exec(remaining)){o["colspan"]=m[1];remaining=remaining.slice(m[0].length);continue}if(m=re_pba_rowspan.exec(remaining)){o["rowspan"]=m[1];remaining=remaining.slice(m[0].length);continue}}}while(m);var s=[];for(var v in st){s.push(v+":"+st[v])}if(s.length){o.style=s.join(";")}else{delete o.style}return remaining==input?undefined:[input.length-remaining.length,o]}function parse_glyphs(src){if(typeof src!=="string"){return src}return src.replace(/([^\-]|^)->/,"$1→").replace(re_dimsign,"$1×$2").replace(/([^.]?)\.{3}/g,"$1…").replace(re_emdash,"$1—$2").replace(/ - /g," – ").replace(re_trademark,"$1™").replace(re_registered,"$1®").replace(re_copyright,"$1©").replace(re_double_prime,"$1″").replace(re_closing_dquote,"$1”").replace(/"/g,"“").replace(re_single_prime,"$1′").replace(re_apostrophe,"$1’$2").replace(re_closing_squote,"$1’").replace(/'/g,"‘").replace(/[\(\[]1\/4[\]\)]/,"¼").replace(/[\(\[]1\/2[\]\)]/,"½").replace(/[\(\[]3\/4[\]\)]/,"¾").replace(/[\(\[]o[\]\)]/,"°").replace(/[\(\[]\+\/\-[\]\)]/,"±")}function list_pad(n){var s="\n";while(n--){s+=" "}return s}function parse_list(src,options){src=ribbon(src.replace(/(^|\r?\n)[\t ]+/,"$1"));var stack=[],curr_idx={},last_idx=options._lst||{},list_pba,item_index=0,m,n,s;while(m=re_list_item.exec(src)){var item=["li"],start_index=0,dest_level=m[1].length,type=m[1].substr(-1)==="#"?"ol":"ul",new_li=null,lst,par,pba,r;if(n=/^(_|\d+)/.exec(m[2])){item_index=isFinite(n[1])?parseInt(n[1],10):last_idx[dest_level]||curr_idx[dest_level]||1;m[2]=m[2].slice(n[1].length)}if(pba=parse_attr(m[2],"li")){m[2]=m[2].slice(pba[0]);pba=pba[1]}if(/^\.\s*$/.test(m[2])){list_pba=pba||{};src.advance(m[0]);continue}while(stack.lengthdest_level){r=stack.pop();r.ul.push(list_pad(stack.length));if(r.att===1&&!r.ul[3][1].substr){merge(r.ul[1],r.ul[3].splice(1,1)[0])}}par=stack[stack.length-1];if(item_index){par.ul[1].start=curr_idx[dest_level]=item_index;item_index=0}if(list_pba){par.att=9;merge(par.ul[1],list_pba);list_pba=null}if(!new_li){par.ul.push(list_pad(stack.length),item);par.li=item}if(pba){par.li.push(pba);par.att++}Array.prototype.push.apply(par.li,parse_inline(m[2].trim(),options));src.advance(m[0]);curr_idx[dest_level]=(curr_idx[dest_level]||0)+1}options._lst=curr_idx;while(stack.length){s=stack.pop();s.ul.push(list_pad(stack.length));if(s.att===1&&!s.ul[3][1].substr){merge(s.ul[1],s.ul[3].splice(1,1)[0])}}return s.ul}function parse_deflist(src,options){src=ribbon(src.trim());var deflist=["dl","\n"],terms,def,m;while(m=re_deflist_item.exec(src)){terms=m[1].split(/(?:^|\n)\- /).slice(1);while(terms.length){deflist.push(" ",["dt"].concat(parse_inline(terms.shift().trim(),options)),"\n")}def=m[2].trim();deflist.push(" ",["dd"].concat(/=:$/.test(def)?parse_blocks(def.slice(0,-2).trim(),options):parse_inline(def,options)),"\n");src.advance(m[0])}return deflist}function parse_colgroup(src){var colgroup=["colgroup",{}];src.split("|").forEach(function(s,is_col){var d=s.trim(),col=is_col?{}:colgroup[1],m;if(d){if(m=/^\\(\d+)/.exec(d)){col.span=+m[1];d=d.slice(m[0].length)}if(m=parse_attr(d,"col")){merge(col,m[1]);d=d.slice(m[0])}if(m=/\b\d+\b/.exec(d)){col.width=+m[0]}}if(is_col){colgroup.push("\n ",["col",col])}});return colgroup.concat(["\n "])}function parse_table(src,options){src=ribbon(src.trim());var rowgroups=[],colgroup,caption,t_attr={},t_curr,row,inner,pba,more,m,extended=0;var set_rowgroup=function(type,pba){t_curr=[type,pba||{}];rowgroups.push(t_curr)};if(m=re_table_head.exec(src)){src.advance(m[0]);pba=parse_attr(m[2],"table");if(pba){merge(t_attr,pba[1])}if(m[3]){t_attr.summary=m[3]}}if(m=re_table_caption.exec(src)){caption=["caption"];if(pba=parse_attr(m[1],"caption")){caption.push(pba[1]);m[1]=m[1].slice(pba[0])}if(/\./.test(m[1])){caption.push(m[1].slice(1).replace(/\|\s*$/,"").trim());extended++;src.advance(m[0])}else{caption=null}}do{if(m=re_table_colgroup.exec(src)){colgroup=parse_colgroup(m[1]);extended++}else if(m=re_table_rowgroup.exec(src)){var tag=m[1]==="^"?"thead":m[1]==="~"?"tfoot":m[1]==="-"?"tbody":"tbody";pba=parse_attr(m[2]+" ",tag);set_rowgroup(tag,pba&&pba[1]);extended++}else if(m=re_table_row.exec(src)){if(!t_curr){set_rowgroup("tbody")}row=["tr"];if(m[2]&&(pba=parse_attr(m[2],"tr"))){row.push(pba[1])}t_curr.push("\n ",row);inner=ribbon(m[3]);do{inner.save();var th=inner.startsWith("_"),cell=[th?"th":"td"];if(th){inner.advance(1)}pba=parse_attr(inner,"td");if(pba){inner.advance(pba[0]);cell.push(pba[1])}if(pba||th){var p=/^\.\s*/.exec(inner);if(p){inner.advance(p[0])}else{cell=["td"];inner.load()}}var mx=/^(==.*?==|[^\|])*/.exec(inner);cell=cell.concat(parse_inline(mx[0],options));row.push("\n ",cell);more=inner.valueOf().charAt(mx[0].length)==="|";inner.advance(mx[0].length+1)}while(more);row.push("\n ")}if(m){src.advance(m[0])}}while(m);var table=["table",t_attr];if(extended){if(caption){table.push("\n ",caption)}if(colgroup){table.push("\n ",colgroup)}rowgroups.forEach(function(tbody){table.push("\n ",tbody.concat(["\n "]))})}else{table=table.concat(reindent(rowgroups[0].slice(2),-1))}table.push("\n");return table}function parse_inline(src,options){src=ribbon(src);var list=builder(),m,pba;do{src.save();if(src.startsWith("\r\n")){src.advance(1)}if(src.startsWith("\n")){src.advance(1);if(options.breaks){list.add(["br"])}list.add("\n");continue}if(m=/^==(.*?)==/.exec(src)){src.advance(m[0]);list.add(m[1]);continue}var behind=src.lookbehind(1);var boundary=!behind||/^[\s>.,"'?!;:()]$/.test(behind);if((m=re_phrase.exec(src))&&(boundary||m[1])){src.advance(m[0]);var tok=m[2],fence=m[1],phrase_type=phrase_convert[tok],code=phrase_type==="code";if(pba=!code&&parse_attr(src,phrase_type,tok)){src.advance(pba[0]);pba=pba[1]}var m_mid;var m_end;if(fence==="["){m_mid="^(.*?)";m_end="(?:])"}else if(fence==="{"){m_mid="^(.*?)";m_end="(?:})"}else{var t1=re.escape(tok.charAt(0));m_mid=code?"^(\\S+|\\S+.*?\\S)":"^([^\\s"+t1+"]+|[^\\s"+t1+"].*?\\S("+t1+"*))";m_end="(?=$|[\\s.,\"'!?;:()«»„“”‚‘’])"}var rx=re.compile(m_mid+"("+re.escape(tok)+")"+m_end);if((m=rx.exec(src))&&m[1]){src.advance(m[0]);if(code){list.add([phrase_type,m[1]])}else{list.add([phrase_type,pba].concat(parse_inline(m[1],options)))}continue}src.load()}if((m=re_image.exec(src))||(m=re_image_fenced.exec(src))){src.advance(m[0]);pba=m[1]&&parse_attr(m[1],"img");var attr=pba?pba[1]:{src:""},img=["img",attr];attr.src=m[2];attr.alt=m[3]?attr.title=m[3]:"";if(m[4]){img=["a",{href:m[4]},img]}list.add(img);continue}if(m=re_html_comment.exec(src)){src.advance(m[0]);list.add(["!",m[1]]);continue}if(m=re_html_tag.exec(src)){src.advance(m[0]);var tag=m[1],single=m[3]||m[1]in html_singletons,element=[tag],tail=m[4];if(m[2]){element.push(parse_html_attr(m[2]))}if(single){list.add(element).add(tail);continue}else{var re_end_tag=re.compile("^(.*?)()","s");if(m=re_end_tag.exec(src)){src.advance(m[0]);if(tag==="code"){element.push(tail,m[1])}else if(tag==="notextile"){list.merge(parse_inline(m[1],options));continue}else{element=element.concat(parse_inline(m[1],options))}list.add(element);continue}}src.load()}if((m=re_footnote.exec(src))&&/\S/.test(behind)){src.advance(m[0]);list.add(["sup",{"class":"footnote",id:"fnr"+m[1]},m[2]==="!"?m[1]:["a",{href:"#fn"+m[1]},m[1]]]);continue}if(m=re_caps.exec(src)){src.advance(m[0]);var caps=["span",{"class":"caps"},m[1]];if(m[2]){caps=["acronym",{title:m[2]},caps]}list.add(caps);continue}if(boundary&&(m=re_link.exec(src))||(m=re_link_fenced.exec(src))){src.advance(m[0]);var title=m[1].match(re_link_title),inner=title?m[1].slice(0,m[1].length-title[0].length):m[1];if(pba=parse_attr(inner,"a")){inner=inner.slice(pba[0]);pba=pba[1]}else{pba={}}if(title&&!inner){inner=title[0];title=""}pba.href=m[2];if(title){pba.title=title[1]}list.add(["a",pba].concat(parse_inline(inner.replace(/^(\.?\s*)/,""),options)));continue}m=/([a-zA-Z0-9,.':]+|[ \f\r\t\v\xA0\u2028\u2029]+|[^\0])/.exec(src);if(m){list.add(m[0])}src.advance(m?m[0].length||1:1)}while(src.valueOf());return list.get().map(parse_glyphs)}function parse_blocks(src,options){var list=builder(),paragraph=function(s,tag,pba,linebreak){tag=tag||"p";var out=[];s.split(/(?:\r?\n){2,}/).forEach(function(bit,i){if(tag==="p"&&/^\s/.test(bit)){bit=bit.replace(/\r?\n[\t ]/g," ").trim();out=out.concat(parse_inline(bit,options))}else{if(linebreak&&i){out.push(linebreak)}out.push(pba?[tag,pba].concat(parse_inline(bit,options)):[tag].concat(parse_inline(bit,options)))}});return out},link_refs={},m;src=ribbon(src.replace(/^( *\r?\n)+/,""));while(src.valueOf()){src.save();if(m=re_link_ref.exec(src)){src.advance(m[0]);link_refs[m[1]]=m[2];continue}list.linebreak();if(m=re_block.exec(src)){src.advance(m[0]);var block_type=m[0],pba=parse_attr(src,block_type);if(pba){src.advance(pba[0]);pba=pba[1]}if(m=/^\.(\.?)(?:\s|(?=:))/.exec(src)){var extended=!!m[1];m=(extended?re_block_extended:re_block_normal).exec(src.advance(m[0]));src.advance(m[0]);if(block_type==="bq"){var cite,inner=m[1];if(m=/^:(\S+)\s+/.exec(inner)){if(!pba){pba={}}pba.cite=m[1];inner=inner.slice(m[0].length)}list.add(["blockquote",pba,"\n"].concat(paragraph(inner,"p",copy_pba(pba,{cite:1,id:1}),"\n")).concat(["\n"]))}else if(block_type==="bc"){var sub_pba=pba?copy_pba(pba,{id:1}):null;list.add(["pre",pba,sub_pba?["code",sub_pba,m[1]]:["code",m[1]]])}else if(block_type==="notextile"){list.merge(parse_html(m[1]))}else if(block_type==="###"){}else if(block_type==="pre"){list.add(["pre",pba,m[1]])}else if(re_footnote_def.test(block_type)){var fnid=block_type.replace(/\D+/g,"");if(!pba){pba={}}pba["class"]=(pba["class"]?pba["class"]+" ":"")+"footnote";pba["id"]="fn"+fnid;list.add(["p",pba,["a",{href:"#fnr"+fnid},["sup",fnid]]," "].concat(parse_inline(m[1],options)))}else{list.merge(paragraph(m[1],block_type,pba,"\n"))}continue}else{src.load()}}if(m=re_html_comment.exec(src)){src.advance(m[0]+(/(?:\s*\n+)+/.exec(src)||[])[0]);list.add(["!",m[1]]);continue}if(m=re_html_tag_block.exec(src)){var tag=m[1],single=m[3]||tag in html_singletons,tail=m[4];if(tag in allowed_blocktags){src.advance(m[0]);var element=[tag];if(m[2]){element.push(parse_html_attr(m[2]))}if(single){list.add(element);continue}else{var re_end_tag=re.compile("^(.*?)(\\s*)()(\\s*)","s");if(m=re_end_tag.exec(src)){src.advance(m[0]);if(tag==="pre"){element.push(tail);element=element.concat(parse_html(m[1].replace(/(\r?\n)+$/,""),{code:1}));if(m[2]){element.push(m[2])}list.add(element)}else if(tag==="notextile"){element=parse_html(m[1].trim());list.merge(element)}else if(tag==="script"||tag==="noscript"){element.push(tail+m[1]);list.add(element)}else{if(/\n/.test(tail)){element.push("\n")}if(/\n/.test(m[1])){element=element.concat(parse_blocks(m[1],options))}else{element=element.concat(parse_inline(m[1].replace(/^ +/,""),options))}if(/\n/.test(m[2])){element.push("\n")}list.add(element)}continue}}}src.load()}if(m=re_ruler.exec(src)){src.advance(m[0]);list.add(["hr"]);continue}if(m=re_list.exec(src)){src.advance(m[0]);list.add(parse_list(m[0],options));continue}if(m=re_deflist.exec(src)){src.advance(m[0]);list.add(parse_deflist(m[0],options));continue}if(m=re_table.exec(src)){src.advance(m[0]);list.add(parse_table(m[1],options));continue}m=re_block_normal.exec(src);list.merge(paragraph(m[1],"p",undefined,"\n"));src.advance(m[0])}return list.get().map(fix_links,link_refs)}function fix_links(jsonml){if(_isArray(jsonml)){if(jsonml[0]==="a"){var attr=jsonml[1];if(typeof attr==="object"&&"href"in attr&&attr.href in this){attr.href=this[attr.href]}}for(var i=1,l=jsonml.length;i