v1.16.2
...why didn't my docs regen hook run?
This commit is contained in:
@@ -559,7 +559,7 @@ pre.rouge .gs {
|
|||||||
<div class="details">
|
<div class="details">
|
||||||
<span id="author" class="author">Brent Saner</span><br>
|
<span id="author" class="author">Brent Saner</span><br>
|
||||||
<span id="email" class="email"><a href="mailto:bts@square-r00t.net">bts@square-r00t.net</a></span><br>
|
<span id="email" class="email"><a href="mailto:bts@square-r00t.net">bts@square-r00t.net</a></span><br>
|
||||||
<span id="revdate">Last rendered 2026-01-24 06:56:03 -0500</span>
|
<span id="revdate">Last rendered 2026-01-28 09:20:19 -0500</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="toc" class="toc2">
|
<div id="toc" class="toc2">
|
||||||
<div id="toctitle">Table of Contents</div>
|
<div id="toctitle">Table of Contents</div>
|
||||||
@@ -568,40 +568,50 @@ pre.rouge .gs {
|
|||||||
<li><a href="#use">2. How do I Use SprigX?</a></li>
|
<li><a href="#use">2. How do I Use SprigX?</a></li>
|
||||||
<li><a href="#fn">3. Functions</a>
|
<li><a href="#fn">3. Functions</a>
|
||||||
<ul class="sectlevel2">
|
<ul class="sectlevel2">
|
||||||
<li><a href="#fn_sys">3.1. System/OS/Platform</a>
|
<li><a href="#fn_os">3.1. Operating System</a>
|
||||||
<ul class="sectlevel3">
|
<ul class="sectlevel3">
|
||||||
<li><a href="#fn_sys_arch">3.1.1. <code>sysArch</code></a></li>
|
<li><a href="#fn_os_hstnm">3.1.1. <code>osHostname</code></a></li>
|
||||||
<li><a href="#fn_sys_numcpu">3.1.2. <code>sysNumCpu</code></a></li>
|
|
||||||
<li><a href="#fn_sys_os">3.1.3. <code>sysOsName</code></a></li>
|
|
||||||
<li><a href="#fn_sys_rntm">3.1.4. <code>sysRuntime</code></a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#fn_path">3.2. Paths</a>
|
<li><a href="#fn_sys">3.2. System/Platform/Architecture</a>
|
||||||
<ul class="sectlevel3">
|
<ul class="sectlevel3">
|
||||||
<li><a href="#fn_path_gnrc">3.2.1. Generic</a>
|
<li><a href="#fn_sys_arch">3.2.1. <code>sysArch</code></a></li>
|
||||||
|
<li><a href="#fn_sys_numcpu">3.2.2. <code>sysNumCpu</code></a></li>
|
||||||
|
<li><a href="#fn_sys_os">3.2.3. <code>sysOsName</code></a></li>
|
||||||
|
<li><a href="#fn_sys_rntm">3.2.4. <code>sysRuntime</code></a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="#fn_path">3.3. Paths</a>
|
||||||
|
<ul class="sectlevel3">
|
||||||
|
<li><a href="#fn_path_gnrc">3.3.1. Generic</a>
|
||||||
<ul class="sectlevel4">
|
<ul class="sectlevel4">
|
||||||
<li><a href="#fn_path_gnrc_pj">3.2.1.1. <code>pathJoin</code></a></li>
|
<li><a href="#fn_path_gnrc_pj">3.3.1.1. <code>pathJoin</code></a></li>
|
||||||
<li><a href="#fn_path_gnrc_ppj">3.2.1.2. <code>pathPipeJoin</code></a></li>
|
<li><a href="#fn_path_gnrc_ppj">3.3.1.2. <code>pathPipeJoin</code></a></li>
|
||||||
<li><a href="#fn_path_gnrc_psj">3.2.1.3. <code>pathSliceJoin</code></a></li>
|
<li><a href="#fn_path_gnrc_psj">3.3.1.3. <code>pathSliceJoin</code></a></li>
|
||||||
<li><a href="#fn_path_gnrc_pspj">3.2.1.4. <code>pathSlicePipeJoin</code></a></li>
|
<li><a href="#fn_path_gnrc_pspj">3.3.1.4. <code>pathSlicePipeJoin</code></a></li>
|
||||||
<li><a href="#fn_path_gnrc_psubj">3.2.1.5. <code>pathSubJoin</code></a></li>
|
<li><a href="#fn_path_gnrc_psubj">3.3.1.5. <code>pathSubJoin</code></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#fn_path_os">3.2.2. OS/Platform-Tailored</a>
|
<li><a href="#fn_path_os">3.3.2. OS/Platform-Tailored</a>
|
||||||
<ul class="sectlevel4">
|
<ul class="sectlevel4">
|
||||||
<li><a href="#fn_path_os_pj">3.2.2.1. <code>osPathJoin</code></a></li>
|
<li><a href="#fn_path_os_pj">3.3.2.1. <code>osPathJoin</code></a></li>
|
||||||
<li><a href="#fn_path_os_ppj">3.2.2.2. <code>osPathPipeJoin</code></a></li>
|
<li><a href="#fn_path_os_ppj">3.3.2.2. <code>osPathPipeJoin</code></a></li>
|
||||||
<li><a href="#fn_path_ossep">3.2.2.3. <code>osPathSep</code></a></li>
|
<li><a href="#fn_path_ossep">3.3.2.3. <code>osPathSep</code></a></li>
|
||||||
<li><a href="#fn_path_os_psj">3.2.2.4. <code>osPathSliceJoin</code></a></li>
|
<li><a href="#fn_path_os_psj">3.3.2.4. <code>osPathSliceJoin</code></a></li>
|
||||||
<li><a href="#fn_path_os_pspj">3.2.2.5. <code>osPathSlicePipeJoin</code></a></li>
|
<li><a href="#fn_path_os_pspj">3.3.2.5. <code>osPathSlicePipeJoin</code></a></li>
|
||||||
<li><a href="#fn_path_os_psubj">3.2.2.6. <code>osPathSubJoin</code></a></li>
|
<li><a href="#fn_path_os_psubj">3.3.2.6. <code>osPathSubJoin</code></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#fn_str">3.3. Strings</a>
|
<li><a href="#fn_str">3.4. Strings</a>
|
||||||
<ul class="sectlevel3">
|
<ul class="sectlevel3">
|
||||||
<li><a href="#fn_str_extindent">3.3.1. <code>extIndent</code></a></li>
|
<li><a href="#fn_str_extindent">3.4.1. <code>extIndent</code></a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="#fn_dbg">3.5. Debugging</a>
|
||||||
|
<ul class="sectlevel3">
|
||||||
|
<li><a href="#fn_dbg_dump">3.5.1. <code>dump</code></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -619,13 +629,35 @@ pre.rouge .gs {
|
|||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>They provide functions that offer more enriched use cases and domain-specific data.</p>
|
<p>They provide functions that offer more enriched use cases and domain-specific data.</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="admonitionblock tip">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="icon">
|
||||||
|
<div class="title">Tip</div>
|
||||||
|
</td>
|
||||||
|
<td class="content">
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>If you are reading this README on the Go Module Directory documentation (<a href="https://pkg.go.dev/r00t2.io/goutils/tplx/sprigx" class="bare">https://pkg.go.dev/r00t2.io/goutils/tplx/sprigx</a>)
|
||||||
|
or the directory landing page (<a href="https://git.r00t2.io/r00t2/go_goutils/src/branch/master/tplx/sprigx" class="bare">https://git.r00t2.io/r00t2/go_goutils/src/branch/master/tplx/sprigx</a>), it may not render correctly.</p>
|
||||||
|
</div>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>Be sure to view it at properly via <a href="https://git.r00t2.io/r00t2/go_goutils/src/branch/master/tplx/sprigx/README.adoc" target="_blank" rel="noopener">the AsciiDoc rendering</a>
|
||||||
|
or by downloading and viewing the <a href="https://git.r00t2.io/r00t2/go_goutils/raw/branch/master/tplx/sprigx/README.html" target="_blank" rel="noopener">HTML version</a>.</p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect1">
|
<div class="sect1">
|
||||||
<h2 id="use"><a class="link" href="#use">2. How do I Use SprigX?</a></h2>
|
<h2 id="use"><a class="link" href="#use">2. How do I Use SprigX?</a></h2>
|
||||||
<div class="sectionbody">
|
<div class="sectionbody">
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>The same way you would <code>sprig</code>!</p>
|
||||||
|
</div>
|
||||||
<details>
|
<details>
|
||||||
<summary class="title">The same way you would <code>sprig</code>!</summary>
|
<summary class="title">Like this.</summary>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="listingblock">
|
<div class="listingblock">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@@ -640,22 +672,25 @@ pre.rouge .gs {
|
|||||||
|
|
||||||
<span class="k">var</span> <span class="p">(</span>
|
<span class="k">var</span> <span class="p">(</span>
|
||||||
<span class="n">txtTpl</span> <span class="o">*</span><span class="n">txtTplLib</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">txtTplLib</span><span class="o">.</span>
|
<span class="n">txtTpl</span> <span class="o">*</span><span class="n">txtTplLib</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">txtTplLib</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span>
|
<span class="n">Funcs</span><span class="p">(</span>
|
||||||
<span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
<span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
<span class="n">htmlTpl</span> <span class="o">*</span><span class="n">htmlTplLib</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">htmlTplLib</span><span class="o">.</span>
|
<span class="n">htmlTpl</span> <span class="o">*</span><span class="n">htmlTplLib</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">htmlTplLib</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span>
|
<span class="n">Funcs</span><span class="p">(</span>
|
||||||
<span class="n">sprigx</span><span class="o">.</span><span class="n">HtmlFuncMap</span><span class="p">(),</span>
|
<span class="n">sprigx</span><span class="o">.</span><span class="n">HtmlFuncMap</span><span class="p">(),</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
<span class="p">)</span></code></pre>
|
<span class="p">)</span></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>They can even be combined/used together.</p>
|
||||||
|
</div>
|
||||||
<details>
|
<details>
|
||||||
<summary class="title">They can even be combined.</summary>
|
<summary class="title">Like this.</summary>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="listingblock">
|
<div class="listingblock">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@@ -669,23 +704,23 @@ pre.rouge .gs {
|
|||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">var</span> <span class="n">txtTpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span>
|
<span class="k">var</span> <span class="n">txtTpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span>
|
<span class="n">Funcs</span><span class="p">(</span>
|
||||||
<span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
<span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
||||||
<span class="p">)</span><span class="o">.</span>
|
<span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span>
|
<span class="n">Funcs</span><span class="p">(</span>
|
||||||
<span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
<span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">(),</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
<span class="c">// Or:</span>
|
<span class="c">// Or:</span>
|
||||||
<span class="c">/*
|
<span class="c">/*
|
||||||
var txtTpl *template.Template = template.
|
var txtTpl *template.Template = template.
|
||||||
New("").
|
New("").
|
||||||
Funcs(
|
Funcs(
|
||||||
sprig.TxtFuncMap(),
|
sprig.TxtFuncMap(),
|
||||||
).
|
).
|
||||||
Funcs(
|
Funcs(
|
||||||
sprigx.TxtFuncMap(),
|
sprigx.TxtFuncMap(),
|
||||||
)
|
)
|
||||||
*/</span></code></pre>
|
*/</span></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -697,8 +732,11 @@ var txtTpl *template.Template = template.
|
|||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>For example, if both <code>sprig</code> and <code>sprigx</code> provide a function <code>foo</code>:</p>
|
<p>For example, if both <code>sprig</code> and <code>sprigx</code> provide a function <code>foo</code>:</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>this will use <code>foo</code> from <code>sprigx</code></p>
|
||||||
|
</div>
|
||||||
<details>
|
<details>
|
||||||
<summary class="title">this will use <code>foo</code> from <code>sprigx</code></summary>
|
<summary class="title">(show)</summary>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="listingblock">
|
<div class="listingblock">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@@ -717,22 +755,22 @@ var txtTpl *template.Template = template.
|
|||||||
|
|
||||||
<span class="k">var</span> <span class="p">(</span>
|
<span class="k">var</span> <span class="p">(</span>
|
||||||
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
||||||
<span class="n">template</span><span class="o">.</span>
|
<span class="n">template</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
||||||
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
||||||
<span class="p">)</span><span class="o">.</span>
|
<span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span>
|
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span>
|
||||||
<span class="p">)</span></code></pre>
|
<span class="p">)</span></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>whereas</p>
|
<p>whereas this will use <code>foo</code> from <code>sprig</code></p>
|
||||||
</div>
|
</div>
|
||||||
<details>
|
<details>
|
||||||
<summary class="title">this will use <code>foo</code> from <code>sprig</code></summary>
|
<summary class="title">(show)</summary>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="listingblock">
|
<div class="listingblock">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@@ -751,22 +789,22 @@ var txtTpl *template.Template = template.
|
|||||||
|
|
||||||
<span class="k">var</span> <span class="p">(</span>
|
<span class="k">var</span> <span class="p">(</span>
|
||||||
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
||||||
<span class="n">template</span><span class="o">.</span>
|
<span class="n">template</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
||||||
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
||||||
<span class="p">)</span><span class="o">.</span>
|
<span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span>
|
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span>
|
||||||
<span class="p">)</span></code></pre>
|
<span class="p">)</span></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>and a function can even be</p>
|
<p>and a function can even be explicitly overridden.</p>
|
||||||
</div>
|
</div>
|
||||||
<details>
|
<details>
|
||||||
<summary class="title">explicitly overridden.</summary>
|
<summary class="title">(show)</summary>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>This would override a function <code>foo</code> and <code>foo2</code> in <code>sprigx</code> from <code>foo</code> and <code>foo2</code> from <code>sprig</code>, but leave all other <code>sprig</code> functions untouched.</p>
|
<p>This would override a function <code>foo</code> and <code>foo2</code> in <code>sprigx</code> from <code>foo</code> and <code>foo2</code> from <code>sprig</code>, but leave all other <code>sprig</code> functions untouched.</p>
|
||||||
@@ -789,19 +827,19 @@ var txtTpl *template.Template = template.
|
|||||||
<span class="k">var</span> <span class="p">(</span>
|
<span class="k">var</span> <span class="p">(</span>
|
||||||
<span class="n">overrideFuncs</span> <span class="n">template</span><span class="o">.</span><span class="n">FuncMap</span> <span class="o">=</span> <span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">()</span>
|
<span class="n">overrideFuncs</span> <span class="n">template</span><span class="o">.</span><span class="n">FuncMap</span> <span class="o">=</span> <span class="n">sprig</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">()</span>
|
||||||
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
<span class="n">tpl</span> <span class="o">*</span><span class="n">template</span><span class="o">.</span><span class="n">Template</span> <span class="o">=</span> <span class="n">template</span><span class="o">.</span><span class="n">Must</span><span class="p">(</span>
|
||||||
<span class="n">template</span><span class="o">.</span>
|
<span class="n">template</span><span class="o">.</span>
|
||||||
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
<span class="n">New</span><span class="p">(</span><span class="s">""</span><span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
<span class="n">Funcs</span><span class="p">(</span><span class="n">sprigx</span><span class="o">.</span><span class="n">TxtFuncMap</span><span class="p">())</span><span class="o">.</span>
|
||||||
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
<span class="n">Parse</span><span class="p">(</span><span class="n">myTpl</span><span class="p">),</span>
|
||||||
<span class="p">)</span><span class="o">.</span>
|
<span class="p">)</span><span class="o">.</span>
|
||||||
<span class="n">Funcs</span><span class="p">(</span>
|
<span class="n">Funcs</span><span class="p">(</span>
|
||||||
<span class="n">template</span><span class="o">.</span><span class="n">FuncMap</span><span class="p">(</span>
|
<span class="n">template</span><span class="o">.</span><span class="n">FuncMap</span><span class="p">(</span>
|
||||||
<span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="n">any</span><span class="p">{</span>
|
<span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="n">any</span><span class="p">{</span>
|
||||||
<span class="s">"foo"</span><span class="o">:</span> <span class="n">overrideFuncs</span><span class="p">[</span><span class="s">"foo"</span><span class="p">],</span>
|
<span class="s">"foo"</span><span class="o">:</span> <span class="n">overrideFuncs</span><span class="p">[</span><span class="s">"foo"</span><span class="p">],</span>
|
||||||
<span class="s">"foo2"</span><span class="o">:</span> <span class="n">overrideFuncs</span><span class="p">[</span><span class="s">"foo2"</span><span class="p">],</span>
|
<span class="s">"foo2"</span><span class="o">:</span> <span class="n">overrideFuncs</span><span class="p">[</span><span class="s">"foo2"</span><span class="p">],</span>
|
||||||
<span class="p">},</span>
|
<span class="p">},</span>
|
||||||
<span class="p">),</span>
|
<span class="p">),</span>
|
||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
<span class="p">)</span></code></pre>
|
<span class="p">)</span></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -816,27 +854,39 @@ var txtTpl *template.Template = template.
|
|||||||
<p>Expect this list to grow over time, and potentially more frequently than the <code>sprigx</code> functions.</p>
|
<p>Expect this list to grow over time, and potentially more frequently than the <code>sprigx</code> functions.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="fn_sys"><a class="link" href="#fn_sys">3.1. System/OS/Platform</a></h3>
|
<h3 id="fn_os"><a class="link" href="#fn_os">3.1. Operating System</a></h3>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_sys_arch"><a class="link" href="#fn_sys_arch">3.1.1. <code>sysArch</code></a></h4>
|
<h4 id="fn_os_hstnm"><a class="link" href="#fn_os_hstnm">3.1.1. <code>osHostname</code></a></h4>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p><code>osHostname</code> simply wraps and returns the result of calling <a href="https://pkg.go.dev/os#Hostname" target="_blank" rel="noopener"><code>os.Hostname</code></a>.</p>
|
||||||
|
</div>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>As such, it comes with the same caveats - it’s possible for it to error, and it isn’t guaranteed to be an FQDN — it will be precisely/exactly whatever the kernel’s hostname is set as.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="fn_sys"><a class="link" href="#fn_sys">3.2. System/Platform/Architecture</a></h3>
|
||||||
|
<div class="sect3">
|
||||||
|
<h4 id="fn_sys_arch"><a class="link" href="#fn_sys_arch">3.2.1. <code>sysArch</code></a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>Returns the <a href="https://pkg.go.dev/runtime#GOARCH" target="_blank" rel="noopener"><code>runtime.GOARCH</code></a> constant.</p>
|
<p>Returns the <a href="https://pkg.go.dev/runtime#GOARCH" target="_blank" rel="noopener"><code>runtime.GOARCH</code></a> constant.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_sys_numcpu"><a class="link" href="#fn_sys_numcpu">3.1.2. <code>sysNumCpu</code></a></h4>
|
<h4 id="fn_sys_numcpu"><a class="link" href="#fn_sys_numcpu">3.2.2. <code>sysNumCpu</code></a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>Returns the value from <a href="https://pkg.go.dev/runtime#NumCPU" target="_blank" rel="noopener"><code>runtime.NumCPU</code></a>.</p>
|
<p>Returns the value from <a href="https://pkg.go.dev/runtime#NumCPU" target="_blank" rel="noopener"><code>runtime.NumCPU</code></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_sys_os"><a class="link" href="#fn_sys_os">3.1.3. <code>sysOsName</code></a></h4>
|
<h4 id="fn_sys_os"><a class="link" href="#fn_sys_os">3.2.3. <code>sysOsName</code></a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>Returns the <a href="https://pkg.go.dev/runtime#GOOS" target="_blank" rel="noopener"><code>runtime.GOOS</code></a> constant.</p>
|
<p>Returns the <a href="https://pkg.go.dev/runtime#GOOS" target="_blank" rel="noopener"><code>runtime.GOOS</code></a> constant.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_sys_rntm"><a class="link" href="#fn_sys_rntm">3.1.4. <code>sysRuntime</code></a></h4>
|
<h4 id="fn_sys_rntm"><a class="link" href="#fn_sys_rntm">3.2.4. <code>sysRuntime</code></a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>This function returns a <code>map[string]string</code> of various information from the <a href="https://pkg.go.dev/runtime" target="_blank" rel="noopener"><code>runtime</code> stdlib library</a>.</p>
|
<p>This function returns a <code>map[string]string</code> of various information from the <a href="https://pkg.go.dev/runtime" target="_blank" rel="noopener"><code>runtime</code> stdlib library</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -926,14 +976,14 @@ var txtTpl *template.Template = template.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="fn_path"><a class="link" href="#fn_path">3.2. Paths</a></h3>
|
<h3 id="fn_path"><a class="link" href="#fn_path">3.3. Paths</a></h3>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_path_gnrc"><a class="link" href="#fn_path_gnrc">3.2.1. Generic</a></h4>
|
<h4 id="fn_path_gnrc"><a class="link" href="#fn_path_gnrc">3.3.1. Generic</a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>These operate similar to <a href="https://pkg.go.dev/path" target="_blank" rel="noopener">the <code>path</code> stdlib library</a> and use a fixed <code>/</code> path separator.</p>
|
<p>These operate similar to <a href="https://pkg.go.dev/path" target="_blank" rel="noopener">the <code>path</code> stdlib library</a> and use a fixed <code>/</code> path separator.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_gnrc_pj"><a class="link" href="#fn_path_gnrc_pj">3.2.1.1. <code>pathJoin</code></a></h5>
|
<h5 id="fn_path_gnrc_pj"><a class="link" href="#fn_path_gnrc_pj">3.3.1.1. <code>pathJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>pathJoin</code> operates <strong>exactly</strong> like <a href="https://pkg.go.dev/path#Join" target="_blank" rel="noopener"><code>path.Join</code></a> in stdlib.</p>
|
<p><code>pathJoin</code> operates <strong>exactly</strong> like <a href="https://pkg.go.dev/path#Join" target="_blank" rel="noopener"><code>path.Join</code></a> in stdlib.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -945,7 +995,7 @@ var txtTpl *template.Template = template.
|
|||||||
</td>
|
</td>
|
||||||
<td class="content">
|
<td class="content">
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>If you are joining paths in a pipeline, you almost assuredly want <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> or <a href="#fn_path_gnrc_pspj"><code>pathSlicePipeJoin</code></a> instead.</p>
|
<p>If you are joining paths in a pipeline, you almost assuredly want <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> or <a href="#fn_path_gnrc_pspj"><code>pathSlicePipeJoin</code></a> instead unless you are explicitly <strong>appending</strong> a pipeline result to a path.</p>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -970,7 +1020,7 @@ var txtTpl *template.Template = template.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_gnrc_ppj"><a class="link" href="#fn_path_gnrc_ppj">3.2.1.2. <code>pathPipeJoin</code></a></h5>
|
<h5 id="fn_path_gnrc_ppj"><a class="link" href="#fn_path_gnrc_ppj">3.3.1.2. <code>pathPipeJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>pathPipeJoin</code> operates like <a href="#fn_path_gnrc_pj"><code>pathJoin</code></a> with one deviation: the root/base path is expected to be <strong>last</strong> in the arguments.</p>
|
<p><code>pathPipeJoin</code> operates like <a href="#fn_path_gnrc_pj"><code>pathJoin</code></a> with one deviation: the root/base path is expected to be <strong>last</strong> in the arguments.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -997,7 +1047,7 @@ var txtTpl *template.Template = template.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_gnrc_psj"><a class="link" href="#fn_path_gnrc_psj">3.2.1.3. <code>pathSliceJoin</code></a></h5>
|
<h5 id="fn_path_gnrc_psj"><a class="link" href="#fn_path_gnrc_psj">3.3.1.3. <code>pathSliceJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>pathSliceJoin</code> joins a slice of path segment strings (<code>[]string</code>) instead of a variadic sequence of strings.</p>
|
<p><code>pathSliceJoin</code> joins a slice of path segment strings (<code>[]string</code>) instead of a variadic sequence of strings.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1035,7 +1085,7 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_gnrc_pspj"><a class="link" href="#fn_path_gnrc_pspj">3.2.1.4. <code>pathSlicePipeJoin</code></a></h5>
|
<h5 id="fn_path_gnrc_pspj"><a class="link" href="#fn_path_gnrc_pspj">3.3.1.4. <code>pathSlicePipeJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>pathSlicePipeJoin</code> operates like <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> in that it is suitable for pipeline use in which the root/base path is passed in from the pipeline, but it is like <a href="#fn_path_gnrc_psj"><code>pathSliceJoin</code></a> in that it then also accepts a slice of path segments (<code>[]string</code>) to append to that base path.</p>
|
<p><code>pathSlicePipeJoin</code> operates like <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> in that it is suitable for pipeline use in which the root/base path is passed in from the pipeline, but it is like <a href="#fn_path_gnrc_psj"><code>pathSliceJoin</code></a> in that it then also accepts a slice of path segments (<code>[]string</code>) to append to that base path.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1072,7 +1122,7 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_gnrc_psubj"><a class="link" href="#fn_path_gnrc_psubj">3.2.1.5. <code>pathSubJoin</code></a></h5>
|
<h5 id="fn_path_gnrc_psubj"><a class="link" href="#fn_path_gnrc_psubj">3.3.1.5. <code>pathSubJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>pathSubJoin</code> operates like <a href="#fn_path_gnrc_pj"><code>pathJoin</code></a> but it expects an explicit root/base path.</p>
|
<p><code>pathSubJoin</code> operates like <a href="#fn_path_gnrc_pj"><code>pathJoin</code></a> but it expects an explicit root/base path.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1099,7 +1149,7 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_path_os"><a class="link" href="#fn_path_os">3.2.2. OS/Platform-Tailored</a></h4>
|
<h4 id="fn_path_os"><a class="link" href="#fn_path_os">3.3.2. OS/Platform-Tailored</a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>These operate similar to <a href="https://pkg.go.dev/path/filepath" target="_blank" rel="noopener">the <code>path/filepath</code> stdlib library</a>, and use the OS-specific <a href="https://pkg.go.dev/os#PathSeparator" target="_blank" rel="noopener"><code>os.PathSeparator</code></a>.</p>
|
<p>These operate similar to <a href="https://pkg.go.dev/path/filepath" target="_blank" rel="noopener">the <code>path/filepath</code> stdlib library</a>, and use the OS-specific <a href="https://pkg.go.dev/os#PathSeparator" target="_blank" rel="noopener"><code>os.PathSeparator</code></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1121,7 +1171,7 @@ a/b/c
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_os_pj"><a class="link" href="#fn_path_os_pj">3.2.2.1. <code>osPathJoin</code></a></h5>
|
<h5 id="fn_path_os_pj"><a class="link" href="#fn_path_os_pj">3.3.2.1. <code>osPathJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathJoin</code> operates <strong>exactly</strong> like <a href="https://pkg.go.dev/path/filepath#Join" target="_blank" rel="noopener"><code>path/filepath.Join</code></a> in stdlib.</p>
|
<p><code>osPathJoin</code> operates <strong>exactly</strong> like <a href="https://pkg.go.dev/path/filepath#Join" target="_blank" rel="noopener"><code>path/filepath.Join</code></a> in stdlib.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1133,7 +1183,7 @@ a/b/c
|
|||||||
</td>
|
</td>
|
||||||
<td class="content">
|
<td class="content">
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>If you are joining paths in a pipeline, you almost assuredly want <a href="#fn_path_os_ppj"><code>osPathPipeJoin</code></a> or <a href="#fn_path_os_pspj"><code>osPathSlicePipeJoin</code></a> instead.</p>
|
<p>If you are joining paths in a pipeline, you almost assuredly want <a href="#fn_path_os_ppj"><code>osPathPipeJoin</code></a> or <a href="#fn_path_os_pspj"><code>osPathSlicePipeJoin</code></a> instead unless you are explicitly <strong>appending</strong> a pipeline result to a path.</p>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1189,7 +1239,7 @@ C:/a/b/c</code></pre>
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_os_ppj"><a class="link" href="#fn_path_os_ppj">3.2.2.2. <code>osPathPipeJoin</code></a></h5>
|
<h5 id="fn_path_os_ppj"><a class="link" href="#fn_path_os_ppj">3.3.2.2. <code>osPathPipeJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathPipeJoin</code> operates like <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> (except using OS-specific path separators).</p>
|
<p><code>osPathPipeJoin</code> operates like <a href="#fn_path_gnrc_ppj"><code>pathPipeJoin</code></a> (except using OS-specific path separators).</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1243,7 +1293,7 @@ C:/a/b/c</code></pre>
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_ossep"><a class="link" href="#fn_path_ossep">3.2.2.3. <code>osPathSep</code></a></h5>
|
<h5 id="fn_path_ossep"><a class="link" href="#fn_path_ossep">3.3.2.3. <code>osPathSep</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathSep</code> returns the <a href="https://pkg.go.dev/os#PathSeparator" target="_blank" rel="noopener"><code>os.PathSeparator</code></a> for this OS.</p>
|
<p><code>osPathSep</code> returns the <a href="https://pkg.go.dev/os#PathSeparator" target="_blank" rel="noopener"><code>os.PathSeparator</code></a> for this OS.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1287,7 +1337,7 @@ C:/a/b/c</code></pre>
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_os_psj"><a class="link" href="#fn_path_os_psj">3.2.2.4. <code>osPathSliceJoin</code></a></h5>
|
<h5 id="fn_path_os_psj"><a class="link" href="#fn_path_os_psj">3.3.2.4. <code>osPathSliceJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathSliceJoin</code> operates like <a href="#fn_path_gnrc_psj"><code>pathSliceJoin</code></a> but with OS-specific path separators.</p>
|
<p><code>osPathSliceJoin</code> operates like <a href="#fn_path_gnrc_psj"><code>pathSliceJoin</code></a> but with OS-specific path separators.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1352,7 +1402,7 @@ a/b/c
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_os_pspj"><a class="link" href="#fn_path_os_pspj">3.2.2.5. <code>osPathSlicePipeJoin</code></a></h5>
|
<h5 id="fn_path_os_pspj"><a class="link" href="#fn_path_os_pspj">3.3.2.5. <code>osPathSlicePipeJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathSlicePipeJoin</code> operates like <a href="#fn_path_gnrc_pspj"><code>pathSlicePipeJoin</code></a> but with OS-specific separators.</p>
|
<p><code>osPathSlicePipeJoin</code> operates like <a href="#fn_path_gnrc_pspj"><code>pathSlicePipeJoin</code></a> but with OS-specific separators.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1415,7 +1465,7 @@ a/b/c
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect4">
|
<div class="sect4">
|
||||||
<h5 id="fn_path_os_psubj"><a class="link" href="#fn_path_os_psubj">3.2.2.6. <code>osPathSubJoin</code></a></h5>
|
<h5 id="fn_path_os_psubj"><a class="link" href="#fn_path_os_psubj">3.3.2.6. <code>osPathSubJoin</code></a></h5>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>osPathSubJoin</code> operates like <a href="#fn_path_gnrc_psubj"><code>pathSubJoin</code></a> but with OS-specific separators.</p>
|
<p><code>osPathSubJoin</code> operates like <a href="#fn_path_gnrc_psubj"><code>pathSubJoin</code></a> but with OS-specific separators.</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1470,15 +1520,29 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="fn_str"><a class="link" href="#fn_str">3.3. Strings</a></h3>
|
<h3 id="fn_str"><a class="link" href="#fn_str">3.4. Strings</a></h3>
|
||||||
<div class="sect3">
|
<div class="sect3">
|
||||||
<h4 id="fn_str_extindent"><a class="link" href="#fn_str_extindent">3.3.1. <code>extIndent</code></a></h4>
|
<h4 id="fn_str_extindent"><a class="link" href="#fn_str_extindent">3.4.1. <code>extIndent</code></a></h4>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p><code>extIndent</code> allows for a MUCH more flexible indenter than the <code>sprig</code> <code>indent</code> function.</p>
|
<p><code>extIndent</code> allows for a MUCH more flexible indenter than the <code>sprig</code> <code>indent</code> function.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>It works with both Windows (<code>\r\n</code>) and POSIX (<code>\n</code>) linebreaks.</p>
|
<p>It works with both Windows (<code>\r\n</code>) and POSIX (<code>\n</code>) linebreaks.</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="admonitionblock tip">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="icon">
|
||||||
|
<div class="title">Tip</div>
|
||||||
|
</td>
|
||||||
|
<td class="content">
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>If <code><indentString></code> is set to <code>\n</code> and <code><levels></code> is always set to <code>1</code>, this function can even be used to doubelspace text!</p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<p>It has quite a few arguments, however:</p>
|
<p>It has quite a few arguments, however:</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1514,6 +1578,15 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="fn_dbg"><a class="link" href="#fn_dbg">3.5. Debugging</a></h3>
|
||||||
|
<div class="sect3">
|
||||||
|
<h4 id="fn_dbg_dump"><a class="link" href="#fn_dbg_dump">3.5.1. <code>dump</code></a></h4>
|
||||||
|
<div class="paragraph">
|
||||||
|
<p>The <code>dump</code> function calls <a href="https://pkg.go.dev/github.com/davecgh/go-spew/spew#Sdump" target="_blank" rel="noopener">the <code>Sdump</code> function</a> from <a href="https://github.com/davecgh/go-spew"><code>go-spew</code></a> (<a href="https://pkg.go.dev/github.com/davecgh/go-spew/spew" target="_blank" rel="noopener"><code>github.com/davecgh/go-spew/spew</code></a>) for whatever object(s) is/are passed to it.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1525,7 +1598,7 @@ a/b/c
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2026-01-24 06:56:00 -0500
|
Last updated 2026-01-28 09:16:03 -0500
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -7,8 +7,21 @@ docs](https://pkg.go.dev/github.com/Masterminds/sprig/v3)).
|
|||||||
They provide functions that offer more enriched use cases and
|
They provide functions that offer more enriched use cases and
|
||||||
domain-specific data.
|
domain-specific data.
|
||||||
|
|
||||||
|
If you are reading this README on the Go Module Directory documentation
|
||||||
|
(<https://pkg.go.dev/r00t2.io/goutils/tplx/sprigx>) or the directory
|
||||||
|
landing page
|
||||||
|
(<https://git.r00t2.io/r00t2/go_goutils/src/branch/master/tplx/sprigx>),
|
||||||
|
it may not render correctly.
|
||||||
|
|
||||||
|
Be sure to view it at properly via [the AsciiDoc
|
||||||
|
rendering](https://git.r00t2.io/r00t2/go_goutils/src/branch/master/tplx/sprigx/README.adoc)
|
||||||
|
or by downloading and viewing the [HTML
|
||||||
|
version](https://git.r00t2.io/r00t2/go_goutils/raw/branch/master/tplx/sprigx/README.html).
|
||||||
|
|
||||||
# How do I Use SprigX?
|
# How do I Use SprigX?
|
||||||
|
|
||||||
|
The same way you would `sprig`!
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@@ -20,17 +33,19 @@ domain-specific data.
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
txtTpl *txtTplLib.Template = txtTplLib.
|
txtTpl *txtTplLib.Template = txtTplLib.
|
||||||
New("").
|
New("").
|
||||||
Funcs(
|
Funcs(
|
||||||
sprigx.TxtFuncMap(),
|
sprigx.TxtFuncMap(),
|
||||||
)
|
)
|
||||||
htmlTpl *htmlTplLib.Template = htmlTplLib.
|
htmlTpl *htmlTplLib.Template = htmlTplLib.
|
||||||
New("").
|
New("").
|
||||||
Funcs(
|
Funcs(
|
||||||
sprigx.HtmlFuncMap(),
|
sprigx.HtmlFuncMap(),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
They can even be combined/used together.
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@@ -41,23 +56,23 @@ domain-specific data.
|
|||||||
)
|
)
|
||||||
|
|
||||||
var txtTpl *template.Template = template.
|
var txtTpl *template.Template = template.
|
||||||
New("").
|
New("").
|
||||||
Funcs(
|
Funcs(
|
||||||
sprigx.TxtFuncMap(),
|
sprigx.TxtFuncMap(),
|
||||||
).
|
).
|
||||||
Funcs(
|
Funcs(
|
||||||
sprig.TxtFuncMap(),
|
sprig.TxtFuncMap(),
|
||||||
)
|
)
|
||||||
// Or:
|
// Or:
|
||||||
/*
|
/*
|
||||||
var txtTpl *template.Template = template.
|
var txtTpl *template.Template = template.
|
||||||
New("").
|
New("").
|
||||||
Funcs(
|
Funcs(
|
||||||
sprig.TxtFuncMap(),
|
sprig.TxtFuncMap(),
|
||||||
).
|
).
|
||||||
Funcs(
|
Funcs(
|
||||||
sprigx.TxtFuncMap(),
|
sprigx.TxtFuncMap(),
|
||||||
)
|
)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
If a `<template>.FuncMap` is added via `.Funcs()` **after** template
|
If a `<template>.FuncMap` is added via `.Funcs()` **after** template
|
||||||
@@ -66,30 +81,7 @@ parsing, it will override any functions of the same name of a
|
|||||||
|
|
||||||
For example, if both `sprig` and `sprigx` provide a function `foo`:
|
For example, if both `sprig` and `sprigx` provide a function `foo`:
|
||||||
|
|
||||||
package main
|
this will use `foo` from `sprigx`
|
||||||
|
|
||||||
import (
|
|
||||||
"text/template"
|
|
||||||
|
|
||||||
"github.com/Masterminds/sprig/v3"
|
|
||||||
"r00t2.io/goutils/tplx/sprigx"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
myTpl string = `{{ "This is an example template string." | foo }}`
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
tpl *template.Template = template.Must(
|
|
||||||
template.
|
|
||||||
New("").
|
|
||||||
Funcs(sprig.TxtFuncMap()).
|
|
||||||
Parse(myTpl),
|
|
||||||
).
|
|
||||||
Funcs(sprigx.TxtFuncMap())
|
|
||||||
)
|
|
||||||
|
|
||||||
whereas
|
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
@@ -106,15 +98,40 @@ whereas
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
tpl *template.Template = template.Must(
|
tpl *template.Template = template.Must(
|
||||||
template.
|
template.
|
||||||
New("").
|
New("").
|
||||||
Funcs(sprigx.TxtFuncMap()).
|
Funcs(sprig.TxtFuncMap()).
|
||||||
Parse(myTpl),
|
Parse(myTpl),
|
||||||
).
|
).
|
||||||
Funcs(sprig.TxtFuncMap())
|
Funcs(sprigx.TxtFuncMap())
|
||||||
)
|
)
|
||||||
|
|
||||||
and a function can even be
|
whereas this will use `foo` from `sprig`
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/Masterminds/sprig/v3"
|
||||||
|
"r00t2.io/goutils/tplx/sprigx"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
myTpl string = `{{ "This is an example template string." | foo }}`
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
tpl *template.Template = template.Must(
|
||||||
|
template.
|
||||||
|
New("").
|
||||||
|
Funcs(sprigx.TxtFuncMap()).
|
||||||
|
Parse(myTpl),
|
||||||
|
).
|
||||||
|
Funcs(sprig.TxtFuncMap())
|
||||||
|
)
|
||||||
|
|
||||||
|
and a function can even be explicitly overridden.
|
||||||
|
|
||||||
This would override a function `foo` and `foo2` in `sprigx` from `foo`
|
This would override a function `foo` and `foo2` in `sprigx` from `foo`
|
||||||
and `foo2` from `sprig`, but leave all other `sprig` functions
|
and `foo2` from `sprig`, but leave all other `sprig` functions
|
||||||
@@ -136,19 +153,19 @@ untouched.
|
|||||||
var (
|
var (
|
||||||
overrideFuncs template.FuncMap = sprig.TxtFuncMap()
|
overrideFuncs template.FuncMap = sprig.TxtFuncMap()
|
||||||
tpl *template.Template = template.Must(
|
tpl *template.Template = template.Must(
|
||||||
template.
|
template.
|
||||||
New("").
|
New("").
|
||||||
Funcs(sprigx.TxtFuncMap()).
|
Funcs(sprigx.TxtFuncMap()).
|
||||||
Parse(myTpl),
|
Parse(myTpl),
|
||||||
).
|
).
|
||||||
Funcs(
|
Funcs(
|
||||||
template.FuncMap(
|
template.FuncMap(
|
||||||
map[string]any{
|
map[string]any{
|
||||||
"foo": overrideFuncs["foo"],
|
"foo": overrideFuncs["foo"],
|
||||||
"foo2": overrideFuncs["foo2"],
|
"foo2": overrideFuncs["foo2"],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Functions
|
# Functions
|
||||||
@@ -156,7 +173,18 @@ untouched.
|
|||||||
Expect this list to grow over time, and potentially more frequently than
|
Expect this list to grow over time, and potentially more frequently than
|
||||||
the `sprigx` functions.
|
the `sprigx` functions.
|
||||||
|
|
||||||
## System/OS/Platform
|
## Operating System
|
||||||
|
|
||||||
|
### `osHostname`
|
||||||
|
|
||||||
|
`osHostname` simply wraps and returns the result of calling
|
||||||
|
[`os.Hostname`](https://pkg.go.dev/os#Hostname).
|
||||||
|
|
||||||
|
As such, it comes with the same caveats - it’s possible for it to error,
|
||||||
|
and it isn’t guaranteed to be an FQDN — it will be precisely/exactly
|
||||||
|
whatever the kernel’s hostname is set as.
|
||||||
|
|
||||||
|
## System/Platform/Architecture
|
||||||
|
|
||||||
### `sysArch`
|
### `sysArch`
|
||||||
|
|
||||||
@@ -277,7 +305,8 @@ library](https://pkg.go.dev/path) and use a fixed `/` path separator.
|
|||||||
[`path.Join`](https://pkg.go.dev/path#Join) in stdlib.
|
[`path.Join`](https://pkg.go.dev/path#Join) in stdlib.
|
||||||
|
|
||||||
If you are joining paths in a pipeline, you almost assuredly want
|
If you are joining paths in a pipeline, you almost assuredly want
|
||||||
[](#fn_path_gnrc_ppj) or [](#fn_path_gnrc_pspj) instead.
|
[](#fn_path_gnrc_ppj) or [](#fn_path_gnrc_pspj) instead unless you are
|
||||||
|
explicitly **appending** a pipeline result to a path.
|
||||||
|
|
||||||
{{- pathJoin "a" "b" "c" }}
|
{{- pathJoin "a" "b" "c" }}
|
||||||
{{- pathJoin "/" "a" "b" "c" }}
|
{{- pathJoin "/" "a" "b" "c" }}
|
||||||
@@ -384,7 +413,8 @@ path bases/roots if needed.
|
|||||||
[`path/filepath.Join`](https://pkg.go.dev/path/filepath#Join) in stdlib.
|
[`path/filepath.Join`](https://pkg.go.dev/path/filepath#Join) in stdlib.
|
||||||
|
|
||||||
If you are joining paths in a pipeline, you almost assuredly want
|
If you are joining paths in a pipeline, you almost assuredly want
|
||||||
[](#fn_path_os_ppj) or [](#fn_path_os_pspj) instead.
|
[](#fn_path_os_ppj) or [](#fn_path_os_pspj) instead unless you are
|
||||||
|
explicitly **appending** a pipeline result to a path.
|
||||||
|
|
||||||
{{- osPathJoin "a" "b" "c" }}
|
{{- osPathJoin "a" "b" "c" }}
|
||||||
{{- osPathJoin "/" "a" "b" "c" }}
|
{{- osPathJoin "/" "a" "b" "c" }}
|
||||||
@@ -629,6 +659,9 @@ renders as:
|
|||||||
|
|
||||||
It works with both Windows (`\r\n`) and POSIX (`\n`) linebreaks.
|
It works with both Windows (`\r\n`) and POSIX (`\n`) linebreaks.
|
||||||
|
|
||||||
|
If `<indentString>` is set to `\n` and `<levels>` is always set to `1`,
|
||||||
|
this function can even be used to doubelspace text!
|
||||||
|
|
||||||
It has quite a few arguments, however:
|
It has quite a few arguments, however:
|
||||||
|
|
||||||
{{ extIndent <levels> <skipFirst> <skipEmpty> <skipWhitespace> <indentString> <input> }}
|
{{ extIndent <levels> <skipFirst> <skipEmpty> <skipWhitespace> <indentString> <input> }}
|
||||||
@@ -654,3 +687,13 @@ Where:
|
|||||||
|
|
||||||
- `<input>`: The text to be indented. Because it is the last argument,
|
- `<input>`: The text to be indented. Because it is the last argument,
|
||||||
`extIndent` works with pipelined text as well.
|
`extIndent` works with pipelined text as well.
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
### `dump`
|
||||||
|
|
||||||
|
The `dump` function calls [the `Sdump`
|
||||||
|
function](https://pkg.go.dev/github.com/davecgh/go-spew/spew#Sdump) from
|
||||||
|
[`go-spew`](https://github.com/davecgh/go-spew)
|
||||||
|
([`github.com/davecgh/go-spew/spew`](https://pkg.go.dev/github.com/davecgh/go-spew/spew))
|
||||||
|
for whatever object(s) is/are passed to it.
|
||||||
|
|||||||
Reference in New Issue
Block a user