enigma-bbs/art/general.html

2505 lines
29 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" sizes="16x16" href="/enigma-bbs/assets/images/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="32x32" href="/enigma-bbs/assets/images/favicon-32x32.png">
<link rel="stylesheet" href="/enigma-bbs/assets/css/style.css?v=">
<!-- Begin Jekyll SEO tag v2.7.1 -->
<title>General Art Information | ENiGMA½ BBS Software</title>
<meta name="generator" content="Jekyll v4.2.1" />
<meta property="og:title" content="General Art Information" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art." />
<meta property="og:description" content="General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art." />
<meta property="og:site_name" content="ENiGMA½ BBS Software" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-04-08T23:23:42+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="General Art Information" />
<script type="application/ld+json">
{"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"description":"General Art Information One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.","url":"/enigma-bbs/art/general.html","@type":"BlogPosting","headline":"General Art Information","dateModified":"2022-04-08T23:23:42+00:00","datePublished":"2022-04-08T23:23:42+00:00","mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/general.html"},"@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<div id="container">
<div class="sidebar" id="sidebar">
<hr class="mobile-divide">
<div class="container">
<a href="/enigma-bbs/"><img src="/enigma-bbs/assets/images/enigma-logo.png" class="logo" alt="Enigma logo"></a>
</div>
<ul>
<li>Installation</li>
<ul>
<li><a href="/enigma-bbs/installation/installation-methods.html">Installation Methods</a></li>
<li><a href="/enigma-bbs/installation/install-script.html">Install Script</a></li>
<li><a href="/enigma-bbs/installation/docker.html">Docker</a></li>
<li><a href="/enigma-bbs/installation/manual.html">Manual Installation</a></li>
<li>OS / Hardware Specific</li>
<ul>
<li><a href="/enigma-bbs/installation/hardware/rpi.html">Raspberry Pi</a></li>
<li><a href="/enigma-bbs/installation/hardware/windows.html">Installation Under Windows</a></li>
</ul>
<li><a href="/enigma-bbs/installation/network.html">Network Setup</a></li>
<li><a href="/enigma-bbs/installation/testing.html">Testing Your Installation</a></li>
<li><a href="/enigma-bbs/installation/production.html">Production Installation</a></li>
</ul>
<li>Configuration</li>
<ul>
<li><a href="/enigma-bbs/configuration/creating-config.html">Creating Initial Config Files</a></li>
<li><a href="/enigma-bbs/configuration/sysop-setup.html">SysOp Setup</a></li>
<li><a href="/enigma-bbs/configuration/config-files.html">Configuration Files</a></li>
<li><a href="/enigma-bbs/configuration/config-hjson.html">System Configuration</a></li>
<li><a href="/enigma-bbs/configuration/hjson.html">HJSON Config Files</a></li>
<li><a href="/enigma-bbs/configuration/menu-hjson.html">Menu HSJON</a></li>
<li><a href="/enigma-bbs/configuration/directory-structure.html">Directory Structure</a></li>
<li><a href="/enigma-bbs/configuration/external-binaries.html">External Support Binaries</a></li>
<li><a href="/enigma-bbs/configuration/archivers.html">Archivers</a></li>
<li><a href="/enigma-bbs/configuration/file-transfer-protocols.html">File Transfer Protocols</a></li>
<li><a href="/enigma-bbs/configuration/email.html">Email</a></li>
<li><a href="/enigma-bbs/configuration/colour-codes.html">Colour Codes</a></li>
<li><a href="/enigma-bbs/configuration/event-scheduler.html">Event Scheduler</a></li>
<li><a href="/enigma-bbs/configuration/acs.html">Access Condition System (ACS)</a></li>
<li><a href="/enigma-bbs/configuration/security.html">Security</a></li>
</ul>
<li>Miscellaneous</li>
<ul>
<li><a href="/enigma-bbs/misc/user-interrupt.html">User Interruptions</a></li>
</ul>
<li>File Base</li>
<ul>
<li><a href="/enigma-bbs/filebase/index.html">About File Areas</a></li>
<li><a href="/enigma-bbs/filebase/first-file-area.html">Configuring a File Base</a></li>
<li><a href="/enigma-bbs/filebase/acs.html">ACS</a></li>
<li><a href="/enigma-bbs/filebase/uploads.html">Uploads</a></li>
<li><a href="/enigma-bbs/filebase/web-access.html">Web Access</a></li>
<li><a href="/enigma-bbs/filebase/tic-support.html">TIC Support</a></li>
<li><a href="/enigma-bbs/filebase/network-mounts-and-symlinks.html">Network Mounts &amp; Symlinks</a></li>
</ul>
<li>Message Areas</li>
<ul>
<li><a href="/enigma-bbs/messageareas/configuring-a-message-area.html">Message Base</a></li>
<li><a href="/enigma-bbs/messageareas/message-networks.html">Message Networks</a></li>
<li><a href="/enigma-bbs/messageareas/bso-import-export.html">BSO Import / Export</a></li>
<li><a href="/enigma-bbs/messageareas/netmail.html">Netmail</a></li>
<li><a href="/enigma-bbs/messageareas/qwk.html">QWK Support</a></li>
<li><a href="/enigma-bbs/messageareas/ftn.html">FidoNet-Style Networks (FTN)</a></li>
</ul>
<li>Art</li>
<ul>
<li class="active-nav">General Art Information</li>
<li><a href="/enigma-bbs/art/themes.html">Themes</a></li>
<li><a href="/enigma-bbs/art/mci.html">MCI Codes</a></li>
<li>Views</li>
<ul>
<li><a href="/enigma-bbs/art/views/button_view.html">Button View</a></li>
<li><a href="/enigma-bbs/art/views/edit_text_view.html">Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/full_menu_view.html">Full Menu View</a></li>
<li><a href="/enigma-bbs/art/views/horizontal_menu_view.html">Horizontal Menu View</a></li>
<li><a href="/enigma-bbs/art/views/mask_edit_text_view.html">Mask Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/multi_line_edit_text_view.html">Multi Line Edit Text View</a></li>
<li><a href="/enigma-bbs/art/views/predefined_label_view.html">Predefined Label View</a></li>
<li><a href="/enigma-bbs/art/views/spinner_menu_view.html">Spinner Menu View</a></li>
<li><a href="/enigma-bbs/art/views/text_view.html">Text View</a></li>
<li><a href="/enigma-bbs/art/views/toggle_menu_view.html">Toggle Menu View</a></li>
<li><a href="/enigma-bbs/art/views/vertical_menu_view.html">Vertical Menu View</a></li>
</ul>
</ul>
<li>Servers</li>
<ul>
<li>Login Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/loginservers/telnet.html">Telnet Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/ssh.html">SSH Server</a></li>
<li><a href="/enigma-bbs/servers/loginservers/websocket.html">Web Socket / Web Interface Server</a></li>
</ul>
<li>Content Servers</li>
<ul>
<li><a href="/enigma-bbs/servers/contentservers/web-server.html">Web Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/gopher.html">Gopher Server</a></li>
<li><a href="/enigma-bbs/servers/contentservers/nntp.html">NNTP Server</a></li>
</ul>
</ul>
<li>Modding</li>
<ul>
<li><a href="/enigma-bbs/modding/local-doors.html">Local Doors</a></li>
<li><a href="/enigma-bbs/modding/door-servers.html">Door Servers</a></li>
<li><a href="/enigma-bbs/modding/telnet-bridge.html">Telnet Bridge</a></li>
<li><a href="/enigma-bbs/modding/existing-mods.html">Existing Mods</a></li>
<li><a href="/enigma-bbs/modding/file-area-list.html">File Area List</a></li>
<li><a href="/enigma-bbs/modding/last-callers.html">Last Callers</a></li>
<li><a href="/enigma-bbs/modding/whos-online.html">Who's Online</a></li>
<li><a href="/enigma-bbs/modding/user-list.html">User List</a></li>
<li><a href="/enigma-bbs/modding/msg-conf-list.html">Message Conference List</a></li>
<li><a href="/enigma-bbs/modding/msg-area-list.html">Message Area List</a></li>
<li><a href="/enigma-bbs/modding/bbs-list.html">BBS List</a></li>
<li><a href="/enigma-bbs/modding/rumorz.html">Rumorz</a></li>
<li><a href="/enigma-bbs/modding/file-transfer-protocol-select.html">File Transfer Protocol Select</a></li>
<li><a href="/enigma-bbs/modding/onelinerz.html">Onelinerz</a></li>
<li><a href="/enigma-bbs/modding/show-art.html">The Show Art Module</a></li>
<li><a href="/enigma-bbs/modding/file-base-download-manager.html">File Base Download Manager</a></li>
<li><a href="/enigma-bbs/modding/file-base-web-download-manager.html">File Base Web Download Manager</a></li>
<li><a href="/enigma-bbs/modding/set-newscan-date.html">Set Newscan Date Module</a></li>
<li><a href="/enigma-bbs/modding/node-msg.html">Node to Node Messaging</a></li>
<li><a href="/enigma-bbs/modding/top-x.html">TopX</a></li>
<li><a href="/enigma-bbs/modding/user-2fa-otp-config.html">2FA/OTP Config</a></li>
<li><a href="/enigma-bbs/modding/autosig-edit.html">Auto Signature Editor</a></li>
<li><a href="/enigma-bbs/modding/menu-modules.html">Menu Modules</a></li>
</ul>
<li>Administration</li>
<ul>
<li><a href="/enigma-bbs/admin/administration.html">Administration</a></li>
<li><a href="/enigma-bbs/admin/oputil.html">oputil</a></li>
<li><a href="/enigma-bbs/admin/updating.html">Updating</a></li>
</ul>
<li>Troubleshooting</li>
<ul>
<li><a href="/enigma-bbs/troubleshooting/monitoring-logs.html">Monitoring Logs</a></li>
</ul>
</ul>
</div>
<div class="main_area">
<div class="container">
<section id="main_content">
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/messageareas/ftn.html">« FidoNet-Style Networks (FTN)</a>
<a href="#sidebar" class="btn menu_button">MENU</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/themes.html">Themes »</a>
<br clear="both">
</div>
<div class="page">
<h1 class="page-title">General Art Information</h1>
<h2 id="general-art-information">General Art Information</h2>
<p>One of the most basic elements of BBS customization is through its artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.</p>
<h3 id="art-file-locations">Art File Locations</h3>
<p>As a general rule, art files live in one of two places:</p>
<ol>
<li>The <code class="language-plaintext highlighter-rouge">art/general</code> directory. This is where you place common/non-themed art files.</li>
<li>Within a <em>theme</em> such as <code class="language-plaintext highlighter-rouge">art/themes/super_fancy_theme</code>.</li>
</ol>
<h3 id="mci-codes">MCI Codes</h3>
<p>All art can contain <a href="/enigma-bbs/art/mci.html">MCI Codes</a>.</p>
<h3 id="art-in-menus">Art in Menus</h3>
<p>While art can be displayed programmatically such as from a custom module, the most basic and common form is via <code class="language-plaintext highlighter-rouge">menu.hjson</code> entries. This usually falls into one of two forms:</p>
<h4 id="standard">Standard</h4>
<p>A “standard” entry where a single <code class="language-plaintext highlighter-rouge">art</code> spec is utilized:</p>
<pre><code class="language-hjson">{
mainMenu: {
art: main_menu.ans
}
}
</code></pre>
<h4 id="module-specific--multiple-art">Module Specific / Multiple Art</h4>
<p>An entry for a custom module where multiple pieces are declared and used. The second style usually takes the form of a <code class="language-plaintext highlighter-rouge">config.art</code> block with two or more entries:</p>
<pre><code class="language-hjson">{
nodeMessage: {
config: {
art: {
header: node_msg_header
footer: node_msg_footer
}
}
}
}
</code></pre>
<p>A menu entry has a few elements that control how art is selected and displayed. First, the <code class="language-plaintext highlighter-rouge">art</code> <em>spec</em> tells the system how to look for the art asset. Second, the <code class="language-plaintext highlighter-rouge">config</code> block can further control aspects of lookup and display. The following table describes such entries:</p>
<table>
<thead>
<tr>
<th>Item</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">font</code></td>
<td>Sets the <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style font to use when displaying this art. If unset, the system will use the arts embedded <a href="http://www.acid.org/info/sauce/sauce.htm">SAUCE</a> record if present or simply use the current font. See Fonts below.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">pause</code></td>
<td>If set to <code class="language-plaintext highlighter-rouge">true</code>, pause after displaying.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">baudRate</code></td>
<td>Set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style emulated baud rate when displaying this art. In other words, slow down the display.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">cls</code></td>
<td>Clear the screen before display if set to <code class="language-plaintext highlighter-rouge">true</code>.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">random</code></td>
<td>Set to <code class="language-plaintext highlighter-rouge">false</code> to explicitly disable random lookup.</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">types</code></td>
<td>An optional array of types (aka file extensions) to consider for lookup. For example : <code class="language-plaintext highlighter-rouge">[ '.ans', '.asc' ]</code>
</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">readSauce</code></td>
<td>May be set to <code class="language-plaintext highlighter-rouge">false</code> if you need to explicitly disable SAUCE support.</td>
</tr>
</tbody>
</table>
<h4 id="art-spec">Art Spec</h4>
<p>In the section above it is mentioned that the <code class="language-plaintext highlighter-rouge">art</code> member is a <em>spec</em>. The value of a <code class="language-plaintext highlighter-rouge">art</code> spec controls how the system looks for an asset. The following forms are supported:</p>
<ul>
<li>
<code class="language-plaintext highlighter-rouge">FOO</code>: The system will look for <code class="language-plaintext highlighter-rouge">FOO.ANS</code>, <code class="language-plaintext highlighter-rouge">FOO.ASC</code>, <code class="language-plaintext highlighter-rouge">FOO.TXT</code>, etc. using the default search path. Unless otherwise specified if <code class="language-plaintext highlighter-rouge">FOO1.ANS</code>, <code class="language-plaintext highlighter-rouge">FOO2.ANS</code>, and so on exist, a random selection will be made.</li>
<li>
<code class="language-plaintext highlighter-rouge">FOO.ANS</code>: By specifying an extension, only the exact match will be searched for.</li>
<li>
<code class="language-plaintext highlighter-rouge">rel/path/to/BAR.ANS</code>: Only match a path (relative to the systems <code class="language-plaintext highlighter-rouge">art</code> directory).</li>
<li>
<code class="language-plaintext highlighter-rouge">/path/to/BAZ.ANS</code>: Exact path only.</li>
</ul>
<p>ENiGMA½ uses a fallback system for art selection. When a menu entry calls for a piece of art, the following search is made:</p>
<ol>
<li>If a direct or relative path is supplied, look there first.</li>
<li>In the users current theme directory.</li>
<li>In the system default theme directory.</li>
<li>In the <code class="language-plaintext highlighter-rouge">art/general</code> directory.</li>
</ol>
<h4 id="acs-driven-conditionals">ACS-Driven Conditionals</h4>
<p>The <a href="/enigma-bbs/configuration/acs.html">ACS</a> system can be used to make conditional art selection choices. To do this, provide an array of possible values in your art spec. As an example:</p>
<pre><code class="language-hjson">{
fancyMenu: {
art: [
{
acs: GM[l33t]
art: leet_art.ans
}
{
// default
art: newb.asc
}
]
}
}
</code></pre>
<h4 id="syncterm-style-fonts">SyncTERM Style Fonts</h4>
<p>ENiGMA½ can set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style font for art display. This is supported by many other popular BBS terminals as well. A common usage is for displaying Amiga style fonts for example. The system will use the <code class="language-plaintext highlighter-rouge">font</code> specifier or look for a font declared in an artworks SAUCE record (unless <code class="language-plaintext highlighter-rouge">readSauce</code> is <code class="language-plaintext highlighter-rouge">false</code>).</p>
<p>The most common fonts are probably as follows:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">cp437</code></li>
<li><code class="language-plaintext highlighter-rouge">c64_upper</code></li>
<li><code class="language-plaintext highlighter-rouge">c64_lower</code></li>
<li><code class="language-plaintext highlighter-rouge">c128_upper</code></li>
<li><code class="language-plaintext highlighter-rouge">c128_lower</code></li>
<li><code class="language-plaintext highlighter-rouge">atari</code></li>
<li><code class="language-plaintext highlighter-rouge">pot_noodle</code></li>
<li><code class="language-plaintext highlighter-rouge">mo_soul</code></li>
<li><code class="language-plaintext highlighter-rouge">microknight_plus</code></li>
<li><code class="language-plaintext highlighter-rouge">topaz_plus</code></li>
<li><code class="language-plaintext highlighter-rouge">microknight</code></li>
<li><code class="language-plaintext highlighter-rouge">topaz</code></li>
</ul>
<p>…and some examples:</p>
<p><img src="../assets/images/cp437.png" alt="cp437" title="cp437"><br>
<img src="../assets/images/pot_noodle.png" alt="pot_noodle" title="pot_noodle"><br>
<img src="../assets/images/mo_soul.png" alt="mo_soul" title="mo_soul"><br>
<img src="../assets/images/microknight_plus.png" alt="microknight_plus" title="microknight_plus"><br>
<img src="../assets/images/topaz_plus.png" alt="topaz_plus" title="topaz_plus"><br>
<img src="../assets/images/microknight.png" alt="microknight" title="microknight"><br>
<img src="../assets/images/topaz.png" alt="topaz" title="topaz"><br></p>
<p>Other “fonts” also available:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">cp1251</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_r</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_2</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_9</code></li>
<li><code class="language-plaintext highlighter-rouge">haik8</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_8</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_u</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_15</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8_r_b</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_5</code></li>
<li><code class="language-plaintext highlighter-rouge">ARMSCII_8</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_15</code></li>
<li><code class="language-plaintext highlighter-rouge">cp850</code></li>
<li><code class="language-plaintext highlighter-rouge">cp850</code></li>
<li><code class="language-plaintext highlighter-rouge">cp885</code></li>
<li><code class="language-plaintext highlighter-rouge">cp1251</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_7</code></li>
<li><code class="language-plaintext highlighter-rouge">koi8-r_c</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_4</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_1</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">cp437</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866</code></li>
<li><code class="language-plaintext highlighter-rouge">cp885</code></li>
<li><code class="language-plaintext highlighter-rouge">cp866_u</code></li>
<li><code class="language-plaintext highlighter-rouge">iso8859_1</code></li>
<li><code class="language-plaintext highlighter-rouge">cp1131</code></li>
</ul>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> See <a href="https://github.com/protomouse/synchronet/blob/master/src/conio/cterm.txt">this specification</a> for more information.</p>
<h4 id="syncterm-style-baud-rates">SyncTERM Style Baud Rates</h4>
<p>The <code class="language-plaintext highlighter-rouge">baudRate</code> member can set a <a href="http://syncterm.bbsdev.net/">SyncTERM</a> style emulated baud rate. May be <code class="language-plaintext highlighter-rouge">300</code>, <code class="language-plaintext highlighter-rouge">600</code>, <code class="language-plaintext highlighter-rouge">1200</code>, <code class="language-plaintext highlighter-rouge">2400</code>, <code class="language-plaintext highlighter-rouge">4800</code>, <code class="language-plaintext highlighter-rouge">9600</code>, <code class="language-plaintext highlighter-rouge">19200</code>, <code class="language-plaintext highlighter-rouge">38400</code>, <code class="language-plaintext highlighter-rouge">57600</code>, <code class="language-plaintext highlighter-rouge">76800</code>, or <code class="language-plaintext highlighter-rouge">115200</code>. A value of <code class="language-plaintext highlighter-rouge">ulimited</code>, <code class="language-plaintext highlighter-rouge">off</code>, or <code class="language-plaintext highlighter-rouge">0</code> resets (disables) the rate.</p>
<p><img class="emoji" title=":information_source:" alt=":information_source:" src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png" height="20" width="20"> See <a href="https://github.com/protomouse/synchronet/blob/master/src/conio/cterm.txt">this specification</a> for more information.</p>
<h3 id="common-example">Common Example</h3>
<pre><code class="language-hjson">fullLogoffSequenceRandomBoardAd: {
art: OTHRBBS
desc: Logging Off
next: logoff
config: {
baudRate: 57600
pause: true
cls: true
}
}
</code></pre>
<h3 id="see-also">See Also</h3>
<p>See also the <a href="/enigma-bbs/modding/show-art.html">Show Art Module</a> for more advanced art display!</p>
</div>
<div class="PageNavigation">
<a class="btn" style="float:left;margin-right: 20px;" href="/enigma-bbs/messageareas/ftn.html">« FidoNet-Style Networks (FTN)</a>
<a class="btn" style="float: right;margin-left: 20px" href="/enigma-bbs/art/themes.html">Themes »</a>
<br clear="both">
</div>
</section>
</div>
</div>
</div>
</body>
</html>