basic content

This commit is contained in:
Aleks Rūtiņš 2024-09-09 12:12:42 -04:00
parent 3133275bcc
commit 057cca96d6
7 changed files with 114 additions and 30 deletions

7
pages/about.rb Normal file
View file

@ -0,0 +1,7 @@
class Pages::About < ::Phlex::HTML
def view_template
render ::Pages::Layout.new(:about) {
p { "under construction" }
}
end
end

7
pages/blog.rb Normal file
View file

@ -0,0 +1,7 @@
class Pages::Blog < ::Phlex::HTML
def view_template
render ::Pages::Layout.new(:blog) {
p { "under construction" }
}
end
end

View file

@ -1,7 +1,31 @@
class Pages::Home < ::Phlex::HTML
def view_template
render ::Pages::Layout.new("Home") {
h1 { "Home" }
render ::Pages::Layout.new(:home) {
p { "i'm aleks rūtiņš." }
p { "i'm a student and programmer, skilled with a wide variety of tools." }
h2 { "featured projects" }
ul {
li {
a(href: "https://sr.ht/~aleksrutins/phlexite") { "phlexite" }
span { " - a simple static site generator using phlex for templating" }
}
li {
a(href: "https://dynamite.farthergate.com/") { "dynamite" }
span { " - a customizable lv2 distortion plugin"}
}
li {
a(href: "https://packsnap.farthergate.com/") { "packsnap" }
span { " - a reproducible container build system" }
}
li {
a(href: "https://bc.farthergate.com/") { "biocircuits for mere mortals" }
span { " - a daunting topic broken down in a (hopefully) friendly way" }
}
}
}
end
end

View file

@ -1,18 +1,40 @@
module Pages
class Layout < ::Phlex::HTML
def initialize(title)
@title = title
def pages = {
home: {
title: "Home",
url: "/"
},
blog: {
title: "Blog",
url: "/blog"
},
about: {
title: "About",
url: "/about"
}
}
def initialize(page)
@page = page
end
def view_template
doctype
html {
head {
title { @title + " | Aleks Rūtiņš" }
title { pages[@page][:title] + " | Aleks Rūtiņš" }
meta(charset: "utf-8")
meta(name: "viewport", content: "width=device-width, initial-scale=1.0")
link(rel: "stylesheet", href: "/site.css")
}
body {
header {
nav {
pages.each { |key, page|
a(href: page[:url], class: key == @page ? "active" : "") { page[:title].downcase }
}
}
}
yield
}
}