mirror of
				https://git.asonix.dog/asonix/relay.git
				synced 2025-10-28 20:11:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| @use crate::{
 | |
| config::{Config, UrlKind},
 | |
| data::Node,
 | |
| templates::{info_html, instance_html, statics::index_css},
 | |
| };
 | |
| 
 | |
| @(local: &[Node], nodes: &[Node], config: &Config)
 | |
| 
 | |
| <!doctype html>
 | |
| <html>
 | |
| 
 | |
| <head lang="en">
 | |
|   <meta charset="utf-8" />
 | |
|   <meta name="viewport" content="width=device-width, initial-scale=1" />
 | |
|   <title>@config.hostname() | ActivityPub Relay</title>
 | |
|   <link rel="stylesheet" href="/static/@index_css.name" type="text/css" />
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
|   <header>
 | |
|     <div class="header-text">
 | |
|       <h1>@Config::software_name()<span class="smaller">@Config::software_version()</span></h1>
 | |
|       <p>on @config.hostname()</p>
 | |
|     </div>
 | |
|   </header>
 | |
|   <main>
 | |
|     @if !local.is_empty() || config.local_blurb().is_some() {
 | |
|     <article>
 | |
|       <h3>About</h3>
 | |
|       <section class="local-explainer">
 | |
|         @if let Some(blurb) = config.local_blurb() {
 | |
|         @blurb
 | |
|         } else {
 | |
|         <p>These domains are run by the same admins as this relay.</p>
 | |
|         }
 | |
|       </section>
 | |
|       @if !local.is_empty() {
 | |
|       <ul>
 | |
|         @for node in local {
 | |
|         @if let Some(inst) = node.instance.as_ref() {
 | |
|         <li>
 | |
|           @:instance_html(inst, node.info.as_ref().map(|info| { info.software.as_ref() }), node.contact.as_ref(),
 | |
|           &node.base)
 | |
|         </li>
 | |
|         } else {
 | |
|         @if let Some(inf) = node.info.as_ref() {
 | |
|         <li>
 | |
|           @:info_html(inf, &node.base)
 | |
|         </li>
 | |
|         }
 | |
|         }
 | |
|         }
 | |
|       </ul>
 | |
|       }
 | |
|     </article>
 | |
|     }
 | |
|     <article>
 | |
|       <h3>Joining</h3>
 | |
|       <section class="joining">
 | |
|         @if config.restricted_mode() {
 | |
|         <h4>
 | |
|           This relay is Restricted
 | |
|         </h4>
 | |
|         <p>
 | |
|           This relay is currently in Restricted Mode, which means servers need to be approved ahead of time by the relay
 | |
|           administrator. Please contact the admin before attempting to join.
 | |
|         </p>
 | |
|         } else {
 | |
|         <p>
 | |
|           If you are the admin of a server that supports activitypub relays, you can add
 | |
|           this relay to your server.
 | |
|         </p>
 | |
|         }
 | |
|         <h4>Mastodon</h4>
 | |
|         <p>
 | |
|           Mastodon admins can add this relay by adding
 | |
|         <pre>@config.generate_url(UrlKind::Inbox)</pre> in their relay settings.
 | |
|         </p>
 | |
|         <h4>Pleroma</h4>
 | |
|         <p>
 | |
|           Pleroma admins can add this relay by adding
 | |
|         <pre>@config.generate_url(UrlKind::Actor)</pre>
 | |
|         to their relay settings (I don't actually know how pleroma handles adding
 | |
|         relays, is it still a mix command?).
 | |
|         </p>
 | |
|         <h4>Others</h4>
 | |
|         <p>
 | |
|           Consult the documentation for your server. It's likely that it follows either
 | |
|           Mastodon or Pleroma's relay formatting.
 | |
|         </p>
 | |
|       </section>
 | |
|     </article>
 | |
|     @if !nodes.is_empty() {
 | |
|     <article>
 | |
|       <h3>@nodes.len() Connected Servers</h3>
 | |
|       <ul>
 | |
|         @for node in nodes {
 | |
|         @if let Some(inst) = node.instance.as_ref() {
 | |
|         <li>
 | |
|           @:instance_html(inst, node.info.as_ref().map(|info| { info.software.as_ref() }), node.contact.as_ref(),
 | |
|           &node.base)
 | |
|         </li>
 | |
|         } else {
 | |
|         @if let Some(inf) = node.info.as_ref() {
 | |
|         <li>
 | |
|           @:info_html(inf, &node.base)
 | |
|         </li>
 | |
|         }
 | |
|         }
 | |
|         }
 | |
|       </ul>
 | |
|     </article>
 | |
|     }
 | |
|   </main>
 | |
|   <footer>
 | |
|     @if let Some(blurb) = config.footer_blurb() {
 | |
|     <div>@blurb</div>
 | |
|     }
 | |
|     <p>
 | |
|       The source code for this project can be found at
 | |
|       <a href="@config.source_code()">@config.source_code()</a>
 | |
|     </p>
 | |
|   </footer>
 | |
| </body>
 | |
| 
 | |
| </html>
 | 
