2020-06-12 Leaving comments on a Gemini site

This page explains how comments are implemented on this site, from a technical point of view. Before you can leave a comment, you need to answer a security question. On this site, the question is simple: “Please say HELLO” and then you need to say “hello” and you’re probably not a bot. Then you see the prompt for the comment, and then you’re redirected back to the comments page.

Client                               	                                Server
| Read a page                                                                |
| gemini://alexschroeder.ch/Test                                             |
|--------------------------------------------------------------------------->|
|                                                      Text of the Test page |
|                                                             20 text/gemini |
|<---------------------------------------------------------------------------|
| Follow the link to the comment page                                        |
| gemini://alexschroeder.ch/Comments_on_Test                                 |
|--------------------------------------------------------------------------->|
|                                                       Text of the comments |
|                                                             20 text/gemini |
|<---------------------------------------------------------------------------|
| Follow the link "Leave a comment"                                          |
| gemini://alexschroeder.ch/do/comment/Comments_on_Test                      |
|--------------------------------------------------------------------------->|
|                                                     Redirect to a question |
|                 30 gemini://alexschroeder.ch/do/comment/Comments_on_Test/0 |
|<---------------------------------------------------------------------------|
| Get the question                                                           |
| gemini://alexschroeder.ch/do/comment/Comments_on_Test/0                    |
|--------------------------------------------------------------------------->|
|                                                     Send back the question |
|                                                 10 Who rules in Rivendell? |
|<---------------------------------------------------------------------------|
| Answer the question                                                        |
| gemini://alexschroeder.ch/do/comment/Comments_on_Test/0?Elrond             |
|--------------------------------------------------------------------------->|
|                                             Redirect to the comment prompt |
|          30 gemini://alexschroeder.ch/do/comment/Comments_on_Test/0/Elrond |
|<---------------------------------------------------------------------------|
| Get the comment prompt                                                     |
| gemini://alexschroeder.ch/do/comment/Comments_on_Test/0/Elrond             |
|--------------------------------------------------------------------------->|
|                                                    Send the comment prompt |
|                                                                 10 Comment |
|<---------------------------------------------------------------------------|
| Send the comment                                                           |
| gemini://alexschroeder.ch/do/comment/Comments_on_Test/0/Elrond?YOLO!       |
|--------------------------------------------------------------------------->|
|                                              Redirect back to the comments |
|                              30 gemini://alexschroeder.ch/Comments_on_Test |
|<---------------------------------------------------------------------------|
| Get the page with all the comments, including the new one                  |
| gemini://alexschroeder.ch/Comments_on_Test                                 |
|--------------------------------------------------------------------------->|
|                                                       Text of the comments |
|                                                             10 text/gemini |
|<---------------------------------------------------------------------------|

In order to explain the security question URL with the zero in it: the wiki can be set up with a bunch of question, so I need to remember what question the user is answering when I get back the reply. Zero is simply the index of the first question.

​#Gemini