2023-05-06 13:07:25 +00:00
|
|
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
2023-04-30 14:50:01 +00:00
|
|
|
<!--% PROCESS "queries-tags-${constants.database}.tpl.html" %-->
|
|
|
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
|
|
|
<!--% PERL %-->
|
|
|
|
$Template::Stash::PRIVATE = undef; # Allow . in tag
|
|
|
|
<!--% END %-->
|
|
|
|
<!--% uniq_tag_count = 0 %-->
|
|
|
|
<!--% comma_re = '(?x)(?:^|,\s*)(?:"((?>[^"]*)(?:""[^"]*)*)"|([^",]*))'; %-->
|
|
|
|
<!--# 'Moka5,interview, "computer science"' -->
|
|
|
|
<!--% FOREACH episode IN DBI.query(query_tags);
|
|
|
|
ep_id = episode.id;
|
|
|
|
ep_tags = episode.tags;
|
|
|
|
FOREACH tag_str IN ep_tags.split(comma_re);
|
|
|
|
NEXT UNLESS tag_str;
|
|
|
|
NEXT IF tag_str == '';
|
|
|
|
tag = tag_str.lower;
|
|
|
|
first_char = tag.substr(0,1);
|
|
|
|
IF first_char == '.';
|
|
|
|
first_char = '.'; # Unicode .
|
|
|
|
END;
|
|
|
|
IF all_tags.${first_char}.exists(tag);
|
|
|
|
all_tags.${first_char}.${tag}.count = all_tags.${first_char}.${tag}.count + 1;
|
|
|
|
all_tags.${first_char}.${tag}.urls.push(ep_id);
|
|
|
|
ELSE;
|
|
|
|
all_tags.${first_char}.${tag}.count = 1;
|
|
|
|
uniq_tag_count = uniq_tag_count + 1;
|
|
|
|
all_tags.${first_char}.${tag}.urls = [ep_id];
|
|
|
|
END;
|
|
|
|
END;
|
|
|
|
END %-->
|
|
|
|
<!--% USE date %-->
|
|
|
|
<!--% all_first = ['#','.','/','0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] %-->
|
|
|
|
|
|
|
|
<style>
|
|
|
|
.columns3 { columns: 3 auto; list-style-type: none }
|
|
|
|
hr.thin {
|
|
|
|
border: 0;
|
|
|
|
height: 0;
|
|
|
|
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
|
|
|
|
}
|
|
|
|
p.ralign { text-align: right }
|
|
|
|
</style>
|
|
|
|
<article>
|
|
|
|
<a id="TOP"><h1 class="title">Tag summary</h1></a>
|
|
|
|
<h4 class="date">Page generated on <!--% date.format(date.now, format => '%Y-%m-%d at %H:%M:%S UTC', gmt => 1) %--></h4>
|
|
|
|
<p>This section summarises all of the tags currently used throughout the
|
|
|
|
database. The tags are in alphabetical order and each is followed by links to
|
|
|
|
the show numbers where it is used so you can see the context the author used
|
|
|
|
it in. There are currently <!--% uniq_tag_count %--> unique tags in the system.</p>
|
|
|
|
<h4>Alphabetical index</h4>
|
|
|
|
<p>This is an index to the initial letters of the tags below.</p>
|
|
|
|
<ul class="columns3">
|
|
|
|
<!--% FOREACH first_char IN all_first %-->
|
|
|
|
<!--% IF all_tags.${first_char} %-->
|
2023-05-06 13:07:25 +00:00
|
|
|
<li><a href="<!--% absolute_path(baseurl) %-->tags.html#<!--% all_tags.${first_char}.keys.sort.first %-->"><strong><!--% first_char %--></strong></a></li>
|
2023-04-30 14:50:01 +00:00
|
|
|
<!--% END %-->
|
|
|
|
<!--% END %-->
|
|
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!--% FOREACH first_char IN all_first %-->
|
|
|
|
<!--% IF all_tags.${first_char} %-->
|
2023-05-06 13:07:25 +00:00
|
|
|
<p class="ralign"><a href="<!--% absolute_path(baseurl) %-->tags.html#TOP">↑ Go to index</a></p>
|
2023-04-30 14:50:01 +00:00
|
|
|
<h3>Tags beginning with '<!--% first_char %-->'</h3>
|
|
|
|
<ul>
|
|
|
|
<!--% FOREACH tag IN all_tags.${first_char}.keys.sort %-->
|
|
|
|
<li>
|
|
|
|
<a id="<!--% tag %-->"><strong><!--% tag %--></strong></a>:
|
|
|
|
<!--% ep_links = [] %-->
|
|
|
|
<!--% FOREACH ep_id IN all_tags.${first_char}.${tag}.urls.nsort;
|
2023-05-06 13:07:25 +00:00
|
|
|
ep_links.push("<a href=\"${absolute_path(baseurl)}eps/hpr" _ zero_pad_left(ep_id) _ '/index.html"'
|
2023-04-30 14:50:01 +00:00
|
|
|
' target="_blank" aria-label="' _ tag _
|
|
|
|
' - show ' _ ep_id _ '">' _ ep_id _ '</a>');
|
|
|
|
END %-->
|
|
|
|
<!--% ep_links.join(', ') %-->
|
|
|
|
</li>
|
|
|
|
<!--% END %-->
|
|
|
|
</ul>
|
|
|
|
<!--% END %-->
|
|
|
|
<!--% END %-->
|
|
|
|
<p><a href="#TOP">Go to TOP of page</a></p>
|
|
|
|
</article>
|
|
|
|
<!--% PERL %-->
|
|
|
|
$Template::Stash::PRIVATE = 1;
|
|
|
|
<!--% END %-->
|