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