80 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| @use crate::{
 | |
|     config::{Config, UrlKind},
 | |
|     data::Node,
 | |
|     templates::{info, instance, statics::index_css},
 | |
| };
 | |
| 
 | |
| @(nodes: &[Node], config: &Config)
 | |
| 
 | |
| <!doctype html>
 | |
| <html>
 | |
|     <head lang="en">
 | |
|         <meta charset="utf-8"/>
 | |
|         <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>
 | |
|             <section>
 | |
|                 <h3>Connected Servers</h3>
 | |
|                 @if nodes.is_empty() {
 | |
|                     <p>There are no connected servers at this time.</p>
 | |
|                 } else {
 | |
|                     <ul>
 | |
|                         @for node in nodes {
 | |
|                             @if let Some(inst) = node.instance.as_ref() {
 | |
|                                 <li>
 | |
|                                     @:instance(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(&inf, &node.base)
 | |
|                                     </li>
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     </ul>
 | |
|                 }
 | |
|             </section>
 | |
|             <section>
 | |
|                 <h3>Joining</h3>
 | |
|                 <article class="joining">
 | |
|                     <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>
 | |
|                 </article>
 | |
|             </section>
 | |
|         </main>
 | |
|         <footer>
 | |
|             <p>
 | |
|                 The source code for this project can be found at
 | |
|                 <a href="@config.source_code()">@config.source_code()</a>
 | |
|             </p>
 | |
|         </footer>
 | |
|     </body>
 | |
| </html>
 |