Convert Gemtext to HTML Gemtext is a very simple markup format used by the alternative web protocol Gemini. Write a Gemtext to HTML converter.
From the Wiki:

A line of text is a paragraph, to be wrapped by the client. It is is
independent from the  lines coming before or after it.
A list item starts with an asterisk and a space. Again, the rest of
the line is the line item, to be wrapped by the client.
A heading starts with one, two, or three number signs and a space. The
rest of the line is the heading.
A link is never an inline link like it is for HTML: it’s simply a line
starting with an equal-sign and a greater-than sign: “=&gt;”, a space, an
URI, and some text. It could be formatted like a list item, or like a
paragraph. Relative URIs are explicitly allowed.
Example:
# This is a heading 
This is the first paragraph.
* a list item
* another list item 
This is the second paragraph.
=&gt; http://example.org/ Absolute URI
=&gt; //example.org/ No scheme URI
=&gt; /robots.txt Just a path URI
=&gt; GemText a page link


This should produce this HTML tree (just the equivalent tree, not the exact formatting):
EDIT you don't need the &lt;ul&gt; tags to produce valid HTML
&lt;h1&gt;This is a heading&lt;/h1&gt;
&lt;p&gt;This is the first paragraph.&lt;/p&gt;
&lt;li&gt;a list item&lt;/li&gt;
&lt;li&gt;another list item&lt;/li&gt;
&lt;p&gt;This is the second paragraph.&lt;/p&gt;
&lt;a href=&quot;http://example.org/&quot;&gt;Absolute URI&lt;/a&gt;
&lt;a href=&quot;//example.org/&quot;&gt;No scheme URI&lt;/a&gt;
&lt;a href=&quot;/robots.txt&quot;&gt;Just a path URI&lt;/a&gt;
&lt;a href=&quot;GemText&quot;&gt;a page link&lt;/a&gt;

All text must pass through. All of &lt;&gt;&quot;&amp; should be converted to HTML entities, even if they don't confuse browsers, to be safe
EDIT: For the sake of this question, you don't have to do 2nd and 3rd level headings
This is code-golf so the shortest code in bytes wins
Perl 5 (-p), 132 bytes

s,^((#)|(\*)|=&gt; (\S+)|) *(.*?) *$,$t=$2?h1:$3?li:$4?a:p;&quot;&lt;$t&quot;.($4&amp;&amp;qq( href=&quot;$4&quot;)).&quot;&gt;&quot;.($5=~s~[&lt;&gt;&quot;&amp;]~&quot;&amp;#&quot;.(ord$&amp;).&quot;;&quot;~ger).&quot;&lt;/$t&gt;&quot;,e

Try it online!
Another 132 bytes
s-^([#*]|=&gt; (\S+)|) *(.*?) *$-&quot;&lt;&quot;.($t=(p,a,li,h1)[ord($1)%4]).($2&amp;&amp;qq( href=&quot;$2&quot;)).&quot;&gt;&quot;.($3=~s~[&lt;&gt;&quot;&amp;]~&quot;&amp;#&quot;.(ord$&amp;).&quot;;&quot;~ger).&quot;&lt;/$t&gt;&quot;-e