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

View file

@ -1,18 +1,18 @@
image: alpine/edge image: alpine/edge
packages: packages:
- ruby - ruby
- ruby-bundler - ruby-bundler
- hut - hut
oauth: pages.sr.ht/PAGES:RW oauth: pages.sr.ht/PAGES:RW
environment: environment:
site: aleksrutins.srht.site site: aleksrutins.srht.site
tasks: tasks:
- build: | - build: |
cd farthergate.com cd farthergate.com
bundle install --path vendor/bundle bundle install --path vendor/bundle
bundle exec ruby build.rb bundle exec ruby build.rb
- package: | - package: |
cd farthergate.com/_build cd farthergate.com/_build
tar -cvz . > ../../site.tar.gz tar -cvz . > ../../site.tar.gz
- upload: | - upload: |
hut pages publish -d $site site.tar.gz hut pages publish -d $site site.tar.gz

View file

@ -1,14 +1,33 @@
@import url(https://fonts.bunny.net/css?family=dm-mono:400,400i,500,500i);
:root { :root {
font-family: font-family: "DM Mono", "Courier New", Courier, monospace;
system-ui, background-color: beige;
-apple-system, }
BlinkMacSystemFont,
"Segoe UI", body {
Roboto, max-width: 700px;
Oxygen, padding: 20px;
Ubuntu, margin: auto;
Cantarell, }
"Open Sans",
"Helvetica Neue", nav {
sans-serif; display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 20px;
gap: 15px;
}
nav a {
color: gray;
transition-property: color;
transition-duration: 0.5s;
text-decoration: none;
}
nav a:hover,
nav a.active {
color: black;
} }

View file

@ -3,8 +3,13 @@ require "phlexite"
require_relative "pages/layout" require_relative "pages/layout"
require_relative "pages/home" require_relative "pages/home"
require_relative "pages/blog"
require_relative "pages/about"
Phlexite::Site.new { |s| Phlexite::Site.new { |s|
s.mount "assets", on: "/" s.mount "assets", on: "/"
s.page "index.html", Pages::Home.new s.page "index.html", Pages::Home.new
s.page "blog/index.html", Pages::Blog.new
s.page "about/index.html", Pages::About.new
} }

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 class Pages::Home < ::Phlex::HTML
def view_template def view_template
render ::Pages::Layout.new("Home") { render ::Pages::Layout.new(:home) {
h1 { "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
end end

View file

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