<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dirk Levinus Nicolaas</title>
    <description>The latest articles on DEV Community by Dirk Levinus Nicolaas (@dirkncl).</description>
    <link>https://dev.to/dirkncl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102604%2F21dc2032-b1a8-4026-aa78-41b8fe43d1ec.jpeg</url>
      <title>DEV Community: Dirk Levinus Nicolaas</title>
      <link>https://dev.to/dirkncl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dirkncl"/>
    <language>en</language>
    <item>
      <title>Many roads lead to Rome</title>
      <dc:creator>Dirk Levinus Nicolaas</dc:creator>
      <pubDate>Sat, 02 Mar 2019 16:26:03 +0000</pubDate>
      <link>https://dev.to/dirkncl/many-roads-lead-to-rome-1d0c</link>
      <guid>https://dev.to/dirkncl/many-roads-lead-to-rome-1d0c</guid>
      <description>&lt;p&gt;Become a programming, besides curiosity, also must have intelligence/skills outsmart (if it fails in a certain way, must try in other ways and so on)&lt;/p&gt;

&lt;p&gt;The use of a simple editor will be more useful in the process of learning javascript programming, because we are required to explore the entire flow of programs that we make without any automatic correction. If I am asked to recommend, I recommend as I currently use (Notepad++).&lt;/p&gt;

&lt;p&gt;Finding references is very necessary for someone who wants to be a programmer, as for the basic references we have to learn that I can recommend are MDN &lt;em&gt;(&lt;a href="https://developer.mozilla.org/"&gt;https://developer.mozilla.org/&lt;/a&gt;)&lt;/em&gt;, W3School &lt;em&gt;(&lt;a href="https://www.w3schools.com/"&gt;https://www.w3schools.com/&lt;/a&gt;)&lt;/em&gt; and Stackoverflow &lt;em&gt;(&lt;a href="https://stackoverflow.com/"&gt;https://stackoverflow.com/&lt;/a&gt;)&lt;/em&gt; . We don't need to learn everything because if that's what we do, we can go crazy alone. We simply search for what we need. Every piece of information we have to document properly for offline reference.&lt;/p&gt;

&lt;p&gt;Okay for beginners, let's try:&lt;/p&gt;

&lt;p&gt;The challenge is to fill a piece of html in elements that are in HTML with a piece of javascript.&lt;br&gt;
For example we want to put &amp;lt; div &amp;gt;Hello&amp;lt; /div &amp;gt; anywhere in the html, or call the js file or css file to place it in our html.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;link href="css/cvd.css" rel="stylesheet" /&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;link href="css/mn.css" rel="stylesheet" /&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;script src="js/cmn.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;script src="js/cvs.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;script src="js/mn.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;div id='test'&amp;gt;&lt;/span&gt;
    &lt;span class="s"&gt;&amp;lt;div&amp;gt;Hello&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;  
&lt;span class="s"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="s"&gt;function include(htmlcontent, toEl){&lt;/span&gt;
    &lt;span class="s"&gt;//because of the .createRange() factor, then htmlcontent in the form of an array&lt;/span&gt;
  &lt;span class="s"&gt;  //used include(['contentHTM', ...], 'html' || 'body' || head /* default = 'head' */)&lt;/span&gt;
    &lt;span class="s"&gt;toEl = toEl||"head";&lt;/span&gt;
    &lt;span class="s"&gt;var range = document.createRange();&lt;/span&gt;
    &lt;span class="s"&gt;var docElement = (toEl == "html"||toEl == "head"||toEl == "body")? docElement = document.getElementsByTagName(toEl)[0]&lt;/span&gt; &lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docElement = toEl&lt;/span&gt;
    &lt;span class="s"&gt;/*&lt;/span&gt;      
    &lt;span class="s"&gt;if(htmlcontent == &lt;/span&gt;&lt;span class="no"&gt;null&lt;/span&gt;&lt;span class="s"&gt;){&lt;/span&gt;
      &lt;span class="s"&gt;alert(new TypeError('The HtmlContent must be filled in'))&lt;/span&gt;
    &lt;span class="s"&gt;}&lt;/span&gt;
    &lt;span class="s"&gt;if (htmlcontent.length == 1 ){&lt;/span&gt;
      &lt;span class="s"&gt;docElement.appendChild(range.createContextualFragment(htmlcontent[0]));&lt;/span&gt;
    &lt;span class="s"&gt;}&lt;/span&gt;
    &lt;span class="s"&gt;if (htmlcontent.length &amp;gt;1 ){&lt;/span&gt;
      &lt;span class="s"&gt;docElement.appendChild(range.createContextualFragment(htmlcontent));&lt;/span&gt;
    &lt;span class="s"&gt;}*/&lt;/span&gt;
    &lt;span class="s"&gt;/*simplified to be*/&lt;/span&gt;
    &lt;span class="s"&gt;switch (true){&lt;/span&gt;
       &lt;span class="s"&gt;case htmlcontent == &lt;/span&gt;&lt;span class="no"&gt;null&lt;/span&gt; &lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;alert(new TypeError('The HtmlContent must be filled in'));break;&lt;/span&gt;
       &lt;span class="s"&gt;case htmlcontent.length == 1&lt;/span&gt; &lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docElement.appendChild(range.createContextualFragment(htmlcontent[0]));break;&lt;/span&gt;
       &lt;span class="s"&gt;case htmlcontent.length &amp;gt;1 :docElement.appendChild(range.createContextualFragment(htmlcontent));;break&lt;/span&gt;
    &lt;span class="s"&gt;}&lt;/span&gt;
  &lt;span class="s"&gt;};&lt;/span&gt;
  &lt;span class="s"&gt;/* Examples of its use*/&lt;/span&gt;
  &lt;span class="s"&gt;//window.onload = (function(){&lt;/span&gt;
  &lt;span class="s"&gt;//or&lt;/span&gt;
  &lt;span class="s"&gt;//(function(){&lt;/span&gt;
  &lt;span class="s"&gt;//or&lt;/span&gt;

    &lt;span class="s"&gt;/* Examples of calling js or css files */&lt;/span&gt;
    &lt;span class="s"&gt;var cvsCss = "css/cvd.css",&lt;/span&gt;
        &lt;span class="s"&gt;mnCss  = "css/mn.css",&lt;/span&gt;
        &lt;span class="s"&gt;cmJs  = "js/cmn.js",&lt;/span&gt;
        &lt;span class="s"&gt;cvsJs = "js/cvs.js",&lt;/span&gt;
        &lt;span class="s"&gt;mnJs = "js/mn.js",&lt;/span&gt;
        &lt;span class="s"&gt;stySht = "stylesheet";&lt;/span&gt;
    &lt;span class="s"&gt;var tpl_css = function(cont){return `&amp;lt;link href=${cont} rel=${stySht} \/&amp;gt;`}&lt;/span&gt; 
    &lt;span class="s"&gt;var tpl_scr = function(cont){return `&amp;lt;script src=${cont}&amp;gt;&amp;lt;\/script&amp;gt;`}&lt;/span&gt; 
    &lt;span class="s"&gt;include([&lt;/span&gt;
      &lt;span class="s"&gt;tpl_css(cvsCss),&lt;/span&gt;
      &lt;span class="s"&gt;tpl_css(mnCss),&lt;/span&gt;
      &lt;span class="s"&gt;tpl_scr(cmJs),&lt;/span&gt;
      &lt;span class="s"&gt;tpl_scr(cvsJs),&lt;/span&gt;
      &lt;span class="s"&gt;tpl_scr(mnJs)&lt;/span&gt;
    &lt;span class="s"&gt;],"head");&lt;/span&gt;
    &lt;span class="s"&gt;// or&lt;/span&gt;
    &lt;span class="s"&gt;//],"html");&lt;/span&gt;
    &lt;span class="s"&gt;//],"body");&lt;/span&gt;


    &lt;span class="s"&gt;/*Example of filling html in element*/&lt;/span&gt;
    &lt;span class="s"&gt;include(['&amp;lt;div id=\'test\'&amp;gt;&amp;lt;/div&amp;gt;'],'body');&lt;/span&gt;
    &lt;span class="s"&gt;include(['&amp;lt;div&amp;gt;Hello&amp;lt;/div&amp;gt;'],document.getElementById('test'));&lt;/span&gt;
  &lt;span class="s"&gt;//})();&lt;/span&gt;
  &lt;span class="s"&gt;//or&lt;/span&gt;
  &lt;span class="s"&gt;//})();&lt;/span&gt;
  &lt;span class="s"&gt;//or none&lt;/span&gt;

&lt;span class="s"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;further development to be more flexible for users, namely appendChild can be selected as appendChid or insertBefore.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That is one illustration, that only with pure javascript, can we create a versatile function.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Being a programmer, we must have curiosity.&lt;/li&gt;
&lt;li&gt;We must have the intelligence to outsmart, because there is the term "Many roads lead to Rome".&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Mathjax can be edited like mathquill, is it possible? </title>
      <dc:creator>Dirk Levinus Nicolaas</dc:creator>
      <pubDate>Sat, 02 Mar 2019 07:47:34 +0000</pubDate>
      <link>https://dev.to/dirkncl/mathjax-can-be-edited-like-mathquill-is-it-possible--2oa7</link>
      <guid>https://dev.to/dirkncl/mathjax-can-be-edited-like-mathquill-is-it-possible--2oa7</guid>
      <description>&lt;p&gt;&lt;em&gt;For those who are still learning and investigating the greatness of html and javascript today, it's best to multiply learning the original syntax, it will be more productive but the file size is not large..&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The development of HTML / javascript technology is so fast, something that was once impossible, can now be possible.&lt;br&gt;
Without a javascript program, Mathjax can be edited directly like Mathquill, to refine the editing it can be tricked with a simple program from JavaScript.&lt;/p&gt;

&lt;p&gt;Roughly all html pages can be edited with a new html syntax, but we should take the important elements.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Examples for all htm pages can be edited:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na"&gt;contenteditable=&lt;/span&gt;&lt;span class="s"&gt;'true'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
Equation*:

\begin{equation*}
E = mc^2
\end{equation*}

&lt;span class="nt"&gt;&amp;lt;hr&amp;gt;&lt;/span&gt;
Brackets:

\[E = mc^2\]

Brackets tagged:

\[E = mc^2\tag{x}\]

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;examples for elements:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;contenteditable=&lt;/span&gt;&lt;span class="s"&gt;'true'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;\[E = mc^2\tag{x}\] &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;contenteditable=&lt;/span&gt;&lt;span class="s"&gt;'true'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;\[E = mc^2\tag{x}\] &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;with a piece of javascript:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'mj'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; 
\begin {equation}
E = mc ^ 2
\end {equation}
&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mj&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt; &lt;span class="nx"&gt;ondblclick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mj&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt; &lt;span class="nx"&gt;setAttribute&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;contenteditable&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)};&lt;/span&gt;
&lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mj&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mj&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt; &lt;span class="nx"&gt;setAttribute&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;contenteditable&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;false&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)};&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  conclusion.
&lt;/h3&gt;

&lt;p&gt;The conclusion is that there is no conclusion because this is still a new thing for me.&lt;/p&gt;

&lt;p&gt;I myself am still trying and trying to outsmart tricks according to my reasoning abilities, because there is no reference (Mathjax can be edited) that discusses this (???).&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>html</category>
      <category>mathjax</category>
    </item>
    <item>
      <title>Learn about javascript templates</title>
      <dc:creator>Dirk Levinus Nicolaas</dc:creator>
      <pubDate>Thu, 28 Feb 2019 20:09:59 +0000</pubDate>
      <link>https://dev.to/dirkncl/learn-about-javascript-templates-4f51</link>
      <guid>https://dev.to/dirkncl/learn-about-javascript-templates-4f51</guid>
      <description>&lt;p&gt;Modern JavaScript has provided templating, meaning javascript programming does not currently need to use library handelbars or mustcache, because modern Javascript has provided it with a combination of `` and ${}, I cannot explain this but is still curious.&lt;/p&gt;

&lt;p&gt;This templates model really doesn't need to be made a library but can be used directly.&lt;br&gt;
Let's experiment with the templates created by the library compared to direct use.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt; &lt;span class="s"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;     
&lt;span class="s"&gt;//templatingjs.js&lt;/span&gt;
&lt;span class="s"&gt;var Template = function Template (template, Obj, Func) {&lt;/span&gt;
        &lt;span class="s"&gt;return Template.transform (template, Obj, Func)&lt;/span&gt;
      &lt;span class="s"&gt;}&lt;/span&gt;

      &lt;span class="s"&gt;Template.convert = function convert (template, Functions) {&lt;/span&gt;
        &lt;span class="s"&gt;return ExecTemplateFunc (template, Functions)&lt;/span&gt;
      &lt;span class="s"&gt;}&lt;/span&gt;

      &lt;span class="s"&gt;Template.transform = function transform (template, Obj, Functions) {&lt;/span&gt;
        &lt;span class="s"&gt;if (typeof Obj === 'function') {&lt;/span&gt;
          &lt;span class="s"&gt;Functions = Obj&lt;/span&gt;
          &lt;span class="s"&gt;Obj = &lt;/span&gt;&lt;span class="no"&gt;false&lt;/span&gt;
        &lt;span class="s"&gt;}&lt;/span&gt;
        &lt;span class="s"&gt;if (typeof Functions === 'function') {&lt;/span&gt;
          &lt;span class="s"&gt;Template.convert (template, function (err, func) {&lt;/span&gt;
            &lt;span class="s"&gt;if (err) return Functions (err)&lt;/span&gt;
            &lt;span class="s"&gt;try {&lt;/span&gt;
                &lt;span class="s"&gt;func (Obj)&lt;/span&gt;
            &lt;span class="s"&gt;}&lt;/span&gt;
            &lt;span class="s"&gt;catch (err) {&lt;/span&gt;
              &lt;span class="s"&gt;Functions (err)&lt;/span&gt;
              &lt;span class="s"&gt;return&lt;/span&gt;
            &lt;span class="s"&gt;}&lt;/span&gt;
            &lt;span class="s"&gt;Functions (null, func (Obj));&lt;/span&gt;

          &lt;span class="s"&gt;})&lt;/span&gt;
          &lt;span class="s"&gt;return&lt;/span&gt;
        &lt;span class="s"&gt;}&lt;/span&gt;
        &lt;span class="s"&gt;return ExecTemplateFunc (template) (Obj)&lt;/span&gt;
      &lt;span class="s"&gt;}&lt;/span&gt;

      &lt;span class="s"&gt;var ExecTemplate = function ExecTemplate (template) {&lt;/span&gt;
        &lt;span class="s"&gt;if (typeof template! == 'string') {&lt;/span&gt;
          &lt;span class="s"&gt;throw new TypeError ('ExecTemplate&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;expect `template` to be a string')&lt;/span&gt;
        &lt;span class="s"&gt;}&lt;/span&gt;

        &lt;span class="s"&gt;return function obj2func (Objs) {&lt;/span&gt;
          &lt;span class="s"&gt;if (! (Objs! = &lt;/span&gt;&lt;span class="no"&gt;null&lt;/span&gt;&lt;span class="s"&gt; &amp;amp;&amp;amp; typeof Objs === 'object' &amp;amp;&amp;amp; Array.isArray (Objs) === &lt;/span&gt;&lt;span class="no"&gt;false&lt;/span&gt;&lt;span class="s"&gt;)) {&lt;/span&gt;
            &lt;span class="s"&gt;throw new TypeError ('ExecTemplate&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;expect `Objs' to be an object')&lt;/span&gt;
          &lt;span class="s"&gt;}&lt;/span&gt;

          &lt;span class="s"&gt;var keys = []&lt;/span&gt;
          &lt;span class="s"&gt;var vals = []&lt;/span&gt;

          &lt;span class="s"&gt;for (var key in Objs) {&lt;/span&gt;
            &lt;span class="s"&gt;keys.push (key)&lt;/span&gt;
            &lt;span class="s"&gt;vals.push (Objs [key])&lt;/span&gt;
          &lt;span class="s"&gt;}&lt;/span&gt;
          &lt;span class="s"&gt;return new Function (keys, 'return `' + template + '`') .apply (Objs, vals)&lt;/span&gt;
        &lt;span class="s"&gt;}&lt;/span&gt;
      &lt;span class="s"&gt;}&lt;/span&gt;

      &lt;span class="s"&gt;var ExecTemplateFunc = function ExecTemplateFunc (template, Func) {&lt;/span&gt;
        &lt;span class="s"&gt;if (typeof Func === 'function') {&lt;/span&gt;
          &lt;span class="s"&gt;try {&lt;/span&gt;
              &lt;span class="s"&gt;ExecTemplate (template)&lt;/span&gt;
          &lt;span class="s"&gt;}&lt;/span&gt;
          &lt;span class="s"&gt;catch (err) {&lt;/span&gt;
            &lt;span class="s"&gt;Func (err)&lt;/span&gt;
            &lt;span class="s"&gt;return&lt;/span&gt;
          &lt;span class="s"&gt;}&lt;/span&gt;
          &lt;span class="s"&gt;Func (null, ExecTemplate (template));&lt;/span&gt;

          &lt;span class="s"&gt;return&lt;/span&gt;
        &lt;span class="s"&gt;}&lt;/span&gt;
        &lt;span class="s"&gt;return ExecTemplate (template)&lt;/span&gt;
      &lt;span class="s"&gt;}&lt;/span&gt;
    &lt;span class="s"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;     
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;  &lt;span class="s"&gt;&amp;lt;div id='test'&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="s"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;//function&lt;/span&gt;
      &lt;span class="s"&gt;var UCaseFirstWord = function UCaseFirstWord(val) {&lt;/span&gt;
        &lt;span class="s"&gt;var tmp = val.split(" ");&lt;/span&gt;
        &lt;span class="s"&gt;var res="";&lt;/span&gt;
        &lt;span class="s"&gt;for(i=0;i&amp;lt;tmp.length;i++)&lt;/span&gt;
          &lt;span class="s"&gt;res += tmp[i].charAt(0).toUpperCase() + tmp[i].slice(1);&lt;/span&gt;
        &lt;span class="s"&gt;return res&lt;/span&gt;
      &lt;span class="s"&gt;};&lt;/span&gt;
      &lt;span class="s"&gt;var rand = function rand(x){return (Math.random()*x)};&lt;/span&gt;
      &lt;span class="s"&gt;var randLU = function randLU(low, up){ return Math.random() * (up - low) + low}&lt;/span&gt;
      &lt;span class="s"&gt;//object&lt;/span&gt;
      &lt;span class="s"&gt;var A = {&lt;/span&gt;
        &lt;span class="s"&gt;num&lt;/span&gt; &lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;25,&lt;/span&gt;
        &lt;span class="s"&gt;learn&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt;
          &lt;span class="nv"&gt;about&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;javascript&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;programming,'&lt;/span&gt;
        &lt;span class="pi"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;stupid&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;more&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;I&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;did&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;understand.'&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;ucfw&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;UCaseFirstWord,&lt;/span&gt;
        &lt;span class="s"&gt;me:'Dirk Nicolaas',&lt;/span&gt;
        &lt;span class="na"&gt;rand&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rand,&lt;/span&gt;
        &lt;span class="na"&gt;randLU&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;randLU&lt;/span&gt;
      &lt;span class="err"&gt;}&lt;/span&gt;
      &lt;span class="s"&gt;//template&lt;/span&gt;
      &lt;span class="s"&gt;var sentenceFunc = '1. I learned ${ucfw(learn.about)} but the more I wanted to know, ${stupid} &amp;lt;br&amp;gt; ${me} &amp;lt;br&amp;gt; ${rand(num).toFixed(4)}&amp;lt;br&amp;gt;  ${randLU(20,80)}';&lt;/span&gt;

      &lt;span class="s"&gt;//&lt;/span&gt;
      &lt;span class="s"&gt;var sentenc1 = Template(sentenceFunc, A)&lt;/span&gt;
      &lt;span class="s"&gt;console.log(sentenc1)&lt;/span&gt;
      &lt;span class="s"&gt;document.write(sentenc1+'&amp;lt;br&amp;gt;')&lt;/span&gt;

      &lt;span class="s"&gt;Template(sentenceFunc, A, function (err, sentenc2) {&lt;/span&gt;
        &lt;span class="s"&gt;if (err) return console.error(err)&lt;/span&gt;
        &lt;span class="s"&gt;console.log(sentenc2)&lt;/span&gt;
        &lt;span class="s"&gt;document.write(sentenc2+'&amp;lt;br&amp;gt;')&lt;/span&gt;
      &lt;span class="s"&gt;})&lt;/span&gt;
      &lt;span class="s"&gt;/////////////////////////////&lt;/span&gt;
      &lt;span class="s"&gt;//&lt;/span&gt;
      &lt;span class="s"&gt;var ThreeJS = `https://threejs.org/build/three.js`;&lt;/span&gt;
      &lt;span class="s"&gt;var sty = `display:inline`;&lt;/span&gt;
      &lt;span class="s"&gt;var id = `experimen`;&lt;/span&gt;

      &lt;span class="s"&gt;sentence = `2. I learned ${A.ucfw(A.learn.about)} but the more I wanted to know, ${A.stupid} &amp;lt;br&amp;gt; ${A.me}&amp;lt;br&amp;gt; ${A.rand(A.num).toFixed(4)}&amp;lt;br&amp;gt;  ${A.randLU(20,80)}`&lt;/span&gt;

      &lt;span class="s"&gt;//HTML&lt;/span&gt; 
      &lt;span class="s"&gt;var y = `&lt;/span&gt;
        &lt;span class="s"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
          &lt;span class="s"&gt;&amp;lt;div id=${id} style=${sty}&amp;gt;${sentence}&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="s"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;`;&lt;/span&gt;
       &lt;span class="s"&gt;document.getElementById("test").innerHTML = y;&lt;/span&gt;

        &lt;span class="s"&gt;//Javascript loader&lt;/span&gt;
       &lt;span class="s"&gt;document.write(`&lt;/span&gt;
         &lt;span class="s"&gt;&amp;lt;script src=${ThreeJS}&amp;gt;&amp;lt;\/script&amp;gt;&lt;/span&gt;
       &lt;span class="s"&gt;`);&lt;/span&gt;

    &lt;span class="s"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;*Due to the syntax of a template conflict conflict with yaml, the above program uses ~~~ yaml&lt;/p&gt;

&lt;p&gt;At first glance this article is not useful at all for professional developers, but it is very useful to add insight to those who are still learning.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Learning javascript programming should be pure javascript, avoid using libraries or frameworks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the Library or Framework is like we are still in middle school or high school, meaning that we accept what the textbook offers, without needing to know where a proposition or formula is obtained in a text book, what is important is to use it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For programs that are not too large, you should immediately use the builtin syntax, no need to make small functions and be collected in one library.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
