Hypa is a text format I designed for writing hypertext documents. I could write directly in HTML, Gemini, or other formats, but there are many symbols to remember, and I find the syntax gets in my way. I wanted to experiment with a plaintext format that compiles into my own minimal HTML design. Existing methods for writing hypertext felt unintuitive, so I created hypa by writing in a way that felt natural to me. Here's the specification:

Each line of text delimited by a newline character is parsed individually to decide what data type the text is.

The @ character at the start of a line indicates the text is a link definition. All characters included in the URL should be URL encoded.

The ? character at the start of a line indicates a label for an immediately prior link line. This line is regular text when the previous line isn't a link.

The # character at the start of a line is used for comments. Comments are ignored by the parser and are used for notes. A single # indicates a single line comment. Everything between a pair of ### is all comment, including new lines.

Empty and whitespace lines are ignored by the parser.

Everything else is text.

An implementation of a hypa to HTML converter, written in Deno
Example hypa file using all formatting symbols
URL encoding spec (RFC 3986)