reproduced previous static website
This commit is contained in:
parent
0a83f8f317
commit
e3f7522cf1
26 changed files with 718 additions and 127 deletions
lib/home73k_web
15
lib/home73k_web/controllers/home_controller.ex
Normal file
15
lib/home73k_web/controllers/home_controller.ex
Normal file
|
@ -0,0 +1,15 @@
|
|||
defmodule Home73kWeb.HomeController do
|
||||
use Home73kWeb, :controller
|
||||
|
||||
def index(conn, _params) do
|
||||
render(conn, "index.html")
|
||||
end
|
||||
|
||||
def resume(conn, _params) do
|
||||
render(conn, "resume.html", page_title: "Résumé")
|
||||
end
|
||||
|
||||
def folio(conn, _params) do
|
||||
render(conn, "folio.html", page_title: "Folio")
|
||||
end
|
||||
end
|
|
@ -24,7 +24,7 @@ defmodule Home73kWeb.Endpoint do
|
|||
at: "/",
|
||||
from: :home73k,
|
||||
gzip: true,
|
||||
only: ~w(css fonts images js favicon.ico robots.txt)
|
||||
only: ~w(css fonts images js favicon.ico robots.txt DF185CEE29A3D443_public_key.asc)
|
||||
|
||||
# Code reloading can be explicitly enabled under the
|
||||
# :code_reloader configuration of your endpoint.
|
||||
|
|
|
@ -3,7 +3,16 @@ defmodule Home73kWeb.PageLive do
|
|||
|
||||
@impl true
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok, assign(socket, query: "", results: %{}, page_title: "~")}
|
||||
{:ok,
|
||||
assign(socket, query: "", results: %{}, page_title: "~")
|
||||
|> put_flash(:success, "Log in was a success. Good for you.")
|
||||
|> put_flash(:error, "Lorem ipsum dolor sit amet consectetur adipisicing elit.")
|
||||
|> put_flash(
|
||||
:info,
|
||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus dolore sunt quia aperiam sint id reprehenderit? Dolore incidunt alias inventore accusantium nulla optio, ducimus eius aliquam hic, pariatur voluptate distinctio."
|
||||
)
|
||||
|> put_flash(:warning, "Oh no, there's nothing to worry about!")
|
||||
|> put_flash(:primary, "Something in the brand color.")}
|
||||
end
|
||||
|
||||
@impl true
|
||||
|
|
|
@ -17,7 +17,10 @@ defmodule Home73kWeb.Router do
|
|||
scope "/", Home73kWeb do
|
||||
pipe_through :browser
|
||||
|
||||
live "/", PageLive, :index
|
||||
get "/", HomeController, :index
|
||||
get "/resume", HomeController, :resume
|
||||
get "/folio", HomeController, :folio
|
||||
live "/live", PageLive, :index
|
||||
end
|
||||
|
||||
# Other scopes may use custom stacks.
|
||||
|
|
27
lib/home73k_web/templates/home/folio.html.eex
Normal file
27
lib/home73k_web/templates/home/folio.html.eex
Normal file
|
@ -0,0 +1,27 @@
|
|||
<main class="container-fluid h-100 d-flex justify-content-center align-items-center">
|
||||
|
||||
<div class="d-flex flex-column align-items-center flex-lg-row align-items-lg-end justify-content-lg-center mt-5">
|
||||
|
||||
<div class="col-12 col-sm-10 col-md-7 col-lg-auto mb-3 mb-lg-0">
|
||||
<%= img_tag Routes.static_path(@conn, "/images/construct.gif"),
|
||||
class: "img-fluid",
|
||||
alt: "Classic 1990s-style simple animation depicting a construction site digger. Text reads 'page under construction'",
|
||||
title: "Put on your hard hat!"
|
||||
%>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-12 col-sm-10 col-md-7 col-lg-6 col-xl-5 col-xxl-4 justify-content-start ms-lg-3">
|
||||
|
||||
<h2 class="font-monospace fs-2 fw-600 mb-0">
|
||||
<%= icon_div @conn, "mdi-account-hard-hat", [class: "icon baseline me-2"] %><span>Working on it!</span>
|
||||
</h2>
|
||||
|
||||
<div class="font-monospace fs-5">I've made some things over the years (like this site!), and at some point I'll highlight some here.</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
34
lib/home73k_web/templates/home/index.html.eex
Normal file
34
lib/home73k_web/templates/home/index.html.eex
Normal file
|
@ -0,0 +1,34 @@
|
|||
<main class="container-fluid h-100 d-flex justify-content-center align-items-center">
|
||||
|
||||
<div class="d-flex flex-column-reverse flex-lg-row align-items-lg-end mt-5">
|
||||
|
||||
<div class="col-auto mt-3 mt-lg-0">
|
||||
<%= img_tag Routes.static_path(@conn, "/images/cat-roof_portrait.jpg"),
|
||||
class: "img-fluid border border-20 border-gray-900 rounded-2",
|
||||
alt: "My cat Babka, stuck on a roof when she was still just a stray.",
|
||||
title: "My cat Babka, stuck on a roof when she was still just a stray."
|
||||
%>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-auto justify-content-start ms-lg-3">
|
||||
|
||||
<h2 class="font-monospace fs-2 fw-600 mb-0">
|
||||
<%= icon_div @conn, "mdi-account", [class: "icon baseline me-2"] %><span>Adam Piontek</span>
|
||||
</h2>
|
||||
|
||||
<div class="font-monospace fs-5">Desktop Systems Engineer. Human.</div>
|
||||
|
||||
<div id="social-icons" class="mt-1">
|
||||
<%= for s <- socials(@conn) do %>
|
||||
<%= link to: s.url, target: "_blank", class: "fs-3 link-light text-decoration-none" do %>
|
||||
<%= icon_div @conn, s.icon, [class: "icon baseline"] %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
51
lib/home73k_web/templates/home/resume.html.eex
Normal file
51
lib/home73k_web/templates/home/resume.html.eex
Normal file
|
@ -0,0 +1,51 @@
|
|||
<main class="container-fluid h-100 d-flex justify-content-center align-items-center">
|
||||
|
||||
<div class="d-flex flex-column mt-5">
|
||||
|
||||
<div class="col-auto justify-content-start">
|
||||
|
||||
<h2 class="font-monospace fs-2 fw-600 mb-0">
|
||||
<%= icon_div @conn, "mdi-account", [class: "icon baseline me-2"] %><span>Adam Piontek</span>
|
||||
</h2>
|
||||
|
||||
<div class="font-monospace fs-5">Desktop Systems Engineer.</div>
|
||||
|
||||
<div id="social-icons" class="mt-1">
|
||||
<%= for s <- socials_prof(@conn) do %>
|
||||
<%= link to: s.url, target: "_blank", class: "fs-3 link-light text-decoration-none" do %>
|
||||
<%= icon_div @conn, s.icon, [class: "icon baseline"] %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
|
||||
<div class="separator mt-4 mb-2">qualifications</div>
|
||||
|
||||
<ul>
|
||||
<%= for qualif <- resume_qualifs() do %>
|
||||
<%= content_tag :li, qualif %>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<div class="separator mt-4 mb-2">experience</div>
|
||||
|
||||
<%= for %{employer: employer, positions: positions} <- resume_experience() do %>
|
||||
<div class="fs-5 border-bottom border-gray mt"><%= employer%></div>
|
||||
<div class="mb-3">
|
||||
<%= for position <- positions do %>
|
||||
<div>
|
||||
<span><%= position.title %></span>
|
||||
<span class="text-gray-300">· <%= position.start %> — <%= position.end %></span>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
|
@ -1,14 +1,14 @@
|
|||
<nav class="navbar navbar-expand-lg navbar-light bg-light mb-4">
|
||||
<div class="container">
|
||||
<nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark px-1 px-sm-2 px-lg-3 px-xl-4 px-xxl-5 py-3">
|
||||
<div class="container-fluid">
|
||||
|
||||
<h1 class="fs-4 my-0 py-0 lh-base">
|
||||
<%= link to: Routes.page_path(@conn, :index), class: "navbar-brand fs-4" do %>
|
||||
<%= icon_div @conn, "mdi-desktop-classic", [class: "icon baseline me-1 fs-3"] %>
|
||||
<span class="fw-light" style="font-family: Righteous;">\\AdamPion73k</span>
|
||||
<% end %>
|
||||
<h1 class="my-0 py-0 lh-base">
|
||||
<%= link to: Routes.home_path(@conn, :index), class: "navbar-brand fs-1 text-secondary" do %>
|
||||
<%= icon_div @conn, "mdi-desktop-classic", [class: "icon baseline"] %>
|
||||
<span class="fw-light" style="font-family: Righteous;">\\73k</span>
|
||||
<% end %>
|
||||
</h1>
|
||||
|
||||
<button class="hamburger hamburger--squeeze collapsed navbar-toggler" id="navbarSupportedContentToggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<button class="hamburger hamburger--vortex collapsed navbar-toggler" id="navbarSupportedContentToggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="hamburger-box d-flex">
|
||||
<span class="hamburger-inner"></span>
|
||||
</span>
|
||||
|
@ -17,41 +17,34 @@
|
|||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
|
||||
<%# nav LEFT items %>
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
|
||||
<%# ACTIVE page link example %>
|
||||
<%# <li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="#">Home</a>
|
||||
</li> %>
|
||||
|
||||
<%# DISABLED page link example %>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
|
||||
</li>
|
||||
|
||||
<%# <li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownExample" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdownExample">
|
||||
<li><a class="dropdown-item" href="#">Action</a></li>
|
||||
<li><a class="dropdown-item" href="#">Another action</a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="dropdown-item" href="#">Something else here</a></li>
|
||||
</ul>
|
||||
</li> %>
|
||||
|
||||
</ul>
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0"></ul>
|
||||
|
||||
<%# nav RIGHT items %>
|
||||
<ul class="navbar-nav">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="#">Resume</a>
|
||||
<%= link nav_link_opts(@conn, to: Routes.home_path(@conn, :index), class: "nav-link font-monospace fs-6") do %>
|
||||
<%= icon_div @conn, "mdi-home", [class: "icon baseline"] %><span>\~</span>
|
||||
<% end %>
|
||||
</li>
|
||||
|
||||
<%= link nav_link_opts(@conn, to: Routes.page_path(@conn, :index), class: "btn btn-outline-dark d-none d-lg-block") do %>
|
||||
<%#= icon_div @conn, "bi-door-open", [class: "icon baseline"] %>
|
||||
Log in
|
||||
<li class="nav-item">
|
||||
<%= link nav_link_opts(@conn, to: Routes.home_path(@conn, :resume), class: "nav-link font-monospace fs-6") do %>
|
||||
<%= icon_div @conn, "mdi-briefcase-account", [class: "icon baseline"] %><span>\Résumé</span>
|
||||
<% end %>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<%= link nav_link_opts(@conn, to: Routes.home_path(@conn, :folio), class: "nav-link font-monospace fs-6") do %>
|
||||
<%= icon_div @conn, "mdi-zip-disk", [class: "icon baseline"] %><span>\Portfolio</span>
|
||||
<% end %>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<%= link nav_link_opts(@conn, to: Routes.page_path(@conn, :index), class: "nav-link font-monospace fs-6") do %>
|
||||
<%= icon_div @conn, "mdi-typewriter", [class: "icon baseline"] %><span>\Blog</span>
|
||||
<% end %>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
|
|
@ -1,19 +1 @@
|
|||
<main role="main" class="container">
|
||||
|
||||
<%# phoenix flash alerts: %>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12 col-lg-10 col-xxl-8 ">
|
||||
<%= for {kind, class} <- alert_kinds() do %>
|
||||
<%= if flash_content = get_flash(@conn, kind) do %>
|
||||
<div class="alert <%= class %> alert-dismissible fade show" role="alert">
|
||||
<%= flash_content %>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= @inner_content %>
|
||||
|
||||
</main>
|
||||
<%= @inner_content %>
|
||||
|
|
|
@ -1,19 +1 @@
|
|||
<main role="main" class="container">
|
||||
|
||||
<%# liveview flash alerts: %>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12 col-lg-10 col-xxl-8 ">
|
||||
<%= for {kind, class} <- alert_kinds() do %>
|
||||
<%= if flash_content = live_flash(@flash, kind) do %>
|
||||
<div class="alert <%= class %> alert-dismissible fade show" role="alert" id="lv-alert-<%= kind %>" phx-hook="AlertRemover" data-key="<%= kind %>">
|
||||
<%= flash_content %>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= @inner_content %>
|
||||
|
||||
</main>
|
||||
<%= @inner_content %>
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
<li class="nav-item dropdown">
|
||||
|
||||
<a href="#" class="nav-link dropdown-toggle" id="navbarDropdownUserMenu" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<%= icon_div @conn, "bi-person-circle", [class: "icon baseline me-1"] %>
|
||||
Hello
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownUserMenu">
|
||||
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
|
||||
<li>
|
||||
<%= link nav_link_opts(@conn, to: Routes.page_path(@conn, :index), class: "dropdown-item") do %>
|
||||
<%= icon_div @conn, "bi-people", [class: "icon baseline me-1"] %>
|
||||
Users
|
||||
<% end %>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
|
||||
<li>
|
||||
<%= link nav_link_opts(@conn, to: Routes.page_path(@conn, :index), class: "dropdown-item") do %>
|
||||
<%= icon_div @conn, "bi-sliders", [class: "icon baseline me-1"] %>
|
||||
Settings
|
||||
<% end %>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<%= csrf_meta_tag() %>
|
||||
<%= live_title_tag assigns[:page_title] || "", prefix: assigns[:page_title] && "73k.us \\ " || "73k.us" %>
|
||||
<%= live_title_tag assigns[:page_title] || "", prefix: assigns[:page_title] && "73k \\ " || "73k" %>
|
||||
<meta name="author" content="Adam Piontek"/>
|
||||
<link rel="me" href="mailto:adam@73k.us"/>
|
||||
<link rel="me" href="sms:+16462341697"/>
|
||||
|
@ -15,9 +15,9 @@
|
|||
</head>
|
||||
<body>
|
||||
|
||||
<%= render "_navbar.html", assigns %>
|
||||
<%= render "_navbar.html", assigns %>
|
||||
|
||||
<%= @inner_content %>
|
||||
<%= @inner_content %>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
77
lib/home73k_web/views/home_view.ex
Normal file
77
lib/home73k_web/views/home_view.ex
Normal file
|
@ -0,0 +1,77 @@
|
|||
defmodule Home73kWeb.HomeView do
|
||||
use Home73kWeb, :view
|
||||
|
||||
def socials(conn) do
|
||||
[
|
||||
%{
|
||||
icon: "mdi-typewriter",
|
||||
url: "https://w.73k.us/",
|
||||
prof: false
|
||||
},
|
||||
%{icon: "mdi-rss", url: "https://w.73k.us/feed/", prof: false},
|
||||
%{
|
||||
icon: "mdi-linkedin",
|
||||
url: "https://www.linkedin.com/in/adampiontek/",
|
||||
prof: true
|
||||
},
|
||||
%{icon: "mdi-github", url: "https://github.com/apiontek", prof: true},
|
||||
%{icon: "gitea", url: "https://73k.us/git/adam", prof: true},
|
||||
%{
|
||||
icon: "mdi-key-variant",
|
||||
url: Routes.static_path(conn, "/DF185CEE29A3D443_public_key.asc"),
|
||||
prof: true
|
||||
},
|
||||
%{
|
||||
icon: "mdi-goodreads",
|
||||
url: "https://www.goodreads.com/user/show/2450014-adam-piontek",
|
||||
prof: false
|
||||
},
|
||||
%{icon: "mdi-twitter", url: "https://twitter.com/adampiontek", prof: false},
|
||||
%{icon: "mdi-facebook", url: "https://facebook.com/damek", prof: false},
|
||||
%{
|
||||
icon: "mdi-instagram",
|
||||
url: "https://www.instagram.com/adampiontek/",
|
||||
prof: false
|
||||
},
|
||||
%{
|
||||
icon: "mdi-steam",
|
||||
url: "https://steamcommunity.com/id/apiontek/",
|
||||
prof: false
|
||||
},
|
||||
%{
|
||||
icon: "mdi-discord",
|
||||
url: "https://discordapp.com/users/328583977629646848",
|
||||
prof: false
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
def socials_prof(conn), do: Enum.filter(socials(conn), fn s -> s.prof end)
|
||||
|
||||
def resume_qualifs,
|
||||
do: [
|
||||
"Programming (Powershell, Bash, Python, Javascript, Elixir)",
|
||||
"Windows deployment & support (SCCM, MDT, esoteric configuration)",
|
||||
"Application infrastructure planning & implementation (end-to-end)",
|
||||
"Quickly grasping inherited & new projects"
|
||||
]
|
||||
|
||||
def resume_experience do
|
||||
[
|
||||
%{
|
||||
employer: "Cleary Gottlieb Steen & Hamilton",
|
||||
positions: [
|
||||
%{title: "End User Systems Engineer", start: "Jan 2021", end: "Present"},
|
||||
%{title: "End User Systems Analyst", start: "Feb 2019", end: "Dec 2020"},
|
||||
%{title: "Service Desk Analyst", start: "Jun 2014", end: "Jan 2019"}
|
||||
]
|
||||
},
|
||||
%{
|
||||
employer: "Practising Law Institute",
|
||||
positions: [
|
||||
%{title: "Service Desk Analyst", start: "May 2010", end: "May 2014"}
|
||||
]
|
||||
}
|
||||
]
|
||||
end
|
||||
end
|
|
@ -7,15 +7,4 @@ defmodule Home73kWeb.LayoutView do
|
|||
true -> Keyword.update(opts, :class, "active", fn c -> "#{c} active" end)
|
||||
end
|
||||
end
|
||||
|
||||
def alert_kinds do
|
||||
[
|
||||
success: "alert-success",
|
||||
info: "alert-info",
|
||||
error: "alert-danger",
|
||||
warning: "alert-warning",
|
||||
primary: "alert-primary",
|
||||
secondary: "alert-secondary"
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue