${title}
Created by:
${author}
${text}
{"ScriptPreparationCode":"window.articles = [\r\n {\r\n title: \u0027Lorem ipsum dolor sit amet\u0027,\r\n author: \u0027John Doe\u0027,\r\n text: \u0027Lorem ipsum dolor sit amet, consectetur adipisicing elit.\\nIllum, impedit voluptatem? Ratione.\u0027\r\n },\r\n {\r\n title: \u0027Consectetur adipisicing\u0027,\r\n author: \u0027John Dox\u0027,\r\n text: \u0027Lorem ipsum dolor sit amet,\\nconsectetur adipisicing elit.\\nIllum, impedit voluptatem?\u0027\r\n },\r\n {\r\n title: \u0027Impedit voluptatem\u0027,\r\n author: \u0027Johan Doch\u0027,\r\n text: \u0027Impedit voluptatem? Lorem ipsum dolor sit amet,\\nconsectetur adipisicing elit.\u0027\r\n }\r\n];\r\n\r\nconst keys = [\u0027title\u0027, \u0027author\u0027, \u0027text\u0027];\r\nconst classes = [\r\n \u0027.article-header_\u0027 \u002B keys[0],\r\n \u0027.article-header_\u0027 \u002B keys[1],\r\n \u0027.article-\u0027 \u002B keys[2]\r\n];\r\n\r\n// get template, clone it, replace textContent of nodes\r\nconst realTemplate = document.getElementById(\u0027real-template\u0027);\r\nwindow.fromTemplate = (vars) =\u003E {\r\n const node = realTemplate.content.firstElementChild.cloneNode(true);\r\n const nodes = node.querySelectorAll(\u0027\u0027 \u002B classes);\r\n for (let i = 0; keys[i]; i\u002B\u002B) {\r\n nodes[i].textContent = vars[keys[i]];\r\n }\r\n return node;\r\n}\r\n\r\n// get template, replace full HTML, clone it\r\nconst tempTemplate = document.createElement(\u0027template\u0027);\r\nwindow.fromString = (vars) =\u003E {\r\n tempTemplate.innerHTML = \u0060\r\n \u003Carticle class=\u0022article\u0022\u003E\r\n \u003Cheader class=\u0022article-header\u0022\u003E\r\n \u003Ch1 class=\u0022article-header_title\u0022\u003E${vars.title}\u003C/h1\u003E\r\n \u003Ci class=\u0022article-header_created\u0022\u003E\r\n Created by:\r\n \u003Cb class=\u0022article-header_author\u0022\u003E${vars.author}\u003C/b\u003E\r\n \u003C/i\u003E\r\n \u003C/header\u003E\r\n \u003Cp class=\u0022article-text\u0022\u003E${vars.text}\u003C/p\u003E\r\n \u003C/article\u003E\u0060;\r\n return tempTemplate.content.firstElementChild.cloneNode(true);\r\n}","TestCases":[{"Name":"From template","Code":"let i = 10000;\r\nwhile (i--) {\r\n if (i % 3 === 0) {\r\n fromTemplate(articles[2]);\r\n continue;\r\n }\r\n if (i % 2 === 0) {\r\n fromTemplate(articles[1]);\r\n continue;\r\n }\r\n fromTemplate(articles[0]);\r\n}","IsDeferred":false},{"Name":"From string","Code":"let i = 10000;\r\nwhile (i--) {\r\n if (i % 3 === 0) {\r\n fromString(articles[2]);\r\n continue;\r\n }\r\n if (i % 2 === 0) {\r\n fromString(articles[1]);\r\n continue;\r\n }\r\n fromString(articles[0]);\r\n}","IsDeferred":false}]}