Merge upstream

This commit is contained in:
2024-12-06 16:44:12 -05:00
parent 14e8771049
commit 913e60acc9
86 changed files with 1987 additions and 1556 deletions

View File

@@ -4,6 +4,26 @@ layout: null
@import url("pygment_highlights.css");
:root {
/* config file CSS variables */
--page-col: {{ site.page-col | default: "#FFFFFF" }};
--text-col: {{ site.text-col | default: "#404040" }};
--link-col: {{ site.link-col | default: "#008AFF" }};
--hover-col: {{ site.hover-col | default: "#0085A1" }};
--navbar-col: {{ site.navbar-col | default: "#EAEAEA" }};
--navbar-text-col: {{ site.navbar-text-col | default: "#404040" }};
--navbar-border-col: {{ site.navbar-border-col | default: "#DDDDDD" }};
--footer-col: {{ site.footer-col | default: "#EAEAEA" }};
--footer-text-col: {{ site.footer-text-col | default: "#777777" }};
--footer-link-col: {{ site.footer-link-col | default: "#404040" }};
--footer-hover-col: {{ site.footer-hover-col | default: "#0085A1" }};
/* common CSS variables */
--body-font: 'Lora', 'Times New Roman', serif;
--header-font: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--mid-col: #808080;
}
/* --- General --- */
html {
@@ -11,23 +31,29 @@ html {
}
body {
font-family: 'Lora', 'Times New Roman', serif;
font-family: var(--body-font);
font-size: 1.125rem;
color: {{ site.text-col | default: "#404040" }};
color: var(--text-col);
position: relative;
background-color: {{ site.page-col | default: "#FFFFFF" }};
background-color: var(--page-col);
{% if site.page-img %}
background-image: url({{ site.page-img | relative_url }});
background-attachment: fixed;
{% endif %}
overflow-wrap: break-word;
min-height: 100vh;
display: flex;
flex-direction: column;
}
body > main {
flex: 1;
}
p {
line-height: 1.5;
margin: 1.875rem 0;
}
h1,h2,h3,h4,h5,h6 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
font-weight: 800;
line-height: 1.1;
}
@@ -47,19 +73,22 @@ h1, h2, h3, h4 {
margin-top: 1.25rem;
}
a {
color: {{ site.link-col | default: "#008AFF" }};
color: var(--link-col);
}
a:hover,
a:focus {
color: {{ site.hover-col | default: "#0085A1" }};
color: var(--hover-col);
}
blockquote {
color: #808080;
color: var(--mid-col);
font-style: italic;
}
blockquote p:first-child {
margin-top: 0;
}
.jumbotron {
background: #EEE;
}
hr.small {
max-width: 6.25rem;
margin: 1rem auto;
@@ -81,21 +110,21 @@ hr.small {
}
::-moz-selection {
color: #fff;
color: var(--page-col);
background-color: var(--hover-col);
text-shadow: none;
background-color: {{ site.hover-col | default: "#0085A1" }};
}
::selection {
color: #fff;
color: var(--page-col);
background-color: var(--hover-col);
text-shadow: none;
background-color: {{ site.hover-col | default: "#0085A1" }};
}
img::selection {
color: #fff;
color: var(--hover-col);
background: transparent;
}
img::-moz-selection {
color: #fff;
color: var(--hover-col);
background: transparent;
}
@@ -123,9 +152,9 @@ img {
/* --- Navbar --- */
.navbar-custom {
background-color: {{ site.navbar-col | default: "#EAEAEA" }};
border-bottom: 1px solid {{ site.navbar-border-col | default: "#DDDDDD" }};
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--navbar-col);
border-bottom: 1px solid var(--navbar-border-col);
font-family: var(--header-font);
{% if site.navbar-img %}
background-image: url({{ site.navbar-img | relative_url }});
background-attachment: fixed;
@@ -181,8 +210,6 @@ img {
}
.navbar-custom .navbar-nav .nav-link {
padding-top: 0;
padding-bottom: 0;
line-height: 1.25rem;
padding-top: 0.9375rem;
padding-bottom: 0.9375rem;
@@ -191,7 +218,7 @@ img {
.navbar-custom .navbar-brand,
.navbar-custom .navbar-nav .nav-link {
font-weight: 800;
color: {{ site.navbar-text-col | default: "#404040" }};
color: var(--navbar-text-col);
}
.navbar-toggler {
@@ -262,10 +289,10 @@ img {
.navbar-custom .nav-item.dropdown .dropdown-menu .dropdown-item {
padding: 0.625rem;
background-color: {{ site.navbar-col | default: "#EAEAEA" }};
background-color: var(--navbar-col);
text-decoration: none !important;
font-weight: normal;
color: {{ site.navbar-text-col | default: "#404040" }};
color: var(--navbar-text-col);
{% unless site.navbar-var-length %}
white-space: normal;
{% endunless %}
@@ -278,7 +305,7 @@ img {
.navbar-custom .nav-item.dropdown .dropdown-menu .dropdown-item {
padding-left: 0.625rem;
border: 1px solid {{ site.navbar-border-col | default: "#DDDDDD" }};
border: 1px solid var(--navbar-border-col);
border-width: 0 1px 1px;
}
@@ -289,7 +316,7 @@ img {
@media (max-width: 1199px) {
.navbar-custom .navbar-collapse {
border-top: 1px solid {{ site.navbar-border-col | default: "#DDDDDD" }};
border-top: 1px solid var(--navbar-border-col);
margin: 0 -1rem;
}
@@ -315,7 +342,7 @@ img {
.navbar-custom .navbar-nav .nav-link:focus,
.navbar-custom .navbar-nav .dropdown-menu .dropdown-item:hover,
.navbar-custom .navbar-nav .dropdown-menu .dropdown-item:focus {
color: {{ site.hover-col | default: "#0085A1" }};
color: var(--hover-col);
}
.navbar-custom .avatar-container {
@@ -381,10 +408,10 @@ img {
footer {
padding: 1.875rem 0;
border-top: 1px #EAEAEA solid;
border-top: 1px var(--footer-col) solid;
margin-top: 3.125rem;
font-size: 0.875rem;
background-color: {{ site.footer-col | default: "#EAEAEA" }};
background-color: var(--footer-col);
{% if site.footer-img %}
background-image: url({{ site.footer-img | relative_url }});
background-attachment: fixed;
@@ -392,16 +419,22 @@ footer {
}
footer p.text-muted {
color: {{ site.footer-text-col | default: "#777777" }} !important;
color: var(--footer-text-col) !important;
}
footer a {
color: {{ site.footer-link-col | default: "#404040" }};
color: var(--footer-link-col);
}
footer .footer-links a {
color: var(--text-col);
}
footer .footer-links .fa-inverse {
color: var(--page-col);
}
footer a:hover,
footer a:focus {
color: {{ site.footer-hover-col | default: "#0085A1" }};
color: var(--footer-hover-col);
}
footer .list-inline {
@@ -410,7 +443,7 @@ footer .list-inline {
margin-bottom: 1.875rem;
}
footer .copyright {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
text-align: center;
margin-bottom: 0;
margin-top: 0;
@@ -422,7 +455,7 @@ footer .theme-by {
footer .footer-custom-content {
text-align: center;
margin-bottom: 0.9375rem;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
}
@media (min-width: 768px) {
@@ -464,14 +497,14 @@ footer .footer-custom-content {
.post-preview a {
text-decoration: none;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: {{ site.text-col | default: "#404040" }};
font-family: var(--header-font);
color: var(--text-col);
}
.post-preview a:focus,
.post-preview a:hover {
text-decoration: none;
color: {{ site.hover-col | default: "#0085A1" }};
color: var(--hover-col);
}
.post-preview .post-title {
@@ -485,11 +518,11 @@ footer .footer-custom-content {
}
.post-preview .post-meta,
.post-heading .post-meta {
color: #808080;
color: var(--mid-col);
font-size: 1.125rem;
font-style: italic;
margin: 0 0 0.625rem;
font-family: 'Lora', 'Times New Roman', serif;
font-family: var(--body-font);
}
.post-heading .post-meta {
display: inline-block;
@@ -566,13 +599,13 @@ footer .footer-custom-content {
/* --- Tags --- */
.blog-tags {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
font-size: 0.9375rem;
margin: 1.875rem 0;
}
.blog-tags span {
color: {{ site.text-col | default: "#404040" }};
color: var(--text-col);
opacity: 0.8;
}
@@ -581,7 +614,7 @@ footer .footer-custom-content {
}
.blog-tags a {
color: {{ site.text-col | default: "#404040" }};
color: var(--text-col);
text-decoration: none;
padding: 0 0.3125rem;
opacity: 0.8;
@@ -591,8 +624,8 @@ footer .footer-custom-content {
.blog-tags a:hover {
opacity: 1;
color: {{ site.text-col | default: "#404040" }};
border-color: {{ site.text-col | default: "#404040" }};
color: var(--text-col);
border-color: var(--text-col);
}
.post-preview .blog-tags {
@@ -613,7 +646,7 @@ footer .footer-custom-content {
}
#full-tags-list {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
}
#full-tags-list .tag-entry {
@@ -625,7 +658,7 @@ footer .footer-custom-content {
}
#full-tags-list .tag-entry .entry-date {
color: #808080;
color: var(--mid-col);
font-style: italic;
font-size: 1rem;
}
@@ -687,7 +720,7 @@ nav.top-nav-short-permanent ~ header > .intro-header.big-img {
font-size: 1.6875rem;
line-height: 1.1;
display: block;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
font-weight: 300;
margin: 0.625rem 0 0;
}
@@ -712,7 +745,7 @@ nav.top-nav-short-permanent ~ header > .intro-header.big-img {
padding: 0.3125rem 0.625rem;
font-size: 0.6875rem;
color: #EEE;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
right: 0;
bottom: 0;
display: none;
@@ -739,39 +772,6 @@ nav.top-nav-short-permanent ~ header > .intro-header.big-img {
}
}
.header-section.has-img .no-img {
margin-top: 0;
background-color: #FCFCFC;
margin: 0 0 2.5rem;
padding: 1.25rem 0;
box-shadow: 0 0 0.3125rem #AAA;
}
/* Many phones are 320 or 360px, so make sure images are a proper aspect ratio in those cases */
.header-section.has-img .intro-header.no-img {
display: none;
}
@media (max-width: 365px) {
.header-section.has-img .intro-header.no-img {
display: block;
}
.intro-header.big-img {
width: 100%;
height: 13.75rem;
}
.intro-header.big-img .page-heading,
.intro-header.big-img .post-heading {
display: none;
}
.header-section.has-img .big-img {
margin-bottom: 0;
}
}
@media (max-width: 325px) {
.intro-header.big-img {
height: 12.5rem;
}
}
#header-gh-btns {
margin-bottom: 0.9375rem;
}
@@ -804,15 +804,16 @@ nav.top-nav-short-permanent ~ header > .intro-header.big-img {
}
.pagination .page-item .page-link {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: var(--header-font);
text-transform: uppercase;
font-size: 0.875rem;
font-weight: 800;
letter-spacing: 1px;
padding: 0.625rem 0.3125rem;
background-color: #FFF;
background-color: var(--page-col);
border-radius: 0;
color: {{ site.text-col | default: "#404040" }};
color: var(--text-col);
padding: 0.75rem 1rem;
}
@media (min-width: 768px) {
.pagination .page-item .page-link {
@@ -821,9 +822,9 @@ nav.top-nav-short-permanent ~ header > .intro-header.big-img {
}
.pagination .page-item .page-link:hover,
.pagination .page-item .page-link:focus {
color: #FFF;
border: 1px solid {{ site.hover-col | default: "#0085A1" }};
background-color: {{ site.hover-col | default: "#0085A1" }};
color: var(--page-col);
border: 1px solid var(--hover-col);
background-color: var(--hover-col);
}
/* --- Tables --- */
@@ -833,26 +834,23 @@ table {
}
table tr {
border-top: 1px solid #cccccc;
background-color: #ffffff;
background-color: var(--page-col);
margin: 0;
padding: 0;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 0.375rem 0.8125rem;
}
table tr th,
table tr td {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 0.375rem 0.8125rem;
}
table tr th {
font-weight: bold;
}
table tr th :first-child,
table tr td :first-child {
margin-top: 0;
@@ -941,6 +939,10 @@ pre {
margin-top: 1.875rem;
}
#social-share-section a {
color: #fff;
}
/* --- Notification boxes --- */
.box-note,
.box-warning,
@@ -999,7 +1001,7 @@ pre {
max-width: 25%;
border-width: 0.25rem;
border-radius: 0.1875rem;
border-color: #808080;
border-color: var(--mid-col);
}
.blog-post blockquote {
@@ -1020,6 +1022,7 @@ pre {
/* Search bar */
#beautifuljekyll-search-overlay {
font-family: var(--header-font);
display: none;
z-index: 999999;
position: fixed;
@@ -1031,6 +1034,7 @@ pre {
text-align: center;
padding: 1rem;
}
#nav-search-exit {
position: absolute;
top: 1.5rem;
@@ -1059,6 +1063,7 @@ pre {
border: none;
padding: 0 3rem;
}
@media (max-width: 1199px) {
#nav-search-input {
width: 75%;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 KiB

View File

@@ -1,6 +1,6 @@
// Dean Attali / Beautiful Jekyll 2020
// Dean Attali / Beautiful Jekyll 2023
var BeautifulJekyllJS = {
let BeautifulJekyllJS = {
bigImgEl : null,
numImgs : null,
@@ -54,23 +54,23 @@ var BeautifulJekyllJS = {
// 2fc73a3a967e97599c9763d05e564189
// set an initial image
var imgInfo = BeautifulJekyllJS.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
const imgInfo = BeautifulJekyllJS.getImgInfo();
const src = imgInfo.src;
const desc = imgInfo.desc;
BeautifulJekyllJS.setImg(src, desc);
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
var getNextImg = function() {
var imgInfo = BeautifulJekyllJS.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
const getNextImg = function() {
const imgInfo = BeautifulJekyllJS.getImgInfo();
const src = imgInfo.src;
const desc = imgInfo.desc;
var prefetchImg = new Image();
const prefetchImg = new Image();
prefetchImg.src = src;
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
setTimeout(function(){
var img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
const img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
$(".intro-header.big-img").prepend(img);
setTimeout(function(){ img.css("opacity", "1"); }, 50);
@@ -93,9 +93,9 @@ var BeautifulJekyllJS = {
},
getImgInfo : function() {
var randNum = Math.floor((Math.random() * BeautifulJekyllJS.numImgs) + 1);
var src = BeautifulJekyllJS.bigImgEl.attr("data-img-src-" + randNum);
var desc = BeautifulJekyllJS.bigImgEl.attr("data-img-desc-" + randNum);
const randNum = Math.floor((Math.random() * BeautifulJekyllJS.numImgs) + 1);
const src = BeautifulJekyllJS.bigImgEl.attr("data-img-src-" + randNum);
const desc = BeautifulJekyllJS.bigImgEl.attr("data-img-desc-" + randNum);
return {
src : src,

View File

@@ -3,27 +3,25 @@ layout: null
---
(function ($) {
var $comments = $('.js-comments');
$('#new_comment').submit(function () {
var form = this;
const form = this;
$(form).addClass('disabled');
{% assign sm = site.staticman -%}
var endpoint = '{{ sm.endpoint }}';
var repository = '{{ sm.repository }}';
var branch = '{{ sm.branch }}';
let url = endpoint + repository + '/' + branch + '/comments';
let data = $(this).serialize();
const endpoint = '{{ sm.endpoint }}';
const repository = '{{ sm.repository }}';
const branch = '{{ sm.branch }}';
const url = endpoint + repository + '/' + branch + '/comments';
const data = $(this).serialize();
var xhr = new XMLHttpRequest();
const xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE) {
var status = xhr.status;
const status = xhr.status;
if (status >= 200 && status < 400) {
formSubmitted();
} else {