Comparing version 3.2.0 to 3.2.1
{ | ||
"name": "Han", | ||
"version": "3.2.0", | ||
"version": "3.2.1", | ||
"homepage": "http://css.hanzi.co/", | ||
@@ -5,0 +5,0 @@ "authors": [ |
@@ -5,2 +5,9 @@ | ||
v3.2.1(2015-5-1) | ||
--- | ||
1. 修正繁體中文下,可懸掛標點後的標點擠壓問題 | ||
2. 更新fibre.js至v0.2.1(findAndReplaceDOMText v0.4.3) | ||
3. 同上,字元査替器現已支援預設的文字邊界,故修正部分樣式規則 | ||
4. 暫時移除等寬字體基型@extend的漢字標點,避免Firefox將其顯示為比例字體 | ||
v3.2.0(2015-4-26) | ||
@@ -7,0 +14,0 @@ --- |
{ | ||
"name": "Han", | ||
"repo": "ethantw/Han", | ||
"version": "3.2.0", | ||
"version": "3.2.1", | ||
"description": "The CSS typography framework optimised for Hanzi.", | ||
@@ -16,4 +16,9 @@ "author": "Chen Yijun", | ||
"styles": [ "dist/han.css" ], | ||
"fonts": [ "dist/font/han.woff", "dist/font/han.otf" ], | ||
"fonts": [ | ||
"dist/font/han.woff", | ||
"dist/font/han.otf", | ||
"dist/font/han-space.woff", | ||
"dist/font/han-space.otf" | ||
], | ||
"license": "MIT" | ||
} |
@@ -1,4 +0,4 @@ | ||
/*! 漢字標準格式 v3.2.0 | MIT License | css.hanzi.co */ | ||
/*! 漢字標準格式 v3.2.1 | MIT License | css.hanzi.co */ | ||
/*! Han.css: the CSS typography framework optimised for Hanzi */ | ||
void function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a){var b=r.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(q["char"].biaodian.open)?"open":a.match(q["char"].biaodian.close)?"close end":a.match(q["char"].biaodian.end)?"end":a.match(new RegExp("("+p.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function d(a,b){var c,d=r.create("canvas");return d.width="50",d.height="20",d.style.display="none",k.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){r.remove(d,k)}}}function e(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function f(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=d(c,b),a=d(c,a),!e(a,b)}function g(a,b,c){var d=r.create("h-ru"),b=r.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(r.clone(a)),d.appendChild(b)),r.setAttr(d,c),d}function h(a,b){var c,d,e,f,a=r.clone(a),g=r.create("h-ru"),h=b.textContent;return c=h.replace(q.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(q.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",r.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var i=a.document,j=i.documentElement,k=i.body,l="3.2.0",m=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],n=function(a,b){return new n.fn.init(a,b)},o=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};n.version=l,n.fn=n.prototype={version:l,constructor:n,context:k,condition:j,routine:m,init:o,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},n.fn.init.prototype=n.fn,n.init=function(){return n.init=n().render()};var p={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},q=function(){var a="[\\x20\\t\\r\\n\\f]",b=p.punct.open,c=(p.punct.close,p.punct.end),d=p.punct.middle,e=p.punct.sing,f=b+"|"+c+"|"+d,g=p.biaodian.open,h=p.biaodian.close,i=p.biaodian.end,j=p.biaodian.middle,k=p.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=p.kana.base+p.kana.combine+"?",n=p.kana.small+p.kana.combine+"?",o=p.kana.half,q=p.eonmun.base+"|"+p.eonmun.letter,r=p.eonmun.half,s=p.hanzi.base+"|"+p.hanzi.desc+"|"+p.hanzi.radical+"|"+m,t=p.ellinika.combine,u=p.latin.base+t+"*",v=p.ellinika.base+t+"*",w=p.kirillica.combine,x=p.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=p.zhuyin.initial,C=p.zhuyin.medial,D=p.zhuyin["final"],E=p.zhuyin.tone+"|"+p.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+q+"|"+r+")","g")},group:{biaodian:[new RegExp("("+l+"){2,}","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+q+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();n.UNICODE=p,n.TYPESET=q,n.UNICODE.cjk=n.UNICODE.hanzi,n.UNICODE.greek=n.UNICODE.ellinika,n.UNICODE.cyrillic=n.UNICODE.kirillica,n.UNICODE.hangul=n.UNICODE.eonmun,n.TYPESET["char"].cjk=n.TYPESET["char"].hanzi,n.TYPESET["char"].greek=n.TYPESET["char"].ellinika,n.TYPESET["char"].cyrillic=n.TYPESET["char"].kirillica,n.TYPESET["char"].hangul=n.TYPESET["char"].eonmun;var r={id:function(a,b){return(b||i).getElementById(a)},tag:function(a,b){return this.makeArray((b||i).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||i).querySelectorAll(a))},create:function(a,b){var a="!"===a?i.createDocumentFragment():""===a?i.createTextNode(b||""):i.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},s=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.1.2",e="style, script, head title",f=a||{},g=f.document||void 0;if("undefined"==typeof g)throw new Error("Fibre requires a DOM-supported environment.");var h=function(a){return new h.fn.init(a)};return h.version=d,h.matches=c,h.fn=h.prototype={constructor:h,version:d,context:void 0,contextSelector:null,finder:[],init:function(a){if(!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?this.context=a:"string"==typeof a&&(this.contextSelector=a,this.context=g.querySelector(a)),this},filterElemFn:function(a){return c(a,this.filterSelector,!0)&&!c(a,this.filterOutSelector)},filterSelector:"*",filter:function(a){switch(typeof a){case"string":this.filterSelector=a;break;case"function":this.filterElemFn=a;break;default:return this}return this},filterOutSelector:e,filterOut:function(a,b){switch(typeof a){case"string":"undefined"!=typeof b&&b===!0?this.filterOutSelector+=", "+a:this.filterOutSelector=a;break;default:return this}return this},replace:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,replace:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},wrap:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,wrap:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},h.fn.init.prototype=h.fn,h}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,b){b.portionMode=b.portionMode||f,this.node=a,this.options=b,this.prepMatch=b.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}{var f="retain",g="first",h=i;({}).toString}return b.Finder=e,e.prototype={search:function(){var b,c=0,d=this.options.find,e=this.getAggregateText(),f=[];if(d="string"==typeof d?RegExp(a(d),"g"):d,d.global)for(;b=d.exec(e);)f.push(this.prepMatch(b,c++));else(b=e.match(d))&&f.push(this.prepMatch(b,0));return f},prepMatch:function(a,b){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},getAggregateText:function(){function a(c){if(3===c.nodeType)return c.data;if(b&&!b(c))return"";var d="";if(c=c.firstChild)do d+=a(c);while(c=c.nextSibling);return d}var b=this.options.filterElements;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());r.extend(s.fn,{jinzify:function(){var a=this.filterOutSelector;return this.filterOutSelector+=", h-jinze",this.replace(q.jinze.touwei,function(a,b){var c=r.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.wei,function(a,b){var c=r.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(q.jinze.tou,function(a,b){var c=r.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.middle,function(a,b){var c=r.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.filterOutSelector=a,this},groupify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.filterOutSelector+=", h-hangable, h-char-group",a.biaodian&&this.wrap(q.group.biaodian[0],r.clone(r.create("h-char-group","biaodian cjk"))).wrap(q.group.biaodian[1],r.clone(r.create("h-char-group","biaodian cjk"))),a.hanzi&&this.wrap(q.group.hanzi,r.clone(r.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(q.group.western,r.clone(r.create("h-word","western"))),a.kana&&this.wrap(q.group.kana,r.clone(r.create("h-char-group","kana"))),a.eonmun&&this.wrap(q.group.eonmun,r.clone(r.create("h-word","eonmun hangul"))),this.filterOutSelector=b,this},charify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.filterOutSelector+=", h-char",a.biaodian&&this.replace(q["char"].biaodian.all,function(a,b){return c(b[0])}).replace(q["char"].biaodian.liga,function(a,b){return c(b[0])}),a.hanzi&&this.wrap(q["char"].hanzi,r.clone(r.create("h-char","hanzi cjk"))),a.punct&&this.wrap(q["char"].punct.all,r.clone(r.create("h-char","punct"))),a.latin&&this.wrap(q["char"].latin,r.clone(r.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(q["char"].ellinika,r.clone(r.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(q["char"].kirillica,r.clone(r.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(q["char"].kana,r.clone(r.create("h-char","kana"))),a.eonmun&&this.wrap(q["char"].eonmun,r.clone(r.create("h-char","eonmun hangul"))),this.filterOutSelector=b,this}}),n.find=s,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){n.fn[a]=function(){return this.finder||(this.finder=n.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var t={};t.writeOnCanvas=d,t.compareCanvases=e,t.detectFont=f,t.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=k||r.create("body"),g=r.create("div"),h=k?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),k||(f.style.background="",f.style.overflow="hidden",e=j.style.overflow,j.style.overflow="hidden",j.appendChild(f)),d=b(h,a),r.remove(h),k||(j.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=i.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=r.create("h-test");return{ruby:function(){var a,b=r.create("ruby"),c=r.create("rt"),e=r.create("rp");return b.appendChild(e),b.appendChild(c),j.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,j.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=r.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!t.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var u=a.navigator.userAgent||null,v=/Trident/i.test(u);t.support["pseudo-element-clipboard"]=v?!0:!1,t.initCond=function(a){var b,a=a||j,c="";for(var d in t.support)b=(t.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},r.extend(t,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=r.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(r.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=r[c](b,a);d.forEach(function(a){var b=n(a);t.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(t.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=r[c](b,a),e=r.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,i,j,k=a.classList,l=!t.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=r.create("!"),c.appendChild(r.clone(a)),d=r.qsa(b,c)[0],(!t.support.ruby||k.contains("zhuyin"))&&r.tag("rt",d).forEach(function(a){var b,c=r.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(r.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?h(c,a):g(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){r.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=r.tag("rb",d),i=e.length,void function(b){b&&(f=r.tag("rt",b).map(function(a,b){if(e[b]){var c=h(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),r.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),r.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=r.tag("rt",b).map(function(b,d){var e,h,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>i&&(j=i);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=r.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}h=g(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(h,m.shift()),m.forEach(function(a){r.remove(a)})}catch(n){}return h}),f=d,r.remove(b)})),j=r.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,r.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),n.normalize=t,n.localize=t,n.support=t.support,n.detectFont=t.detectFont,n.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),n.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;n.fn[b]=function(a){return n.normalize[b](this.context,a),this}}),r.extend(n.support,{heiti:!0,songti:n.detectFont('"Han Songti"'),"songti-gb":n.detectFont('"Han Songti GB"'),kaiti:n.detectFont('"Han Kaiti"'),fangsong:n.detectFont('"Han Fangsong"')});var w="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",x=function(){var a=r.create("div");return a.appendChild(r.create("","0-")),a.appendChild(r.create("","2")),a.normalize(),2!==a.firstChild.length}(),y=r.create("h-hws");y.setAttribute("hidden",""),y.innerHTML=" ",r.extend(n,{isNodeNormalizeNormal:x,renderHWS:function(a,b){var a=a||i,c=b?"strict":"base",d=n.find(a);return b?d.filterOut("textarea, code, kbd, samp, pre",!0):d.filterOut("textarea",!0),d.replace(n.TYPESET.hws[c][0],"$1<hws/>$2").replace(n.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return r.clone(y)}),r.qsa(w,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;r.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(r.remove(c,b),c=b.parentNode.insertBefore(r.clone(y),b),b=b.parentNode,x&&b.normalize(),c===b.firstChild););}),x&&a.normalize(),d}}),r.extend(n.fn,{HWS:null,renderHWS:function(a){return n.renderHWS(this.context,a),this.HWS=r.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){r.remove(a)}),this}}),n.isSpaceFontLoaded=function(){var a,b=r.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",k.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,r.remove(b,k),a}(),n.support["han-space"]=n.isSpaceFontLoaded,n.renderHanging=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre, hangable",!0).replace(q.jinze.hanging,function(a,b){var c=r.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},r.extend(n.fn,{hanging:null,renderHanging:function(){return this.hanging=n.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),n.renderJiya=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre",!0).groupify({biaodian:!0}).charify({biaodian:!0}),r.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},r.extend(n.fn,{jiya:null,renderJiya:function(){return this.jiya=n.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var z;z=r.create("h-char","biaodian cjk middle"),z.setAttribute("unicode","b7"),n.correctBasicBD=function(a,b){if(!n.support.unicoderange||b){var c,a=a||i;c=n.find(a),c.wrap(/\u00B7/g,r.clone(z)).charify({biaodian:!0})}},r.extend(n.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=n.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var A="h-ru[annotation]",B="textarea, code, kbd, samp, pre",C=function(){var a=n.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=n.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return n.localize.compareCanvases(a,b)}(),D=n.TYPESET["display-as"]["comb-liga-pua"],E=n.TYPESET["inaccurate-char"],F=r.create("h-char","comb-liga");return r.extend(n,{isCombLigaNormal:C,substCombLigaWithPUA:function(a){if(!C){var a=a||i,b=n.find(a);return b.filterOut(B,!0),D.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=r.clone(F);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),r.qsa(A,a).forEach(function(a){var b=a.getAttribute("annotation");D.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||i,b=n.find(a);b.filterOut(B,!0),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),r.extend(n.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=n.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=n.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;j.classList.contains("han-init")?n.init():(a=i.querySelector(".han-init-context"))&&(n.init=n(a).render())}),"function"==typeof define&&define.amd?define(function(){return n}):("undefined"==typeof b||b===!1)&&(a.Han=n),n}); | ||
void function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){var c=s.create("h-char-group","biaodian cjk");return 0===a.index&&a.isEnd?c.innerHTML=b[0]:(c.innerHTML=a.text,c.classList.add("portion"),0===a.index?c.classList.add("isFirst"):a.isEnd&&c.classList.add("isEnd")),c}function d(a){var b=s.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(r["char"].biaodian.open)?"open":a.match(r["char"].biaodian.close)?"close end":a.match(r["char"].biaodian.end)?"end":a.match(new RegExp("("+q.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function e(a,b){var c,d=s.create("canvas");return d.width="50",d.height="20",d.style.display="none",l.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){s.remove(d,l)}}}function f(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function g(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=e(c,b),a=e(c,a),!f(a,b)}function h(a,b,c){var d=s.create("h-ru"),b=s.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(s.clone(a)),d.appendChild(b)),s.setAttr(d,c),d}function i(a,b){var c,d,e,f,a=s.clone(a),g=s.create("h-ru"),h=b.textContent;return c=h.replace(r.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(r.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",s.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var j=a.document,k=j.documentElement,l=j.body,m="3.2.1",n=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],o=function(a,b){return new o.fn.init(a,b)},p=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};o.version=m,o.fn=o.prototype={version:m,constructor:o,context:l,condition:k,routine:n,init:p,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},o.fn.init.prototype=o.fn,o.init=function(){return o.init=o().render()};var q={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},r=function(){var a="[\\x20\\t\\r\\n\\f]",b=q.punct.open,c=(q.punct.close,q.punct.end),d=q.punct.middle,e=q.punct.sing,f=b+"|"+c+"|"+d,g=q.biaodian.open,h=q.biaodian.close,i=q.biaodian.end,j=q.biaodian.middle,k=q.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=q.kana.base+q.kana.combine+"?",n=q.kana.small+q.kana.combine+"?",o=q.kana.half,p=q.eonmun.base+"|"+q.eonmun.letter,r=q.eonmun.half,s=q.hanzi.base+"|"+q.hanzi.desc+"|"+q.hanzi.radical+"|"+m,t=q.ellinika.combine,u=q.latin.base+t+"*",v=q.ellinika.base+t+"*",w=q.kirillica.combine,x=q.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=q.zhuyin.initial,C=q.zhuyin.medial,D=q.zhuyin["final"],E=q.zhuyin.tone+"|"+q.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+p+"|"+r+")","g")},group:{biaodian:[new RegExp("(("+l+"){2,})","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+p+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();o.UNICODE=q,o.TYPESET=r,o.UNICODE.cjk=o.UNICODE.hanzi,o.UNICODE.greek=o.UNICODE.ellinika,o.UNICODE.cyrillic=o.UNICODE.kirillica,o.UNICODE.hangul=o.UNICODE.eonmun,o.TYPESET["char"].cjk=o.TYPESET["char"].hanzi,o.TYPESET["char"].greek=o.TYPESET["char"].ellinika,o.TYPESET["char"].cyrillic=o.TYPESET["char"].kirillica,o.TYPESET["char"].hangul=o.TYPESET["char"].eonmun;var s={id:function(a,b){return(b||j).getElementById(a)},tag:function(a,b){return this.makeArray((b||j).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||j).querySelectorAll(a))},create:function(a,b){var a="!"===a?j.createDocumentFragment():""===a?j.createTextNode(b||""):j.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},t=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.2.1",e=b.NON_INLINE_PROSE,f=b.PRESETS.prose.filterElements,g=a||{},h=g.document||void 0;if("undefined"==typeof h)throw new Error("Fibre requires a DOM-supported environment.");var i=function(a,b){return new i.fn.init(a,b)};return i.version=d,i.matches=c,i.fn=i.prototype={constructor:i,version:d,finder:[],context:void 0,portionMode:"retain",selector:{},preset:"prose",init:function(a,b){if(b&&(this.preset=null),this.selector={context:null,filter:[],avoid:[],boundary:[]},!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?a instanceof Document?this.context=a.body||a:this.context=a:"string"==typeof a&&(this.context=h.querySelector(a),this.selector.context=a),this},filterFn:function(a){var b=this.selector.filter.join(", ")||"*",d=this.selector.avoid.join(", ")||null,e=c(a,b,!0)&&!c(a,d);return"prose"===this.preset?f(a)&&e:e},boundaryFn:function(a){var b=this.selector.boundary.join(", ")||null,d=c(a,b);return"prose"===this.preset?e(a)||d:d},filter:function(a){return"string"==typeof a&&this.selector.filter.push(a),this},endFilter:function(a){return a?this.selector.filter=[]:this.selector.filter.pop(),this},avoid:function(a){return"string"==typeof a&&this.selector.avoid.push(a),this},endAvoid:function(a){return a?this.selector.avoid=[]:this.selector.avoid.pop(),this},addBoundary:function(a){return"string"==typeof a&&this.selector.boundary.push(a),this},removeBoundary:function(){return this.selector.boundary=[],this},setMode:function(a){return this.portionMode="first"===a?"first":"retain",this},replace:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,replace:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},wrap:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,wrap:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},i.fn.filterOut=i.fn.avoid,i.fn.init.prototype=i.fn,i}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,c){var d=c.preset&&b.PRESETS[c.preset];if(c.portionMode=c.portionMode||f,d)for(var e in d)i.call(d,e)&&!i.call(c,e)&&(c[e]=d[e]);this.node=a,this.options=c,this.prepMatch=c.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}var f="retain",g="first",h=j,i=({}.toString,{}.hasOwnProperty);return b.NON_PROSE_ELEMENTS={br:1,hr:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1},b.NON_CONTIGUOUS_PROSE_ELEMENTS={address:1,article:1,aside:1,blockquote:1,dd:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,nav:1,noscript:1,ol:1,output:1,p:1,pre:1,section:1,ul:1,br:1,li:1,summary:1,dt:1,details:1,rp:1,rt:1,rtc:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1,table:1,tbody:1,thead:1,th:1,tr:1,td:1,caption:1,col:1,tfoot:1,colgroup:1},b.NON_INLINE_PROSE=function(a){return i.call(b.NON_CONTIGUOUS_PROSE_ELEMENTS,a.nodeName.toLowerCase())},b.PRESETS={prose:{forceContext:b.NON_INLINE_PROSE,filterElements:function(a){return!i.call(b.NON_PROSE_ELEMENTS,a.nodeName.toLowerCase())}}},b.Finder=e,e.prototype={search:function(){function b(a){for(var g=0,j=a.length;j>g;++g){var k=a[g];if("string"==typeof k){if(f.global)for(;c=f.exec(k);)h.push(i.prepMatch(c,d++,e));else(c=k.match(f))&&h.push(i.prepMatch(c,0,e));e+=k.length}else b(k)}}var c,d=0,e=0,f=this.options.find,g=this.getAggregateText(),h=[],i=this;return f="string"==typeof f?RegExp(a(f),"g"):f,b(g),h},prepMatch:function(a,b,c){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=c+a.index+a[0].length,a.startIndex=c+a.index,a.index=b,a},getAggregateText:function(){function a(d,e){if(3===d.nodeType)return[d.data];if(b&&!b(d))return[];var e=[""],f=0;if(d=d.firstChild)do if(3!==d.nodeType){var g=a(d);c&&1===d.nodeType&&(c===!0||c(d))?(e[++f]=g,e[++f]=""):("string"==typeof g[0]&&(e[f]+=g.shift()),g.length&&(e[++f]=g,e[++f]=""))}else e[f]+=d.data;while(d=d.nextSibling);return e}var b=this.options.filterElements,c=this.options.forceContext;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());s.extend(t.fn,{jinzify:function(){return this.avoid("h-jinze"),this.replace(r.jinze.touwei,function(a,b){var c=s.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.wei,function(a,b){var c=s.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(r.jinze.tou,function(a,b){var c=s.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.middle,function(a,b){var c=s.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.endAvoid(),this},groupify:function(a){var a=s.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.avoid("h-hangable, h-char-group, h-word"),a.biaodian&&this.replace(r.group.biaodian[0],c).replace(r.group.biaodian[1],c),a.hanzi&&this.wrap(r.group.hanzi,s.clone(s.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(r.group.western,s.clone(s.create("h-word","western"))),a.kana&&this.wrap(r.group.kana,s.clone(s.create("h-char-group","kana"))),a.eonmun&&this.wrap(r.group.eonmun,s.clone(s.create("h-word","eonmun hangul"))),this.endAvoid(),this},charify:function(a){var a=s.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.avoid("h-char"),a.biaodian&&this.replace(r["char"].biaodian.all,function(a,b){return d(b[0])}).replace(r["char"].biaodian.liga,function(a,b){return d(b[0])}),a.hanzi&&this.wrap(r["char"].hanzi,s.clone(s.create("h-char","hanzi cjk"))),a.punct&&this.wrap(r["char"].punct.all,s.clone(s.create("h-char","punct"))),a.latin&&this.wrap(r["char"].latin,s.clone(s.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(r["char"].ellinika,s.clone(s.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(r["char"].kirillica,s.clone(s.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(r["char"].kana,s.clone(s.create("h-char","kana"))),a.eonmun&&this.wrap(r["char"].eonmun,s.clone(s.create("h-char","eonmun hangul"))),this.endAvoid(),this}}),o.find=t,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){o.fn[a]=function(){return this.finder||(this.finder=o.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var u={};u.writeOnCanvas=e,u.compareCanvases=f,u.detectFont=g,u.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=l||s.create("body"),g=s.create("div"),h=l?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),l||(f.style.background="",f.style.overflow="hidden",e=k.style.overflow,k.style.overflow="hidden",k.appendChild(f)),d=b(h,a),s.remove(h),l||(k.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=j.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=s.create("h-test");return{ruby:function(){var a,b=s.create("ruby"),c=s.create("rt"),e=s.create("rp");return b.appendChild(e),b.appendChild(c),k.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,k.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=s.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!u.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var v=a.navigator.userAgent||null,w=/Trident/i.test(v);u.support["pseudo-element-clipboard"]=w?!0:!1,u.initCond=function(a){var b,a=a||k,c="";for(var d in u.support)b=(u.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},s.extend(u,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=s.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(s.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=s[c](b,a);d.forEach(function(a){var b=o(a);u.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(u.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=s[c](b,a),e=s.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,g,j,k=a.classList,l=!u.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=s.create("!"),c.appendChild(s.clone(a)),d=s.qsa(b,c)[0],(!u.support.ruby||k.contains("zhuyin"))&&s.tag("rt",d).forEach(function(a){var b,c=s.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(s.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?i(c,a):h(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){s.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=s.tag("rb",d),g=e.length,void function(b){b&&(f=s.tag("rt",b).map(function(a,b){if(e[b]){var c=i(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),s.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),s.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=s.tag("rt",b).map(function(b,d){var e,i,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>g&&(j=g);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=s.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}i=h(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(i,m.shift()),m.forEach(function(a){s.remove(a)})}catch(n){}return i}),f=d,s.remove(b)})),j=s.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,s.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),o.normalize=u,o.localize=u,o.support=u.support,o.detectFont=u.detectFont,o.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),o.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;o.fn[b]=function(a){return o.normalize[b](this.context,a),this}}),s.extend(o.support,{heiti:!0,songti:o.detectFont('"Han Songti"'),"songti-gb":o.detectFont('"Han Songti GB"'),kaiti:o.detectFont('"Han Kaiti"'),fangsong:o.detectFont('"Han Fangsong"')});var x="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",y=function(){var a=s.create("div");return a.appendChild(s.create("","0-")),a.appendChild(s.create("","2")),a.normalize(),2!==a.firstChild.length}(),z=s.create("h-hws");z.setAttribute("hidden",""),z.innerHTML=" ",s.extend(o,{isNodeNormalizeNormal:y,renderHWS:function(a,b){var a=a||j,c=b?"strict":"base",d=o.find(a);return d.avoid(b?"textarea, code, kbd, samp, pre":"textarea"),d.replace(o.TYPESET.hws[c][0],"$1<hws/>$2").replace(o.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return s.clone(z)}),s.qsa(x,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;s.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(s.remove(c,b),c=b.parentNode.insertBefore(s.clone(z),b),b=b.parentNode,y&&b.normalize(),c===b.firstChild););}),y&&a.normalize(),d}}),s.extend(o.fn,{HWS:null,renderHWS:function(a){return o.renderHWS(this.context,a),this.HWS=s.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){s.remove(a)}),this}}),o.isSpaceFontLoaded=function(){var a,b=s.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",l.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,s.remove(b,l),a}(),o.support["han-space"]=o.isSpaceFontLoaded,o.renderHanging=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, hangable").replace(r.jinze.hanging,function(a,b){var c=s.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},s.extend(o.fn,{hanging:null,renderHanging:function(){return this.hanging=o.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),o.renderJiya=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, h-char-group").replace(new RegExp("("+q.biaodian.end+"+)("+q.biaodian.open+"+)","g"),function(a,b){if(0===a.index)return a.isEnd?b[0]:b[1];var c=s.create("h-char-group","biaodian cjk portion");return c.innerHTML=b[2],c}).endAvoid(),b.avoid("textarea, code, kbd, samp, pre").groupify({biaodian:!0}).charify({biaodian:!0}),s.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},s.extend(o.fn,{jiya:null,renderJiya:function(){return this.jiya=o.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var A;A=s.create("h-char","biaodian cjk middle"),A.setAttribute("unicode","b7"),o.correctBasicBD=function(a,b){if(!o.support.unicoderange||b){var c,a=a||j;c=o.find(a),c.wrap(/\u00B7/g,s.clone(A)).charify({biaodian:!0})}},s.extend(o.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=o.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var B="h-ru[annotation]",C="textarea, code, kbd, samp, pre",D=function(){var a=o.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=o.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return o.localize.compareCanvases(a,b)}(),E=o.TYPESET["display-as"]["comb-liga-pua"],F=o.TYPESET["inaccurate-char"],G=s.create("h-char","comb-liga");return s.extend(o,{isCombLigaNormal:D,substCombLigaWithPUA:function(a){if(!D){var a=a||j,b=o.find(a);return b.avoid(C),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=s.clone(G);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),s.qsa(B,a).forEach(function(a){var b=a.getAttribute("annotation");E.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||j,b=o.find(a);b.avoid(C),F.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),s.extend(o.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=o.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=o.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;k.classList.contains("han-init")?o.init():(a=j.querySelector(".han-init-context"))&&(o.init=o(a).render())}),"function"==typeof define&&define.amd?define(function(){return o}):("undefined"==typeof b||b===!1)&&(a.Han=o),o}); |
{ | ||
"name": "han-css", | ||
"version": "3.2.0", | ||
"version": "3.2.1", | ||
"description": "The CSS typography framework optimised for Hanzi", | ||
@@ -31,3 +31,3 @@ "repository": { | ||
"dependencies": { | ||
"fibre.js": "^0.1.2", | ||
"fibre.js": "^0.2.1", | ||
"normalize.css": "~3.0.3" | ||
@@ -34,0 +34,0 @@ }, |
@@ -34,3 +34,3 @@ | ||
````html | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.css"> | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.css"> | ||
```` | ||
@@ -41,3 +41,3 @@ | ||
````html | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.js"></script> | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.js"></script> | ||
```` | ||
@@ -47,4 +47,4 @@ | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.otf` | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.otf` | ||
@@ -99,3 +99,3 @@ ## How to use | ||
* * * | ||
Han.css v3.2.0 | ||
Last-modified: 2015-4-26 1:24 (GMT+8) | ||
Han.css v3.2.1 | ||
Last-modified: 2015-5-1 1:42 (GMT+8) |
@@ -36,3 +36,3 @@ | ||
````html | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.css"> | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.css"> | ||
```` | ||
@@ -43,3 +43,3 @@ | ||
````html | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.js"></script> | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.js"></script> | ||
```` | ||
@@ -49,4 +49,4 @@ | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.otf` | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.otf` | ||
@@ -98,9 +98,9 @@ ## 使用方式 | ||
- 開発環境の起動:`npm start`か`gulp dev`(ローカルサーバの実行と自動コンパイルを含む) | ||
- コンパイルしたファイルを公開: `gulp build` | ||
- `han.js`のAPIをテストする: `gulp test`(PhantomJS) | ||
- モジュールを更新する: `npm update && gulp dep` | ||
- コンパイルしたファイルを公開:`gulp build` | ||
- `han.js`のAPIをテストする:`gulp test`(PhantomJS) | ||
- モジュールを更新する:`npm update && gulp dep` | ||
* * * | ||
漢字標準格式 v3.2.0 | ||
Last-modified: 2015-4-26 1:24 (GMT+8) | ||
漢字標準格式 v3.2.1 | ||
Last-modified: 2015-5-1 1:44 (GMT+8) | ||
Translator: [神場雅史][translator] (Jimba Masafumi, [@westantenna][trans-twr]) | ||
@@ -110,1 +110,2 @@ | ||
[trans-twr]: https://twitter.com/westantenna | ||
@@ -34,3 +34,3 @@ | ||
````html | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.css"> | ||
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.css"> | ||
```` | ||
@@ -41,3 +41,3 @@ | ||
````html | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/han.min.js"></script> | ||
<script src="//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/han.min.js"></script> | ||
```` | ||
@@ -47,4 +47,4 @@ | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.0/font/han.otf` | ||
- WOFF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.woff` | ||
- OTF `//cdnjs.cloudflare.com/ajax/libs/Han/3.2.1/font/han.otf` | ||
@@ -85,3 +85,3 @@ ## 使用方式 | ||
* * * | ||
「漢字標準格式」版本:v3.2.0 | ||
本頁最後修改於:2015年4月26日 1:24(GMT+8) | ||
「漢字標準格式」版本:v3.2.1 | ||
本頁最後修改於:2015年5月1日 1:44(GMT+8) |
@@ -9,2 +9,20 @@ define([ | ||
function createBdGroup( portion, match ) { | ||
var elem = $.create( 'h-char-group', 'biaodian cjk' ) | ||
if ( portion.index === 0 && portion.isEnd ) { | ||
elem.innerHTML = match[0] | ||
} else { | ||
elem.innerHTML = portion.text | ||
elem.classList.add( 'portion' ) | ||
if ( portion.index === 0 ) { | ||
elem.classList.add( 'isFirst' ) | ||
} else if ( portion.isEnd ) { | ||
elem.classList.add( 'isEnd' ) | ||
} | ||
} | ||
return elem | ||
} | ||
function createBdChar( char ) { | ||
@@ -25,4 +43,3 @@ var div = $.create( 'div' ) | ||
jinzify: function() { | ||
var origFilterOutSelector = this.filterOutSelector | ||
this.filterOutSelector += ', h-jinze' | ||
this.avoid( 'h-jinze' ) | ||
@@ -66,3 +83,3 @@ this | ||
this.filterOutSelector = origFilterOutSelector | ||
this.endAvoid() | ||
return this | ||
@@ -72,3 +89,2 @@ }, | ||
groupify: function( option ) { | ||
var origFilterOutSelector = this.filterOutSelector | ||
var option = $.extend({ | ||
@@ -83,9 +99,9 @@ biaodian: false, | ||
this.filterOutSelector += ', h-hangable, h-char-group' | ||
this.avoid( 'h-hangable, h-char-group, h-word' ) | ||
if ( option.biaodian ) { | ||
this.wrap( | ||
TYPESET.group.biaodian[ 0 ], $.clone( $.create( 'h-char-group', 'biaodian cjk' )) | ||
).wrap( | ||
TYPESET.group.biaodian[ 1 ], $.clone( $.create( 'h-char-group', 'biaodian cjk' )) | ||
this.replace( | ||
TYPESET.group.biaodian[ 0 ], createBdGroup | ||
).replace( | ||
TYPESET.group.biaodian[ 1 ], createBdGroup | ||
) | ||
@@ -114,10 +130,7 @@ } | ||
this.filterOutSelector = origFilterOutSelector | ||
this.endAvoid() | ||
return this | ||
}, | ||
// Implementation of character-level selector | ||
// (字元級選擇器) | ||
charify: function( option ) { | ||
var origFilterOutSelector = this.filterOutSelector | ||
var option = $.extend({ | ||
@@ -134,3 +147,3 @@ biaodian: false, | ||
this.filterOutSelector += ', h-char' | ||
this.avoid( 'h-char' ) | ||
@@ -182,3 +195,3 @@ if ( option.biaodian ) { | ||
this.filterOutSelector = origFilterOutSelector | ||
this.endAvoid() | ||
return this | ||
@@ -185,0 +198,0 @@ } |
@@ -24,3 +24,3 @@ define([ | ||
finder | ||
.filterOut( 'textarea, code, kbd, samp, pre, hangable', true ) | ||
.avoid( 'textarea, code, kbd, samp, pre, hangable' ) | ||
.replace( | ||
@@ -27,0 +27,0 @@ TYPESET.jinze.hanging, |
@@ -37,5 +37,5 @@ define([ | ||
if ( strict ) { | ||
finder.filterOut( 'textarea, code, kbd, samp, pre', true ) | ||
finder.avoid( 'textarea, code, kbd, samp, pre' ) | ||
} else { | ||
finder.filterOut( 'textarea', true ) | ||
finder.avoid( 'textarea' ) | ||
} | ||
@@ -42,0 +42,0 @@ |
define([ | ||
'../core', | ||
'../method' | ||
], function( Han, $ ) { | ||
'../method', | ||
'../regex/unicode' | ||
], function( Han, $, UNICODE ) { | ||
@@ -11,3 +12,18 @@ Han.renderJiya = function( context ) { | ||
finder | ||
.filterOut( 'textarea, code, kbd, samp, pre', true ) | ||
.avoid( 'textarea, code, kbd, samp, pre, h-char-group' ) | ||
.replace( | ||
// This is a safeguard against hanging rendering | ||
new RegExp( '(' + UNICODE.biaodian.end + '+)(' + UNICODE.biaodian.open + '+)', 'g' ), | ||
function( portion, match ) { | ||
if ( portion.index === 0 ) return portion.isEnd ? match[0] : match[1] | ||
var elem = $.create( 'h-char-group', 'biaodian cjk portion' ) | ||
elem.innerHTML = match[2] | ||
return elem | ||
} | ||
) | ||
.endAvoid() | ||
finder | ||
.avoid( 'textarea, code, kbd, samp, pre' ) | ||
.groupify({ biaodian: true }) | ||
@@ -14,0 +30,0 @@ .charify({ biaodian: true }) |
@@ -32,3 +32,3 @@ define([ | ||
finder.filterOut( SELECTOR_TO_IGNORE, true ) | ||
finder.avoid( SELECTOR_TO_IGNORE ) | ||
@@ -74,3 +74,3 @@ aCombLiga | ||
finder.filterOut( SELECTOR_TO_IGNORE, true ) | ||
finder.avoid( SELECTOR_TO_IGNORE ) | ||
aInaccurateChar | ||
@@ -77,0 +77,0 @@ .forEach(function( pattern ) { |
@@ -83,3 +83,3 @@ define([ | ||
biaodian: [ | ||
new RegExp( '(' + rBd + '){2,}', 'g' ), | ||
new RegExp( '((' + rBd + '){2,})', 'g' ), | ||
new RegExp( '(' + rBdLiga + rBdOpen + ')', 'g' ) | ||
@@ -86,0 +86,0 @@ ], |
/*! | ||
* Fibre.js v0.1.2 | MIT License | github.com/ethantw/fibre.js | ||
* Fibre.js v0.2.1 | MIT License | github.com/ethantw/fibre.js | ||
* Based on findAndReplaceDOMText | ||
@@ -12,4 +12,5 @@ */ | ||
var VERSION = '0.1.2' | ||
var FILTER_OUT_SELECTOR = 'style, script, head title' | ||
var VERSION = '0.2.1' | ||
var NON_INLINE_PROSE = Finder.NON_INLINE_PROSE | ||
var AVOID_NON_PROSE = Finder.PRESETS.prose.filterElements | ||
@@ -33,6 +34,7 @@ var global = window || {} | ||
var Fibre = function( context ) { | ||
return new Fibre.fn.init( context ) | ||
var Fibre = function( context, preset ) { | ||
return new Fibre.fn.init( context, preset ) | ||
} | ||
Fibre.version = VERSION | ||
@@ -46,38 +48,50 @@ Fibre.matches = matches | ||
finder: [], | ||
context: undefined, | ||
contextSelector: null, | ||
portionMode: 'retain', | ||
finder: [], | ||
selector: {}, | ||
init: function( context ) { | ||
if ( !context ) throw new Error( 'A context is required for Fibre to initialise.' ) | ||
preset: 'prose', | ||
if ( context instanceof Node ) { | ||
this.context = context | ||
init: function( context, noPreset ) { | ||
if ( !!noPreset ) this.preset = null | ||
this.selector = { | ||
context: null, | ||
filter: [], | ||
avoid: [], | ||
boundary: [] | ||
} | ||
if ( !context ) { | ||
throw new Error( 'A context is required for Fibre to initialise.' ) | ||
} else if ( context instanceof Node ) { | ||
if ( context instanceof Document ) this.context = context.body || context | ||
else this.context = context | ||
} else if ( typeof context === 'string' ) { | ||
this.contextSelector = context | ||
this.context = document.querySelector( context ) | ||
this.selector.context = context | ||
} | ||
return this | ||
}, | ||
filterElemFn: function( currentNode ) { | ||
return matches( currentNode, this.filterSelector, true ) && | ||
!matches( currentNode, this.filterOutSelector ) | ||
filterFn: function( node ) { | ||
var filter = this.selector.filter.join( ', ' ) || '*' | ||
var avoid = this.selector.avoid.join( ', ' ) || null | ||
var result = matches( node, filter, true ) && !matches( node, avoid ) | ||
return ( this.preset === 'prose' ) ? AVOID_NON_PROSE( node ) && result : result | ||
}, | ||
filterSelector: '*', | ||
boundaryFn: function( node ) { | ||
var boundary = this.selector.boundary.join( ', ' ) || null | ||
var result = matches( node, boundary ) | ||
return ( this.preset === 'prose' ) ? NON_INLINE_PROSE( node ) || result : result | ||
}, | ||
filter: function( selector ) { | ||
switch ( typeof selector ) { | ||
case 'string': | ||
this.filterSelector = selector | ||
break | ||
case 'function': | ||
this.filterElemFn = selector | ||
break | ||
default: | ||
return this | ||
if ( typeof selector === 'string' ) { | ||
this.selector.filter.push( selector ) | ||
} | ||
@@ -87,15 +101,14 @@ return this | ||
filterOutSelector: FILTER_OUT_SELECTOR, | ||
endFilter: function( all ) { | ||
if ( all ) { | ||
this.selector.filter = [] | ||
} else { | ||
this.selector.filter.pop() | ||
} | ||
return this | ||
}, | ||
filterOut: function( selector, boolExtend ) { | ||
switch( typeof selector ) { | ||
case 'string': | ||
if ( typeof boolExtend !== 'undefined' && boolExtend === true ) { | ||
this.filterOutSelector += ', ' + selector | ||
} else { | ||
this.filterOutSelector = selector | ||
} | ||
break | ||
default: | ||
return this | ||
avoid: function( selector ) { | ||
if ( typeof selector === 'string' ) { | ||
this.selector.avoid.push( selector ) | ||
} | ||
@@ -105,5 +118,30 @@ return this | ||
replace: function( regexp, newSubStr, portionMode ) { | ||
endAvoid: function( all ) { | ||
if ( all ) { | ||
this.selector.avoid = [] | ||
} else { | ||
this.selector.avoid.pop() | ||
} | ||
return this | ||
}, | ||
addBoundary: function( selector ) { | ||
if ( typeof selector === 'string' ) { | ||
this.selector.boundary.push( selector ) | ||
} | ||
return this | ||
}, | ||
removeBoundary: function() { | ||
this.selector.boundary = [] | ||
return this | ||
}, | ||
setMode: function( portionMode ) { | ||
this.portionMode = portionMode === 'first' ? 'first' : 'retain' | ||
return this | ||
}, | ||
replace: function( regexp, newSubStr ) { | ||
var it = this | ||
var portionMode = portionMode || 'retain' | ||
it.finder.push(Finder( it.context, { | ||
@@ -113,5 +151,8 @@ find: regexp, | ||
filterElements: function( currentNode ) { | ||
return it.filterElemFn( currentNode ) | ||
return it.filterFn( currentNode ) | ||
}, | ||
portionMode: portionMode | ||
forceContext: function( currentNode ) { | ||
return it.boundaryFn( currentNode ) | ||
}, | ||
portionMode: it.portionMode | ||
})) | ||
@@ -121,5 +162,4 @@ return it | ||
wrap: function( regexp, strElemName, portionMode ) { | ||
wrap: function( regexp, strElemName ) { | ||
var it = this | ||
var portionMode = portionMode || 'retain' | ||
it.finder.push(Finder( it.context, { | ||
@@ -129,5 +169,8 @@ find: regexp, | ||
filterElements: function( currentNode ) { | ||
return it.filterElemFn( currentNode ) | ||
return it.filterFn( currentNode ) | ||
}, | ||
portionMode: portionMode | ||
forceContext: function( currentNode ) { | ||
return it.boundaryFn( currentNode ) | ||
}, | ||
portionMode: it.portionMode | ||
})) | ||
@@ -152,2 +195,6 @@ return it | ||
// Deprecated API(s) | ||
Fibre.fn.filterOut = Fibre.fn.avoid | ||
// Make sure init() inherit from Fibre() | ||
Fibre.fn.init.prototype = Fibre.fn | ||
@@ -168,3 +215,3 @@ | ||
/** | ||
* findAndReplaceDOMText v 0.4.2 | ||
* findAndReplaceDOMText v 0.4.3 | ||
* @author James Padolsey http://james.padolsey.com | ||
@@ -183,2 +230,3 @@ * @license http://unlicense.org/UNLICENSE | ||
var toString = {}.toString | ||
var hasOwn = {}.hasOwnProperty | ||
function isArray(a) { | ||
@@ -259,2 +307,41 @@ return toString.call(a) == '[object Array]' | ||
exposed.NON_PROSE_ELEMENTS = { | ||
br:1, hr:1, | ||
// Media / Source elements: | ||
script:1, style:1, img:1, video:1, audio:1, canvas:1, svg:1, map:1, object:1, | ||
// Input elements | ||
input:1, textarea:1, select:1, option:1, optgroup: 1, button:1 | ||
} | ||
exposed.NON_CONTIGUOUS_PROSE_ELEMENTS = { | ||
// Elements that will not contain prose or block elements where we don't | ||
// want prose to be matches across element borders: | ||
// Block Elements | ||
address:1, article:1, aside:1, blockquote:1, dd:1, div:1, | ||
dl:1, fieldset:1, figcaption:1, figure:1, footer:1, form:1, h1:1, h2:1, h3:1, | ||
h4:1, h5:1, h6:1, header:1, hgroup:1, hr:1, main:1, nav:1, noscript:1, ol:1, | ||
output:1, p:1, pre:1, section:1, ul:1, | ||
// Other misc. elements that are not part of continuous inline prose: | ||
br:1, li: 1, summary: 1, dt:1, details:1, rp:1, rt:1, rtc:1, | ||
// Media / Source elements: | ||
script:1, style:1, img:1, video:1, audio:1, canvas:1, svg:1, map:1, object:1, | ||
// Input elements | ||
input:1, textarea:1, select:1, option:1, optgroup: 1, button:1, | ||
// Table related elements: | ||
table:1, tbody:1, thead:1, th:1, tr:1, td:1, caption:1, col:1, tfoot:1, colgroup:1 | ||
} | ||
exposed.NON_INLINE_PROSE = function(el) { | ||
return hasOwn.call(exposed.NON_CONTIGUOUS_PROSE_ELEMENTS, el.nodeName.toLowerCase()) | ||
} | ||
// Presets accessed via `options.preset` when calling findAndReplaceDOMText(): | ||
exposed.PRESETS = { | ||
prose: { | ||
forceContext: exposed.NON_INLINE_PROSE, | ||
filterElements: function(el) { | ||
return !hasOwn.call(exposed.NON_PROSE_ELEMENTS, el.nodeName.toLowerCase()) | ||
} | ||
} | ||
} | ||
exposed.Finder = Finder | ||
@@ -266,3 +353,12 @@ /** | ||
var preset = options.preset && exposed.PRESETS[options.preset] | ||
options.portionMode = options.portionMode || PORTION_MODE_RETAIN | ||
if (preset) { | ||
for (var i in preset) { | ||
if (hasOwn.call(preset, i) && !hasOwn.call(options, i)) { | ||
options[i] = preset[i] | ||
} | ||
} | ||
} | ||
this.node = node | ||
@@ -289,14 +385,31 @@ this.options = options | ||
var matchIndex = 0 | ||
var offset = 0 | ||
var regex = this.options.find | ||
var text = this.getAggregateText() | ||
var textAggregation = this.getAggregateText() | ||
var matches = [] | ||
var self = this | ||
regex = typeof regex === 'string' ? RegExp(escapeRegExp(regex), 'g') : regex | ||
if (regex.global) { | ||
while (match = regex.exec(text)) { | ||
matches.push(this.prepMatch(match, matchIndex++)) | ||
matchAggregation(textAggregation) | ||
function matchAggregation(textAggregation) { | ||
for (var i = 0, l = textAggregation.length; i < l; ++i) { | ||
var text = textAggregation[i] | ||
if (typeof text !== 'string') { | ||
// Deal with nested contexts: (recursive) | ||
matchAggregation(text) | ||
continue | ||
} | ||
if (regex.global) { | ||
while (match = regex.exec(text)) { | ||
matches.push(self.prepMatch(match, matchIndex++, offset)) | ||
} | ||
} else { | ||
if (match = text.match(regex)) { | ||
matches.push(self.prepMatch(match, 0, offset)) | ||
} | ||
} | ||
offset += text.length | ||
} | ||
} else { | ||
if (match = text.match(regex)) { | ||
matches.push(this.prepMatch(match, 0)) | ||
} | ||
} | ||
@@ -310,3 +423,3 @@ | ||
*/ | ||
prepMatch: function(match, matchIndex) { | ||
prepMatch: function(match, matchIndex, characterOffset) { | ||
@@ -317,4 +430,4 @@ if (!match[0]) { | ||
match.endIndex = match.index + match[0].length | ||
match.startIndex = match.index | ||
match.endIndex = characterOffset + match.index + match[0].length | ||
match.startIndex = characterOffset + match.index | ||
match.index = matchIndex | ||
@@ -330,2 +443,3 @@ return match | ||
var elementFilter = this.options.filterElements | ||
var forceContext = this.options.forceContext | ||
return getText(this.node) | ||
@@ -336,19 +450,45 @@ /** | ||
*/ | ||
function getText(node) { | ||
function getText(node, txt) { | ||
if (node.nodeType === 3) { | ||
return node.data | ||
return [node.data] | ||
} | ||
if (elementFilter && !elementFilter(node)) { | ||
return '' | ||
return [] | ||
} | ||
var txt = '' | ||
var txt = [''] | ||
var i = 0 | ||
if (node = node.firstChild) do { | ||
txt += getText(node) | ||
if (node.nodeType === 3) { | ||
txt[i] += node.data | ||
continue | ||
} | ||
var innerText = getText(node) | ||
if ( | ||
forceContext && | ||
node.nodeType === 1 && | ||
(forceContext === true || forceContext(node)) | ||
) { | ||
txt[++i] = innerText | ||
txt[++i] = '' | ||
} else { | ||
if (typeof innerText[0] === 'string') { | ||
// Bridge nested text-node data so that they're | ||
// not considered their own contexts: | ||
// I.e. ['some', ['thing']] -> ['something'] | ||
txt[i] += innerText.shift() | ||
} | ||
if (innerText.length) { | ||
txt[++i] = innerText | ||
txt[++i] = '' | ||
} | ||
} | ||
} while (node = node.nextSibling) | ||
return txt | ||
} | ||
}, | ||
@@ -642,2 +782,3 @@ | ||
}()) | ||
); |
@@ -187,3 +187,3 @@ (function(){ | ||
}); | ||
test('Consecutive punctuation (Jiya)', function(){ | ||
test('Biaodian jiya', function(){ | ||
var d; | ||
@@ -237,4 +237,7 @@ d = div(); | ||
Han(d).renderHanging().renderJiya(); | ||
htmlEqual(d.innerHTML, '<h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char>標<h-hangable><h-char unicode=300d class=biaodian cjk close end><h-inner>」</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char-group class=biaodian cjk><h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char><h-char unicode=300e class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>『</h-inner></h-char></h-char-group>標<h-hangable><h-char unicode=300f class=biaodian cjk close end><h-inner>』</h-inner><h-cs hidden=""> </h-cs></h-char><h-char unicode=300d class=biaodian cjk close end><h-inner>」</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=,><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=ff0c><h-inner>,</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char unicode=300a class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>《</h-inner></h-char>標<h-hangable><h-char unicode=300b class=biaodian cjk close end><h-inner>》</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char unicode=3008 class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>〈</h-inner></h-char>標<h-hangable><h-char unicode=3009 class=biaodian cjk close end><h-inner>〉</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=。><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3002><h-inner>。</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable>'); | ||
htmlEqual(d.innerHTML, '<h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char>標<h-hangable><h-char unicode=300d class=biaodian cjk close end><h-inner>」</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char-group class=biaodian cjk portion><h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char><h-char unicode=300e class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>『</h-inner></h-char></h-char-group>標<h-hangable><h-char unicode=300f class=biaodian cjk close end><h-inner>』</h-inner><h-cs hidden=""> </h-cs></h-char><h-char unicode=300d class=biaodian cjk close end><h-inner>」</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=,><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=ff0c><h-inner>,</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char-group class=biaodian cjk portion><h-char unicode=300a class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>《</h-inner></h-char></h-char-group>標<h-hangable><h-char unicode=300b class=biaodian cjk close end><h-inner>》</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><h-char-group class=biaodian cjk portion><h-char unicode=3008 class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>〈</h-inner></h-char></h-char-group>標<h-hangable><h-char unicode=3009 class=biaodian cjk close end><h-inner>〉</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=。><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3002><h-inner>。</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable>'); | ||
d.innerHTML = '<a href="#">《書名》</a>、「文字」、<strong>『重點』</strong>。'; | ||
Han(d).renderHanging().renderJiya(); | ||
htmlEqual(d.innerHTML, '<a href=#><h-char unicode=300a class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>《</h-inner></h-char>書名<h-hangable><h-char unicode=300b class=biaodian cjk close end><h-inner>》</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable></a><h-char-group class=biaodian cjk portion><h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char></h-char-group><h-char-group class=biaodian cjk portion><h-char unicode=300c class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>「</h-inner></h-char></h-char-group>文字<h-hangable><h-char unicode=300d class=biaodian cjk close end><h-inner>」</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=、><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3001><h-inner>、</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable><strong><h-char-group class=biaodian cjk portion><h-char unicode=300e class=biaodian cjk open><h-cs hidden=""> </h-cs><h-inner>『</h-inner></h-char></h-char-group>重點<h-hangable><h-char unicode=300f class=biaodian cjk close end><h-inner>』</h-inner><h-cs hidden=""> </h-cs></h-char><h-cs biaodian=。><h-inner hidden=""> </h-inner></h-cs><h-char class=biaodian cjk end unicode=3002><h-inner>。</h-inner><h-cs hidden=""> </h-cs></h-char></h-hangable></strong>'); | ||
}); | ||
}).call(this); |
@@ -1,4 +0,4 @@ | ||
/*! 漢字標準格式 v3.2.0 | MIT License | css.hanzi.co */ | ||
/*! 漢字標準格式 v3.2.1 | MIT License | css.hanzi.co */ | ||
/*! Han.css: the CSS typography framework optimised for Hanzi */ | ||
void function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a){var b=r.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(q["char"].biaodian.open)?"open":a.match(q["char"].biaodian.close)?"close end":a.match(q["char"].biaodian.end)?"end":a.match(new RegExp("("+p.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function d(a,b){var c,d=r.create("canvas");return d.width="50",d.height="20",d.style.display="none",k.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){r.remove(d,k)}}}function e(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function f(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=d(c,b),a=d(c,a),!e(a,b)}function g(a,b,c){var d=r.create("h-ru"),b=r.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(r.clone(a)),d.appendChild(b)),r.setAttr(d,c),d}function h(a,b){var c,d,e,f,a=r.clone(a),g=r.create("h-ru"),h=b.textContent;return c=h.replace(q.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(q.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",r.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var i=a.document,j=i.documentElement,k=i.body,l="3.2.0",m=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],n=function(a,b){return new n.fn.init(a,b)},o=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};n.version=l,n.fn=n.prototype={version:l,constructor:n,context:k,condition:j,routine:m,init:o,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},n.fn.init.prototype=n.fn,n.init=function(){return n.init=n().render()};var p={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},q=function(){var a="[\\x20\\t\\r\\n\\f]",b=p.punct.open,c=(p.punct.close,p.punct.end),d=p.punct.middle,e=p.punct.sing,f=b+"|"+c+"|"+d,g=p.biaodian.open,h=p.biaodian.close,i=p.biaodian.end,j=p.biaodian.middle,k=p.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=p.kana.base+p.kana.combine+"?",n=p.kana.small+p.kana.combine+"?",o=p.kana.half,q=p.eonmun.base+"|"+p.eonmun.letter,r=p.eonmun.half,s=p.hanzi.base+"|"+p.hanzi.desc+"|"+p.hanzi.radical+"|"+m,t=p.ellinika.combine,u=p.latin.base+t+"*",v=p.ellinika.base+t+"*",w=p.kirillica.combine,x=p.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=p.zhuyin.initial,C=p.zhuyin.medial,D=p.zhuyin["final"],E=p.zhuyin.tone+"|"+p.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+q+"|"+r+")","g")},group:{biaodian:[new RegExp("("+l+"){2,}","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+q+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();n.UNICODE=p,n.TYPESET=q,n.UNICODE.cjk=n.UNICODE.hanzi,n.UNICODE.greek=n.UNICODE.ellinika,n.UNICODE.cyrillic=n.UNICODE.kirillica,n.UNICODE.hangul=n.UNICODE.eonmun,n.TYPESET["char"].cjk=n.TYPESET["char"].hanzi,n.TYPESET["char"].greek=n.TYPESET["char"].ellinika,n.TYPESET["char"].cyrillic=n.TYPESET["char"].kirillica,n.TYPESET["char"].hangul=n.TYPESET["char"].eonmun;var r={id:function(a,b){return(b||i).getElementById(a)},tag:function(a,b){return this.makeArray((b||i).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||i).querySelectorAll(a))},create:function(a,b){var a="!"===a?i.createDocumentFragment():""===a?i.createTextNode(b||""):i.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},s=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.1.2",e="style, script, head title",f=a||{},g=f.document||void 0;if("undefined"==typeof g)throw new Error("Fibre requires a DOM-supported environment.");var h=function(a){return new h.fn.init(a)};return h.version=d,h.matches=c,h.fn=h.prototype={constructor:h,version:d,context:void 0,contextSelector:null,finder:[],init:function(a){if(!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?this.context=a:"string"==typeof a&&(this.contextSelector=a,this.context=g.querySelector(a)),this},filterElemFn:function(a){return c(a,this.filterSelector,!0)&&!c(a,this.filterOutSelector)},filterSelector:"*",filter:function(a){switch(typeof a){case"string":this.filterSelector=a;break;case"function":this.filterElemFn=a;break;default:return this}return this},filterOutSelector:e,filterOut:function(a,b){switch(typeof a){case"string":"undefined"!=typeof b&&b===!0?this.filterOutSelector+=", "+a:this.filterOutSelector=a;break;default:return this}return this},replace:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,replace:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},wrap:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,wrap:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},h.fn.init.prototype=h.fn,h}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,b){b.portionMode=b.portionMode||f,this.node=a,this.options=b,this.prepMatch=b.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}{var f="retain",g="first",h=i;({}).toString}return b.Finder=e,e.prototype={search:function(){var b,c=0,d=this.options.find,e=this.getAggregateText(),f=[];if(d="string"==typeof d?RegExp(a(d),"g"):d,d.global)for(;b=d.exec(e);)f.push(this.prepMatch(b,c++));else(b=e.match(d))&&f.push(this.prepMatch(b,0));return f},prepMatch:function(a,b){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},getAggregateText:function(){function a(c){if(3===c.nodeType)return c.data;if(b&&!b(c))return"";var d="";if(c=c.firstChild)do d+=a(c);while(c=c.nextSibling);return d}var b=this.options.filterElements;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());r.extend(s.fn,{jinzify:function(){var a=this.filterOutSelector;return this.filterOutSelector+=", h-jinze",this.replace(q.jinze.touwei,function(a,b){var c=r.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.wei,function(a,b){var c=r.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(q.jinze.tou,function(a,b){var c=r.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.middle,function(a,b){var c=r.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.filterOutSelector=a,this},groupify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.filterOutSelector+=", h-hangable, h-char-group",a.biaodian&&this.wrap(q.group.biaodian[0],r.clone(r.create("h-char-group","biaodian cjk"))).wrap(q.group.biaodian[1],r.clone(r.create("h-char-group","biaodian cjk"))),a.hanzi&&this.wrap(q.group.hanzi,r.clone(r.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(q.group.western,r.clone(r.create("h-word","western"))),a.kana&&this.wrap(q.group.kana,r.clone(r.create("h-char-group","kana"))),a.eonmun&&this.wrap(q.group.eonmun,r.clone(r.create("h-word","eonmun hangul"))),this.filterOutSelector=b,this},charify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.filterOutSelector+=", h-char",a.biaodian&&this.replace(q["char"].biaodian.all,function(a,b){return c(b[0])}).replace(q["char"].biaodian.liga,function(a,b){return c(b[0])}),a.hanzi&&this.wrap(q["char"].hanzi,r.clone(r.create("h-char","hanzi cjk"))),a.punct&&this.wrap(q["char"].punct.all,r.clone(r.create("h-char","punct"))),a.latin&&this.wrap(q["char"].latin,r.clone(r.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(q["char"].ellinika,r.clone(r.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(q["char"].kirillica,r.clone(r.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(q["char"].kana,r.clone(r.create("h-char","kana"))),a.eonmun&&this.wrap(q["char"].eonmun,r.clone(r.create("h-char","eonmun hangul"))),this.filterOutSelector=b,this}}),n.find=s,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){n.fn[a]=function(){return this.finder||(this.finder=n.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var t={};t.writeOnCanvas=d,t.compareCanvases=e,t.detectFont=f,t.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=k||r.create("body"),g=r.create("div"),h=k?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),k||(f.style.background="",f.style.overflow="hidden",e=j.style.overflow,j.style.overflow="hidden",j.appendChild(f)),d=b(h,a),r.remove(h),k||(j.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=i.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=r.create("h-test");return{ruby:function(){var a,b=r.create("ruby"),c=r.create("rt"),e=r.create("rp");return b.appendChild(e),b.appendChild(c),j.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,j.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=r.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!t.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var u=a.navigator.userAgent||null,v=/Trident/i.test(u);t.support["pseudo-element-clipboard"]=v?!0:!1,t.initCond=function(a){var b,a=a||j,c="";for(var d in t.support)b=(t.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},r.extend(t,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=r.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(r.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=r[c](b,a);d.forEach(function(a){var b=n(a);t.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(t.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=r[c](b,a),e=r.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,i,j,k=a.classList,l=!t.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=r.create("!"),c.appendChild(r.clone(a)),d=r.qsa(b,c)[0],(!t.support.ruby||k.contains("zhuyin"))&&r.tag("rt",d).forEach(function(a){var b,c=r.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(r.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?h(c,a):g(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){r.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=r.tag("rb",d),i=e.length,void function(b){b&&(f=r.tag("rt",b).map(function(a,b){if(e[b]){var c=h(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),r.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),r.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=r.tag("rt",b).map(function(b,d){var e,h,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>i&&(j=i);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=r.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}h=g(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(h,m.shift()),m.forEach(function(a){r.remove(a)})}catch(n){}return h}),f=d,r.remove(b)})),j=r.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,r.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),n.normalize=t,n.localize=t,n.support=t.support,n.detectFont=t.detectFont,n.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),n.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;n.fn[b]=function(a){return n.normalize[b](this.context,a),this}}),r.extend(n.support,{heiti:!0,songti:n.detectFont('"Han Songti"'),"songti-gb":n.detectFont('"Han Songti GB"'),kaiti:n.detectFont('"Han Kaiti"'),fangsong:n.detectFont('"Han Fangsong"')});var w="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",x=function(){var a=r.create("div");return a.appendChild(r.create("","0-")),a.appendChild(r.create("","2")),a.normalize(),2!==a.firstChild.length}(),y=r.create("h-hws");y.setAttribute("hidden",""),y.innerHTML=" ",r.extend(n,{isNodeNormalizeNormal:x,renderHWS:function(a,b){var a=a||i,c=b?"strict":"base",d=n.find(a);return b?d.filterOut("textarea, code, kbd, samp, pre",!0):d.filterOut("textarea",!0),d.replace(n.TYPESET.hws[c][0],"$1<hws/>$2").replace(n.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return r.clone(y)}),r.qsa(w,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;r.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(r.remove(c,b),c=b.parentNode.insertBefore(r.clone(y),b),b=b.parentNode,x&&b.normalize(),c===b.firstChild););}),x&&a.normalize(),d}}),r.extend(n.fn,{HWS:null,renderHWS:function(a){return n.renderHWS(this.context,a),this.HWS=r.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){r.remove(a)}),this}}),n.isSpaceFontLoaded=function(){var a,b=r.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",k.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,r.remove(b,k),a}(),n.support["han-space"]=n.isSpaceFontLoaded,n.renderHanging=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre, hangable",!0).replace(q.jinze.hanging,function(a,b){var c=r.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},r.extend(n.fn,{hanging:null,renderHanging:function(){return this.hanging=n.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),n.renderJiya=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre",!0).groupify({biaodian:!0}).charify({biaodian:!0}),r.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},r.extend(n.fn,{jiya:null,renderJiya:function(){return this.jiya=n.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var z;z=r.create("h-char","biaodian cjk middle"),z.setAttribute("unicode","b7"),n.correctBasicBD=function(a,b){if(!n.support.unicoderange||b){var c,a=a||i;c=n.find(a),c.wrap(/\u00B7/g,r.clone(z)).charify({biaodian:!0})}},r.extend(n.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=n.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var A="h-ru[annotation]",B="textarea, code, kbd, samp, pre",C=function(){var a=n.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=n.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return n.localize.compareCanvases(a,b)}(),D=n.TYPESET["display-as"]["comb-liga-pua"],E=n.TYPESET["inaccurate-char"],F=r.create("h-char","comb-liga");return r.extend(n,{isCombLigaNormal:C,substCombLigaWithPUA:function(a){if(!C){var a=a||i,b=n.find(a);return b.filterOut(B,!0),D.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=r.clone(F);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),r.qsa(A,a).forEach(function(a){var b=a.getAttribute("annotation");D.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||i,b=n.find(a);b.filterOut(B,!0),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),r.extend(n.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=n.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=n.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;j.classList.contains("han-init")?n.init():(a=i.querySelector(".han-init-context"))&&(n.init=n(a).render())}),"function"==typeof define&&define.amd?define(function(){return n}):("undefined"==typeof b||b===!1)&&(a.Han=n),n}); | ||
void function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){var c=s.create("h-char-group","biaodian cjk");return 0===a.index&&a.isEnd?c.innerHTML=b[0]:(c.innerHTML=a.text,c.classList.add("portion"),0===a.index?c.classList.add("isFirst"):a.isEnd&&c.classList.add("isEnd")),c}function d(a){var b=s.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(r["char"].biaodian.open)?"open":a.match(r["char"].biaodian.close)?"close end":a.match(r["char"].biaodian.end)?"end":a.match(new RegExp("("+q.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function e(a,b){var c,d=s.create("canvas");return d.width="50",d.height="20",d.style.display="none",l.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){s.remove(d,l)}}}function f(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function g(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=e(c,b),a=e(c,a),!f(a,b)}function h(a,b,c){var d=s.create("h-ru"),b=s.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(s.clone(a)),d.appendChild(b)),s.setAttr(d,c),d}function i(a,b){var c,d,e,f,a=s.clone(a),g=s.create("h-ru"),h=b.textContent;return c=h.replace(r.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(r.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",s.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var j=a.document,k=j.documentElement,l=j.body,m="3.2.1",n=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],o=function(a,b){return new o.fn.init(a,b)},p=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};o.version=m,o.fn=o.prototype={version:m,constructor:o,context:l,condition:k,routine:n,init:p,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},o.fn.init.prototype=o.fn,o.init=function(){return o.init=o().render()};var q={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},r=function(){var a="[\\x20\\t\\r\\n\\f]",b=q.punct.open,c=(q.punct.close,q.punct.end),d=q.punct.middle,e=q.punct.sing,f=b+"|"+c+"|"+d,g=q.biaodian.open,h=q.biaodian.close,i=q.biaodian.end,j=q.biaodian.middle,k=q.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=q.kana.base+q.kana.combine+"?",n=q.kana.small+q.kana.combine+"?",o=q.kana.half,p=q.eonmun.base+"|"+q.eonmun.letter,r=q.eonmun.half,s=q.hanzi.base+"|"+q.hanzi.desc+"|"+q.hanzi.radical+"|"+m,t=q.ellinika.combine,u=q.latin.base+t+"*",v=q.ellinika.base+t+"*",w=q.kirillica.combine,x=q.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=q.zhuyin.initial,C=q.zhuyin.medial,D=q.zhuyin["final"],E=q.zhuyin.tone+"|"+q.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+p+"|"+r+")","g")},group:{biaodian:[new RegExp("(("+l+"){2,})","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+p+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();o.UNICODE=q,o.TYPESET=r,o.UNICODE.cjk=o.UNICODE.hanzi,o.UNICODE.greek=o.UNICODE.ellinika,o.UNICODE.cyrillic=o.UNICODE.kirillica,o.UNICODE.hangul=o.UNICODE.eonmun,o.TYPESET["char"].cjk=o.TYPESET["char"].hanzi,o.TYPESET["char"].greek=o.TYPESET["char"].ellinika,o.TYPESET["char"].cyrillic=o.TYPESET["char"].kirillica,o.TYPESET["char"].hangul=o.TYPESET["char"].eonmun;var s={id:function(a,b){return(b||j).getElementById(a)},tag:function(a,b){return this.makeArray((b||j).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||j).querySelectorAll(a))},create:function(a,b){var a="!"===a?j.createDocumentFragment():""===a?j.createTextNode(b||""):j.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},t=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.2.1",e=b.NON_INLINE_PROSE,f=b.PRESETS.prose.filterElements,g=a||{},h=g.document||void 0;if("undefined"==typeof h)throw new Error("Fibre requires a DOM-supported environment.");var i=function(a,b){return new i.fn.init(a,b)};return i.version=d,i.matches=c,i.fn=i.prototype={constructor:i,version:d,finder:[],context:void 0,portionMode:"retain",selector:{},preset:"prose",init:function(a,b){if(b&&(this.preset=null),this.selector={context:null,filter:[],avoid:[],boundary:[]},!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?a instanceof Document?this.context=a.body||a:this.context=a:"string"==typeof a&&(this.context=h.querySelector(a),this.selector.context=a),this},filterFn:function(a){var b=this.selector.filter.join(", ")||"*",d=this.selector.avoid.join(", ")||null,e=c(a,b,!0)&&!c(a,d);return"prose"===this.preset?f(a)&&e:e},boundaryFn:function(a){var b=this.selector.boundary.join(", ")||null,d=c(a,b);return"prose"===this.preset?e(a)||d:d},filter:function(a){return"string"==typeof a&&this.selector.filter.push(a),this},endFilter:function(a){return a?this.selector.filter=[]:this.selector.filter.pop(),this},avoid:function(a){return"string"==typeof a&&this.selector.avoid.push(a),this},endAvoid:function(a){return a?this.selector.avoid=[]:this.selector.avoid.pop(),this},addBoundary:function(a){return"string"==typeof a&&this.selector.boundary.push(a),this},removeBoundary:function(){return this.selector.boundary=[],this},setMode:function(a){return this.portionMode="first"===a?"first":"retain",this},replace:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,replace:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},wrap:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,wrap:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},i.fn.filterOut=i.fn.avoid,i.fn.init.prototype=i.fn,i}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,c){var d=c.preset&&b.PRESETS[c.preset];if(c.portionMode=c.portionMode||f,d)for(var e in d)i.call(d,e)&&!i.call(c,e)&&(c[e]=d[e]);this.node=a,this.options=c,this.prepMatch=c.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}var f="retain",g="first",h=j,i=({}.toString,{}.hasOwnProperty);return b.NON_PROSE_ELEMENTS={br:1,hr:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1},b.NON_CONTIGUOUS_PROSE_ELEMENTS={address:1,article:1,aside:1,blockquote:1,dd:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,nav:1,noscript:1,ol:1,output:1,p:1,pre:1,section:1,ul:1,br:1,li:1,summary:1,dt:1,details:1,rp:1,rt:1,rtc:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1,table:1,tbody:1,thead:1,th:1,tr:1,td:1,caption:1,col:1,tfoot:1,colgroup:1},b.NON_INLINE_PROSE=function(a){return i.call(b.NON_CONTIGUOUS_PROSE_ELEMENTS,a.nodeName.toLowerCase())},b.PRESETS={prose:{forceContext:b.NON_INLINE_PROSE,filterElements:function(a){return!i.call(b.NON_PROSE_ELEMENTS,a.nodeName.toLowerCase())}}},b.Finder=e,e.prototype={search:function(){function b(a){for(var g=0,j=a.length;j>g;++g){var k=a[g];if("string"==typeof k){if(f.global)for(;c=f.exec(k);)h.push(i.prepMatch(c,d++,e));else(c=k.match(f))&&h.push(i.prepMatch(c,0,e));e+=k.length}else b(k)}}var c,d=0,e=0,f=this.options.find,g=this.getAggregateText(),h=[],i=this;return f="string"==typeof f?RegExp(a(f),"g"):f,b(g),h},prepMatch:function(a,b,c){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=c+a.index+a[0].length,a.startIndex=c+a.index,a.index=b,a},getAggregateText:function(){function a(d,e){if(3===d.nodeType)return[d.data];if(b&&!b(d))return[];var e=[""],f=0;if(d=d.firstChild)do if(3!==d.nodeType){var g=a(d);c&&1===d.nodeType&&(c===!0||c(d))?(e[++f]=g,e[++f]=""):("string"==typeof g[0]&&(e[f]+=g.shift()),g.length&&(e[++f]=g,e[++f]=""))}else e[f]+=d.data;while(d=d.nextSibling);return e}var b=this.options.filterElements,c=this.options.forceContext;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());s.extend(t.fn,{jinzify:function(){return this.avoid("h-jinze"),this.replace(r.jinze.touwei,function(a,b){var c=s.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.wei,function(a,b){var c=s.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(r.jinze.tou,function(a,b){var c=s.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.middle,function(a,b){var c=s.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.endAvoid(),this},groupify:function(a){var a=s.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.avoid("h-hangable, h-char-group, h-word"),a.biaodian&&this.replace(r.group.biaodian[0],c).replace(r.group.biaodian[1],c),a.hanzi&&this.wrap(r.group.hanzi,s.clone(s.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(r.group.western,s.clone(s.create("h-word","western"))),a.kana&&this.wrap(r.group.kana,s.clone(s.create("h-char-group","kana"))),a.eonmun&&this.wrap(r.group.eonmun,s.clone(s.create("h-word","eonmun hangul"))),this.endAvoid(),this},charify:function(a){var a=s.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.avoid("h-char"),a.biaodian&&this.replace(r["char"].biaodian.all,function(a,b){return d(b[0])}).replace(r["char"].biaodian.liga,function(a,b){return d(b[0])}),a.hanzi&&this.wrap(r["char"].hanzi,s.clone(s.create("h-char","hanzi cjk"))),a.punct&&this.wrap(r["char"].punct.all,s.clone(s.create("h-char","punct"))),a.latin&&this.wrap(r["char"].latin,s.clone(s.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(r["char"].ellinika,s.clone(s.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(r["char"].kirillica,s.clone(s.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(r["char"].kana,s.clone(s.create("h-char","kana"))),a.eonmun&&this.wrap(r["char"].eonmun,s.clone(s.create("h-char","eonmun hangul"))),this.endAvoid(),this}}),o.find=t,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){o.fn[a]=function(){return this.finder||(this.finder=o.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var u={};u.writeOnCanvas=e,u.compareCanvases=f,u.detectFont=g,u.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=l||s.create("body"),g=s.create("div"),h=l?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),l||(f.style.background="",f.style.overflow="hidden",e=k.style.overflow,k.style.overflow="hidden",k.appendChild(f)),d=b(h,a),s.remove(h),l||(k.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=j.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=s.create("h-test");return{ruby:function(){var a,b=s.create("ruby"),c=s.create("rt"),e=s.create("rp");return b.appendChild(e),b.appendChild(c),k.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,k.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=s.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!u.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var v=a.navigator.userAgent||null,w=/Trident/i.test(v);u.support["pseudo-element-clipboard"]=w?!0:!1,u.initCond=function(a){var b,a=a||k,c="";for(var d in u.support)b=(u.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},s.extend(u,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=s.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(s.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=s[c](b,a);d.forEach(function(a){var b=o(a);u.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(u.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=s[c](b,a),e=s.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,g,j,k=a.classList,l=!u.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=s.create("!"),c.appendChild(s.clone(a)),d=s.qsa(b,c)[0],(!u.support.ruby||k.contains("zhuyin"))&&s.tag("rt",d).forEach(function(a){var b,c=s.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(s.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?i(c,a):h(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){s.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=s.tag("rb",d),g=e.length,void function(b){b&&(f=s.tag("rt",b).map(function(a,b){if(e[b]){var c=i(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),s.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),s.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=s.tag("rt",b).map(function(b,d){var e,i,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>g&&(j=g);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=s.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}i=h(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(i,m.shift()),m.forEach(function(a){s.remove(a)})}catch(n){}return i}),f=d,s.remove(b)})),j=s.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,s.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),o.normalize=u,o.localize=u,o.support=u.support,o.detectFont=u.detectFont,o.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),o.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;o.fn[b]=function(a){return o.normalize[b](this.context,a),this}}),s.extend(o.support,{heiti:!0,songti:o.detectFont('"Han Songti"'),"songti-gb":o.detectFont('"Han Songti GB"'),kaiti:o.detectFont('"Han Kaiti"'),fangsong:o.detectFont('"Han Fangsong"')});var x="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",y=function(){var a=s.create("div");return a.appendChild(s.create("","0-")),a.appendChild(s.create("","2")),a.normalize(),2!==a.firstChild.length}(),z=s.create("h-hws");z.setAttribute("hidden",""),z.innerHTML=" ",s.extend(o,{isNodeNormalizeNormal:y,renderHWS:function(a,b){var a=a||j,c=b?"strict":"base",d=o.find(a);return d.avoid(b?"textarea, code, kbd, samp, pre":"textarea"),d.replace(o.TYPESET.hws[c][0],"$1<hws/>$2").replace(o.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return s.clone(z)}),s.qsa(x,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;s.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(s.remove(c,b),c=b.parentNode.insertBefore(s.clone(z),b),b=b.parentNode,y&&b.normalize(),c===b.firstChild););}),y&&a.normalize(),d}}),s.extend(o.fn,{HWS:null,renderHWS:function(a){return o.renderHWS(this.context,a),this.HWS=s.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){s.remove(a)}),this}}),o.isSpaceFontLoaded=function(){var a,b=s.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",l.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,s.remove(b,l),a}(),o.support["han-space"]=o.isSpaceFontLoaded,o.renderHanging=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, hangable").replace(r.jinze.hanging,function(a,b){var c=s.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},s.extend(o.fn,{hanging:null,renderHanging:function(){return this.hanging=o.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),o.renderJiya=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, h-char-group").replace(new RegExp("("+q.biaodian.end+"+)("+q.biaodian.open+"+)","g"),function(a,b){if(0===a.index)return a.isEnd?b[0]:b[1];var c=s.create("h-char-group","biaodian cjk portion");return c.innerHTML=b[2],c}).endAvoid(),b.avoid("textarea, code, kbd, samp, pre").groupify({biaodian:!0}).charify({biaodian:!0}),s.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},s.extend(o.fn,{jiya:null,renderJiya:function(){return this.jiya=o.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var A;A=s.create("h-char","biaodian cjk middle"),A.setAttribute("unicode","b7"),o.correctBasicBD=function(a,b){if(!o.support.unicoderange||b){var c,a=a||j;c=o.find(a),c.wrap(/\u00B7/g,s.clone(A)).charify({biaodian:!0})}},s.extend(o.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=o.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var B="h-ru[annotation]",C="textarea, code, kbd, samp, pre",D=function(){var a=o.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=o.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return o.localize.compareCanvases(a,b)}(),E=o.TYPESET["display-as"]["comb-liga-pua"],F=o.TYPESET["inaccurate-char"],G=s.create("h-char","comb-liga");return s.extend(o,{isCombLigaNormal:D,substCombLigaWithPUA:function(a){if(!D){var a=a||j,b=o.find(a);return b.avoid(C),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=s.clone(G);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),s.qsa(B,a).forEach(function(a){var b=a.getAttribute("annotation");E.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||j,b=o.find(a);b.avoid(C),F.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),s.extend(o.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=o.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=o.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;k.classList.contains("han-init")?o.init():(a=j.querySelector(".han-init-context"))&&(o.init=o(a).render())}),"function"==typeof define&&define.amd?define(function(){return o}):("undefined"==typeof b||b===!1)&&(a.Han=o),o}); |
@@ -38,3 +38,4 @@ 測試頁索引 | ||
- [漢字-西文混排間隙](./hws.html) | ||
- [標點擠壓及懸掛](./jiya.html) | ||
- [標點擠壓](./jiya.html) | ||
- [行尾點號懸掛](./hanging.html) | ||
- [字元的替換](./subst.html) | ||
@@ -41,0 +42,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){void function(a,c){"object"==typeof b&&"object"==typeof b.exports?b.exports=c(a,!0):c(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a){var b=r.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(q["char"].biaodian.open)?"open":a.match(q["char"].biaodian.close)?"close end":a.match(q["char"].biaodian.end)?"end":a.match(new RegExp("("+p.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function d(a,b){var c,d=r.create("canvas");return d.width="50",d.height="20",d.style.display="none",k.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){r.remove(d,k)}}}function e(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function f(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=d(c,b),a=d(c,a),!e(a,b)}function g(a,b,c){var d=r.create("h-ru"),b=r.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(r.clone(a)),d.appendChild(b)),r.setAttr(d,c),d}function h(a,b){var c,d,e,f,a=r.clone(a),g=r.create("h-ru"),h=b.textContent;return c=h.replace(q.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(q.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",r.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var i=a.document,j=i.documentElement,k=i.body,l="3.2.0",m=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],n=function(a,b){return new n.fn.init(a,b)},o=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};n.version=l,n.fn=n.prototype={version:l,constructor:n,context:k,condition:j,routine:m,init:o,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},n.fn.init.prototype=n.fn,n.init=function(){return n.init=n().render()};var p={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},q=function(){var a="[\\x20\\t\\r\\n\\f]",b=p.punct.open,c=(p.punct.close,p.punct.end),d=p.punct.middle,e=p.punct.sing,f=b+"|"+c+"|"+d,g=p.biaodian.open,h=p.biaodian.close,i=p.biaodian.end,j=p.biaodian.middle,k=p.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=p.kana.base+p.kana.combine+"?",n=p.kana.small+p.kana.combine+"?",o=p.kana.half,q=p.eonmun.base+"|"+p.eonmun.letter,r=p.eonmun.half,s=p.hanzi.base+"|"+p.hanzi.desc+"|"+p.hanzi.radical+"|"+m,t=p.ellinika.combine,u=p.latin.base+t+"*",v=p.ellinika.base+t+"*",w=p.kirillica.combine,x=p.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=p.zhuyin.initial,C=p.zhuyin.medial,D=p.zhuyin["final"],E=p.zhuyin.tone+"|"+p.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+q+"|"+r+")","g")},group:{biaodian:[new RegExp("("+l+"){2,}","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+q+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();n.UNICODE=p,n.TYPESET=q,n.UNICODE.cjk=n.UNICODE.hanzi,n.UNICODE.greek=n.UNICODE.ellinika,n.UNICODE.cyrillic=n.UNICODE.kirillica,n.UNICODE.hangul=n.UNICODE.eonmun,n.TYPESET["char"].cjk=n.TYPESET["char"].hanzi,n.TYPESET["char"].greek=n.TYPESET["char"].ellinika,n.TYPESET["char"].cyrillic=n.TYPESET["char"].kirillica,n.TYPESET["char"].hangul=n.TYPESET["char"].eonmun;var r={id:function(a,b){return(b||i).getElementById(a)},tag:function(a,b){return this.makeArray((b||i).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||i).querySelectorAll(a))},create:function(a,b){var a="!"===a?i.createDocumentFragment():""===a?i.createTextNode(b||""):i.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},s=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.1.2",e="style, script, head title",f=a||{},g=f.document||void 0;if("undefined"==typeof g)throw new Error("Fibre requires a DOM-supported environment.");var h=function(a){return new h.fn.init(a)};return h.version=d,h.matches=c,h.fn=h.prototype={constructor:h,version:d,context:void 0,contextSelector:null,finder:[],init:function(a){if(!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?this.context=a:"string"==typeof a&&(this.contextSelector=a,this.context=g.querySelector(a)),this},filterElemFn:function(a){return c(a,this.filterSelector,!0)&&!c(a,this.filterOutSelector)},filterSelector:"*",filter:function(a){switch(typeof a){case"string":this.filterSelector=a;break;case"function":this.filterElemFn=a;break;default:return this}return this},filterOutSelector:e,filterOut:function(a,b){switch(typeof a){case"string":"undefined"!=typeof b&&b===!0?this.filterOutSelector+=", "+a:this.filterOutSelector=a;break;default:return this}return this},replace:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,replace:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},wrap:function(a,c,d){var e=this,d=d||"retain";return e.finder.push(b(e.context,{find:a,wrap:c,filterElements:function(a){return e.filterElemFn(a)},portionMode:d})),e},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},h.fn.init.prototype=h.fn,h}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,b){b.portionMode=b.portionMode||f,this.node=a,this.options=b,this.prepMatch=b.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}{var f="retain",g="first",h=i;({}).toString}return b.Finder=e,e.prototype={search:function(){var b,c=0,d=this.options.find,e=this.getAggregateText(),f=[];if(d="string"==typeof d?RegExp(a(d),"g"):d,d.global)for(;b=d.exec(e);)f.push(this.prepMatch(b,c++));else(b=e.match(d))&&f.push(this.prepMatch(b,0));return f},prepMatch:function(a,b){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},getAggregateText:function(){function a(c){if(3===c.nodeType)return c.data;if(b&&!b(c))return"";var d="";if(c=c.firstChild)do d+=a(c);while(c=c.nextSibling);return d}var b=this.options.filterElements;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());r.extend(s.fn,{jinzify:function(){var a=this.filterOutSelector;return this.filterOutSelector+=", h-jinze",this.replace(q.jinze.touwei,function(a,b){var c=r.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.wei,function(a,b){var c=r.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(q.jinze.tou,function(a,b){var c=r.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(q.jinze.middle,function(a,b){var c=r.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.filterOutSelector=a,this},groupify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.filterOutSelector+=", h-hangable, h-char-group",a.biaodian&&this.wrap(q.group.biaodian[0],r.clone(r.create("h-char-group","biaodian cjk"))).wrap(q.group.biaodian[1],r.clone(r.create("h-char-group","biaodian cjk"))),a.hanzi&&this.wrap(q.group.hanzi,r.clone(r.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(q.group.western,r.clone(r.create("h-word","western"))),a.kana&&this.wrap(q.group.kana,r.clone(r.create("h-char-group","kana"))),a.eonmun&&this.wrap(q.group.eonmun,r.clone(r.create("h-word","eonmun hangul"))),this.filterOutSelector=b,this},charify:function(a){var b=this.filterOutSelector,a=r.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.filterOutSelector+=", h-char",a.biaodian&&this.replace(q["char"].biaodian.all,function(a,b){return c(b[0])}).replace(q["char"].biaodian.liga,function(a,b){return c(b[0])}),a.hanzi&&this.wrap(q["char"].hanzi,r.clone(r.create("h-char","hanzi cjk"))),a.punct&&this.wrap(q["char"].punct.all,r.clone(r.create("h-char","punct"))),a.latin&&this.wrap(q["char"].latin,r.clone(r.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(q["char"].ellinika,r.clone(r.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(q["char"].kirillica,r.clone(r.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(q["char"].kana,r.clone(r.create("h-char","kana"))),a.eonmun&&this.wrap(q["char"].eonmun,r.clone(r.create("h-char","eonmun hangul"))),this.filterOutSelector=b,this}}),n.find=s,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){n.fn[a]=function(){return this.finder||(this.finder=n.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var t={};t.writeOnCanvas=d,t.compareCanvases=e,t.detectFont=f,t.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=k||r.create("body"),g=r.create("div"),h=k?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),k||(f.style.background="",f.style.overflow="hidden",e=j.style.overflow,j.style.overflow="hidden",j.appendChild(f)),d=b(h,a),r.remove(h),k||(j.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=i.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=r.create("h-test");return{ruby:function(){var a,b=r.create("ruby"),c=r.create("rt"),e=r.create("rp");return b.appendChild(e),b.appendChild(c),j.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,j.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=r.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!t.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var u=a.navigator.userAgent||null,v=/Trident/i.test(u);t.support["pseudo-element-clipboard"]=v?!0:!1,t.initCond=function(a){var b,a=a||j,c="";for(var d in t.support)b=(t.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},r.extend(t,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=r.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(r.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=r[c](b,a);d.forEach(function(a){var b=n(a);t.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(t.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=r[c](b,a),e=r.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,i,j,k=a.classList,l=!t.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=r.create("!"),c.appendChild(r.clone(a)),d=r.qsa(b,c)[0],(!t.support.ruby||k.contains("zhuyin"))&&r.tag("rt",d).forEach(function(a){var b,c=r.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(r.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?h(c,a):g(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){r.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=r.tag("rb",d),i=e.length,void function(b){b&&(f=r.tag("rt",b).map(function(a,b){if(e[b]){var c=h(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),r.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),r.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=r.tag("rt",b).map(function(b,d){var e,h,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>i&&(j=i);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=r.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}h=g(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(h,m.shift()),m.forEach(function(a){r.remove(a)})}catch(n){}return h}),f=d,r.remove(b)})),j=r.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,r.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),n.normalize=t,n.localize=t,n.support=t.support,n.detectFont=t.detectFont,n.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),n.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;n.fn[b]=function(a){return n.normalize[b](this.context,a),this}}),r.extend(n.support,{heiti:!0,songti:n.detectFont('"Han Songti"'),"songti-gb":n.detectFont('"Han Songti GB"'),kaiti:n.detectFont('"Han Kaiti"'),fangsong:n.detectFont('"Han Fangsong"')});var w="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",x=function(){var a=r.create("div");return a.appendChild(r.create("","0-")),a.appendChild(r.create("","2")),a.normalize(),2!==a.firstChild.length}(),y=r.create("h-hws");y.setAttribute("hidden",""),y.innerHTML=" ",r.extend(n,{isNodeNormalizeNormal:x,renderHWS:function(a,b){var a=a||i,c=b?"strict":"base",d=n.find(a);return b?d.filterOut("textarea, code, kbd, samp, pre",!0):d.filterOut("textarea",!0),d.replace(n.TYPESET.hws[c][0],"$1<hws/>$2").replace(n.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return r.clone(y)}),r.qsa(w,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;r.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(r.remove(c,b),c=b.parentNode.insertBefore(r.clone(y),b),b=b.parentNode,x&&b.normalize(),c===b.firstChild););}),x&&a.normalize(),d}}),r.extend(n.fn,{HWS:null,renderHWS:function(a){return n.renderHWS(this.context,a),this.HWS=r.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){r.remove(a)}),this}}),n.isSpaceFontLoaded=function(){var a,b=r.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",k.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,r.remove(b,k),a}(),n.support["han-space"]=n.isSpaceFontLoaded,n.renderHanging=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre, hangable",!0).replace(q.jinze.hanging,function(a,b){var c=r.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},r.extend(n.fn,{hanging:null,renderHanging:function(){return this.hanging=n.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),n.renderJiya=function(a){var a=a||i,b=n.find(a);return b.filterOut("textarea, code, kbd, samp, pre",!0).groupify({biaodian:!0}).charify({biaodian:!0}),r.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},r.extend(n.fn,{jiya:null,renderJiya:function(){return this.jiya=n.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var z;z=r.create("h-char","biaodian cjk middle"),z.setAttribute("unicode","b7"),n.correctBasicBD=function(a,b){if(!n.support.unicoderange||b){var c,a=a||i;c=n.find(a),c.wrap(/\u00B7/g,r.clone(z)).charify({biaodian:!0})}},r.extend(n.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=n.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var A="h-ru[annotation]",B="textarea, code, kbd, samp, pre",C=function(){var a=n.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=n.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return n.localize.compareCanvases(a,b)}(),D=n.TYPESET["display-as"]["comb-liga-pua"],E=n.TYPESET["inaccurate-char"],F=r.create("h-char","comb-liga");return r.extend(n,{isCombLigaNormal:C,substCombLigaWithPUA:function(a){if(!C){var a=a||i,b=n.find(a);return b.filterOut(B,!0),D.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=r.clone(F);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),r.qsa(A,a).forEach(function(a){var b=a.getAttribute("annotation");D.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||i,b=n.find(a);b.filterOut(B,!0),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),r.extend(n.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=n.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=n.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;j.classList.contains("han-init")?n.init():(a=i.querySelector(".han-init-context"))&&(n.init=n(a).render())}),"function"==typeof define&&define.amd?define(function(){return n}):("undefined"==typeof b||b===!1)&&(a.Han=n),n})},{}],2:[function(a,b,c){b.exports=a("./dist/han")},{"./dist/han":1}],3:[function(a,b,c){(function(){var b;b=a("../index"),b().render()}).call(this)},{"../index":2}]},{},[3]); | ||
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){void function(a,c){"object"==typeof b&&"object"==typeof b.exports?b.exports=c(a,!0):c(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){var c=s.create("h-char-group","biaodian cjk");return 0===a.index&&a.isEnd?c.innerHTML=b[0]:(c.innerHTML=a.text,c.classList.add("portion"),0===a.index?c.classList.add("isFirst"):a.isEnd&&c.classList.add("isEnd")),c}function d(a){var b=s.create("div"),c=a.charCodeAt(0).toString(16),d="biaodian cjk "+(a.match(r["char"].biaodian.open)?"open":a.match(r["char"].biaodian.close)?"close end":a.match(r["char"].biaodian.end)?"end":a.match(new RegExp("("+q.biaodian.liga+")"))?"liga":"");return b.innerHTML='<h-char unicode="'+c+'" class="'+d+'">'+a+"</h-char>",b.firstChild}function e(a,b){var c,d=s.create("canvas");return d.width="50",d.height="20",d.style.display="none",l.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){s.remove(d,l)}}}function f(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function g(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=e(c,b),a=e(c,a),!f(a,b)}function h(a,b,c){var d=s.create("h-ru"),b=s.clone(b),c=c||{};return c.annotation=b.textContent,Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(s.clone(a)),d.appendChild(b)),s.setAttr(d,c),d}function i(a,b){var c,d,e,f,a=s.clone(a),g=s.create("h-ru"),h=b.textContent;return c=h.replace(r.zhuyin.diao,""),f=c?c.length:0,d=h.replace(c,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),e=h.replace(r.zhuyin.form,function(a,b,c){return[a?"S":null,b?"J":null,c?"Y":null].join("")}),g.appendChild(a),g.innerHTML+="<h-zhuyin><h-yin>"+c+"</h-yin><h-diao>"+d+"</h-diao></h-zhuyin>",s.setAttr(g,{zhuyin:"",diao:d,length:f,form:e}),g}var j=a.document,k=j.documentElement,l=j.body,m="3.2.1",n=["initCond","renderElem","renderHanging","renderJiya","renderHWS","correctBasicBD","substCombLigaWithPUA"],o=function(a,b){return new o.fn.init(a,b)},p=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};o.version=m,o.fn=o.prototype={version:m,constructor:o,context:l,condition:k,routine:n,init:p,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){try{"string"==typeof a?b[a]():Array.isArray(a)&&b[a.shift()].apply(b,a)}catch(c){}}),this}},o.fn.init.prototype=o.fn,o.init=function(){return o.init=o().render()};var q={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",ruyun:"[\u31b4-\u31b7][\u0358\u030d]?"}},r=function(){var a="[\\x20\\t\\r\\n\\f]",b=q.punct.open,c=(q.punct.close,q.punct.end),d=q.punct.middle,e=q.punct.sing,f=b+"|"+c+"|"+d,g=q.biaodian.open,h=q.biaodian.close,i=q.biaodian.end,j=q.biaodian.middle,k=q.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=q.kana.base+q.kana.combine+"?",n=q.kana.small+q.kana.combine+"?",o=q.kana.half,p=q.eonmun.base+"|"+q.eonmun.letter,r=q.eonmun.half,s=q.hanzi.base+"|"+q.hanzi.desc+"|"+q.hanzi.radical+"|"+m,t=q.ellinika.combine,u=q.latin.base+t+"*",v=q.ellinika.base+t+"*",w=q.kirillica.combine,x=q.kirillica.base+w+"*",y=u+"|"+v+"|"+x,z="['\u2019]",A=s+"|(?:"+y+"|"+z+")+",B=q.zhuyin.initial,C=q.zhuyin.medial,D=q.zhuyin["final"],E=q.zhuyin.tone+"|"+q.zhuyin.ruyun;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+s+")","g"),latin:new RegExp("("+u+")","ig"),ellinika:new RegExp("("+v+")","ig"),kirillica:new RegExp("("+x+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+p+"|"+r+")","g")},group:{biaodian:[new RegExp("(("+l+"){2,})","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+s+")+","g"),western:new RegExp("("+u+"|"+v+"|"+x+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+p+"|"+r+")+","g")},jinze:{hanging:new RegExp("("+a+"*)("+h+"*|[\u2026\u22ef]*)([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+A+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+A+")","ig"),wei:new RegExp("("+A+")("+i+"+)","ig"),middle:new RegExp("("+A+")("+j+")("+A+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+B+")?("+C+")?("+D+")?("+E+")?$"),diao:new RegExp("("+E+")","g")},hws:{base:[new RegExp("("+s+")("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")("+s+")","ig")],strict:[new RegExp("("+s+")"+a+"?("+y+"|"+b+")","ig"),new RegExp("("+y+"|"+c+")"+a+"?("+s+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();o.UNICODE=q,o.TYPESET=r,o.UNICODE.cjk=o.UNICODE.hanzi,o.UNICODE.greek=o.UNICODE.ellinika,o.UNICODE.cyrillic=o.UNICODE.kirillica,o.UNICODE.hangul=o.UNICODE.eonmun,o.TYPESET["char"].cjk=o.TYPESET["char"].hanzi,o.TYPESET["char"].greek=o.TYPESET["char"].ellinika,o.TYPESET["char"].cyrillic=o.TYPESET["char"].kirillica,o.TYPESET["char"].hangul=o.TYPESET["char"].eonmun;var s={id:function(a,b){return(b||j).getElementById(a)},tag:function(a,b){return this.makeArray((b||j).getElementsByTagName(a))},qsa:function(a,b){return this.makeArray((b||j).querySelectorAll(a))},create:function(a,b){var a="!"===a?j.createDocumentFragment():""===a?j.createTextNode(b||""):j.createElement(a);try{b&&(a.className=b)}catch(c){}return a},clone:function(a,b){return a.cloneNode(b||!0)},remove:function(a,b){return(b||a.parentNode).removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isIgnorable:function(a){return"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){var c="object"==typeof a||"function"==typeof a||"object"==typeof b;if(c){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a}}},t=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.2.1",e=b.NON_INLINE_PROSE,f=b.PRESETS.prose.filterElements,g=a||{},h=g.document||void 0;if("undefined"==typeof h)throw new Error("Fibre requires a DOM-supported environment.");var i=function(a,b){return new i.fn.init(a,b)};return i.version=d,i.matches=c,i.fn=i.prototype={constructor:i,version:d,finder:[],context:void 0,portionMode:"retain",selector:{},preset:"prose",init:function(a,b){if(b&&(this.preset=null),this.selector={context:null,filter:[],avoid:[],boundary:[]},!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?a instanceof Document?this.context=a.body||a:this.context=a:"string"==typeof a&&(this.context=h.querySelector(a),this.selector.context=a),this},filterFn:function(a){var b=this.selector.filter.join(", ")||"*",d=this.selector.avoid.join(", ")||null,e=c(a,b,!0)&&!c(a,d);return"prose"===this.preset?f(a)&&e:e},boundaryFn:function(a){var b=this.selector.boundary.join(", ")||null,d=c(a,b);return"prose"===this.preset?e(a)||d:d},filter:function(a){return"string"==typeof a&&this.selector.filter.push(a),this},endFilter:function(a){return a?this.selector.filter=[]:this.selector.filter.pop(),this},avoid:function(a){return"string"==typeof a&&this.selector.avoid.push(a),this},endAvoid:function(a){return a?this.selector.avoid=[]:this.selector.avoid.pop(),this},addBoundary:function(a){return"string"==typeof a&&this.selector.boundary.push(a),this},removeBoundary:function(){return this.selector.boundary=[],this},setMode:function(a){return this.portionMode="first"===a?"first":"retain",this},replace:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,replace:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},wrap:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,wrap:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},i.fn.filterOut=i.fn.avoid,i.fn.init.prototype=i.fn,i}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,c){var d=c.preset&&b.PRESETS[c.preset];if(c.portionMode=c.portionMode||f,d)for(var e in d)i.call(d,e)&&!i.call(c,e)&&(c[e]=d[e]);this.node=a,this.options=c,this.prepMatch=c.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}var f="retain",g="first",h=j,i=({}.toString,{}.hasOwnProperty);return b.NON_PROSE_ELEMENTS={br:1,hr:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1},b.NON_CONTIGUOUS_PROSE_ELEMENTS={address:1,article:1,aside:1,blockquote:1,dd:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,nav:1,noscript:1,ol:1,output:1,p:1,pre:1,section:1,ul:1,br:1,li:1,summary:1,dt:1,details:1,rp:1,rt:1,rtc:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1,table:1,tbody:1,thead:1,th:1,tr:1,td:1,caption:1,col:1,tfoot:1,colgroup:1},b.NON_INLINE_PROSE=function(a){return i.call(b.NON_CONTIGUOUS_PROSE_ELEMENTS,a.nodeName.toLowerCase())},b.PRESETS={prose:{forceContext:b.NON_INLINE_PROSE,filterElements:function(a){return!i.call(b.NON_PROSE_ELEMENTS,a.nodeName.toLowerCase())}}},b.Finder=e,e.prototype={search:function(){function b(a){for(var g=0,j=a.length;j>g;++g){var k=a[g];if("string"==typeof k){if(f.global)for(;c=f.exec(k);)h.push(i.prepMatch(c,d++,e));else(c=k.match(f))&&h.push(i.prepMatch(c,0,e));e+=k.length}else b(k)}}var c,d=0,e=0,f=this.options.find,g=this.getAggregateText(),h=[],i=this;return f="string"==typeof f?RegExp(a(f),"g"):f,b(g),h},prepMatch:function(a,b,c){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=c+a.index+a[0].length,a.startIndex=c+a.index,a.index=b,a},getAggregateText:function(){function a(d,e){if(3===d.nodeType)return[d.data];if(b&&!b(d))return[];var e=[""],f=0;if(d=d.firstChild)do if(3!==d.nodeType){var g=a(d);c&&1===d.nodeType&&(c===!0||c(d))?(e[++f]=g,e[++f]=""):("string"==typeof g[0]&&(e[f]+=g.shift()),g.length&&(e[++f]=g,e[++f]=""))}else e[f]+=d.data;while(d=d.nextSibling);return e}var b=this.options.filterElements,c=this.options.forceContext;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNode<j.length&&(f=h.createTextNode(j.data.substring(d.endIndexInNode)),j.parentNode.insertBefore(f,j)),j.parentNode.removeChild(j),this.reverts.push(function(){e===k.previousSibling&&e.parentNode.removeChild(e),f===k.nextSibling&&f.parentNode.removeChild(f),k.parentNode.replaceChild(j,k)}),k}e=h.createTextNode(g.data.substring(0,b.indexInNode)),f=h.createTextNode(i.data.substring(d.endIndexInNode));for(var l=this.getPortionReplacementNode(b,a),m=[],n=0,o=c.length;o>n;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}());s.extend(t.fn,{jinzify:function(){return this.avoid("h-jinze"),this.replace(r.jinze.touwei,function(a,b){var c=s.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.wei,function(a,b){var c=s.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(r.jinze.tou,function(a,b){var c=s.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(r.jinze.middle,function(a,b){var c=s.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}),this.endAvoid(),this},groupify:function(a){var a=s.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.avoid("h-hangable, h-char-group, h-word"),a.biaodian&&this.replace(r.group.biaodian[0],c).replace(r.group.biaodian[1],c),a.hanzi&&this.wrap(r.group.hanzi,s.clone(s.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(r.group.western,s.clone(s.create("h-word","western"))),a.kana&&this.wrap(r.group.kana,s.clone(s.create("h-char-group","kana"))),a.eonmun&&this.wrap(r.group.eonmun,s.clone(s.create("h-word","eonmun hangul"))),this.endAvoid(),this},charify:function(a){var a=s.extend({biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return this.avoid("h-char"),a.biaodian&&this.replace(r["char"].biaodian.all,function(a,b){return d(b[0])}).replace(r["char"].biaodian.liga,function(a,b){return d(b[0])}),a.hanzi&&this.wrap(r["char"].hanzi,s.clone(s.create("h-char","hanzi cjk"))),a.punct&&this.wrap(r["char"].punct.all,s.clone(s.create("h-char","punct"))),a.latin&&this.wrap(r["char"].latin,s.clone(s.create("h-char","alphabet latin"))),a.ellinika&&this.wrap(r["char"].ellinika,s.clone(s.create("h-char","alphabet ellinika greek"))),a.kirillica&&this.wrap(r["char"].kirillica,s.clone(s.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(r["char"].kana,s.clone(s.create("h-char","kana"))),a.eonmun&&this.wrap(r["char"].eonmun,s.clone(s.create("h-char","eonmun hangul"))),this.endAvoid(),this}}),o.find=t,void["replace","wrap","revert","jinzify","groupify","charify"].forEach(function(a){o.fn[a]=function(){return this.finder||(this.finder=o.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var u={};u.writeOnCanvas=e,u.compareCanvases=f,u.detectFont=g,u.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=l||s.create("body"),g=s.create("div"),h=l?g:f,b="function"==typeof b?b:function(){};return c=["<style>",a,"</style>"].join(""),h.innerHTML+=c,f.appendChild(g),l||(f.style.background="",f.style.overflow="hidden",e=k.style.overflow,k.style.overflow="hidden",k.appendChild(f)),d=b(h,a),s.remove(h),l||(k.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=j.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=s.create("h-test");return{ruby:function(){var a,b=s.create("ruby"),c=s.create("rt"),e=s.create("rp");return b.appendChild(e),b.appendChild(c),k.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,k.removeChild(b),b=null,c=null,e=null,a}(),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=s.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!u.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),columnwidth:b("columnWidth"),textemphasis:b("textEmphasis"),writingmode:b("writingMode")}}();var v=a.navigator.userAgent||null,w=/Trident/i.test(v);u.support["pseudo-element-clipboard"]=w?!0:!1,u.initCond=function(a){var b,a=a||k,c="";for(var d in u.support)b=(u.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c},s.extend(u,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var b=b||"u, ins",c=s.qsa(b,a),d=new RegExp("^("+b.replace(/\,\s?/g,"|")+")$","ig");c.forEach(function(a){var b;do if(b=(b||a).nextSibling,!b)return;while(s.isIgnorable(b));b.nodeName.match(d)&&b.classList.add("adjacent")})},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=s[c](b,a);d.forEach(function(a){var b=o(a);u.support.textemphasis||b.jinzify().groupify({western:!0}),b.groupify({biaodian:!0}).charify(u.support.textemphasis?{biaodian:!0,punct:!0}:{hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})},renderRuby:function(a,b){var c=b?"qsa":"tag",b=b||"ruby",d=s[c](b,a),e=s.qsa(b+", rtc",a);e.forEach(function(a){var b=a.classList;b.contains("pinyin")?b.add("romanization"):b.contains("mps")&&b.add("zhuyin"),b.contains("romanization")&&b.add("annotation")}),d.forEach(function(a){var c,d,e,f,g,j,k=a.classList,l=!u.support.ruby||k.contains("zhuyin")||k.contains("complex")||k.contains("rightangle");l&&(c=s.create("!"),c.appendChild(s.clone(a)),d=s.qsa(b,c)[0],(!u.support.ruby||k.contains("zhuyin"))&&s.tag("rt",d).forEach(function(a){var b,c=s.create("!"),d=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/(r\-?[ubt])/i))break;c.insertBefore(s.clone(b),c.firstChild),d.push(b)}while(!b.nodeName.match(/(r\-?[ubt])/i));f=k.contains("zhuyin")?i(c,a):h(c,a);try{a.parentNode.replaceChild(f,a),d.forEach(function(a){s.remove(a)})}catch(e){}}),(k.contains("complex")||k.contains("rightangle"))&&(e=f=s.tag("rb",d),g=e.length,void function(b){b&&(f=s.tag("rt",b).map(function(a,b){if(e[b]){var c=i(e[b],a);try{e[b].parentNode.replaceChild(c,e[b])}catch(d){}return c}}),s.remove(b),a.setAttribute("rightangle",""))}(d.querySelector("rtc.zhuyin")),s.qsa("rtc:not(.zhuyin)",d).forEach(function(b,c){var d;d=s.tag("rt",b).map(function(b,d){var e,i,j=Number(b.getAttribute("rbspan")||1),l=0,m=[];j>g&&(j=g);do{try{e=f.shift(),m.push(e)}catch(n){}if("undefined"==typeof e)break;l+=Number(e.getAttribute("span")||1)}while(j>l);if(l>j){if(m.length>1)return void console.error("An impossible `rbspan` value detected.",a);m=s.tag("h-rb",m[0]),f=m.slice(j).concat(f),m=m.slice(0,j),l=j}i=h(m,b,{"class":k,span:l,order:c});try{m[0].parentNode.replaceChild(i,m.shift()),m.forEach(function(a){s.remove(a)})}catch(n){}return i}),f=d,s.remove(b)})),j=s.create("h-ruby"),j.innerHTML=c.firstChild.innerHTML,s.setAttr(j,a.attributes),j.normalize(),a.parentNode.replaceChild(j,a))})}}),o.normalize=u,o.localize=u,o.support=u.support,o.detectFont=u.detectFont,o.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),o.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;o.fn[b]=function(a){return o.normalize[b](this.context,a),this}}),s.extend(o.support,{heiti:!0,songti:o.detectFont('"Han Songti"'),"songti-gb":o.detectFont('"Han Songti GB"'),kaiti:o.detectFont('"Han Kaiti"'),fangsong:o.detectFont('"Han Fangsong"')});var x="* > h-hws:first-child, * > wbr:first-child + h-hws, wbr:first-child + wbr + h-hws",y=function(){var a=s.create("div");return a.appendChild(s.create("","0-")),a.appendChild(s.create("","2")),a.normalize(),2!==a.firstChild.length}(),z=s.create("h-hws");z.setAttribute("hidden",""),z.innerHTML=" ",s.extend(o,{isNodeNormalizeNormal:y,renderHWS:function(a,b){var a=a||j,c=b?"strict":"base",d=o.find(a);return d.avoid(b?"textarea, code, kbd, samp, pre":"textarea"),d.replace(o.TYPESET.hws[c][0],"$1<hws/>$2").replace(o.TYPESET.hws[c][1],"$1<hws/>$2").replace(/(['"]+)<hws\/>(.+?)<hws\/>\1/gi,"$1$2$1").replace(/<hws\/>([\u2018\u201c]+)/gi,"$1").replace(/([\u2019\u201d]+)<hws\/>/gi,"$1").replace("<hws/>",function(){return s.clone(z)}),s.qsa(x,a).forEach(function(a){for(var b=a.parentNode,c=b.firstChild;s.isIgnorable(c);)if(c=c.nextSibling,!c)return;for(;"H-HWS"===c.nodeName&&(s.remove(c,b),c=b.parentNode.insertBefore(s.clone(z),b),b=b.parentNode,y&&b.normalize(),c===b.firstChild););}),y&&a.normalize(),d}}),s.extend(o.fn,{HWS:null,renderHWS:function(a){return o.renderHWS(this.context,a),this.HWS=s.tag("h-hws",this.context),this},revertHWS:function(){return this.HWS.forEach(function(a){s.remove(a)}),this}}),o.isSpaceFontLoaded=function(){var a,b=s.create("div");return b.innerHTML="<span>a b</span><span style=\"font-family: 'Han Space'\">a b</span>",l.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,s.remove(b,l),a}(),o.support["han-space"]=o.isSpaceFontLoaded,o.renderHanging=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, hangable").replace(r.jinze.hanging,function(a,b){var c=s.create("h-hangable"),d=b[3].charCodeAt(0).toString(16);return c.innerHTML=b[2]+'<h-cs biaodian="'+b[3]+'"><h-inner hidden> </h-inner></h-cs><h-char class="biaodian cjk end" unicode="'+d+'">'+b[3]+"</h-char>",0===a.index?c:""}),b},s.extend(o.fn,{hanging:null,renderHanging:function(){return this.hanging=o.renderHanging(this.context),this},revertHanging:function(){try{this.hanging.revert("all")}catch(a){}return this}}),o.renderJiya=function(a){var a=a||j,b=o.find(a);return b.avoid("textarea, code, kbd, samp, pre, h-char-group").replace(new RegExp("("+q.biaodian.end+"+)("+q.biaodian.open+"+)","g"),function(a,b){if(0===a.index)return a.isEnd?b[0]:b[1];var c=s.create("h-char-group","biaodian cjk portion");return c.innerHTML=b[2],c}).endAvoid(),b.avoid("textarea, code, kbd, samp, pre").groupify({biaodian:!0}).charify({biaodian:!0}),s.qsa("h-char.biaodian.open, h-char.biaodian.end",a).forEach(function(a){var b="<h-inner>"+a.innerHTML+"</h-inner>",c="<h-cs hidden> </h-cs>",d=a.classList.contains("open");a.innerHTML=d?c+b:b+c}),b},s.extend(o.fn,{jiya:null,renderJiya:function(){return this.jiya=o.renderJiya(this.context),this},revertJiya:function(){try{this.jiya.revert("all")}catch(a){}return this}});var A;A=s.create("h-char","biaodian cjk middle"),A.setAttribute("unicode","b7"),o.correctBasicBD=function(a,b){if(!o.support.unicoderange||b){var c,a=a||j;c=o.find(a),c.wrap(/\u00B7/g,s.clone(A)).charify({biaodian:!0})}},s.extend(o.fn,{basicBD:null,correctBasicBD:function(a){return this.basicBD=o.correctBasicBD(this.context,a),this},revertBasicBD:function(){try{this.basicBD.revert("all")}catch(a){}return this}});var B="h-ru[annotation]",C="textarea, code, kbd, samp, pre",D=function(){var a=o.localize.writeOnCanvas("i\u030d",'"Romanization Sans"'),b=o.localize.writeOnCanvas("\udb80\udc69",'"Romanization Sans"');return o.localize.compareCanvases(a,b)}(),E=o.TYPESET["display-as"]["comb-liga-pua"],F=o.TYPESET["inaccurate-char"],G=s.create("h-char","comb-liga");return s.extend(o,{isCombLigaNormal:D,substCombLigaWithPUA:function(a){if(!D){var a=a||j,b=o.find(a);return b.avoid(C),E.forEach(function(a){b.replace(new RegExp(a[0],"ig"),function(b,c){var d=s.clone(G);return d.innerHTML="<h-inner>"+c[0]+"</h-inner>",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),s.qsa(B,a).forEach(function(a){var b=a.getAttribute("annotation");E.slice(0,5).forEach(function(a){b=b.replace(new RegExp(a[0],"ig"),a[1])}),a.setAttribute("annotation",b)}),b}},substInaccurateChar:function(a){var a=a||j,b=o.find(a);b.avoid(C),F.forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),s.extend(o.fn,{"comb-liga":null,"inaccurate-char":null,substCombLigaWithPUA:function(){return this["comb-liga"]=o.substCombLigaWithPUA(this.context),this},revertCombLigaWithPUA:function(){try{this["comb-liga"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=o.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;k.classList.contains("han-init")?o.init():(a=j.querySelector(".han-init-context"))&&(o.init=o(a).render())}),"function"==typeof define&&define.amd?define(function(){return o}):("undefined"==typeof b||b===!1)&&(a.Han=o),o})},{}],2:[function(a,b,c){b.exports=a("./dist/han")},{"./dist/han":1}],3:[function(a,b,c){(function(){var b;b=a("../index"),b().render()}).call(this)},{"../index":2}]},{},[3]); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1571150
170
14643
+ Addedfibre.js@0.2.1(transitive)
+ Addedfindandreplacedomtext@0.4.6(transitive)
- Removedfibre.js@0.1.2(transitive)
Updatedfibre.js@^0.2.1