135 lines
5.9 KiB
HTML
135 lines
5.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Carya Software</title>
|
|
<meta charset="utf-8">
|
|
<!-- <link rel="stylesheet" type="text/css" href="css/theme.css"> -->
|
|
<link rel="stylesheet" href="./css/theme-compiled.css"
|
|
</head>
|
|
<body class="bg-[#efe9f4]">
|
|
<div class="flex justify-center">
|
|
<!-- <div class="mx-4 order-last"> -->
|
|
<!-- <img class="logo" src="img/logo.svg" alt="carya.software logo"> -->
|
|
<!-- </div> -->
|
|
<div class="mx-4 self-center mt-16 max-w-xl min-w-xl">
|
|
<h1 class="title text-center">carya.software</h1>
|
|
<div class="justify-center">
|
|
<div class="flex justify-center">
|
|
<button onclick="toggleSections(this)" class="text-xl text-[#14591e] px-6 mx-8 pt-2 mb-2">about</button>
|
|
<button onclick="toggleSections(this)" class="text-xl text-[#14591e] px-6 mx-8 pt-2 mb-2">projects</button>
|
|
<button onclick="toggleSections(this)" class="text-xl text-[#14591e] px-6 mx-8 pt-2 mb-2">contact</button>
|
|
</div>
|
|
<div id="about" class="hidden">
|
|
<h2 class="font-semibold text-[#0a210f] p-2">What is this site?</h2>
|
|
<div class="text-left">
|
|
<p class="p-2">
|
|
This is my personal website.
|
|
</p>
|
|
<p class="p-2">
|
|
I do not use my real name here for privacy reasons — <br> and because I like <span class="italic">carya.software</span> a lot more than <span class="italic">first-last.tld</span>.
|
|
</p>
|
|
<p class="p-2">
|
|
If you got here from my resume you may want to look at the projects tab or head to my <a class="underline" href="https://forge.carya.software/explore/repos">Forgejo instance</a> (a lightweight FOSS git software forge) directly.
|
|
</p>
|
|
<p class="p-2">
|
|
If you need to contact me you can find my various account addresses in the contact tab. I would be happy to chat once I know you aren't a web scraper!
|
|
</p>
|
|
</div>
|
|
<h2 class="font-semibold text-[#0a210f] p-2">Who are you?</h2>
|
|
<div class="text-left">
|
|
<p class="p-2">
|
|
I am a software engineer based on the East Coast of the USA. Professionally I have mostly worked with microsoft technology (.NET, SQL Server, et al) but for personal use I prefer <a class="underline text-[#4e2a8e]" href="https://elixir-lang.org/">Elixir</a>.
|
|
</p>
|
|
<p class="p-2">
|
|
Outside of spending time with family, church, and community I garden, work on personal projects, read, and attempt to identify the <a class="underline" href="mushrooms.html">various fungi</a> I find growing in my yard.
|
|
</p>
|
|
</div>
|
|
<h2 class="font-semibold text-[#0a210f] p-2">What does "carya" mean?</h2>
|
|
<div class="text-left">
|
|
<p class="p-1">
|
|
It is the genus name for <a class="underline" href="https://en.wikipedia.org/wiki/Hickory">Hickory trees</a>, which I am fond of.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="projects" class="hidden">
|
|
<ul class="p-2 list-none list-inside">
|
|
<li>
|
|
<a class="underline font-semibold" href="https://forge.carya.software/Public/carya.software">Carya.software</a> — the source code for this site.
|
|
<ul class="p-2 list-disc list-inside">
|
|
<li>Built using basic HTML, TailwindCSS, and vanilla JavaScript. Hosted on a VPS with Nginx running on Debian.</li>
|
|
<li>I have additional services running on subdomains on the same server. For example, I host my public repositories at forge.carya.software, and I have a pleroma instance on pleroma.carya.software</li>
|
|
<li>SSL certificates managed using Certbot</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="contact" class="hidden">
|
|
<div class="">
|
|
<table class="table-auto mx-auto my-8 font-[#0a210f]">
|
|
<tbody>
|
|
<tr>
|
|
<td class="p-2">
|
|
<label class="font-semibold text-[#0a210f]">Email:</label>
|
|
</td>
|
|
<td class="p-2">
|
|
TBD, redacted due to spambots.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="p-2">
|
|
<label class="font-semibold text-[#0a210f]">Matrix:</label>
|
|
</td>
|
|
<td class="p-2">
|
|
TBD
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
<html>
|
|
<script>
|
|
function toggleSections(button){
|
|
// Constants
|
|
hiddenClass = "hidden";
|
|
revealedClass = "visible";
|
|
ids = ["about", "projects", "contact"];
|
|
selectedClasses = ["border-[#14591e]" , "border-b-2"]
|
|
// Helper functions
|
|
function switchClasses(element, toRemove, toInsert){
|
|
element.classList.remove(toRemove);
|
|
element.classList.add(toInsert);
|
|
}
|
|
function removeClasses(element, classes){
|
|
element.classList.forEach()
|
|
}
|
|
function hide(id) {
|
|
switchClasses(document.getElementById(id), revealedClass, hiddenClass);
|
|
}
|
|
function show(id) {
|
|
switchClasses(document.getElementById(id), hiddenClass, revealedClass);
|
|
}
|
|
function hasClasses(element, classes){
|
|
return classes.map(c => element.classList.contains(c)).reduce((acc, b) => acc && b, true);
|
|
}
|
|
// Handle underline for tab buttons
|
|
parent = button.parentElement;
|
|
// Remove selection classes from other buttons
|
|
// If button clicked already selected, unselect
|
|
// Otherwise select
|
|
|
|
// Manage hiding/showing content
|
|
id = button.textContent;
|
|
ids.filter(i => i !== id).forEach(hide);
|
|
element = document.getElementById(id);
|
|
if(hasClasses(element, [revealedClass])){
|
|
switchClasses(element, revealedClass, hiddenClass);
|
|
return;
|
|
}
|
|
ids.filter(i => i === id).forEach(show);
|
|
};
|
|
</script>
|