Converting Gemtext to HTML with Elixir

I spent a few hours this Saturday afternoon writing this little library, gemtext_to_html. I’d like to spend more time browsing and developing for Gemini space, and this is the first step towards making something Elixir-y to that end.

It ships with basic HTML components, but of course you can define your own components using regular old Phoenix Components and HEEx templates.

defmodule MyApp.MyComponents do
  @behaviour GemtextToHTML.Components
  import Phoenix.Component

  def h1(assigns) do
    ~H"""
    <h1 class="text-lg font-bold"><%= @text %></h1>
    """
  end

  # ...and so on...
end

gemtext = """
# Hello, world

* this is a list
* indeed

pretty neat
"""

GemtextToHTML.render_to_string(gemtext, components: MyApp.MyComponents)
# => "<h1 class="text-lg font-bold">Hello, world</h1>" <> ...
See more posts