diff --git a/CHANGELOG.md b/CHANGELOG.md index 27e05708..0fb4c5ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ # Version History -## Version tbd (2020-11-tbd) +## Version 4.8.1 (2020-11-05) ### Fixed * Don't hyphenate words with (non-normalized) COMBINING ACCENTS (#147) +* bump devDependencies ### Changed * use TextDecoder instead of StringDecoder diff --git a/Hyphenopoly.js b/Hyphenopoly.js index b35cd522..1252a90f 100644 --- a/Hyphenopoly.js +++ b/Hyphenopoly.js @@ -1,5 +1,5 @@ /** - * @license Hyphenopoly 4.8.0 - client side hyphenation for webbrowsers + * @license Hyphenopoly 4.8.1 - client side hyphenation for webbrowsers * ©2020 Mathias Nater, Güttingen (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenopoly * diff --git a/Hyphenopoly_Loader.js b/Hyphenopoly_Loader.js index 584233ff..b7a76462 100644 --- a/Hyphenopoly_Loader.js +++ b/Hyphenopoly_Loader.js @@ -1,5 +1,5 @@ /** - * @license Hyphenopoly_Loader 4.8.0 - client side hyphenation + * @license Hyphenopoly_Loader 4.8.1 - client side hyphenation * ©2020 Mathias Nater, Güttingen (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenopoly * diff --git a/docs/min/Hyphenopoly.js b/docs/min/Hyphenopoly.js index cf451a84..bdbfbd34 100644 --- a/docs/min/Hyphenopoly.js +++ b/docs/min/Hyphenopoly.js @@ -1,9 +1,9 @@ /** - * @license Hyphenopoly 4.7.0 - client side hyphenation for webbrowsers + * @license Hyphenopoly 4.8.1 - client side hyphenation for webbrowsers * ©2020 Mathias Nater, Güttingen (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenopoly * * Released under the MIT license * http://mnater.github.io/Hyphenopoly/LICENSE */ -((e,t)=>{"use strict";const n=(n=>{const r=new Map([["afterElementHyphenation",[]],["beforeElementHyphenation",[]],["engineReady",[]],["error",[t=>{t.runDefault&&e.console.warn(t)}]],["hyphenopolyEnd",[]],["hyphenopolyStart",[]]]);if(n.handleEvent){const e=new Map(t.entries(n.handleEvent));r.forEach(((t,n)=>{e.has(n)&&t.unshift(e.get(n))}))}return{fire:(e,t)=>{t.runDefault=!0,t.preventDefault=()=>{t.runDefault=!1},r.get(e).forEach((e=>{e(t)}))}}})(Hyphenopoly);(e=>{function n(e){const t=new Map;function n(n){return t.has(n)?t.get(n):e.get(n)}function r(e,n){t.set(e,n)}return new Proxy(e,{get:(e,t)=>"set"===t?r:"get"===t?n:n(t),ownKeys:()=>[...new Set([...e.keys(),...t.keys()])]})}const r=n(new Map([["defaultLanguage","en-us"],["dontHyphenate",n(new Map("abbr,acronym,audio,br,button,code,img,input,kbd,label,math,option,pre,samp,script,style,sub,sup,svg,textarea,var,video".split(",").map((e=>[e,!0]))))],["dontHyphenateClass","donthyphenate"],["exceptions",new Map],["keepAlive",!0],["normalize",!1],["processShadows",!1],["safeCopy",!0],["substitute",new Map],["timeout",1e3]]));t.entries(e.s).forEach((([e,a])=>{switch(e){case"selectors":r.set("selectors",t.keys(a)),t.entries(a).forEach((([e,a])=>{const o=n(new Map([["compound","hyphen"],["hyphen","­"],["leftmin",0],["leftminPerLang",0],["minWordLength",6],["mixedCase",!0],["orphanControl",1],["rightmin",0],["rightminPerLang",0]]));t.entries(a).forEach((([e,n])=>{"object"==typeof n?o.set(e,new Map(t.entries(n))):o.set(e,n)})),r.set(e,o)}));break;case"dontHyphenate":case"exceptions":t.entries(a).forEach((([t,n])=>{r.get(e).set(t,n)}));break;case"substitute":t.entries(a).forEach((([e,n])=>{r.substitute.set(e,new Map(t.entries(n)))}));break;default:r.set(e,a)}})),e.c=r})(Hyphenopoly),(r=>{const a=r.c;let o=null;function s(e,t){try{return e.getAttribute("lang")?e.getAttribute("lang").toLowerCase():"html"===e.tagName.toLowerCase()?t?o:null:s(e.parentNode,t)}catch(e){return null}}function l(o=null,l=null){const i=function(){const e=new Map,t=[0];return{add:function(n,r,a){const o={element:n,selector:a};return e.has(r)||e.set(r,[]),e.get(r).push(o),t[0]+=1,o},counter:t,list:e,rem:function(r){let o=0;e.has(r)&&(o=e.get(r).length,e.delete(r),t[0]-=o,0===t[0]&&(n.fire("hyphenopolyEnd",{msg:"hyphenopolyEnd"}),a.keepAlive||(window.Hyphenopoly=null)))}}}(),c=(()=>{let e="."+a.dontHyphenateClass;return t.getOwnPropertyNames(a.dontHyphenate).forEach((t=>{a.dontHyphenate.get(t)&&(e+=","+t)})),e})(),h=a.selectors.join(",")+","+c;function u(t,o,l,c=!1){const p=function(e,t){return e.lang&&"string"==typeof e.lang?e.lang.toLowerCase():t&&""!==t?t.toLowerCase():s(e,!0)}(t,o),g=r.cf.langs.get(p);"H9Y"===g?(i.add(t,p,l),!c&&a.safeCopy&&function(t){t.addEventListener("copy",(t=>{t.preventDefault();const n=e.getSelection(),r=document.createElement("div");r.appendChild(n.getRangeAt(0).cloneContents()),t.clipboardData.setData("text/plain",n.toString().replace(/­/g,"")),t.clipboardData.setData("text/html",r.innerHTML.replace(/­/g,""))}),!0)}(t)):g||n.fire("error",Error(`Element with '${p}' found, but '${p}.wasm' not loaded. Check language tags!`)),t.childNodes.forEach((e=>{1!==e.nodeType||e.matches(h)||u(e,p,l,!0)}))}function p(e){a.selectors.forEach((t=>{e.querySelectorAll(t).forEach((e=>{u(e,s(e,!0),t,!1)}))}))}return null===o?(a.processShadows&&e.document.querySelectorAll("*").forEach((e=>{e.shadowRoot&&p(e.shadowRoot)})),p(e.document)):u(o,s(o,!0),l),i}n.fire("hyphenopolyStart",{msg:"hyphenopolyStart"});const i=new Map;function c(e,t,r){const o=t+"-"+r;if(i.has(o))return i.get(o);const s=a.get(r);function l(a){let o=e.cache.get(r).get(a);var l;return o||(o=e.exc.has(a)?e.exc.get(a).replace(/-/g,s.hyphen):!s.mixedCase&&(l=a,[...l].map((e=>e===e.toLowerCase())).some(((e,t,n)=>e!==n[0])))?a:-1===a.indexOf("-")?function(r){if(r.length>61)n.fire("error",Error("Found word longer than 61 characters"));else if(!e.reNotAlphabet.test(r))return e.hyphenate(r,s.hyphen.charCodeAt(0),s.leftminPerLang.get(t),s.rightminPerLang.get(t));return r}(a):function(n){let a=null,o=null;return"auto"===s.compound||"all"===s.compound?(o=c(e,t,r),a=n.split("-").map((e=>e.length>=s.minWordLength?o(e):e)),n="auto"===s.compound?a.join("-"):a.join("-​")):n=n.replace("-","-​"),n}(a),e.cache.get(r).set(a,o)),o}return e.cache.set(r,new Map),i.set(o,l),l}const h=new Map;function u(e,t,o){const s=r.languages.get(e),l=a.get(t),i=l.minWordLength,u=RegExp(`[${s.alphabet}a-zß-öø-þāăąćĉčďđēėęěĝğģĥīįıĵķļľłńņňōőœŕřśŝşšťūŭůűųźżžſǎǐǒǔǖǘǚǜșțʼΐά-ώϐϣϥϧϩϫϭϯϲа-яё-ќўџґүөա-օևअ-ऌएऐओ-नप-रलळव-हऽॠॡঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹઅ-ઋએઐઓ-નપ-રલળવ-હઽૠଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହୠୡஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-வஷ-ஹఅ-ఌఎ-ఐఒ-నప-ళవ-హౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡഅ-ഌഎ-ഐഒ-നപ-ഹൠൡൺ-ൿก-ฮะาำเ-ๅა-ჰሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏḍḷṁṃṅṇṭἀ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾲ-ᾴᾶᾷῂ-ῄῆῇῒΐῖῗῢ-ῧῲ-ῴῶῷⲁⲃⲅⲇⲉⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⳉⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ­​-‍-]{${i},}`,"gui");function p(n){a.normalize&&(n=n.normalize("NFC"));let r=n.replace(u,c(s,e,t));return 1!==l.orphanControl&&(r=r.replace(/(\u0020*)(\S+)(\s*)$/,function(e){if(h.has(e))return h.get(e);const t=a.get(e);function n(e,n,r,a){return 3===t.orphanControl&&" "===n&&(n=" "),n+r.replace(RegExp(t.hyphen,"g"),"")+a}return h.set(e,n),n}(t))),r}let g=null;var f;return"string"==typeof o?g=p(o):o instanceof HTMLElement&&(f=o,n.fire("beforeElementHyphenation",{el:f,lang:e}),f.childNodes.forEach((e=>{3===e.nodeType&&/\S/.test(e.data)&&e.data.length>=i&&(e.data=p(e.data))})),r.res.els.counter[0]-=1,n.fire("afterElementHyphenation",{el:f,lang:e})),g}function p(t,o){const s=o.list.get(t);s?s.forEach((e=>{u(t,e.selector,e.element)})):n.fire("error",Error(`Engine for language '${t}' loaded, but no elements found.`)),0===o.counter[0]&&(e.clearTimeout(r.timeOutHandler),-1!==a.hide&&r.hide(0,null),n.fire("hyphenopolyEnd",{msg:"hyphenopolyEnd"}),a.keepAlive||(window.Hyphenopoly=null))}function g(e){let t="";return a.exceptions.has(e)&&(t=a.exceptions.get(e)),a.exceptions.has("global")&&(""===t?t=a.exceptions.get("global"):t+=", "+a.exceptions.get("global")),""===t?new Map:new Map(t.split(", ").map((e=>[e.replace(/-/g,""),e])))}r.unhyphenate=()=>(r.res.els.list.forEach((e=>{e.forEach((e=>{const t=e.element.firstChild;t.data=t.data.replace(RegExp(a[e.selector].hyphen,"g"),"")}))})),Promise.resolve(r.res.els));const f=(()=>{if(e.TextDecoder){const e=new TextDecoder("utf-16le");return t=>e.decode(t)}return e=>String.fromCharCode.apply(null,e)})();r.res.DOM.then((()=>{o=s(e.document.documentElement,!1),o||""===a.defaultLanguage||(o=a.defaultLanguage);const t=l();r.res.els=t,t.list.forEach(((e,n)=>{r.languages&&r.languages.has(n)&&r.languages.get(n).ready&&p(n,t)}))})),r.res.he.forEach(((e,t)=>{!function(e,t){const o=window.WebAssembly;e.w.then((n=>{if(n.ok){let t=n;return e.c&&(t=n.clone()),o.instantiateStreaming&&"application/wasm"===n.headers.get("Content-Type")?o.instantiateStreaming(t):t.arrayBuffer().then((e=>o.instantiate(e)))}return Promise.reject(Error(`File ${t}.wasm can't be loaded from ${r.paths.patterndir}`))})).then((function(e){const s=e.instance.exports;let l=s.conv();l=function(e,n){return a.substitute.has(t)&&a.substitute.get(t).forEach(((t,r)=>{const a=r.toUpperCase(),o=a===r?0:a.charCodeAt(0);e=n.subst(r.charCodeAt(0),o,t.charCodeAt(0))})),e}(l,s);const i={buf:s.mem.buffer,hw:o.Global?s.hwo.value:s.hwo,lm:o.Global?s.lmi.value:s.lmi,rm:o.Global?s.rmi.value:s.rmi,wo:o.Global?s.uwo.value:s.uwo};!function(e,t,o,s,l){a.selectors.forEach((t=>{const n=a.get(t);0===n.leftminPerLang&&n.set("leftminPerLang",new Map),0===n.rightminPerLang&&n.set("rightminPerLang",new Map),n.leftminPerLang.set(e,Math.max(s,n.leftmin,Number(n.leftminPerLang.get(e))||0)),n.rightminPerLang.set(e,Math.max(l,n.rightmin,Number(n.rightminPerLang.get(e))||0))})),r.languages||(r.languages=new Map),o=o.replace(/-/g,"\\-"),r.languages.set(e,{alphabet:o,cache:new Map,exc:g(e),hyphenate:t,ready:!0,reNotAlphabet:RegExp(`[^${o}]`,"gi")}),r.hy6ors.get(e).resolve(function(e){return(t,r=".hyphenate")=>("string"!=typeof t&&n.fire("error",Error("This use of hyphenators is deprecated. See https://mnater.github.io/Hyphenopoly/Hyphenators.html")),u(e,r,t))}(e)),n.fire("engineReady",{lang:e}),r.res.els&&p(e,r.res.els)}(t,function(e,t){const n=new Uint16Array(e.buf,e.wo,64),r=new Uint16Array(e.buf,e.hw,128);return(e,a,o,s)=>(n.set([95].concat([...e].map((e=>e.charCodeAt(0))),95,0)),1===t(o,s,a)&&(e=f(r.subarray(1,r[0]+1))),e)}(i,s.hyphenate),f(new Uint16Array(s.mem.buffer,1026,l-1)),i.lm,i.rm)}),(e=>{n.fire("error",e),r.res.els.rem(t)}))}(e,t)})),Promise.all([...r.hy6ors.entries()].reduce(((e,t)=>"HTML"!==t[0]?e.concat(t[1]):e),[]).concat(r.res.DOM)).then((()=>{r.hy6ors.get("HTML").resolve(((e,t=".hyphenate")=>(l(e,t).list.forEach(((e,t)=>{e.forEach((e=>{u(t,e.selector,e.element)}))})),null)))}),(e=>{n.fire("error",e)}))})(Hyphenopoly)})(window,Object); \ No newline at end of file +((e,t)=>{"use strict";const n=(n=>{const r=new Map([["afterElementHyphenation",[]],["beforeElementHyphenation",[]],["engineReady",[]],["error",[t=>{t.runDefault&&e.console.warn(t)}]],["hyphenopolyEnd",[]],["hyphenopolyStart",[]]]);if(n.handleEvent){const e=new Map(t.entries(n.handleEvent));r.forEach(((t,n)=>{e.has(n)&&t.unshift(e.get(n))}))}return{fire:(e,t)=>{t.runDefault=!0,t.preventDefault=()=>{t.runDefault=!1},r.get(e).forEach((e=>{e(t)}))}}})(Hyphenopoly);(e=>{function n(e){const t=new Map;function n(n){return t.has(n)?t.get(n):e.get(n)}function r(e,n){t.set(e,n)}return new Proxy(e,{get:(e,t)=>"set"===t?r:"get"===t?n:n(t),ownKeys:()=>[...new Set([...e.keys(),...t.keys()])]})}const r=n(new Map([["defaultLanguage","en-us"],["dontHyphenate",n(new Map("abbr,acronym,audio,br,button,code,img,input,kbd,label,math,option,pre,samp,script,style,sub,sup,svg,textarea,var,video".split(",").map((e=>[e,!0]))))],["dontHyphenateClass","donthyphenate"],["exceptions",new Map],["keepAlive",!0],["normalize",!1],["processShadows",!1],["safeCopy",!0],["substitute",new Map],["timeout",1e3]]));t.entries(e.s).forEach((([e,a])=>{switch(e){case"selectors":r.set("selectors",t.keys(a)),t.entries(a).forEach((([e,a])=>{const o=n(new Map([["compound","hyphen"],["hyphen","­"],["leftmin",0],["leftminPerLang",0],["minWordLength",6],["mixedCase",!0],["orphanControl",1],["rightmin",0],["rightminPerLang",0]]));t.entries(a).forEach((([e,n])=>{"object"==typeof n?o.set(e,new Map(t.entries(n))):o.set(e,n)})),r.set(e,o)}));break;case"dontHyphenate":case"exceptions":t.entries(a).forEach((([t,n])=>{r.get(e).set(t,n)}));break;case"substitute":t.entries(a).forEach((([e,n])=>{r.substitute.set(e,new Map(t.entries(n)))}));break;default:r.set(e,a)}})),e.c=r})(Hyphenopoly),(r=>{const a=r.c;let o=null;function s(e,t){try{return e.getAttribute("lang")?e.getAttribute("lang").toLowerCase():"html"===e.tagName.toLowerCase()?t?o:null:s(e.parentNode,t)}catch(e){return null}}function l(o=null,l=null){const i=function(){const e=new Map,t=[0];return{add:function(n,r,a){const o={element:n,selector:a};return e.has(r)||e.set(r,[]),e.get(r).push(o),t[0]+=1,o},counter:t,list:e,rem:function(r){let o=0;e.has(r)&&(o=e.get(r).length,e.delete(r),t[0]-=o,0===t[0]&&(n.fire("hyphenopolyEnd",{msg:"hyphenopolyEnd"}),a.keepAlive||(window.Hyphenopoly=null)))}}}(),c=(()=>{let e="."+a.dontHyphenateClass;return t.getOwnPropertyNames(a.dontHyphenate).forEach((t=>{a.dontHyphenate.get(t)&&(e+=","+t)})),e})(),h=a.selectors.join(",")+","+c;function u(t,o,l,c=!1){const p=function(e,t){return e.lang&&"string"==typeof e.lang?e.lang.toLowerCase():t&&""!==t?t.toLowerCase():s(e,!0)}(t,o),g=r.cf.langs.get(p);"H9Y"===g?(i.add(t,p,l),!c&&a.safeCopy&&function(t){t.addEventListener("copy",(t=>{t.preventDefault();const n=e.getSelection(),r=document.createElement("div");r.appendChild(n.getRangeAt(0).cloneContents()),t.clipboardData.setData("text/plain",n.toString().replace(/­/g,"")),t.clipboardData.setData("text/html",r.innerHTML.replace(/­/g,""))}),!0)}(t)):g||n.fire("error",Error(`Element with '${p}' found, but '${p}.wasm' not loaded. Check language tags!`)),t.childNodes.forEach((e=>{1!==e.nodeType||e.matches(h)||u(e,p,l,!0)}))}function p(e){a.selectors.forEach((t=>{e.querySelectorAll(t).forEach((e=>{u(e,s(e,!0),t,!1)}))}))}return null===o?(a.processShadows&&e.document.querySelectorAll("*").forEach((e=>{e.shadowRoot&&p(e.shadowRoot)})),p(e.document)):u(o,s(o,!0),l),i}n.fire("hyphenopolyStart",{msg:"hyphenopolyStart"});const i=new Map;function c(e,t,r){const o=t+"-"+r;if(i.has(o))return i.get(o);const s=a.get(r);function l(a){let o=e.cache.get(r).get(a);var l;return o||(o=e.exc.has(a)?e.exc.get(a).replace(/-/g,s.hyphen):!s.mixedCase&&(l=a,[...l].map((e=>e===e.toLowerCase())).some(((e,t,n)=>e!==n[0])))?a:-1===a.indexOf("-")?function(r){if(r.length>61)n.fire("error",Error("Found word longer than 61 characters"));else if(!e.reNotAlphabet.test(r))return e.hyphenate(r,s.hyphen.charCodeAt(0),s.leftminPerLang.get(t),s.rightminPerLang.get(t));return r}(a):function(n){let a=null,o=null;return"auto"===s.compound||"all"===s.compound?(o=c(e,t,r),a=n.split("-").map((e=>e.length>=s.minWordLength?o(e):e)),n="auto"===s.compound?a.join("-"):a.join("-​")):n=n.replace("-","-​"),n}(a),e.cache.get(r).set(a,o)),o}return e.cache.set(r,new Map),i.set(o,l),l}const h=new Map;function u(e,t,o){const s=r.languages.get(e),l=a.get(t),i=l.minWordLength,u=RegExp(`[${s.alphabet}a-z̀-ͯ҃-҇ß-öø-þāăąćĉčďđēėęěĝğģĥīįıĵķļľłńņňōőœŕřśŝşšťūŭůűųźżžſǎǐǒǔǖǘǚǜșțʼΐά-ώϐϣϥϧϩϫϭϯϲа-яё-ќўџґүөա-օևअ-ऌएऐओ-नप-रलळव-हऽॠॡঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹઅ-ઋએઐઓ-નપ-રલળવ-હઽૠଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହୠୡஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-வஷ-ஹఅ-ఌఎ-ఐఒ-నప-ళవ-హౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡഅ-ഌഎ-ഐഒ-നപ-ഹൠൡൺ-ൿก-ฮะาำเ-ๅა-ჰሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏḍḷṁṃṅṇṭἀ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾲ-ᾴᾶᾷῂ-ῄῆῇῒΐῖῗῢ-ῧῲ-ῴῶῷⲁⲃⲅⲇⲉⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⳉⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ­​-‍-]{${i},}`,"gui");function p(n){a.normalize&&(n=n.normalize("NFC"));let r=n.replace(u,c(s,e,t));return 1!==l.orphanControl&&(r=r.replace(/(\u0020*)(\S+)(\s*)$/,function(e){if(h.has(e))return h.get(e);const t=a.get(e);function n(e,n,r,a){return 3===t.orphanControl&&" "===n&&(n=" "),n+r.replace(RegExp(t.hyphen,"g"),"")+a}return h.set(e,n),n}(t))),r}let g=null;var f;return"string"==typeof o?g=p(o):o instanceof HTMLElement&&(f=o,n.fire("beforeElementHyphenation",{el:f,lang:e}),f.childNodes.forEach((e=>{3===e.nodeType&&/\S/.test(e.data)&&e.data.length>=i&&(e.data=p(e.data))})),r.res.els.counter[0]-=1,n.fire("afterElementHyphenation",{el:f,lang:e})),g}function p(t,o){const s=o.list.get(t);s?s.forEach((e=>{u(t,e.selector,e.element)})):n.fire("error",Error(`Engine for language '${t}' loaded, but no elements found.`)),0===o.counter[0]&&(e.clearTimeout(r.timeOutHandler),-1!==a.hide&&r.hide(0,null),n.fire("hyphenopolyEnd",{msg:"hyphenopolyEnd"}),a.keepAlive||(window.Hyphenopoly=null))}function g(e){let t="";return a.exceptions.has(e)&&(t=a.exceptions.get(e)),a.exceptions.has("global")&&(""===t?t=a.exceptions.get("global"):t+=", "+a.exceptions.get("global")),""===t?new Map:new Map(t.split(", ").map((e=>[e.replace(/-/g,""),e])))}r.unhyphenate=()=>(r.res.els.list.forEach((e=>{e.forEach((e=>{const t=e.element.firstChild;t.data=t.data.replace(RegExp(a[e.selector].hyphen,"g"),"")}))})),Promise.resolve(r.res.els));const f=(()=>{if(e.TextDecoder){const e=new TextDecoder("utf-16le");return t=>e.decode(t)}return e=>String.fromCharCode.apply(null,e)})();r.res.DOM.then((()=>{o=s(e.document.documentElement,!1),o||""===a.defaultLanguage||(o=a.defaultLanguage);const t=l();r.res.els=t,t.list.forEach(((e,n)=>{r.languages&&r.languages.has(n)&&r.languages.get(n).ready&&p(n,t)}))})),r.res.he.forEach(((e,t)=>{!function(e,t){const o=window.WebAssembly;e.w.then((n=>{if(n.ok){let t=n;return e.c&&(t=n.clone()),o.instantiateStreaming&&"application/wasm"===n.headers.get("Content-Type")?o.instantiateStreaming(t):t.arrayBuffer().then((e=>o.instantiate(e)))}return Promise.reject(Error(`File ${t}.wasm can't be loaded from ${r.paths.patterndir}`))})).then((function(e){const s=e.instance.exports;let l=s.conv();l=function(e,n){return a.substitute.has(t)&&a.substitute.get(t).forEach(((t,r)=>{const a=r.toUpperCase(),o=a===r?0:a.charCodeAt(0);e=n.subst(r.charCodeAt(0),o,t.charCodeAt(0))})),e}(l,s);const i={buf:s.mem.buffer,hw:o.Global?s.hwo.value:s.hwo,lm:o.Global?s.lmi.value:s.lmi,rm:o.Global?s.rmi.value:s.rmi,wo:o.Global?s.uwo.value:s.uwo};!function(e,t,o,s,l){a.selectors.forEach((t=>{const n=a.get(t);0===n.leftminPerLang&&n.set("leftminPerLang",new Map),0===n.rightminPerLang&&n.set("rightminPerLang",new Map),n.leftminPerLang.set(e,Math.max(s,n.leftmin,Number(n.leftminPerLang.get(e))||0)),n.rightminPerLang.set(e,Math.max(l,n.rightmin,Number(n.rightminPerLang.get(e))||0))})),r.languages||(r.languages=new Map),o=o.replace(/-/g,"\\-"),r.languages.set(e,{alphabet:o,cache:new Map,exc:g(e),hyphenate:t,ready:!0,reNotAlphabet:RegExp(`[^${o}]`,"gi")}),r.hy6ors.get(e).resolve(function(e){return(t,r=".hyphenate")=>("string"!=typeof t&&n.fire("error",Error("This use of hyphenators is deprecated. See https://mnater.github.io/Hyphenopoly/Hyphenators.html")),u(e,r,t))}(e)),n.fire("engineReady",{lang:e}),r.res.els&&p(e,r.res.els)}(t,function(e,t){const n=new Uint16Array(e.buf,e.wo,64),r=new Uint16Array(e.buf,e.hw,128);return(e,a,o,s)=>(n.set([95].concat([...e].map((e=>e.charCodeAt(0))),95,0)),1===t(o,s,a)&&(e=f(r.subarray(1,r[0]+1))),e)}(i,s.hyphenate),f(new Uint16Array(s.mem.buffer,1026,l-1)),i.lm,i.rm)}),(e=>{n.fire("error",e),r.res.els.rem(t)}))}(e,t)})),Promise.all([...r.hy6ors.entries()].reduce(((e,t)=>"HTML"!==t[0]?e.concat(t[1]):e),[]).concat(r.res.DOM)).then((()=>{r.hy6ors.get("HTML").resolve(((e,t=".hyphenate")=>(l(e,t).list.forEach(((e,t)=>{e.forEach((e=>{u(t,e.selector,e.element)}))})),null)))}),(e=>{n.fire("error",e)}))})(Hyphenopoly)})(window,Object); \ No newline at end of file diff --git a/docs/min/Hyphenopoly_Loader.js b/docs/min/Hyphenopoly_Loader.js index 5fb0786c..5ca0c191 100644 --- a/docs/min/Hyphenopoly_Loader.js +++ b/docs/min/Hyphenopoly_Loader.js @@ -1,5 +1,5 @@ /** - * @license Hyphenopoly_Loader 4.7.0 - client side hyphenation + * @license Hyphenopoly_Loader 4.8.1 - client side hyphenation * ©2020 Mathias Nater, Güttingen (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenopoly * diff --git a/docs/min/patterns/af.wasm b/docs/min/patterns/af.wasm index 40cd06eb..0e68752e 100644 Binary files a/docs/min/patterns/af.wasm and b/docs/min/patterns/af.wasm differ diff --git a/docs/min/patterns/as.wasm b/docs/min/patterns/as.wasm index 1b4395ee..946d25c0 100644 Binary files a/docs/min/patterns/as.wasm and b/docs/min/patterns/as.wasm differ diff --git a/docs/min/patterns/be.wasm b/docs/min/patterns/be.wasm index 5c6292dd..a2b6aa12 100644 Binary files a/docs/min/patterns/be.wasm and b/docs/min/patterns/be.wasm differ diff --git a/docs/min/patterns/bg.wasm b/docs/min/patterns/bg.wasm index 677bdcfc..2d53cbd1 100644 Binary files a/docs/min/patterns/bg.wasm and b/docs/min/patterns/bg.wasm differ diff --git a/docs/min/patterns/bn.wasm b/docs/min/patterns/bn.wasm index a7cee78a..70a7bfcd 100644 Binary files a/docs/min/patterns/bn.wasm and b/docs/min/patterns/bn.wasm differ diff --git a/docs/min/patterns/ca.wasm b/docs/min/patterns/ca.wasm index 40a678ea..a02f5666 100644 Binary files a/docs/min/patterns/ca.wasm and b/docs/min/patterns/ca.wasm differ diff --git a/docs/min/patterns/cs.wasm b/docs/min/patterns/cs.wasm index 24f96cb0..79e07060 100644 Binary files a/docs/min/patterns/cs.wasm and b/docs/min/patterns/cs.wasm differ diff --git a/docs/min/patterns/cy.wasm b/docs/min/patterns/cy.wasm index 7d33be31..947b6e78 100644 Binary files a/docs/min/patterns/cy.wasm and b/docs/min/patterns/cy.wasm differ diff --git a/docs/min/patterns/da.wasm b/docs/min/patterns/da.wasm index 372b41e4..85b8482f 100644 Binary files a/docs/min/patterns/da.wasm and b/docs/min/patterns/da.wasm differ diff --git a/docs/min/patterns/de.wasm b/docs/min/patterns/de.wasm index 9b7b2c2b..0a518ad4 100644 Binary files a/docs/min/patterns/de.wasm and b/docs/min/patterns/de.wasm differ diff --git a/docs/min/patterns/el-monoton.wasm b/docs/min/patterns/el-monoton.wasm index 41f9b2e1..03e3169f 100644 Binary files a/docs/min/patterns/el-monoton.wasm and b/docs/min/patterns/el-monoton.wasm differ diff --git a/docs/min/patterns/el-polyton.wasm b/docs/min/patterns/el-polyton.wasm index 95851cb5..de89400f 100644 Binary files a/docs/min/patterns/el-polyton.wasm and b/docs/min/patterns/el-polyton.wasm differ diff --git a/docs/min/patterns/en-gb.wasm b/docs/min/patterns/en-gb.wasm index 380ddaed..1054fee1 100644 Binary files a/docs/min/patterns/en-gb.wasm and b/docs/min/patterns/en-gb.wasm differ diff --git a/docs/min/patterns/en-us.wasm b/docs/min/patterns/en-us.wasm index 2dcb875c..e34d02ad 100644 Binary files a/docs/min/patterns/en-us.wasm and b/docs/min/patterns/en-us.wasm differ diff --git a/docs/min/patterns/eo.wasm b/docs/min/patterns/eo.wasm index c8cd02c6..5b54912f 100644 Binary files a/docs/min/patterns/eo.wasm and b/docs/min/patterns/eo.wasm differ diff --git a/docs/min/patterns/es.wasm b/docs/min/patterns/es.wasm index 7bcf57ae..cc501eda 100644 Binary files a/docs/min/patterns/es.wasm and b/docs/min/patterns/es.wasm differ diff --git a/docs/min/patterns/et.wasm b/docs/min/patterns/et.wasm index 4812f68d..caaf1f72 100644 Binary files a/docs/min/patterns/et.wasm and b/docs/min/patterns/et.wasm differ diff --git a/docs/min/patterns/eu.wasm b/docs/min/patterns/eu.wasm index 55f0412c..809bc929 100644 Binary files a/docs/min/patterns/eu.wasm and b/docs/min/patterns/eu.wasm differ diff --git a/docs/min/patterns/fi.wasm b/docs/min/patterns/fi.wasm index 32d43345..17709124 100644 Binary files a/docs/min/patterns/fi.wasm and b/docs/min/patterns/fi.wasm differ diff --git a/docs/min/patterns/fr.wasm b/docs/min/patterns/fr.wasm index 8dacfdf1..49919398 100644 Binary files a/docs/min/patterns/fr.wasm and b/docs/min/patterns/fr.wasm differ diff --git a/docs/min/patterns/fur.wasm b/docs/min/patterns/fur.wasm index 0350ded1..8df0d53a 100644 Binary files a/docs/min/patterns/fur.wasm and b/docs/min/patterns/fur.wasm differ diff --git a/docs/min/patterns/ga.wasm b/docs/min/patterns/ga.wasm index 14e5eeef..b2810a16 100644 Binary files a/docs/min/patterns/ga.wasm and b/docs/min/patterns/ga.wasm differ diff --git a/docs/min/patterns/gl.wasm b/docs/min/patterns/gl.wasm index 00b35bc4..9f30258a 100644 Binary files a/docs/min/patterns/gl.wasm and b/docs/min/patterns/gl.wasm differ diff --git a/docs/min/patterns/gu.wasm b/docs/min/patterns/gu.wasm index b574180f..737f5dc0 100644 Binary files a/docs/min/patterns/gu.wasm and b/docs/min/patterns/gu.wasm differ diff --git a/docs/min/patterns/hi.wasm b/docs/min/patterns/hi.wasm index ed550402..873c6dc1 100644 Binary files a/docs/min/patterns/hi.wasm and b/docs/min/patterns/hi.wasm differ diff --git a/docs/min/patterns/hr.wasm b/docs/min/patterns/hr.wasm index 8e4aae32..6be5c4d6 100644 Binary files a/docs/min/patterns/hr.wasm and b/docs/min/patterns/hr.wasm differ diff --git a/docs/min/patterns/hsb.wasm b/docs/min/patterns/hsb.wasm index b77d1fff..76e38510 100644 Binary files a/docs/min/patterns/hsb.wasm and b/docs/min/patterns/hsb.wasm differ diff --git a/docs/min/patterns/hu.wasm b/docs/min/patterns/hu.wasm index e3d83275..da273d35 100644 Binary files a/docs/min/patterns/hu.wasm and b/docs/min/patterns/hu.wasm differ diff --git a/docs/min/patterns/hy.wasm b/docs/min/patterns/hy.wasm index e5cea407..28004937 100644 Binary files a/docs/min/patterns/hy.wasm and b/docs/min/patterns/hy.wasm differ diff --git a/docs/min/patterns/ia.wasm b/docs/min/patterns/ia.wasm index 128cb290..e9d139c4 100644 Binary files a/docs/min/patterns/ia.wasm and b/docs/min/patterns/ia.wasm differ diff --git a/docs/min/patterns/id.wasm b/docs/min/patterns/id.wasm index 887ad17e..1f000d2e 100644 Binary files a/docs/min/patterns/id.wasm and b/docs/min/patterns/id.wasm differ diff --git a/docs/min/patterns/is.wasm b/docs/min/patterns/is.wasm index 2d0b3bba..8aa2ba4f 100644 Binary files a/docs/min/patterns/is.wasm and b/docs/min/patterns/is.wasm differ diff --git a/docs/min/patterns/it.wasm b/docs/min/patterns/it.wasm index 9631d5e6..2963f621 100644 Binary files a/docs/min/patterns/it.wasm and b/docs/min/patterns/it.wasm differ diff --git a/docs/min/patterns/ka.wasm b/docs/min/patterns/ka.wasm index d4d6838b..5bde0397 100644 Binary files a/docs/min/patterns/ka.wasm and b/docs/min/patterns/ka.wasm differ diff --git a/docs/min/patterns/kmr.wasm b/docs/min/patterns/kmr.wasm index 0efbca00..dbb6df06 100644 Binary files a/docs/min/patterns/kmr.wasm and b/docs/min/patterns/kmr.wasm differ diff --git a/docs/min/patterns/kn.wasm b/docs/min/patterns/kn.wasm index 8a29cf99..a4839e71 100644 Binary files a/docs/min/patterns/kn.wasm and b/docs/min/patterns/kn.wasm differ diff --git a/docs/min/patterns/la.wasm b/docs/min/patterns/la.wasm index 8f196921..1d109651 100644 Binary files a/docs/min/patterns/la.wasm and b/docs/min/patterns/la.wasm differ diff --git a/docs/min/patterns/lt.wasm b/docs/min/patterns/lt.wasm index f5fda5d4..61ee1abe 100644 Binary files a/docs/min/patterns/lt.wasm and b/docs/min/patterns/lt.wasm differ diff --git a/docs/min/patterns/lv.wasm b/docs/min/patterns/lv.wasm index 2ec32586..417f61df 100644 Binary files a/docs/min/patterns/lv.wasm and b/docs/min/patterns/lv.wasm differ diff --git a/docs/min/patterns/mk.wasm b/docs/min/patterns/mk.wasm index 2e84ed44..62cc4f8e 100644 Binary files a/docs/min/patterns/mk.wasm and b/docs/min/patterns/mk.wasm differ diff --git a/docs/min/patterns/ml.wasm b/docs/min/patterns/ml.wasm index 06ec851b..a3cad7b8 100644 Binary files a/docs/min/patterns/ml.wasm and b/docs/min/patterns/ml.wasm differ diff --git a/docs/min/patterns/mn-cyrl.wasm b/docs/min/patterns/mn-cyrl.wasm index 458a0123..80564e44 100644 Binary files a/docs/min/patterns/mn-cyrl.wasm and b/docs/min/patterns/mn-cyrl.wasm differ diff --git a/docs/min/patterns/mr.wasm b/docs/min/patterns/mr.wasm index 5f39330c..4182d4ba 100644 Binary files a/docs/min/patterns/mr.wasm and b/docs/min/patterns/mr.wasm differ diff --git a/docs/min/patterns/nb.wasm b/docs/min/patterns/nb.wasm index 2f439287..168673fc 100644 Binary files a/docs/min/patterns/nb.wasm and b/docs/min/patterns/nb.wasm differ diff --git a/docs/min/patterns/nl.wasm b/docs/min/patterns/nl.wasm index d98e3568..6e9e5e13 100644 Binary files a/docs/min/patterns/nl.wasm and b/docs/min/patterns/nl.wasm differ diff --git a/docs/min/patterns/nn.wasm b/docs/min/patterns/nn.wasm index 2d3f96b2..953f1c6a 100644 Binary files a/docs/min/patterns/nn.wasm and b/docs/min/patterns/nn.wasm differ diff --git a/docs/min/patterns/no.wasm b/docs/min/patterns/no.wasm index 3bd538a1..5b32b184 100644 Binary files a/docs/min/patterns/no.wasm and b/docs/min/patterns/no.wasm differ diff --git a/docs/min/patterns/oc.wasm b/docs/min/patterns/oc.wasm index 739254b1..cf8cd1b8 100644 Binary files a/docs/min/patterns/oc.wasm and b/docs/min/patterns/oc.wasm differ diff --git a/docs/min/patterns/or.wasm b/docs/min/patterns/or.wasm index 4d18037e..c3cc780b 100644 Binary files a/docs/min/patterns/or.wasm and b/docs/min/patterns/or.wasm differ diff --git a/docs/min/patterns/pa.wasm b/docs/min/patterns/pa.wasm index 43db7062..58acb7a3 100644 Binary files a/docs/min/patterns/pa.wasm and b/docs/min/patterns/pa.wasm differ diff --git a/docs/min/patterns/pl.wasm b/docs/min/patterns/pl.wasm index 8bafd50e..dff8fbc4 100644 Binary files a/docs/min/patterns/pl.wasm and b/docs/min/patterns/pl.wasm differ diff --git a/docs/min/patterns/pms.wasm b/docs/min/patterns/pms.wasm index 56f90a25..5a4ad601 100644 Binary files a/docs/min/patterns/pms.wasm and b/docs/min/patterns/pms.wasm differ diff --git a/docs/min/patterns/pt.wasm b/docs/min/patterns/pt.wasm index 7940d975..971752a6 100644 Binary files a/docs/min/patterns/pt.wasm and b/docs/min/patterns/pt.wasm differ diff --git a/docs/min/patterns/rm.wasm b/docs/min/patterns/rm.wasm index fe8d0cf9..7dd71d19 100644 Binary files a/docs/min/patterns/rm.wasm and b/docs/min/patterns/rm.wasm differ diff --git a/docs/min/patterns/ro.wasm b/docs/min/patterns/ro.wasm index 1f1196e5..2d16a8e2 100644 Binary files a/docs/min/patterns/ro.wasm and b/docs/min/patterns/ro.wasm differ diff --git a/docs/min/patterns/ru.wasm b/docs/min/patterns/ru.wasm index d173c13d..fd974d48 100644 Binary files a/docs/min/patterns/ru.wasm and b/docs/min/patterns/ru.wasm differ diff --git a/docs/min/patterns/sh-cyrl.wasm b/docs/min/patterns/sh-cyrl.wasm index 26281304..fb59d76d 100644 Binary files a/docs/min/patterns/sh-cyrl.wasm and b/docs/min/patterns/sh-cyrl.wasm differ diff --git a/docs/min/patterns/sh-latn.wasm b/docs/min/patterns/sh-latn.wasm index 1ec2308a..8db88188 100644 Binary files a/docs/min/patterns/sh-latn.wasm and b/docs/min/patterns/sh-latn.wasm differ diff --git a/docs/min/patterns/sk.wasm b/docs/min/patterns/sk.wasm index 575fa39f..9b89dbb3 100644 Binary files a/docs/min/patterns/sk.wasm and b/docs/min/patterns/sk.wasm differ diff --git a/docs/min/patterns/sl.wasm b/docs/min/patterns/sl.wasm index 96453174..6e5ff5bd 100644 Binary files a/docs/min/patterns/sl.wasm and b/docs/min/patterns/sl.wasm differ diff --git a/docs/min/patterns/sr-cyrl.wasm b/docs/min/patterns/sr-cyrl.wasm index 7505eecc..a1192d42 100644 Binary files a/docs/min/patterns/sr-cyrl.wasm and b/docs/min/patterns/sr-cyrl.wasm differ diff --git a/docs/min/patterns/sv.wasm b/docs/min/patterns/sv.wasm index 167db2e8..4b18720d 100644 Binary files a/docs/min/patterns/sv.wasm and b/docs/min/patterns/sv.wasm differ diff --git a/docs/min/patterns/ta.wasm b/docs/min/patterns/ta.wasm index 85b13351..2e779814 100644 Binary files a/docs/min/patterns/ta.wasm and b/docs/min/patterns/ta.wasm differ diff --git a/docs/min/patterns/te.wasm b/docs/min/patterns/te.wasm index 59238f43..a5e4994e 100644 Binary files a/docs/min/patterns/te.wasm and b/docs/min/patterns/te.wasm differ diff --git a/docs/min/patterns/th.wasm b/docs/min/patterns/th.wasm index 14b370e9..25a88ded 100644 Binary files a/docs/min/patterns/th.wasm and b/docs/min/patterns/th.wasm differ diff --git a/docs/min/patterns/tk.wasm b/docs/min/patterns/tk.wasm index f736547b..e20531b7 100644 Binary files a/docs/min/patterns/tk.wasm and b/docs/min/patterns/tk.wasm differ diff --git a/docs/min/patterns/tr.wasm b/docs/min/patterns/tr.wasm index 5bf96491..0e6fb267 100644 Binary files a/docs/min/patterns/tr.wasm and b/docs/min/patterns/tr.wasm differ diff --git a/docs/min/patterns/uk.wasm b/docs/min/patterns/uk.wasm index acc1f138..5de3f777 100644 Binary files a/docs/min/patterns/uk.wasm and b/docs/min/patterns/uk.wasm differ diff --git a/docs/min/patterns/zh-latn-pinyin.wasm b/docs/min/patterns/zh-latn-pinyin.wasm index c393c6ea..5f7726a2 100644 Binary files a/docs/min/patterns/zh-latn-pinyin.wasm and b/docs/min/patterns/zh-latn-pinyin.wasm differ diff --git a/docs/min/testsuite/test50.html b/docs/min/testsuite/test50.html new file mode 100644 index 00000000..169113a8 --- /dev/null +++ b/docs/min/testsuite/test50.html @@ -0,0 +1,90 @@ + + + + + Test 050 + + + + + + + +

Test 050

+

Don't hyphenate words with combining accents.

+
+
+

è = LATIN SMALL LETTER E WITH GRAVE

+

critères

+

cri•tères

+

è = LATIN SMALL LETTER E + COMBINING GRAVE ACCENT

+

critères

+

critères

+ +
+
Test Ref
+ + + \ No newline at end of file diff --git a/docs/min/testsuite/test6.html b/docs/min/testsuite/test6.html index 4c322dba..c38564ec 100644 --- a/docs/min/testsuite/test6.html +++ b/docs/min/testsuite/test6.html @@ -102,10 +102,10 @@

1: hy

Հա|յե|րենն ունի վեց ձայնա|վոր, մեկ կի|սա|ձայն և ե|րե|սուն բա|ղա|ձայն հնչյուններ

2: be

БЕЛАРУ́СКАЯ МО́ВА, мова беларусаў, уваходзіць у сям’ю індаеўрапейскіх моў, яе славянскай групы і ўсходнеславянскіх моваў падгрупы, на якой размаўляюць у Беларусі і па ўсім свеце, галоўным чынам у Расіі, Украіне, Польшчы.

-

БЕ|ЛА|РУ́СКАЯ МО́ВА, мо|ва бе|ла|ру|саў, ува|хо|дзіць у сям’ю ін|да|еў|ра|пей|с|кіх моў, яе сла|вя|н|с|кай гру|пы і ўс|хо|д|не|с|ла|вя|н|с|кіх мо|ваў пад|гру|пы, на якой раз|маў|ля|юць у Бе|ла|ру|сі і па ўсім све|це, га|лоў|ным чы|нам у Ра|сіі, Ук|ра|і|не, Поль|ш|чы.

+

БЕЛАРУ́СКАЯ МО́ВА, мо|ва бе|ла|ру|саў, ува|хо|дзіць у сям’ю ін|да|еў|ра|пей|с|кіх моў, яе сла|вя|н|с|кай гру|пы і ўс|хо|д|не|с|ла|вя|н|с|кіх мо|ваў пад|гру|пы, на якой раз|маў|ля|юць у Бе|ла|ру|сі і па ўсім све|це, га|лоў|ным чы|нам у Ра|сіі, Ук|ра|і|не, Поль|ш|чы.

3: ru

Типогра́фика — графическое оформление печатного текста посредством набора и вёрстки с использованием норм и правил, специфических для данного языка.

-

Ти|по|гра́фи|ка — гра|фи|че|ское оформ|ле|ние пе|чат|но|го тек|ста по|сред|ством на|бо|ра и вёрст|ки с ис|поль|зо|ва|ни|ем норм и пра|вил, спе|ци|фи|че|ских для дан|но|го язы|ка.

+

Типогра́фика — гра|фи|че|ское оформ|ле|ние пе|чат|но|го тек|ста по|сред|ством на|бо|ра и вёрст|ки с ис|поль|зо|ва|ни|ем норм и пра|вил, спе|ци|фи|че|ских для дан|но|го язы|ка.

4: sr-cyrl

Штампарија се примарно бави израдом штампаних пословних образаца који имају разноврсну примену. Наше пословне обрасце користи велики број задовољних клијената из разних делатности. Такође, се бавимо и дигиталном штампом.

Шта|мпа|ри|ја се при|мар|но ба|ви из|ра|дом шта|мпа|них по|слов|них обра|за|ца ко|ји има|ју раз|но|вр|сну при|ме|ну. На|ше по|слов|не об|ра|сце ко|ри|сти ве|ли|ки број за|до|вољ|них кли|је|на|та из раз|них де|лат|но|сти. Та|ко|ђе, се ба|ви|мо и ди|ги|та|лном шта|мпом.

@@ -123,7 +123,7 @@

8: as

এই প্ৰব|ন্ধ|টো অ|স|ম|ত প্ৰচ|লি|ত মূল ভা|ষা|টো‎ৰ বি|ষ|য়ে। আন ব্যৱহাৰৰ বা|বে অ|স|মী|য়া (দ্ব্যৰ্থ|তা দূৰীকৰণ পৃ|ষ্ঠা) চা|ও|ক।

9: bg

Бъ̀лгарският езѝк е индоевропейски език от групата на южнославянските езици, като образува неговата източна подгрупа.

-

Бъ̀лгар|с|ки|ят езѝк е ин|до|ев|ро|пейс|ки език от гру|па|та на юж|нос|ла|вян|с|ки|те ези|ци, ка|то об|ра|зу|ва не|го|ва|та из|точ|на под|гру|па.

+

Бъ̀лгарският езѝк е ин|до|ев|ро|пейс|ки език от гру|па|та на юж|нос|ла|вян|с|ки|те ези|ци, ка|то об|ра|зу|ва не|го|ва|та из|точ|на под|гру|па.

10: bn

বাংলা নামের অন্যান্য নিবন্ধের জন্য, বাংলা (দ্ব্যর্থতা নিরসন) দেখুন।

বাং|লা না|মে|র অ|ন্যা|ন্য নি|ব|ন্ধে|র জ|ন্য, বাং|লা (দ্ব্য|র্থ|তা নি|র|স|ন) দে|খু|ন।

diff --git a/docs/min/testsuite/testdriver.js b/docs/min/testsuite/testdriver.js index 0a596f34..1d34af0e 100644 --- a/docs/min/testsuite/testdriver.js +++ b/docs/min/testsuite/testdriver.js @@ -53,7 +53,8 @@ {"exec": true, "path": "test46.html"}, {"exec": true, "path": "test47.html"}, {"exec": true, "path": "test48.html"}, - {"exec": true, "path": "test49.html"} + {"exec": true, "path": "test49.html"}, + {"exec": true, "path": "test50.html"} ]; var testframe = document.getElementById("testframe"); var currentTest = 1; diff --git a/hyphenopoly.module.js b/hyphenopoly.module.js index b3200307..790fadd7 100644 --- a/hyphenopoly.module.js +++ b/hyphenopoly.module.js @@ -1,5 +1,5 @@ /** - * @license Hyphenopoly.module.js 4.8.0 - hyphenation for node + * @license Hyphenopoly.module.js 4.8.1 - hyphenation for node * ©2020 Mathias Nater, Güttingen (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenopoly * diff --git a/package-lock.json b/package-lock.json index 1b15b300..c45c2bb8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "hyphenopoly", - "version": "4.8.0", + "version": "4.8.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a4fb9c56..40ce94c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hyphenopoly", - "version": "4.8.0", + "version": "4.8.1", "description": "Hyphenation for node and Polyfill for client-side hyphenation.", "keywords": [ "hyphenation",