Reworked to use Pure.css and Catppuccin
This commit is contained in:
@@ -111,7 +111,7 @@ LoadModule auth_basic_module modules/mod_auth_basic.so
|
||||
LoadModule reqtimeout_module modules/mod_reqtimeout.so
|
||||
#LoadModule ext_filter_module modules/mod_ext_filter.so
|
||||
#LoadModule request_module modules/mod_request.so
|
||||
#LoadModule include_module modules/mod_include.so
|
||||
LoadModule include_module modules/mod_include.so
|
||||
LoadModule filter_module modules/mod_filter.so
|
||||
#LoadModule reflector_module modules/mod_reflector.so
|
||||
#LoadModule substitute_module modules/mod_substitute.so
|
||||
@@ -277,6 +277,7 @@ DocumentRoot "/usr/local/apache2/htdocs"
|
||||
# for more information.
|
||||
#
|
||||
Options Indexes FollowSymLinks
|
||||
Options +Includes
|
||||
|
||||
#
|
||||
# AllowOverride controls what directives may be placed in .htaccess files.
|
||||
@@ -293,7 +294,10 @@ DocumentRoot "/usr/local/apache2/htdocs"
|
||||
#
|
||||
# Custom
|
||||
#
|
||||
Header add Link "</common/catppuccin.css>; rel=stylesheet; type=text/css"
|
||||
Header add Link "</static/catppuccin.css>; rel=stylesheet; type=text/css"
|
||||
Header add Link "</favicon.ico>; rel=icon; type=image/x-icon"
|
||||
|
||||
AddOutputFilter INCLUDES .html
|
||||
</Directory>
|
||||
|
||||
<Location "/server-status">
|
||||
@@ -542,8 +546,6 @@ LogLevel warn
|
||||
# Various default settings
|
||||
#Include conf/extra/httpd-default.conf
|
||||
|
||||
Include conf/extra/httpd-gitweb.conf
|
||||
|
||||
# Configure mod_proxy_html to understand HTML4/XHTML1
|
||||
<IfModule proxy_html_module>
|
||||
Include conf/extra/proxy-html.conf
|
||||
|
||||
@@ -1,35 +1,8 @@
|
||||
services:
|
||||
mailsync:
|
||||
image: python:3
|
||||
volumes:
|
||||
- ./:/data
|
||||
- ./mailsync.py:/usr/src/mailsync.py
|
||||
command: python /usr/src/mailsync.py
|
||||
environment:
|
||||
- "USERNAME=changeme"
|
||||
- "PASSWORD=changeme"
|
||||
- "IMAP_SERVER=imap.example.com"
|
||||
- "SAVE_DIR=/data/htdocs"
|
||||
www:
|
||||
image: ericomeehan/gitweb:latest
|
||||
build:
|
||||
dockerfile: gitweb.Dockerfile
|
||||
depends_on:
|
||||
- mailsync
|
||||
image: httpd
|
||||
volumes:
|
||||
- ./htdocs:/usr/local/apache2/htdocs/
|
||||
- ./conf/httpd.conf:/usr/local/apache2/conf/httpd.conf
|
||||
- ./conf/httpd-gitweb.conf:/usr/local/apache2/conf/extra/httpd-gitweb.conf
|
||||
- ./conf/gitweb.conf:/etc/gitweb.conf
|
||||
ports:
|
||||
- 8080:80
|
||||
- 9117:9117
|
||||
gitserver:
|
||||
image: ericomeeha/gitserver:latest
|
||||
build:
|
||||
dockerfile: gitserver.Dockerfile
|
||||
volumes:
|
||||
- ./htdocs:/home/git/data
|
||||
- ./authorized_keys:/auth/authorized_keys
|
||||
ports:
|
||||
- 2222:22
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Archive</h2>
|
||||
<a href="/">Home
|
||||
</a> | <a href="/archive">Archive
|
||||
</a> | <a href="/archive/Repositories">Repositories
|
||||
</a> | <a href="/stream">Live Stream
|
||||
</a> | <a href="/archive/Mail">Mailbox
|
||||
</a> | <a href="/chat">Chat
|
||||
</a> | <a href="/donate">Donate
|
||||
</a>
|
||||
<h3>Browse the Archive</h3>
|
||||
@@ -1,9 +0,0 @@
|
||||
function duckduckgo() {
|
||||
const form = document.getElementById("ddg-site-search");
|
||||
const input = document.getElementById("ddg-query");
|
||||
|
||||
form.addEventListener("submit", function () {
|
||||
const domain = window.location.hostname;
|
||||
input.value = "site:eom.dev/archive/Mail/raw/" + " " + input.value;
|
||||
});
|
||||
};
|
||||
11
htdocs/common/footer.html
Normal file
11
htdocs/common/footer.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<footer>
|
||||
<div class="footer l-box is-center">
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-2">
|
||||
© Eric O'Neill Meehan 2026
|
||||
</div>
|
||||
<div class="pure-u-1-2">
|
||||
Made with <a href="https://pure-css.github.io/">Pure.css</a> and <a href="https://catppuccin.com/">Catppuccin</a>.
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -1,20 +0,0 @@
|
||||
<style>
|
||||
div.page_header {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico"></link>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Repositories</h2>
|
||||
<a href="/">Home
|
||||
</a> | <a href="/archive">Archive
|
||||
</a> | <a href="/archive/Repositories">Repositories
|
||||
</a> | <a href="/stream">Live Stream
|
||||
</a> | <a href="/archive/Mail">Mailbox
|
||||
</a> | <a href="/chat">Chat
|
||||
</a> | <a href="/donate">Donate
|
||||
</a>
|
||||
<h3>Browse Source Code</h3>
|
||||
<p>
|
||||
Powered by <a href="https://git-scm.com/docs/gitweb">GitWeb</a>.
|
||||
</p>
|
||||
8
htdocs/common/header.html
Normal file
8
htdocs/common/header.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/static/pure.css">
|
||||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/purecss@3.0.0/build/pure-min.css" integrity="sha384-X38yfunGUhNzHpBaEBsWLO+A0HDYOQi8ufWDkZ0k9e0eXz/tH3II7uKZ9msv++Ls" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/purecss@3.0.0/build/grids-responsive-min.css">
|
||||
</head>
|
||||
6
htdocs/common/topnav.html
Normal file
6
htdocs/common/topnav.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="header">
|
||||
<div class="home-menu pure-menu pure-menu-horizontal pure-menu-fixed">
|
||||
<a class="pure-menu-heading" href="">eom.dev</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
48
htdocs/contact/index.html
Normal file
48
htdocs/contact/index.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--#include virtual="/common/header.html" -->
|
||||
<body>
|
||||
<title>eom.dev - Home</title>
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-1">
|
||||
<!--#include virtual="/common/topnav.html" -->
|
||||
<h3>Contact</h3>
|
||||
<p>Please consider using the public
|
||||
<a href="https://mailman.eom.dev" target="_blank">mailing lists</a>
|
||||
when possible.
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-3" style="text-align: right;">
|
||||
<p>email:</p>
|
||||
</div>
|
||||
<div class="pure-u-2-3" style="text-align: left;">
|
||||
<a href="mailto:eric@eom.dev">eric@eom.dev</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-3" style="text-align: right;">
|
||||
<p>pgp:</p>
|
||||
</div>
|
||||
<div class="pure-u-2-3" style="text-align: left;">
|
||||
<pre>
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEaYUAnBYJKwYBBAHaRw8BAQdARC4WbkR/2WnhBPJWicMghLVIQt1MLVMja5ev
|
||||
lLjTQRa0IkVyaWMgTydOZWlsbCBNZWVoYW4gPGVyaWNAZW9tLmRldj6IkAQTFgoA
|
||||
OBYhBAswMCgXM4edXctYOrfacp+7jKbpBQJphQCcAhsDBQsJCAcCBhUKCQgLAgQW
|
||||
AgMBAh4BAheAAAoJELfacp+7jKbpp6EA/1RlL7MGIW3tFbhIqak63WHML8Cjpe/V
|
||||
TMewAR7nOoL3AQDs54G26LUlQk+TAHSFoLWCw/3g+j3zCGDLiskZu/UwDbg4BGmF
|
||||
AJwSCisGAQQBl1UBBQEBB0BMFfLKZt+q81mtVL2pr+PX1qDv0ejL02h6FvqZ0KCU
|
||||
TwMBCAeIeAQYFgoAIBYhBAswMCgXM4edXctYOrfacp+7jKbpBQJphQCcAhsMAAoJ
|
||||
ELfacp+7jKbpZdsA/iOYAJZKicHjeKpEWR8osd4wjyc3HxUfDV99VnrMXBWrAQCX
|
||||
QyC3y1UFoQr86QKUK7PonIEzclFJaB5laev6e6dYBQ==
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<h4>Chat</h4>
|
||||
<iframe src="https://kiwiirc.com/client/eom.dev/?&nick=webuser-?&theme=cli#general" style="border:0; width:100%; height:600px;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!--#include virtual="/common/footer.html" -->
|
||||
</html>
|
||||
@@ -1,36 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>eom.dev - Donate</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="stylesheet" href="/common/catppuccin.css">
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico">
|
||||
<!--#include virtual="/common/header.html" -->
|
||||
<body>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Donate</h2>
|
||||
<a href="/">Home
|
||||
</a> | <a href="/archive">Archive
|
||||
</a> | <a href="/archive/Repositories">Repositories
|
||||
</a> | <a href="/stream">Live Stream
|
||||
</a> | <a href="/archive/Mail">Mailbox
|
||||
</a> | <a href="/chat">Chat
|
||||
</a> | <a href="/donate">Donate
|
||||
</a>
|
||||
<h3>Support the Platform</h3>
|
||||
<title>eom.dev - Donate</title>
|
||||
<div class="center">
|
||||
<div class="content">
|
||||
<!--#include virtual="/common/topnav.html" -->
|
||||
<h3>Donate</h3>
|
||||
<p>
|
||||
Make a donation to support Eric's online services, engineering projects, and educational content.
|
||||
</p>
|
||||
<table width=100% style="border-spacing: 20px;">
|
||||
<tr>
|
||||
<th>USD</th><th>XMR</th><th>BTC</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">
|
||||
<center>
|
||||
<h4>USD</h4>
|
||||
<div class="box">
|
||||
<div class="left">
|
||||
<p>
|
||||
Make a donation through <a href="https://stripe.com/">Stripe</a>.
|
||||
</p>
|
||||
<br>
|
||||
</div>
|
||||
<div class="right">
|
||||
<script async
|
||||
src="https://js.stripe.com/v3/buy-button.js">
|
||||
</script>
|
||||
@@ -40,23 +27,31 @@
|
||||
publishable-key="pk_live_51RXqTsC5KPXqTvVLWl5bzCxoaZivWceeLGMNURUmxzQMwaM5pUUl4VabywrjCQvgKopGFvUBqPLxRMF3eALsiDst00tR59vRhN"
|
||||
>
|
||||
</stripe-buy-button>
|
||||
</center>
|
||||
</td>
|
||||
<td style="vertical-align: top;">
|
||||
<center>
|
||||
<p>
|
||||
Monero donations can be sent to <code>48mFvxYDSCzMy5a3Zaj7ewApbX4GwXVXX9T1JC8mqBC19s9UcrNq8eaKkQ6GKdhHGQGmhdpvMd3mcbjf4eQbP8Yv7KdAREw</code>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<h4>XMR</h4>
|
||||
<div class="box">
|
||||
<div class="left">
|
||||
<div class="box">
|
||||
<div class="left">
|
||||
<p>Monero donations can be sent to </p>
|
||||
</div>
|
||||
<div class="right">
|
||||
<code>48mFvxYDSCzMy5a3Zaj7ewApbX4GwXVXX9T1JC8mqBC19s9UcrNq8eaKkQ6GKdhHGQGmhdpvMd3mcbjf4eQbP8Yv7KdAREw</code>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="left">
|
||||
<h5>P2Pool</h5>
|
||||
<p>
|
||||
Contribute compute power to the eom.dev mining pool with <a href="https://xmrig.com/">XMRig</a>.
|
||||
<br>
|
||||
Update the <i>user</i> field in the <code>~/.xmrig.json</code> configuration below to your wallet address.
|
||||
<br>
|
||||
You may use the Monero donation address above if you would like to donate your payouts to eom.dev.
|
||||
<br>
|
||||
</center>
|
||||
<pre style="padding-left: 40%">
|
||||
</div>
|
||||
<div class="right">
|
||||
<pre>
|
||||
{
|
||||
"autosave": true,
|
||||
"donate-level": 5,
|
||||
@@ -76,14 +71,12 @@
|
||||
}
|
||||
]
|
||||
}</pre>
|
||||
</td>
|
||||
<td style="vertical-align: top;">
|
||||
<center>
|
||||
<p>
|
||||
Bitcoin donations can be sent to <code>aaaabbbbccccddddeeee</code>
|
||||
</p>
|
||||
</center>
|
||||
</td>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!--#include virtual="/common/footer.html" -->
|
||||
</html>
|
||||
|
||||
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
@@ -1,53 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>eom.dev - Home</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="stylesheet" href="/common/catppuccin.css">
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico">
|
||||
<!--#include virtual="/common/header.html" -->
|
||||
<body>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Eric O'Neill Meehan</h2>
|
||||
<a href="/">Home
|
||||
</a> | <a href="/archive">Archive
|
||||
</a> | <a href="/archive/Repositories">Repositories
|
||||
</a> | <a href="/stream">Live Stream
|
||||
</a> | <a href="/archive/Mail">Mailbox
|
||||
</a> | <a href="/chat">Chat
|
||||
</a> | <a href="/donate">Donate
|
||||
</a>
|
||||
<h3>Contact</h3>
|
||||
<img src="/common/profile_2026.jpg">
|
||||
<table style='text-align: center;'>
|
||||
<tr>
|
||||
<td style="text-align: left;">email</td><td style="text-align: left;">eric@eom.dev</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: left;">irc</td><td style="text-align: left;">eric@eom.dev</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: left;">pgp</td>
|
||||
<td style="text-align: left;">
|
||||
<pre>
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEaYUAnBYJKwYBBAHaRw8BAQdARC4WbkR/2WnhBPJWicMghLVIQt1MLVMja5ev
|
||||
lLjTQRa0IkVyaWMgTydOZWlsbCBNZWVoYW4gPGVyaWNAZW9tLmRldj6IkAQTFgoA
|
||||
OBYhBAswMCgXM4edXctYOrfacp+7jKbpBQJphQCcAhsDBQsJCAcCBhUKCQgLAgQW
|
||||
AgMBAh4BAheAAAoJELfacp+7jKbpp6EA/1RlL7MGIW3tFbhIqak63WHML8Cjpe/V
|
||||
TMewAR7nOoL3AQDs54G26LUlQk+TAHSFoLWCw/3g+j3zCGDLiskZu/UwDbg4BGmF
|
||||
AJwSCisGAQQBl1UBBQEBB0BMFfLKZt+q81mtVL2pr+PX1qDv0ejL02h6FvqZ0KCU
|
||||
TwMBCAeIeAQYFgoAIBYhBAswMCgXM4edXctYOrfacp+7jKbpBQJphQCcAhsMAAoJ
|
||||
ELfacp+7jKbpZdsA/iOYAJZKicHjeKpEWR8osd4wjyc3HxUfDV99VnrMXBWrAQCX
|
||||
QyC3y1UFoQr86QKUK7PonIEzclFJaB5laev6e6dYBQ==
|
||||
=+OQI
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<title>eom.dev - Home</title>
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-1">
|
||||
<!--#include virtual="/common/topnav.html" -->
|
||||
<h3>Home</h3>
|
||||
<img src="/static/profile_2026.jpg">
|
||||
<p>Welcome to Eric's homepage.</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<footer>
|
||||
<p>© Eric O'Neill Meehan 2026</p>
|
||||
</footer>
|
||||
<!--#include virtual="/common/footer.html" -->
|
||||
</html>
|
||||
|
||||
286
htdocs/landing-page.css
Normal file
286
htdocs/landing-page.css
Normal file
@@ -0,0 +1,286 @@
|
||||
* {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- BASE STYLES --
|
||||
* Most of these are inherited from Base, but I want to change a few.
|
||||
*/
|
||||
body {
|
||||
line-height: 1.7em;
|
||||
color: #7f8c8d;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
label {
|
||||
color: #34495e;
|
||||
}
|
||||
|
||||
.pure-img-responsive {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- LAYOUT STYLES --
|
||||
* These are some useful classes which I will need
|
||||
*/
|
||||
.l-box {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.l-box-lrg {
|
||||
padding: 2em;
|
||||
border-bottom: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.is-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* -- PURE FORM STYLES --
|
||||
* Style the form inputs and labels
|
||||
*/
|
||||
.pure-form label {
|
||||
margin: 1em 0 0;
|
||||
font-weight: bold;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.pure-form input[type] {
|
||||
border: 2px solid #ddd;
|
||||
box-shadow: none;
|
||||
font-size: 100%;
|
||||
width: 100%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- PURE BUTTON STYLES --
|
||||
* I want my pure-button elements to look a little different
|
||||
*/
|
||||
.pure-button {
|
||||
background-color: #1f8dd6;
|
||||
color: white;
|
||||
padding: 0.5em 2em;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
a.pure-button-primary {
|
||||
background: white;
|
||||
color: #1f8dd6;
|
||||
border-radius: 5px;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* -- MENU STYLES --
|
||||
* I want to customize how my .pure-menu looks at the top of the page
|
||||
*/
|
||||
|
||||
.home-menu {
|
||||
padding: 0.5em;
|
||||
text-align: center;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
|
||||
}
|
||||
.home-menu {
|
||||
background: #2d3e50;
|
||||
}
|
||||
.pure-menu.pure-menu-fixed {
|
||||
/* Fixed menus normally have a border at the bottom. */
|
||||
border-bottom: none;
|
||||
/* I need a higher z-index here because of the scroll-over effect. */
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.home-menu .pure-menu-heading {
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.home-menu .pure-menu-selected a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.home-menu a {
|
||||
color: #6FBEF3;
|
||||
}
|
||||
.home-menu li a:hover,
|
||||
.home-menu li a:focus {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #AECFE5;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* -- SPLASH STYLES --
|
||||
* This is the blue top section that appears on the page.
|
||||
*/
|
||||
|
||||
.splash-container {
|
||||
background: #1f8dd6;
|
||||
z-index: 1;
|
||||
overflow: hidden;
|
||||
/* The following styles are required for the "scroll-over" effect */
|
||||
width: 100%;
|
||||
height: 88%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: fixed !important;
|
||||
}
|
||||
|
||||
.splash {
|
||||
/* absolute center .splash within .splash-container */
|
||||
width: 80%;
|
||||
height: 50%;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
top: 100px; left: 0; bottom: 0; right: 0;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* This is the main heading that appears on the blue section */
|
||||
.splash-head {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
border: 3px solid white;
|
||||
padding: 1em 1.6em;
|
||||
font-weight: 100;
|
||||
border-radius: 5px;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* This is the subheading that appears on the blue section */
|
||||
.splash-subhead {
|
||||
color: white;
|
||||
letter-spacing: 0.05em;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- CONTENT STYLES --
|
||||
* This represents the content area (everything below the blue section)
|
||||
*/
|
||||
.content-wrapper {
|
||||
/* These styles are required for the "scroll-over" effect */
|
||||
position: absolute;
|
||||
top: 87%;
|
||||
width: 100%;
|
||||
min-height: 12%;
|
||||
z-index: 2;
|
||||
background: white;
|
||||
|
||||
}
|
||||
|
||||
/* We want to give the content area some more padding */
|
||||
.content {
|
||||
padding: 1em 1em 3em;
|
||||
}
|
||||
|
||||
/* This is the class used for the main content headers (<h2>) */
|
||||
.content-head {
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.1em;
|
||||
margin: 2em 0 1em;
|
||||
}
|
||||
|
||||
/* This is a modifier class used when the content-head is inside a ribbon */
|
||||
.content-head-ribbon {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* This is the class used for the content sub-headers (<h3>) */
|
||||
.content-subhead {
|
||||
color: #1f8dd6;
|
||||
}
|
||||
.content-subhead i {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
/* This is the class used for the dark-background areas. */
|
||||
.ribbon {
|
||||
background: #2d3e50;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
/* This is the class used for the footer */
|
||||
.footer {
|
||||
background: #111;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- TABLET (AND UP) MEDIA QUERIES --
|
||||
* On tablets and other medium-sized devices, we want to customize some
|
||||
* of the mobile styles.
|
||||
*/
|
||||
@media (min-width: 48em) {
|
||||
|
||||
/* We increase the body font size */
|
||||
body {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* We can align the menu header to the left, but float the
|
||||
menu items to the right. */
|
||||
.home-menu {
|
||||
text-align: left;
|
||||
}
|
||||
.home-menu ul {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* We increase the height of the splash-container */
|
||||
/* .splash-container {
|
||||
height: 500px;
|
||||
}*/
|
||||
|
||||
/* We decrease the width of the .splash, since we have more width
|
||||
to work with */
|
||||
.splash {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
.splash-head {
|
||||
font-size: 250%;
|
||||
}
|
||||
|
||||
|
||||
/* We remove the border-separator assigned to .l-box-lrg */
|
||||
.l-box-lrg {
|
||||
border: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* -- DESKTOP (AND UP) MEDIA QUERIES --
|
||||
* On desktops and other large devices, we want to over-ride some
|
||||
* of the mobile and tablet styles.
|
||||
*/
|
||||
@media (min-width: 78em) {
|
||||
/* We increase the header font size even more */
|
||||
.splash-head {
|
||||
font-size: 300%;
|
||||
}
|
||||
}
|
||||
122
htdocs/landing-page.html
Normal file
122
htdocs/landing-page.html
Normal file
@@ -0,0 +1,122 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<!--#include virtual="/common/header.html" -->
|
||||
<body>
|
||||
<title>eom.dev - Home</title>
|
||||
<!--#include virtual="/common/topnav.html" -->
|
||||
<div class="splash-container">
|
||||
<div class="splash">
|
||||
<h1 class="splash-head">Eric O'Neill Meehan</h1>
|
||||
<p class="splash-subhead">
|
||||
Welcome to Eric's homepage.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<h2 class="content-head is-center">Links</h2>
|
||||
|
||||
<div class="pure-g">
|
||||
<div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
|
||||
|
||||
<h3 class="content-subhead">
|
||||
<i class="fa fa-rocket"></i>
|
||||
<a href="https://gitea.eom.dev/">Repositories</a>
|
||||
</h3>
|
||||
<p>
|
||||
Open-source engineering projects hosted on <a href="https://gitea.eom.dev/explore/">Gitea</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
|
||||
<h3 class="content-subhead">
|
||||
<i class="fa fa-film"></i>
|
||||
<a href="https://owncast.eom.dev/">Live Streams</a>
|
||||
</h3>
|
||||
<p>
|
||||
Broadcasting engineering, music, travel, and games on <a href="https://owncast.eom.dev">Owncast</a> and <a href="https://youtube.com/c/EricOMeehan">YouTube</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
|
||||
<h3 class="content-subhead">
|
||||
<i class="fa fa-mobile"></i>
|
||||
<a href="mailto:eric@eom.dev">Contact</a>
|
||||
</h3>
|
||||
<p>
|
||||
Get in touch by joining the <a href="https://mailman.eom.dev/">mailing list</a>, visiting the <a href="https://discourse.eom.dev">forum</a>, or through <a href="https://matrix.to/#general:eom.dev">Matrix</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="l-box pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
|
||||
<h3 class="content-subhead">
|
||||
<i class="fa fa-check-square-o"></i>
|
||||
<a href="https://minio.eom.dev/public">Media</a>
|
||||
</h3>
|
||||
<p>
|
||||
Explore the archive of videos, music, and more from eom.dev.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ribbon l-box-lrg pure-g">
|
||||
<div class="l-box-lrg is-center pure-u-1 pure-u-md-1-2 pure-u-lg-2-5">
|
||||
<img width="300" alt="File Icons" class="pure-img-responsive" src="/static/profile_2026.jpg">
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-1-2 pure-u-lg-3-5">
|
||||
<h2 class="content-head content-head-ribbon">About</h2>
|
||||
<p>
|
||||
Eric Meehan is a 31-year-old software engineer and musician living in Raleigh, North Carolina.
|
||||
This website is the homepage for Eric's private computer network, eom.dev. Eric uses this network
|
||||
to self-host and self-publish his engineering and artistic projects. This content is often documenting
|
||||
further developments of the network itself, and is usually delivered in an educational tone. There is not
|
||||
a set schedule for projects, events, or live streams, and Eric tends to pick up many projects. The best
|
||||
way to stay up-to-date is to join the <a href="https://mailman.eom.dev/">mailing list</a>, and the best
|
||||
way to reach Eric directly is by <a href="mailto:eric@eom.dev">email</a>.
|
||||
</p>
|
||||
<a href="/eric@eom.dev.pub">Eric's GPG Key</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h2 class="content-head is-center">Donate</h2>
|
||||
<center>
|
||||
<p>
|
||||
Make a donation to support Eric's online services, engineering projects, and educational content.
|
||||
</p>
|
||||
</center>
|
||||
<div class="pure-g">
|
||||
<div class="l-box-lrg pure-u-1 pure-u-md-1-2">
|
||||
<h4>USD</h4>
|
||||
<p>
|
||||
Donate USD through Stripe.
|
||||
</p>
|
||||
<script async
|
||||
src="https://js.stripe.com/v3/buy-button.js">
|
||||
</script>
|
||||
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1T2GbAC5KPXqTvVLpcz9TMQU"
|
||||
publishable-key="pk_live_51RXqTsC5KPXqTvVLWl5bzCxoaZivWceeLGMNURUmxzQMwaM5pUUl4VabywrjCQvgKopGFvUBqPLxRMF3eALsiDst00tR59vRhN"
|
||||
>
|
||||
</stripe-buy-button>
|
||||
</div>
|
||||
<div class="l-box-lrg pure-u-1 pure-u-md-1-2">
|
||||
<h4>XMR</h4>
|
||||
<p>Monero donations can be sent to </p>
|
||||
<code style="word-wrap: break-word">48mFvxYDSCzMy5a3Zaj7ewApbX4GwXVXX9T1JC8mqBC19s9UcrNq8eaKkQ6GKdhHGQGmhdpvMd3mcbjf4eQbP8Yv7KdAREw</code>
|
||||
<h5>P2Pool</h5>
|
||||
<p>
|
||||
Contribute compute power to the eom.dev mining pool with <a href="https://xmrig.com/">XMRig</a>.
|
||||
Update the <i>user</i> field in the <a href="/xmrig.json">~/.xmrig.json</a> configuration below to your wallet address.
|
||||
You may use the Monero donation address above if you would like to donate your payouts to eom.dev.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--#include virtual="/common/footer.html" -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,16 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="refresh" content="5;url=/archive/Mail">
|
||||
<title>eom.dev - Redirecting</title>
|
||||
<link rel="stylesheet" href="/common/catppuccin.css">
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico">
|
||||
</head>
|
||||
<body>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Redirecting...</h2>
|
||||
<p>If you are not redirected automatically, follow this <a href="../archive/Mail">this link</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="refresh" content="5;url=/archive/Repositories">
|
||||
<title>eom.dev - Redirecting</title>
|
||||
<link rel="stylesheet" href="/common/catppuccin.css">
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico">
|
||||
</head>
|
||||
<body>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Redirecting...</h2>
|
||||
<p>If you are not redirected automatically, follow this <a href="../archive/Repositories">this link</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -55,12 +55,6 @@
|
||||
--Dark-Crust: #11111b;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Arial', sans-serif;
|
||||
transition: background-color 0.3s, color 0.3s;
|
||||
}
|
||||
|
||||
/* Light mode styles */
|
||||
@media (prefers-color-scheme: light) {
|
||||
body {
|
||||
@@ -72,6 +66,10 @@ body {
|
||||
color: var(--Light-Blue);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: var(--Light-Saphire);
|
||||
}
|
||||
|
||||
strong {
|
||||
color: var(--Light-Red);
|
||||
}
|
||||
@@ -80,6 +78,19 @@ body {
|
||||
color: var(--Light-Subtext-1);
|
||||
background-color: var(--Light-Mantle);
|
||||
}
|
||||
|
||||
.topnav {
|
||||
background-color: var(--Light-Overlay-0);
|
||||
}
|
||||
|
||||
.topnav a {
|
||||
color: var(--Light-Blue);
|
||||
}
|
||||
|
||||
.topnav a:hover {
|
||||
color: var(--Light-Saphire);
|
||||
background-color: var(--Light-Overlay-2);
|
||||
}
|
||||
}
|
||||
|
||||
/* Dark mode styles */
|
||||
@@ -93,6 +104,10 @@ body {
|
||||
color: var(--Dark-Blue);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: var(--Dark-Saphire);
|
||||
}
|
||||
|
||||
strong {
|
||||
color: var(--Dark-Red);
|
||||
}
|
||||
@@ -101,6 +116,19 @@ body {
|
||||
color: var(--Dark-Subtext-1);
|
||||
background-color: var(--Dark-Mantle);
|
||||
}
|
||||
|
||||
.topnav {
|
||||
background-color: var(--Dark-Overlay-0);
|
||||
}
|
||||
|
||||
.topnav a {
|
||||
color: var(--Dark-Blue);
|
||||
}
|
||||
|
||||
.topnav a:hover {
|
||||
color: var(--Dark-Saphire);
|
||||
background-color: var(--Dark-Overlay-2);
|
||||
}
|
||||
}
|
||||
|
||||
/* Additional common styles */
|
||||
@@ -1,686 +0,0 @@
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: small;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 1px;
|
||||
margin: 10px;
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0000cc;
|
||||
}
|
||||
|
||||
a:hover, a:visited, a:active {
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
span.cntrl {
|
||||
border: dashed #aaaaaa;
|
||||
border-width: 1px;
|
||||
padding: 0px 2px 0px 2px;
|
||||
margin: 0px 2px 0px 2px;
|
||||
}
|
||||
|
||||
img.logo {
|
||||
float: right;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img.blob {
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a.list img.avatar {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
div.page_header {
|
||||
height: 25px;
|
||||
padding: 8px;
|
||||
font-size: 150%;
|
||||
font-weight: bold;
|
||||
background-color: #d9d8d1;
|
||||
}
|
||||
|
||||
div.page_header a:visited, a.header {
|
||||
color: #0000cc;
|
||||
}
|
||||
|
||||
div.page_header a:hover {
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
div.page_nav {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
div.page_nav a:visited {
|
||||
color: #0000cc;
|
||||
}
|
||||
|
||||
div.page_path {
|
||||
padding: 8px;
|
||||
font-weight: bold;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 0px 0px 1px;
|
||||
}
|
||||
|
||||
div.page_footer {
|
||||
height: 22px;
|
||||
padding: 4px 8px;
|
||||
background-color: #d9d8d1;
|
||||
}
|
||||
|
||||
div.page_footer_text {
|
||||
line-height: 22px;
|
||||
float: left;
|
||||
color: #555555;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div#generating_info {
|
||||
margin: 4px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
color: #505050;
|
||||
}
|
||||
|
||||
div.page_body {
|
||||
padding: 8px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
div.title, a.title {
|
||||
display: block;
|
||||
padding: 6px 8px;
|
||||
font-weight: bold;
|
||||
background-color: #edece6;
|
||||
text-decoration: none;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
div.readme {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
a.title:hover {
|
||||
background-color: #d9d8d1;
|
||||
}
|
||||
|
||||
div.title_text {
|
||||
padding: 6px 0px;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 0px 0px 1px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
div.log_body {
|
||||
padding: 8px 8px 8px 150px;
|
||||
}
|
||||
|
||||
span.age {
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 142px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
span.signoff {
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
div.log_link {
|
||||
padding: 0px 8px;
|
||||
font-size: 70%;
|
||||
font-family: sans-serif;
|
||||
font-style: normal;
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 136px;
|
||||
}
|
||||
|
||||
div.list_head {
|
||||
padding: 6px 8px 4px;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 1px 0px 0px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.author_date, .author {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.author_date {
|
||||
padding: 8px;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 0px 0px 1px 0px;
|
||||
}
|
||||
|
||||
a.list {
|
||||
text-decoration: none;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
a.subject, a.name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table.tags a.subject {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a.list:hover {
|
||||
text-decoration: underline;
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
a.text {
|
||||
text-decoration: none;
|
||||
color: #0000cc;
|
||||
}
|
||||
|
||||
a.text:visited {
|
||||
text-decoration: none;
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
a.text:hover {
|
||||
text-decoration: underline;
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
table {
|
||||
padding: 8px 4px;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
table.diff_tree {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
table.combined.diff_tree th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.combined.diff_tree td {
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
table.combined.diff_tree th.link,
|
||||
table.combined.diff_tree td.link {
|
||||
padding: 0px 2px;
|
||||
}
|
||||
|
||||
table.combined.diff_tree td.nochange a {
|
||||
color: #6666ff;
|
||||
}
|
||||
|
||||
table.combined.diff_tree td.nochange a:hover,
|
||||
table.combined.diff_tree td.nochange a:visited {
|
||||
color: #d06666;
|
||||
}
|
||||
|
||||
table.blame {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table.blame td {
|
||||
padding: 0px 5px;
|
||||
font-size: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 2px 5px;
|
||||
font-size: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* do not change row style on hover for 'blame' view */
|
||||
tr.light,
|
||||
table.blame .light:hover {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
tr.dark,
|
||||
table.blame .dark:hover {
|
||||
background-color: #f6f6f0;
|
||||
}
|
||||
|
||||
/* currently both use the same, but it can change */
|
||||
tr.light:hover,
|
||||
tr.dark:hover {
|
||||
background-color: #edece6;
|
||||
}
|
||||
|
||||
/* boundary commits in 'blame' view */
|
||||
/* and commits without "previous" */
|
||||
tr.boundary td.sha1,
|
||||
tr.no-previous td.linenr {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* for 'blame_incremental', during processing */
|
||||
tr.color1 { background-color: #f6fff6; }
|
||||
tr.color2 { background-color: #f6f6ff; }
|
||||
tr.color3 { background-color: #fff6f6; }
|
||||
|
||||
td {
|
||||
padding: 2px 5px;
|
||||
font-size: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td.link, td.selflink {
|
||||
padding: 2px 5px;
|
||||
font-family: sans-serif;
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
td.selflink {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
td.sha1 {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: red;
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
td.current_head {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
td.category {
|
||||
background-color: #d9d8d1;
|
||||
border-top: 1px solid #000000;
|
||||
border-left: 1px solid #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table.diff_tree span.file_status.new {
|
||||
color: #008000;
|
||||
}
|
||||
|
||||
table.diff_tree span.file_status.deleted {
|
||||
color: #c00000;
|
||||
}
|
||||
|
||||
table.diff_tree span.file_status.moved,
|
||||
table.diff_tree span.file_status.mode_chnge {
|
||||
color: #777777;
|
||||
}
|
||||
|
||||
table.diff_tree span.file_status.copied {
|
||||
color: #70a070;
|
||||
}
|
||||
|
||||
/* noage: "No commits" */
|
||||
table.project_list td.noage {
|
||||
color: #808080;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* age2: 60*60*24*2 <= age */
|
||||
table.project_list td.age2, table.blame td.age2 {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* age1: 60*60*2 <= age < 60*60*24*2 */
|
||||
table.project_list td.age1 {
|
||||
color: #009900;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.blame td.age1 {
|
||||
color: #009900;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* age0: age < 60*60*2 */
|
||||
table.project_list td.age0 {
|
||||
color: #009900;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table.blame td.age0 {
|
||||
color: #009900;
|
||||
background: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td.pre, div.pre, div.diff {
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
td.mode {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* progress of blame_interactive */
|
||||
div#progress_bar {
|
||||
height: 2px;
|
||||
margin-bottom: -2px;
|
||||
background-color: #d8d9d0;
|
||||
}
|
||||
div#progress_info {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* format of (optional) objects size in 'tree' view */
|
||||
td.size {
|
||||
font-family: monospace;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* styling of diffs (patchsets): commitdiff and blobdiff views */
|
||||
div.diff.header,
|
||||
div.diff.extended_header {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
div.diff.header {
|
||||
font-weight: bold;
|
||||
|
||||
background-color: #edece6;
|
||||
|
||||
margin-top: 4px;
|
||||
padding: 4px 0px 2px 0px;
|
||||
border: solid #d9d8d1;
|
||||
border-width: 1px 0px 1px 0px;
|
||||
}
|
||||
|
||||
div.diff.header a.path {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.diff.extended_header,
|
||||
div.diff.extended_header a.path,
|
||||
div.diff.extended_header a.hash {
|
||||
color: #777777;
|
||||
}
|
||||
|
||||
div.diff.extended_header .info {
|
||||
color: #b0b0b0;
|
||||
}
|
||||
|
||||
div.diff.extended_header {
|
||||
background-color: #f6f5ee;
|
||||
padding: 2px 0px 2px 0px;
|
||||
}
|
||||
|
||||
div.diff a.list,
|
||||
div.diff a.path,
|
||||
div.diff a.hash {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div.diff a.list:hover,
|
||||
div.diff a.path:hover,
|
||||
div.diff a.hash:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.diff.to_file a.path,
|
||||
div.diff.to_file {
|
||||
color: #007000;
|
||||
}
|
||||
|
||||
div.diff.add {
|
||||
color: #008800;
|
||||
}
|
||||
|
||||
div.diff.add span.marked {
|
||||
background-color: #aaffaa;
|
||||
}
|
||||
|
||||
div.diff.from_file a.path,
|
||||
div.diff.from_file {
|
||||
color: #aa0000;
|
||||
}
|
||||
|
||||
div.diff.rem {
|
||||
color: #cc0000;
|
||||
}
|
||||
|
||||
div.diff.rem span.marked {
|
||||
background-color: #ffaaaa;
|
||||
}
|
||||
|
||||
div.diff.chunk_header a,
|
||||
div.diff.chunk_header {
|
||||
color: #990099;
|
||||
}
|
||||
|
||||
div.diff.chunk_header {
|
||||
border: dotted #ffe0ff;
|
||||
border-width: 1px 0px 0px 0px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
div.diff.chunk_header span.chunk_info {
|
||||
background-color: #ffeeff;
|
||||
}
|
||||
|
||||
div.diff.chunk_header span.section {
|
||||
color: #aa22aa;
|
||||
}
|
||||
|
||||
div.diff.incomplete {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
div.diff.nodifferences {
|
||||
font-weight: bold;
|
||||
color: #600000;
|
||||
}
|
||||
|
||||
/* side-by-side diff */
|
||||
div.chunk_block {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.chunk_block div.old {
|
||||
float: left;
|
||||
width: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.chunk_block div.new {
|
||||
margin-left: 50%;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
div.chunk_block.rem div.old div.diff.rem {
|
||||
background-color: #fff5f5;
|
||||
}
|
||||
div.chunk_block.add div.new div.diff.add {
|
||||
background-color: #f8fff8;
|
||||
}
|
||||
div.chunk_block.chg div div.diff {
|
||||
background-color: #fffff0;
|
||||
}
|
||||
div.chunk_block.ctx div div.diff.ctx {
|
||||
color: #404040;
|
||||
}
|
||||
|
||||
|
||||
div.index_include {
|
||||
border: solid #d9d8d1;
|
||||
border-width: 0px 0px 1px;
|
||||
padding: 12px 8px;
|
||||
}
|
||||
|
||||
div.search {
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
margin: 4px 8px;
|
||||
float: right;
|
||||
top: 56px;
|
||||
right: 12px
|
||||
}
|
||||
|
||||
div.projsearch {
|
||||
text-align: center;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
div.projsearch form {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
td.linenr {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
a.linenr {
|
||||
color: #999999;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
a.rss_logo {
|
||||
float: right;
|
||||
padding: 3px 5px;
|
||||
line-height: 10px;
|
||||
border: 1px solid;
|
||||
border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
|
||||
color: #ffffff;
|
||||
background-color: #ff6600;
|
||||
font-weight: bold;
|
||||
font-family: sans-serif;
|
||||
font-size: 70%;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.rss_logo:hover {
|
||||
background-color: #ee5500;
|
||||
}
|
||||
|
||||
a.rss_logo.generic {
|
||||
background-color: #ff8800;
|
||||
}
|
||||
|
||||
a.rss_logo.generic:hover {
|
||||
background-color: #ee7700;
|
||||
}
|
||||
|
||||
span.refs span {
|
||||
padding: 0px 4px;
|
||||
font-size: 70%;
|
||||
font-weight: normal;
|
||||
border: 1px solid;
|
||||
background-color: #ffaaff;
|
||||
border-color: #ffccff #ff00ee #ff00ee #ffccff;
|
||||
}
|
||||
|
||||
span.refs span a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
span.refs span a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.refs span.indirect {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
span.refs span.ref {
|
||||
background-color: #aaaaff;
|
||||
border-color: #ccccff #0033cc #0033cc #ccccff;
|
||||
}
|
||||
|
||||
span.refs span.tag {
|
||||
background-color: #ffffaa;
|
||||
border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
|
||||
}
|
||||
|
||||
span.refs span.head {
|
||||
background-color: #aaffaa;
|
||||
border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
|
||||
}
|
||||
|
||||
span.atnight {
|
||||
color: #cc0000;
|
||||
}
|
||||
|
||||
span.match {
|
||||
color: #e00000;
|
||||
}
|
||||
|
||||
div.binary {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.remote {
|
||||
margin: .5em;
|
||||
border: 1px solid #d9d8d1;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* JavaScript-based timezone manipulation */
|
||||
|
||||
.popup { /* timezone selection UI */
|
||||
position: absolute;
|
||||
/* "top: 0; right: 0;" would be better, if not for bugs in browsers */
|
||||
top: 0; left: 0;
|
||||
border: 1px solid;
|
||||
padding: 2px;
|
||||
background-color: #f0f0f0;
|
||||
font-style: normal;
|
||||
color: #000000;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.close-button { /* close timezone selection UI without selecting */
|
||||
/* float doesn't work within absolutely positioned container,
|
||||
* if width of container is not set explicitly */
|
||||
/* float: right; */
|
||||
position: absolute;
|
||||
top: 0px; right: 0px;
|
||||
border: 1px solid green;
|
||||
margin: 1px 1px 1px 1px;
|
||||
padding-bottom: 2px;
|
||||
width: 12px;
|
||||
height: 10px;
|
||||
font-size: 9px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
background-color: #fff0f0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
/* Style definition generated by highlight 2.4.5, http://andre-simon.de/doku/highlight/en/highlight.php */
|
||||
|
||||
/* Highlighting theme definition: */
|
||||
|
||||
.num { color:#2928ff; }
|
||||
.esc { color:#ff00ff; }
|
||||
.str { color:#ff0000; }
|
||||
.dstr { color:#818100; }
|
||||
.slc { color:#838183; font-style:italic; }
|
||||
.com { color:#838183; font-style:italic; }
|
||||
.dir { color:#008200; }
|
||||
.sym { color:#000000; }
|
||||
.line { color:#555555; }
|
||||
.kwa { color:#000000; font-weight:bold; }
|
||||
.kwb { color:#830000; }
|
||||
.kwc { color:#000000; font-weight:bold; }
|
||||
.kwd { color:#010181; }
|
||||
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
343
htdocs/static/pure.css
Normal file
343
htdocs/static/pure.css
Normal file
@@ -0,0 +1,343 @@
|
||||
:root {
|
||||
--Light-Rosewater: #dc8a78;
|
||||
--Light-Flamingo: #dd7878;
|
||||
--Light-Pink: #ea76cb;
|
||||
--Light-Mauve: #8839ef;
|
||||
--Light-Red: #d20f39;
|
||||
--Light-Maroon: #e64553;
|
||||
--Light-Peach: #fe640b;
|
||||
--Light-Yellow: #df8e1d;
|
||||
--Light-Green: #40a02b;
|
||||
--Light-Teal: #179299;
|
||||
--Light-Sky: #04a5e5;
|
||||
--Light-Sapphire: #209fb5;
|
||||
--Light-Blue: #1e66f5;
|
||||
--Light-Lavender: #7287fd;
|
||||
--Light-Text: #4c4f69;
|
||||
--Light-Subtext-1: #5c5f77;
|
||||
--Light-Subtext-0: #6c6f85;
|
||||
--Light-Overlay-2: #7c7f93;
|
||||
--Light-Overlay-1: #8c8fa1;
|
||||
--Light-Overlay-0: #9ca0b0;
|
||||
--Light-Surface-2: #acb0be;
|
||||
--Light-Surface-1: #bcc0cc;
|
||||
--Light-Surface-0: #ccd0da;
|
||||
--Light-Base: #eff1f5;
|
||||
--Light-Mantle: #e6e9ef;
|
||||
--Light-Crust: #dce0e8;
|
||||
--Dark-Rosewater: #f5e0dc;
|
||||
--Dark-Flamingo: #f2cdcd;
|
||||
--Dark-Pink: #f5c2e7;
|
||||
--Dark-Mauve: #cba6f7;
|
||||
--Dark-Red: #f38ba8;
|
||||
--Dark-Maroon: #eba0ac;
|
||||
--Dark-Peach: #fab387;
|
||||
--Dark-Yellow: #f9e2af;
|
||||
--Dark-Green: #a6e3a1;
|
||||
--Dark-Teal: #94e2d5;
|
||||
--Dark-Sky: #89dceb;
|
||||
--Dark-Sapphire: #74c7ec;
|
||||
--Dark-Blue: #89b4fa;
|
||||
--Dark-Lavender: #b4befe;
|
||||
--Dark-Text: #cdd6f4;
|
||||
--Dark-Subtext-1: #bac2de;
|
||||
--Dark-Subtext-0: #a6adc8;
|
||||
--Dark-Overlay-2: #9399b2;
|
||||
--Dark-Overlay-1: #7f849c;
|
||||
--Dark-Overlay-0: #6c7086;
|
||||
--Dark-Surface-2: #585b70;
|
||||
--Dark-Surface-1: #45475a;
|
||||
--Dark-Surface-0: #313244;
|
||||
--Dark-Base: #1e1e2e;
|
||||
--Dark-Mantle: #181825;
|
||||
--Dark-Crust: #11111b;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
* {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- BASE STYLES --
|
||||
* Most of these are inherited from Base, but I want to change a few.
|
||||
*/
|
||||
body {
|
||||
line-height: 1.7em;
|
||||
color: var(--Dark-Text);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
label {
|
||||
color: var(--Dark-Subtext-0);
|
||||
}
|
||||
|
||||
.pure-img-responsive {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- LAYOUT STYLES --
|
||||
* These are some useful classes which I will need
|
||||
*/
|
||||
.l-box {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.l-box-lrg {
|
||||
padding: 2em;
|
||||
border-bottom: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.is-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* -- PURE FORM STYLES --
|
||||
* Style the form inputs and labels
|
||||
*/
|
||||
.pure-form label {
|
||||
margin: 1em 0 0;
|
||||
font-weight: bold;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.pure-form input[type] {
|
||||
border: 2px solid #ddd;
|
||||
box-shadow: none;
|
||||
font-size: 100%;
|
||||
width: 100%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- PURE BUTTON STYLES --
|
||||
* I want my pure-button elements to look a little different
|
||||
*/
|
||||
.pure-button {
|
||||
background-color: var(--Dark-Blue);
|
||||
color: var(--Dark-Overlay-0);
|
||||
padding: 0.5em 2em;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
a.pure-button-primary {
|
||||
background: var(--Dark-Overlay-0);
|
||||
color: var(--Dark-Saphire);
|
||||
border-radius: 5px;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* -- MENU STYLES --
|
||||
* I want to customize how my .pure-menu looks at the top of the page
|
||||
*/
|
||||
|
||||
.home-menu {
|
||||
padding: 0.5em;
|
||||
text-align: center;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
|
||||
}
|
||||
.home-menu {
|
||||
background: var(--Dark-Crust);
|
||||
}
|
||||
.pure-menu.pure-menu-fixed {
|
||||
/* Fixed menus normally have a border at the bottom. */
|
||||
border-bottom: none;
|
||||
/* I need a higher z-index here because of the scroll-over effect. */
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.home-menu .pure-menu-heading {
|
||||
color: var(--Dark-Text);
|
||||
font-weight: 400;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.home-menu .pure-menu-selected a {
|
||||
color: var(--Dark-Overlay-1);
|
||||
}
|
||||
|
||||
.home-menu a {
|
||||
color: var(--Dark-Blue);
|
||||
}
|
||||
.home-menu li a:hover,
|
||||
.home-menu li a:focus {
|
||||
background: none;
|
||||
border: none;
|
||||
color: var(--Dark-Saphire);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* -- SPLASH STYLES --
|
||||
* This is the blue top section that appears on the page.
|
||||
*/
|
||||
|
||||
.splash-container {
|
||||
background: var(--Dark-Base);
|
||||
z-index: 1;
|
||||
overflow: hidden;
|
||||
/* The following styles are required for the "scroll-over" effect */
|
||||
width: 100%;
|
||||
height: 88%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: fixed !important;
|
||||
}
|
||||
|
||||
.splash {
|
||||
/* absolute center .splash within .splash-container */
|
||||
width: 80%;
|
||||
height: 50%;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
top: 100px; left: 0; bottom: 0; right: 0;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* This is the main heading that appears on the blue section */
|
||||
.splash-head {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: var(--Dark-Text);
|
||||
border: 3px solid var(--Dark-Text);
|
||||
padding: 1em 1.6em;
|
||||
font-weight: 100;
|
||||
border-radius: 5px;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* This is the subheading that appears on the blue section */
|
||||
.splash-subhead {
|
||||
color: var(--Dark-Subtext-0);
|
||||
letter-spacing: 0.05em;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- CONTENT STYLES --
|
||||
* This represents the content area (everything below the blue section)
|
||||
*/
|
||||
.content-wrapper {
|
||||
/* These styles are required for the "scroll-over" effect */
|
||||
position: absolute;
|
||||
top: 87%;
|
||||
width: 100%;
|
||||
min-height: 12%;
|
||||
z-index: 2;
|
||||
background: var(--Dark-Surface-1);
|
||||
|
||||
}
|
||||
|
||||
/* We want to give the content area some more padding */
|
||||
.content {
|
||||
padding: 1em 1em 3em;
|
||||
}
|
||||
|
||||
/* This is the class used for the main content headers (<h2>) */
|
||||
.content-head {
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.1em;
|
||||
margin: 2em 0 1em;
|
||||
}
|
||||
|
||||
/* This is a modifier class used when the content-head is inside a ribbon */
|
||||
.content-head-ribbon {
|
||||
color: var(--Dark-Subtext-0);
|
||||
}
|
||||
|
||||
/* This is the class used for the content sub-headers (<h3>) */
|
||||
.content-subhead {
|
||||
color: var(--Dark-Subtext-1);
|
||||
}
|
||||
.content-subhead i {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
/* This is the class used for the dark-background areas. */
|
||||
.ribbon {
|
||||
background: var(--Dark-Surface-0);
|
||||
color: var(--Dark-Text);
|
||||
}
|
||||
|
||||
/* This is the class used for the footer */
|
||||
.footer {
|
||||
background: var(--Dark-Mantle);
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*
|
||||
* -- TABLET (AND UP) MEDIA QUERIES --
|
||||
* On tablets and other medium-sized devices, we want to customize some
|
||||
* of the mobile styles.
|
||||
*/
|
||||
@media (min-width: 48em) {
|
||||
|
||||
/* We increase the body font size */
|
||||
body {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* We can align the menu header to the left, but float the
|
||||
menu items to the right. */
|
||||
.home-menu {
|
||||
text-align: left;
|
||||
}
|
||||
.home-menu ul {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* We increase the height of the splash-container */
|
||||
/* .splash-container {
|
||||
height: 500px;
|
||||
}*/
|
||||
|
||||
/* We decrease the width of the .splash, since we have more width
|
||||
to work with */
|
||||
.splash {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
.splash-head {
|
||||
font-size: 250%;
|
||||
}
|
||||
|
||||
|
||||
/* We remove the border-separator assigned to .l-box-lrg */
|
||||
.l-box-lrg {
|
||||
border: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* -- DESKTOP (AND UP) MEDIA QUERIES --
|
||||
* On desktops and other large devices, we want to over-ride some
|
||||
* of the mobile and tablet styles.
|
||||
*/
|
||||
@media (min-width: 78em) {
|
||||
/* We increase the header font size even more */
|
||||
.splash-head {
|
||||
font-size: 300%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>eom.dev - Live Stream</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="stylesheet" href="/common/catppuccin.css">
|
||||
<link rel="icon" type="image/x-icon" href="/common/favicon.ico">
|
||||
<body>
|
||||
<h1>eom.dev</h1>
|
||||
<h2>Live Stream</h2>
|
||||
<a href="/">Home
|
||||
</a> | <a href="/archive">Archive
|
||||
</a> | <a href="/archive/Repositories">Repositories
|
||||
</a> | <a href="/stream">Live Stream
|
||||
</a> | <a href="/archive/Mail">Mailbox
|
||||
</a> | <a href="/chat">Chat
|
||||
</a> | <a href="/donate">Donate
|
||||
</a>
|
||||
<h3>Watch Eric Live</h3>
|
||||
<p>
|
||||
Powered by <a href="https://owncast.online/">Owncast</a>.
|
||||
<br>
|
||||
Recordings of previous streams are available in the <a href="/archive/Videos">archive</a>.
|
||||
<br>
|
||||
Post-stream discussions and comments should be submitted to the <a href="/archive/Mail">mailbox
|
||||
</a>
|
||||
or <a href="/chat">chat</a>
|
||||
</p>
|
||||
<iframe
|
||||
src="https://owncast.eom.dev/embed/video"
|
||||
title="Owncast"
|
||||
height="600px" width="75%"
|
||||
referrerpolicy="origin"
|
||||
allowfullscreen></iframe>
|
||||
<iframe
|
||||
src="https://owncast.eom.dev/embed/chat/readwrite"
|
||||
title="Owncast Chat"
|
||||
height="600px" width="20%"></iframe>
|
||||
</body>
|
||||
<footer>
|
||||
<p>© Eric O'Neill Meehan 2026</p>
|
||||
</footer>
|
||||
</html>
|
||||
Reference in New Issue
Block a user