class Pages::Home < ::Phlex::HTML
  def project_link(name:, url:, desc:)
    a(class: 'flex flex-col border border-gray-300 p-2 rounded gap-1', href: url) {
      h3(class: 'font-bold') { name }
      span { desc }
    }
  end

  def view_template
    render ::Pages::Layout.new(:home, banner: '/newhaven.jpg') {
      p(class: "text-center font-bold") { "Aleks Rūtiņš" }
      p(class: "text-center") { "developer ~ designer ~ musician" }

      h2(class: "my-2 text-lg font-bold") { "Featured Projects" }
      div(class: 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2 justify-stretch') {
        project_link(
          name: "phlexite",
          url: "https://docs.farthergate.com/phlexite",
          desc: "A simple static site generator using phlex for templating"
        )

        project_link(
          name: "phlexite-docker",
          url: "https://git.farthergate.com/p/rad:z3PY7qd21HkdCEG7uBXnxHrtVTLiP",
          desc: "Build your phlexite site without worrying about a ruby environment"
        )

        project_link(
          name: "mzk",
          url: "https://sr.ht/~aleksrutins/mzk/",
          desc: "Bash scripts to help you manage your zettelkasten"
        )

        project_link(
          name: "dynamite",
          url: "https://sr.ht/~aleksrutins/dynamite/",
          desc: "A customizable LV2 distortion plugin"
        )

        project_link(
          name: "packsnap",
          url: "https://packsnap.farthergate.com/",
          desc: "A reproducible container build system"
        )

        project_link(
          name: "biocircuits for mere mortals",
          url: "https://bc.farthergate.com/",
          desc: "A daunting topic broken down in a (hopefully) friendly way"
        )
      }
    }
  end
end
