qsgen3/docs/zsdoc/qsgen2.html

1382 lines
35 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 10.2.0" />
<title>qsgen2(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>qsgen2(1)</h1>
</div>
<div id="content">
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph"><p>qsgen2 - a shell script</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>Documentation automatically generated with &#8216;zsdoc&#8217;</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_functions">FUNCTIONS</h2>
<div class="sectionbody">
<div class="literalblock">
<div class="content">
<pre><code>_add_blog_list_to_index
_blog_cache
_blog_idx_for_index
_blog_index
_blogs
_cleanup
_file_to_lower
_f_last_updated
_help
_image
_last_updated
_link
_list_blogs
_list_pages
_msg
_pages
_pages_cache
_p_qstags
_qstags
_run_engine
_sitemap
_version
_youtube</code></pre>
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_details">DETAILS</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_script_body">Script Body</h3>
<div class="paragraph"><p>Has 101 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body
|-- _blogs
|   |-- _blog_cache
|   |   `-- _list_blogs
|   |   `-- _msg
|   |-- _blog_idx_for_index
|   |   `-- _msg
|   |-- _blog_index
|   |   |-- _f_last_updated
|   |   |   `-- _msg
|   |   `-- _msg
|   |-- _list_blogs
|   |   `-- _msg
|   `-- _msg
|-- _help
|-- _msg
|-- _pages
|   |-- _add_blog_list_to_index
|   |-- _msg
|   `-- _pages_cache
|   `-- _list_pages
|   `-- _msg
|-- _sitemap
|   `-- _msg
`-- _version
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>autoload</em>, <em>export</em>, <em>source</em>, <em>zmodload</em></p></div>
<div class="paragraph"><p><em>Exports (environment):</em> blogdate <strong><span class="big">//</span></strong> file_ext <strong><span class="big">//</span></strong> sitemap_force <strong><span class="big">//</span></strong> today</p></div>
</div>
<div class="sect2">
<h3 id="_add_blog_list_to_index">_add_blog_list_to_index</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Add the blog list to the index file if blog_in_index is true.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 9 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_pages</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_blog_cache">_blog_cache</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Cache the state of blog files and identify changes.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 31 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_cache
`-- _list_blogs
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blogs</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_blog_idx_for_index">_blog_idx_for_index</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Generate the file blog/index.tmp.html.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 59 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_idx_for_index
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blogs</code></pre>
</div></div>
<div class="paragraph"><p><em>Environment variables used:</em> BLOG_META_STR_ARRAY</p></div>
</div>
<div class="sect2">
<h3 id="_blog_index">_blog_index</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Generate the www_root/blog/index.html file.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 30 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_index
|-- _f_last_updated
|   `-- _msg
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blogs</code></pre>
</div></div>
<div class="paragraph"><p><em>Environment variables used:</em> new_updated_blogs</p></div>
</div>
<div class="sect2">
<h3 id="_blogs">_blogs</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Generate or update blog files or export metadata based on argument.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 155 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blogs
|-- _blog_cache
|   `-- _list_blogs
|   `-- _msg
|-- _blog_idx_for_index
|   `-- _msg
|-- _blog_index
|   |-- _f_last_updated
|   |   `-- _msg
|   `-- _msg
|-- _list_blogs
|   `-- _msg
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>export</em></p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body</code></pre>
</div></div>
<div class="paragraph"><p><em>List of exports (to environment):</em> BLOG_META_STR_ARRAY <strong><span class="big">//</span></strong> new_updated_blogs</p></div>
<div class="paragraph"><p><em>Environment variables used:</em> new_updated_blogs <strong><span class="big">//</span></strong> no_blogs_found</p></div>
</div>
<div class="sect2">
<h3 id="_cleanup">_cleanup</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Remove leftover tags from the content.
# @param content The content to be cleaned.
# @return The cleaned content.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 16 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_file_to_lower">_file_to_lower</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Convert the filename to lowercase and replace spaces with dashes.
# @param filename The original filename.
# @return The modified filename.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 5 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_f_last_updated">_f_last_updated</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Update #updated and #version tags in the provided file.
# @param file_path The path to the file to be updated.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 19 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_f_last_updated
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_index</code></pre>
</div></div>
<div class="paragraph"><p><em>Environment variables used:</em> today</p></div>
</div>
<div class="sect2">
<h3 id="_help">_help</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Display help information for the script.
# @param ... Additional arguments (unused in this function).</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 2 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_image">_image</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Convert #showimg tags to HTML img tags.
# @param content The content containing #showimg tags.
# @return The content with #showimg tags replaced by HTML img tags.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 28 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_last_updated">_last_updated</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Update #updated and #version tags in the provided content.
# @param content The content to be updated.
# @return The updated content.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 15 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_last_updated
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
<div class="paragraph"><p><em>Environment variables used:</em> today</p></div>
</div>
<div class="sect2">
<h3 id="_link">_link</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Convert #link tags to clickable HTML links.
# @param content The content containing #link tags.
# @return The content with #link tags replaced by HTML links.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 27 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_list_blogs">_list_blogs</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief List all blog files and store them in an array.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 22 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_list_blogs
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>export</em>, <em>setopt</em></p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_cache
_blogs</code></pre>
</div></div>
<div class="paragraph"><p><em>List of exports (to environment):</em> no_blogs_found</p></div>
</div>
<div class="sect2">
<h3 id="_list_pages">_list_pages</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief List all page files and store them in an array.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 21 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_list_pages
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>export</em>, <em>setopt</em></p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_pages_cache</code></pre>
</div></div>
<div class="paragraph"><p><em>List of exports (to environment):</em> no_pages_found</p></div>
<div class="paragraph"><p><em>Environment variables used:</em> file_ext</p></div>
</div>
<div class="sect2">
<h3 id="_msg">_msg</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Display a message with specific formatting based on message type.
# @param type The type of message (e.g., std, info, debug, etc.)
# @param ... The keys or additional strings to be formatted and displayed.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 21 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_blog_idx_for_index
_blog_index
_blogs
_f_last_updated
_last_updated
_list_blogs
_list_pages
_pages
_p_qstags
_qstags
_run_engine
Script-Body
_sitemap
_version</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_pages">_pages</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Generate all new and updated pages.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 108 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_pages
|-- _add_blog_list_to_index
|-- _msg
`-- _pages_cache
`-- _list_pages
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>export</em>, <em>read</em></p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body</code></pre>
</div></div>
<div class="paragraph"><p><em>List of exports (to environment):</em> new_updated_pages</p></div>
<div class="paragraph"><p><em>Environment variables used:</em> no_pages_found <strong><span class="big">//</span></strong> file_ext</p></div>
</div>
<div class="sect2">
<h3 id="_pages_cache">_pages_cache</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Cache the state of page files and identify changes.
# @return Array of pages to be processed.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 31 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_pages_cache
`-- _list_pages
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_pages</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_p_qstags">_p_qstags</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Convert QStags to HTML using Perl.
# @param content The content containing QStags.
# @return The content with QStags converted to HTML.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 55 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_p_qstags
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_qstags">_qstags</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Convert QStags to HTML using Zsh regex module.
# @param content The content containing QStags.
# @return The content with QStags converted to HTML.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 50 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_qstags
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_run_engine">_run_engine</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Run the configured engine to process the input file.
# @param input The input file to be processed.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 11 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_run_engine
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
<div class="sect2">
<h3 id="_sitemap">_sitemap</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Generate the sitemap files if conditions are met.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 92 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_sitemap
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Uses feature(s): <em>setopt</em></p></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body</code></pre>
</div></div>
<div class="paragraph"><p><em>Environment variables used:</em> new_updated_blogs <strong><span class="big">//</span></strong> new_updated_pages <strong><span class="big">//</span></strong> sitemap_force</p></div>
</div>
<div class="sect2">
<h3 id="_version">_version</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Display the version information of the script.
# @param ... Additional arguments (unused in this function).</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 4 line(s). Calls functions:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>_version
`-- _msg</code></pre>
</div></div>
<div class="paragraph"><p>Called by:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>Script-Body</code></pre>
</div></div>
</div>
<div class="sect2">
<h3 id="_youtube">_youtube</h3>
<div class="quoteblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><code>##
# @brief Embed a YouTube video in the provided content.
# @param content The content containing #ytvideo tags.
# @return The content with #ytvideo tags replaced by YouTube iframe embeds.</code></pre>
</div></div>
</div>
<div class="attribution">
</div></div>
<div class="paragraph"><p>Has 18 line(s). Doesn&#8217;t call other functions.</p></div>
<div class="paragraph"><p>Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).</p></div>
</div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2024-06-01 15:34:35 CEST
</div>
</div>
</body>
</html>