Okay/Spec: Difference between revisions

No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 3: Line 3:
}}{{spec|Okay.}}
}}{{spec|Okay.}}


<p class="lede">
'''Okay''' dares to ask the big questions. What if group chat was hypertext? What if discord let you write arbitrary HTML? What if protocols were bad?
'''Okay''' dares to ask the big questions. What if group chat was hypertext? What if discord let you write arbitrary HTML? What if protocols were bad?
</p>


== in summary ==
== in summary ==
Line 21: Line 23:


== controversies ==
== controversies ==
* <s>What “server” means is kind of nebulous.</s>
* <s>What “server” means is kind of nebulous.</s>
* What do we do about invalid HTML?
* What do we do about invalid HTML?
Line 138: Line 139:
|-
|-
|<code>ok-title</code>
|<code>ok-title</code>
|Any non-void element, <code><nowiki><h1 /></nowiki></code>preferred.
|Any non-void element, <code><nowiki><h1 /></nowiki></code> preferred.
|What the space is called in common parlance.
|What the space is called in common parlance.
|-
|-
|<code>ok-subtitle</code>
|<code>ok-subtitle</code>
|Any non-void element, <code><nowiki><p /></nowiki></code>preferred.
|Any non-void element, <code><nowiki><p /></nowiki></code> preferred.
|An extra bit of text that is displayed alongside the title in certain contexts.
|An extra bit of text that is displayed alongside the title in certain contexts.
|-
|-
|<code>ok-description</code>
|<code>ok-description</code>
|Any non-void element, <code><nowiki><p /></nowiki></code>preferred.
|Any non-void element, <code><nowiki><p /></nowiki></code> preferred.
|A long description of what the space is about.
|A long description of what the space is about.
|}
|}
Line 154: Line 155:


== initiation ==
== initiation ==
A client <span class="must">must</span> register itself with a space before it can send messages to rooms.  
A client <span class="must">must</span> register itself with a space before it can perform most actions.  


=== keys ===
=== keys ===
Line 162: Line 163:
The registration page allows clients to register their public key and [[Okay/Spec#profiles|profile]] with the space.  
The registration page allows clients to register their public key and [[Okay/Spec#profiles|profile]] with the space.  


== the directory ==
== directory ==
The '''Room Directory''' is a list of every room contained within the space. This list <span class="may">may</span> be [[Okay/Spec#pagination|paginated]].
The '''room directory''' is represented using the <code>ok-rooms</code> [[Okay/Spec#michaelformats|michaelformat]]. It contains the list of every room in a space. This list <span class="may">may</span> be [[Okay/Spec#pagination|paginated]].
 
A space's room directory <span class="must">must</span> be present in its [[Okay/Spec#ok-space|ok-space]] element, either [[Okay/Spec#linking to stuff|linked]] using the <code>ok-rooms</code> rel value or included inline.


The URI of the space's room directory <span class="must">must</span> be linked in its [[Okay/Spec#ok-space|ok-space]] element using the <code>ok-rooms</code> rel value.
Each room in the space <span class="must">must</span> be linked with a single <code><a /></code> element with the <code>ok-room</code> rel value. Rooms <span class="mustnt">must not</span> be included inline in the room directory.


Here's an example of what a room directory might look like:<syntaxhighlight lang="html"><main class="ok-rooms">
Here's an example of what a room directory might look like:<syntaxhighlight lang="html"><main class="ok-rooms">
   <h1>Rooms on This Server</h1>
   <h1>Rooms on This Server</h1>
   <ul>
   <ul>
     <li><a href="/rooms/1" class="ok-room">General</a></li>
     <li><a href="/rooms/1" rel="ok-room">General</a></li>
     <li><a href="/rooms/evil" class="ok-room">Evildoing Room (evil)</a></li>
     <li><a href="/rooms/evil" rel="ok-room">Evildoing Room (evil)</a></li>
   </ul>
   </ul>
</main></syntaxhighlight>A room directory is still just a rat in a cage.
</main></syntaxhighlight>A room directory is still just a rat in a cage.
Line 181: Line 184:
== messages ==
== messages ==
== profiles ==
== profiles ==
== subscriptions ==
== [https://www.youtube.com/shorts/IIISJgeTyPk subscriptions] ==
== settings ==
== settings ==
== pagination ==
== pagination ==