fix: merged about and about-content
This commit is contained in:
parent
b862097ca2
commit
2118f4ed5a
|
|
@ -1312,7 +1312,8 @@
|
||||||
(define-page-with-limit about-content #@"/about-content" (:limit-group "public")
|
(define-page-with-limit about-content #@"/about-content" (:limit-group "public")
|
||||||
"About page content (displayed in content frame)"
|
"About page content (displayed in content frame)"
|
||||||
(clip:process-to-string
|
(clip:process-to-string
|
||||||
(load-template "about-content")
|
(load-template "about")
|
||||||
|
:framesetp t
|
||||||
:title "About - Asteroid Radio"))
|
:title "About - Asteroid Radio"))
|
||||||
|
|
||||||
;; Status content (for frameset mode)
|
;; Status content (for frameset mode)
|
||||||
|
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>About - Asteroid Radio</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<link rel="stylesheet" type="text/css" href="/asteroid/static/asteroid.css">
|
|
||||||
<script src="/asteroid/static/js/auth-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container">
|
|
||||||
<header>
|
|
||||||
<h1 style="display: flex; align-items: center; justify-content: center; gap: 15px;">
|
|
||||||
<img src="/asteroid/static/asteroid.png" alt="Asteroid" style="height: 50px; width: auto;">
|
|
||||||
<span>ABOUT ASTEROID RADIO</span>
|
|
||||||
<img src="/asteroid/static/asteroid.png" alt="Asteroid" style="height: 50px; width: auto;">
|
|
||||||
</h1>
|
|
||||||
<nav class="nav">
|
|
||||||
<a href="/asteroid/content" target="_self">Home</a>
|
|
||||||
<a href="/asteroid/player-content" target="_self">Player</a>
|
|
||||||
<a href="/asteroid/about-content" target="_self">About</a>
|
|
||||||
<a href="/asteroid/status" target="_self">Status</a>
|
|
||||||
<a href="/asteroid/profile" target="_self" data-show-if-logged-in>Profile</a>
|
|
||||||
<a href="/asteroid/admin" target="_self" data-show-if-admin>Admin</a>
|
|
||||||
<a href="/asteroid/login" target="_self" data-show-if-logged-out>Login</a>
|
|
||||||
<a href="/asteroid/register" target="_self" data-show-if-logged-out>Register</a>
|
|
||||||
<a href="/asteroid/logout" data-show-if-logged-in class="btn-logout">Logout</a>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<main style="max-width: 800px; margin: 0 auto; padding: 20px;">
|
|
||||||
<section style="margin-bottom: 30px;">
|
|
||||||
<h2 style="color: #00ff00; border-bottom: 2px solid #00ff00; padding-bottom: 10px;">🎵 Asteroid Music for Hackers</h2>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
Asteroid Radio is a community-driven internet radio station born from the SystemCrafters community.
|
|
||||||
We celebrate the intersection of music, technology, and hacker culture—broadcasting for those who
|
|
||||||
appreciate both great code and great music.
|
|
||||||
</p>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
We met through a shared set of technical biases and a love for building systems from first principles.
|
|
||||||
Asteroid Radio embodies that ethos: <strong>music for hackers, built by hackers</strong>.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section style="margin-bottom: 30px;">
|
|
||||||
<h2 style="color: #00ff00; border-bottom: 2px solid #00ff00; padding-bottom: 10px;">🛠️ Built with Common Lisp</h2>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
This entire platform is built using <strong>Common Lisp</strong>, demonstrating the power and elegance
|
|
||||||
of Lisp for modern web applications. We use:
|
|
||||||
</p>
|
|
||||||
<ul style="line-height: 1.8; margin-left: 20px;">
|
|
||||||
<li><strong><a href="https://codeberg.org/shirakumo/radiance" style="color: #00ff00;">Radiance</a></strong> - Web application framework</li>
|
|
||||||
<li><strong><a href="https://codeberg.org/shinmera/clip" style="color: #00ff00;">Clip</a></strong> - HTML5-compliant template engine</li>
|
|
||||||
<li><strong><a href="https://codeberg.org/shinmera/LASS" style="color: #00ff00;">LASS</a></strong> - Lisp Augmented Style Sheets</li>
|
|
||||||
<li><strong><a href="https://gitlab.common-lisp.net/parenscript/parenscript" style="color: #00ff00;">ParenScript</a></strong> - Lisp-to-JavaScript compiler</li>
|
|
||||||
<li><strong><a href="https://icecast.org/" style="color: #00ff00;">Icecast</a></strong> - Streaming media server</li>
|
|
||||||
<li><strong><a href="https://www.liquidsoap.info/" style="color: #00ff00;">Liquidsoap</a></strong> - Audio stream generation</li>
|
|
||||||
</ul>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
By building in Common Lisp, we're doubling down on our technical values and creating features
|
|
||||||
for "our people"—those who appreciate the elegance of Lisp and the power of understanding your tools deeply.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section style="margin-bottom: 30px;">
|
|
||||||
<h2 style="color: #00ff00; border-bottom: 2px solid #00ff00; padding-bottom: 10px;">📖 Open Source & AGPL Licensed</h2>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
Asteroid Radio is <strong>free and open source software</strong>, licensed under the
|
|
||||||
<strong><a href="https://www.gnu.org/licenses/agpl-3.0.en.html" style="color: #00ff00;">GNU Affero General Public License v3.0 (AGPL)</a></strong>.
|
|
||||||
</p>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
The source code is available at:
|
|
||||||
<a href="https://github.com/Fade/asteroid" style="color: #00ff00; font-weight: bold;">https://github.com/Fade/asteroid</a>
|
|
||||||
</p>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
We believe in transparency, collaboration, and the freedom to study, modify, and share the software we use.
|
|
||||||
The AGPL ensures that improvements to Asteroid Radio remain free and available to everyone.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section style="margin-bottom: 30px;">
|
|
||||||
<h2 style="color: #00ff00; border-bottom: 2px solid #00ff00; padding-bottom: 10px;">🎧 Features</h2>
|
|
||||||
<ul style="line-height: 1.8; margin-left: 20px;">
|
|
||||||
<li><strong>Live Streaming</strong> - Multiple quality options (AAC, MP3)</li>
|
|
||||||
<li><strong>Persistent Player</strong> - Frameset mode for uninterrupted playback while browsing</li>
|
|
||||||
<li><strong>Spectrum Analyzer</strong> - Real-time audio visualization with customizable themes</li>
|
|
||||||
<li><strong>Track Library</strong> - Browse and search the music collection</li>
|
|
||||||
<li><strong>User Profiles</strong> - Track your listening history</li>
|
|
||||||
<li><strong>Admin Tools</strong> - Manage tracks, users, and playlists</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section style="margin-bottom: 30px;">
|
|
||||||
<h2 style="color: #00ff00; border-bottom: 2px solid #00ff00; padding-bottom: 10px;">🤝 Community</h2>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
We're part of the <strong><a href="https://systemcrafters.net/" style="color: #00ff00;">SystemCrafters</a></strong>
|
|
||||||
community—a group of developers, hackers, and enthusiasts who believe in building systems from first principles,
|
|
||||||
understanding our tools deeply, and sharing knowledge freely.
|
|
||||||
</p>
|
|
||||||
<p style="line-height: 1.6;">
|
|
||||||
Join us in celebrating the intersection of great music and great code!
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -18,16 +18,32 @@
|
||||||
<span>ABOUT ASTEROID RADIO</span>
|
<span>ABOUT ASTEROID RADIO</span>
|
||||||
<img src="/asteroid/static/asteroid.png" alt="Asteroid" style="height: 50px; width: auto;">
|
<img src="/asteroid/static/asteroid.png" alt="Asteroid" style="height: 50px; width: auto;">
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<a href="/asteroid/">Home</a>
|
<c:if test="(not framesetp)">
|
||||||
<a href="/asteroid/player">Player</a>
|
<c:then>
|
||||||
<a href="/asteroid/about">About</a>
|
<a href="/asteroid/">Home</a>
|
||||||
<a href="/asteroid/status">Status</a>
|
<a href="/asteroid/player">Player</a>
|
||||||
<a href="/asteroid/profile" data-show-if-logged-in>Profile</a>
|
<a href="/asteroid/about">About</a>
|
||||||
<a href="/asteroid/admin" data-show-if-admin>Admin</a>
|
<a href="/asteroid/status">Status</a>
|
||||||
<a href="/asteroid/login" data-show-if-logged-out>Login</a>
|
<a href="/asteroid/profile" data-show-if-logged-in>Profile</a>
|
||||||
<a href="/asteroid/register" data-show-if-logged-out>Register</a>
|
<a href="/asteroid/admin" data-show-if-admin>Admin</a>
|
||||||
<a href="/asteroid/logout" data-show-if-logged-in class="btn-logout">Logout</a>
|
<a href="/asteroid/login" data-show-if-logged-out>Login</a>
|
||||||
|
<a href="/asteroid/register" data-show-if-logged-out>Register</a>
|
||||||
|
<a href="/asteroid/logout" data-show-if-logged-in class="btn-logout">Logout</a>
|
||||||
|
</c:then>
|
||||||
|
<c:else>
|
||||||
|
<a href="/asteroid/content" target="_self">Home</a>
|
||||||
|
<a href="/asteroid/player-content" target="_self">Player</a>
|
||||||
|
<a href="/asteroid/about-content" target="_self">About</a>
|
||||||
|
<a href="/asteroid/status-content" target="_self">Status</a>
|
||||||
|
<a href="/asteroid/profile" target="_self" data-show-if-logged-in>Profile</a>
|
||||||
|
<a href="/asteroid/admin" target="_self" data-show-if-admin>Admin</a>
|
||||||
|
<a href="/asteroid/login" target="_self" data-show-if-logged-out>Login</a>
|
||||||
|
<a href="/asteroid/register" target="_self" data-show-if-logged-out>Register</a>
|
||||||
|
<a href="/asteroid/logout" data-show-if-logged-in class="btn-logout">Logout</a>
|
||||||
|
</c:else>
|
||||||
|
</c:if>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
<main style="max-width: 800px; margin: 0 auto; padding: 20px;">
|
<main style="max-width: 800px; margin: 0 auto; padding: 20px;">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue