About Glacius[source]

xml
<glacius:metadata>
    <title>About Glacius</title>
    <description>About the wiki engine</description>
    <category>Site meta</category>
</glacius:metadata>
<p>
    Glacius (<em style="font-variant: small-caps">glay-see-uss</em>) is a <a href="https://en.wikipedia.org/wiki/Wiki">wiki engine</a>
    I wrote from scratch. It's named after 
    <a href="https://killerinstinct.fandom.com/wiki/Glacius">a character</a> from the
    fighting game <a href="https://en.wikipedia.org/wiki/Killer_Instinct">Killer Instinct</a>.
</p>
<h2>Tech stack</h2>
<p>
    Glacius is pretty simple. It is a <a href="https://nodejs.org/">Node.js</a> application
    that uses <a href="https://sqlite.org/">SQLite</a> for data storage. Static content and
    uploads are stored in <a href="https://aws.amazon.com/s3/">S3</a> and served through 
    <a href="https://aws.amazon.com/cloudfront/">Cloudfront</a>. 
    <a href="https://nginx.org/">nginx</a> is used as a reverse proxy to the Node app.
</p>
<p>
    It has very little client-side JavaScript because that's a philosophy I'm starting
    to (re-)subscribe to. Basically I'm yearning for the days circa 2008 when 
    <a href="https://developer.mozilla.org/en-US/docs/Glossary/Graceful_degradation"><em>graceful
    degradation</em></a> was a proud endeavor.
</p>
<p>
    During development I use <a href="https://www.docker.com/">Docker</a>, 
    a bunch of custom Bash scripts, and <a href="https://sass-lang.com/">SASS</a>. At the
    moment it's written in plain JavaScript but someday I may port it to 
    <a href="https://www.typescriptlang.org/">TypeScript</a>. The incredible slowness of
    the TypeScript compiler turned me off of it for a while but now I'm in love with
    <a href="https://esbuild.github.io/">esbuild</a> which basically alleviates that pain.
</p>
<p>
    Infrastructure is deployed (mostly) with CloudFormation. This site currently is
    sharing resources with a bunch of <glacius:link page="about/sites">other stuff</glacius:link>
    I host.
</p>
<h3>Other tools</h3>
<ul>
    <li>
        <a href="https://mediaarea.net/en/MediaInfo"><code>mediainfo</code></a> for introspecting
        uploaded media files
    </li>
    <li>
        <code>file</code> 
        <small>(via <a href="https://linux.die.net/man/3/libmagic">libmagic</a>)</small> for 
        determining mimetypes of uploaded files
    </li>
</ul>
<h2>Wiki content</h2>
<p>
    I decided to use XML (mostly XHTML) as the markup text for all wiki content. Mostly
    because XML is very easy to parse, and since I could just write regular HTML, custom
    styling would be easy. Markup languages like Markdown or something similar to
    MediaWiki were deemed too complex and frankly I don't like Markdown very much.
</p>
<p>
    When I need customization in the form of markup I create a new tag prefixed with
    <code>glacius:</code>, e.g. <code>&lt;glacius:link /&gt;</code>.
</p>