Compare commits

...

10 commits

17 changed files with 115 additions and 292 deletions

1
.gitattributes vendored
View file

@ -1 +0,0 @@
assets/scripts/pro-duotone-svg-icons/** filter=git-crypt diff=git-crypt

4
.gitignore vendored
View file

@ -151,3 +151,7 @@ dist
.yarn/build-state.yml .yarn/build-state.yml
.yarn/install-state.gz .yarn/install-state.gz
.pnp.* .pnp.*
### FontAwesome gitignore ###
fontawesome-pro-6.3.0-web

View file

@ -2,15 +2,6 @@ when:
branch: "master" branch: "master"
steps: steps:
- name: Decrypt repository
image: andyaugustin/git-crypt:v1.0.2
commands:
- echo "${GIT_CRYPT_KEY}" | base64 --decode > /tmp/.git-crypt-key
- git config --global --add safe.directory
- git-crypt unlock /tmp/.git-crypt-key
- rm /tmp/.git-crypt-key
secrets:
- git_crypt_key
- name: Install Node packages - name: Install Node packages
image: node:18.14.2-slim image: node:18.14.2-slim
commands: commands:

View file

@ -1,123 +0,0 @@
import { library, icon, config, dom } from "@fortawesome/fontawesome-svg-core";
import {
faBook,
faBrowser,
faComment,
faCowbell,
faEllipsis,
faFileAlt,
faFileSignature,
faGlobe,
faGraduationCap,
faHome,
faNotebook,
faPodium,
faPresentation,
faTag,
faScaleBalanced,
faUniversity,
faUser,
faUserAstronaut,
faVideo,
faW,
} from "./pro-duotone-svg-icons/index.mjs";
import {
faDiscord,
faGithub,
faGitlab,
faGolang,
faHtml5,
faOrcid,
faStackOverflow,
faSteam,
faVimeo,
} from "@fortawesome/free-brands-svg-icons";
config.familyDefault = "duotone";
config.styleDefault = "duotone";
const faBullSperm = {
prefix: "fax",
iconName: "bull-sperm",
icon: [
512,
512,
[],
null,
"M96 32c-6.691.363-12.375 4.062-15.375 7.062l-64 64c-12.8 12.8-5.333 26.667 0 32l96 64c10.3 10.301 22.938 4.887 37.563-7.812 8.635 9.735 16.63 18.38 23.125 24.875 8.33 8.33 23.436 16.284 41.75 24.313 18.313 8.028 39.82 16.065 60.812 24.062 20.992 7.997 41.474 15.986 57.625 23.938 16.15 7.95 27.882 16.013 31.5 23.25 6.52 13.038 26.468 44.939 48.875 79.75 22.32 34.674 46.99 72.043 63 96.062.02.029.042.096.064.125.045.064.144.185.189.25l2.812-1.5c-10.685-26.697-28.285-68.26-46.44-106.437-18.155-38.179-36.666-72.792-49.937-86.063-16.566-16.566-56.5-32.375-96.5-48.375s-80.066-32.19-95.5-47.625c-6.45-6.45-14.409-15.11-23.063-24.875 12.926-14.779 18.51-27.552 8.125-37.938-16-26.666-51.2-83.2-64-96-5.6-5.6-11.42-7.345-16.625-7.062zm372.688 436.75c.201.487.488 1.079.687 1.563-.291-.44-.644-.995-.937-1.438.023-.012.06.001.064 0 .002 0 .185-.06.188-.064.002-.001-.011-.038 0-.064z",
],
};
const faPeertube = {
prefix: "fax",
iconName: "peertube",
icon: [
512,
512,
[],
null,
"M55.8 25V255L255 140zM255 140v230l199.2-115zM55.8 255v230L255 370z",
],
};
const faGitea = {
prefix: "fax",
iconName: "gitea",
icon: [
512,
512,
[],
null,
"M92.7 114.5c-5.2 0-11 .4-17.6 1.9c-7 1.4-26.8 5.9-43 21.5C-3.9 169.9 5.3 221 6.4 228.6c1.4 9.4 5.5 35.4 25.4 58c36.6 44.9 115.5 43.8 115.5 43.8s9.7 23.1 24.5 44.4c20 26.5 40.6 47.1 60.6 49.6c50.4 0 151.1-.1 151.1-.1s9.6 .1 22.6-8.2c11.2-6.8 21.2-18.7 21.2-18.7s10.3-11 24.7-36.2c4.4-7.8 8.1-15.3 11.3-22.4c0 0 44.2-93.7 44.2-184.9c-.9-27.6-7.7-32.5-9.3-34.1c-3.3-3.3-7.7-3.2-7.7-3.2s-93.8 5.3-142.3 6.4c-10.6 .2-21.2 .5-31.7 .6l0 93.8c-4.4-2.1-8.9-4.2-13.3-6.3c0-29.1-.1-87.4-.1-87.4c-23.2 .3-71.4-1.8-71.4-1.8s-113.1-5.7-125.4-6.8c-3.9-.2-8.4-.7-13.6-.7zm9.8 38.4s5.7 47.5 12.6 75.4c5.8 23.4 19.8 62.2 19.8 62.2s-20.9-2.5-34.4-7.3c-20.7-6.8-29.5-15-29.5-15s-15.3-10.7-23-31.8c-13.2-35.4-1.1-57-1.1-57s6.7-18 30.8-24c11-3 24.8-2.5 24.8-2.5zm171 53.5c5.9-.4 11.9 2.6 11.9 2.6l18.2 8.8c-3.7 7.5-7.4 15-11.1 22.5c-5.4-.1-10.3 2.8-12.9 7.5c-2.7 5-2.2 11.3 1.5 15.8l-19.7 40.3c-6.6 .1-12.3 4.6-13.8 11s1.6 13 7.3 16c6.2 3.2 14 1.4 18.2-4.3c4.1-5.7 3.4-13.5-1.4-18.5L290.8 269c1.2 .1 3 .2 5-.4c3.3-.7 5.7-2.9 5.7-2.9c3.4 1.4 6.9 3 10.6 4.9c3.8 1.9 7.4 3.9 10.7 5.8c.7 .4 1.4 .9 2.2 1.5c1.3 1 2.7 2.5 3.8 4.4c1.5 4.4-1.5 11.9-1.5 11.9c-1.8 6.1-14.7 32.5-14.7 32.5c-6.5-.2-12.2 4-14.2 10c-2.1 6.5 .9 13.8 7.1 17s13.9 1.4 18-4.2c4-5.4 3.7-13-.9-18.1c1.5-3 3-5.9 4.5-9c4-8.3 10.8-24.3 10.8-24.3c.7-1.4 4.6-8.2 2.2-17c-2-9.1-10.1-13.4-10.1-13.4c-9.8-6.3-23.4-12.2-23.4-12.2s0-3.3-.9-5.7c-.9-2.5-2.2-4.1-3.1-5c3.6-7.4 7.2-14.8 10.8-22.2L373.9 252s10.1 4.6 12.2 13c1.5 5.9-.4 11.2-1.4 13.8c-5 12.3-44 90.5-44 90.5s-4.9 11.6-15.7 12.3c-4.6 .3-8.2-1-8.2-1s-.2-.1-4.2-1.7l-90.3-44s-8.7-4.6-10.2-12.5c-1.8-6.5 2.2-14.5 2.2-14.5l43.4-89.5s3.8-7.8 9.8-10.4c.5-.2 1.8-.8 3.6-1.2c.8-.2 1.6-.3 2.5-.4z",
],
};
const faNextcloud = {
prefix: "fax",
iconName: "nextcloud",
icon: [
733,
512,
[],
null,
"m365.6 114.3c-65 0-120.1 44.1-137.2 103.8c-14.8-31.7-47-53.8-84-53.8c-50.9 0-92.8 41.9-92.8 92.8s41.9 92.8 92.8 92.8c37 0 69.2-22.2 84-53.9c17.1 59.7 72.2 103.8 137.2 103.8c64.5 0 119.3-43.4 136.8-102.4c15.1 31 46.9 52.5 83.4 52.5c50.9 0 92.8-41.9 92.8-92.8s-41.9-92.8-92.8-92.8c-36.5 0-68.3 21.6-83.4 52.5c-17.1-59-71.9-102.4-136.4-102.4zm0 54.5c49.1 0 88.3 39.2 88.3 88.2s-39.2 88.3-88.3 88.3s-88.2-39.2-88.2-88.3s39.2-88.2 88.2-88.2zm-221.2 49.9c21.5 0 38.3 16.8 38.3 38.3s-16.9 38.3-38.3 38.3s-38.3-16.9-38.3-38.3s16.8-38.3 38.3-38.3zm441.4 0c21.5 0 38.3 16.8 38.3 38.3s-16.9 38.3-38.3 38.3s-38.3-16.9-38.3-38.3s16.8-38.3 38.3-38.3z",
],
};
library.add(
faBook,
faBrowser,
faBullSperm,
faComment,
faCowbell,
faDiscord,
faEllipsis,
faFileAlt,
faFileSignature,
faGitea,
faGithub,
faGitlab,
faGlobe,
faGolang,
faGraduationCap,
faHome,
faHtml5,
faNextcloud,
faNotebook,
faOrcid,
faPeertube,
faPodium,
faPresentation,
faTag,
faScaleBalanced,
faStackOverflow,
faSteam,
faUniversity,
faUser,
faUserAstronaut,
faVideo,
faVimeo,
faW
);
dom.i2svg();

View file

@ -1,6 +0,0 @@
var tooltipTriggerList = [].slice.call(
document.querySelectorAll('[data-bs-toggle="tooltip"]')
);
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});

View file

@ -131,6 +131,28 @@ footer {
align-items: center; align-items: center;
} }
form {
margin: 1rem;
}
fieldset {
padding: 1rem;
}
input,
select,
textarea {
width: 100%;
margin-bottom: 0.5rem;
}
input:invalid,
select:invalid,
textarea:invalid {
border-bottom-width: 2px;
border-bottom-color: var(--ear-tag-red);
}
/* /*
Container-type helper classes Container-type helper classes
*/ */
@ -257,11 +279,8 @@ footer {
box-sizing: content-box; box-sizing: content-box;
display: inline-block; display: inline-block;
height: 1em; height: 1em;
vertical-align: -0.125em;
}
.fa-container.fa-fw svg {
width: 1.25em; width: 1.25em;
vertical-align: -0.125em;
} }
.fa-container svg path { .fa-container svg path {
@ -333,6 +352,10 @@ footer {
display: none; display: none;
} }
main {
width: calc(100% - 10rem);
}
/* /*
Container-type helper classes Container-type helper classes
*/ */

View file

@ -62,16 +62,15 @@ stories.
Around the web you can find me at (in order of subjective importance) Around the web you can find me at (in order of subjective importance)
- {{< fa github yes >}} GitHub: [@MillironX](https://github.com/MillironX) - {{< fa github >}} GitHub: [@MillironX](https://github.com/MillironX)
- {{< fa orcid yes >}} ORDiD: - {{< fa orcid >}} ORDiD:
[0000-0003-1219-9320](https://orcid.org/0000-0003-1219-9320) [0000-0003-1219-9320](https://orcid.org/0000-0003-1219-9320)
- {{< fa gitlab yes >}} GitLab: [@MillironX](https://gitlab.com/MillironX) - {{< fa gitlab >}} GitLab: [@MillironX](https://gitlab.com/MillironX)
- {{< fa vimeo yes >}} Vimeo: - {{< fa vimeo >}} Vimeo:
[Thomas Christensen II](https://vimeo.com/tchristensenii) [Thomas Christensen II](https://vimeo.com/tchristensenii)
- {{< fa stack-overflow yes >}} StackExchange: - {{< fa stack-overflow >}} StackExchange:
[Milliron X](https://stackexchange.com/users/4863541/milliron-x) [Milliron X](https://stackexchange.com/users/4863541/milliron-x)
- {{< fa steam yes >}} Steam: - {{< fa steam >}} Steam: [MillironX](https://steamcommunity.com/id/millironx)
[MillironX](https://steamcommunity.com/id/millironx)
This list is intended to verify my identity on other sites. Please do _not_ use This list is intended to verify my identity on other sites. Please do _not_ use
it as fodder to try and "follow" me on each of these platforms. I stand with it as fodder to try and "follow" me on each of these platforms. I stand with

View file

@ -14,96 +14,60 @@ menu:
icon: file-signature icon: file-signature
weight: 1 weight: 1
fa-thumbnail: file-signature fa-thumbnail: file-signature
validation: true
--- ---
<form <form action="https://usebasin.com/f/787df7bfd22e" method="post">
class="form-horizontal"
action="https://usebasin.com/f/787df7bfd22e"
method="post"
>
<fieldset> <fieldset>
<legend>Contact Me</legend> <legend>Contact Me</legend>
<input type="hidden" name="_gotcha" /> <input type="hidden" name="_gotcha" />
<div class="form-group"> <label for="name">Name</label>
<label for="name" class="col-lg-2 control-label">Name</label> <input
<div class="col-lg-10"> type="text"
<input class="form-control"
type="text" id="name"
class="form-control" name="name"
id="name" placeholder="Jay Lush"
name="name" required
placeholder="Jay Lush" />
required <label for="email">Email</label>
/> <input
</div> type="email"
</div> class="form-control"
<div class="form-group"> id="email"
<label for="email" class="col-lg-2 control-label">Email</label> name="email"
<div class="col-lg-10"> placeholder="jlush@iastate.edu"
<input required
type="email" />
class="form-control" <label for="phone">Phone number</label>
id="email" <input
name="email" type="tel"
placeholder="jlush@iastate.edu" class="form-control"
required id="phone"
/> name="phone"
</div> placeholder="(515) 294-2160"
</div> />
<div class="form-group"> <label for="subject">Subject</label>
<label for="phone" class="col-lg-2 control-label">Phone number</label> <input
<div class="col-lg-10"> type="text"
<input class="form-control"
type="tel" id="subject"
class="form-control" name="subject"
id="phone" placeholder="Beef genetics"
name="phone" required
placeholder="(515) 294-2160" />
/> <label for="message">Message</label>
</div> <textarea
</div> rows="5"
<div class="form-group"> class="form-control font-sans"
<label for="category" class="col-lg-2 control-label">Category</label> id="message"
<div class="col-lg-10"> name="body"
<select class="form-select" id="category"> required
<option>I'm hiring for artificial insemination</option> style="min-height: 72pt;"
<option>Something else</option> ></textarea>
</select> <button type="reset" class="btn btn-default">Cancel</button>
</div> <button type="submit" class="btn btn-primary pageclip-form__submit">
</div> <span>Submit</span>
<div class="form-group"> </button>
<label for="subject" class="col-lg-2 control-label">Subject</label>
<div class="col-lg-10">
<input
type="text"
class="form-control"
id="subject"
name="subject"
placeholder="Beef genetics"
required
/>
</div>
</div>
<div class="form-group">
<label for="message" class="col-lg-2 control-label">Message</label>
<div class="col-lg-10">
<textarea
rows="5"
class="form-control font-sans"
id="message"
name="body"
required
style="min-height: 72pt;"
></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="reset" class="btn btn-default">Cancel</button>
<button type="submit" class="btn btn-primary pageclip-form__submit">
<span>Submit</span>
</button>
</div>
</div>
</fieldset> </fieldset>
</form> </form>

View file

@ -48,16 +48,11 @@
</p> </p>
</footer> </footer>
<!-- Font Awesome --> {{ with .Params.validation }}
{{ $fontawesome := resources.Get "scripts/fa-icons.js" | js.Build "js/fontawesome.js" | minify }} {{- partial "form-validation.html" -}}
<script src="{{ $fontawesome.RelPermalink }}"></script> {{ end }}
<!-- JQuery -->
{{ $jquery := resources.Get "scripts/jquery/jquery.min.js" }}
{{ $jqmaskjs := resources.Get "scripts/jquery-mask-plugin/jquery.mask.min.js" }}
{{ $maskjs := resources.Get "scripts/phone-masking.js" | minify }}
{{ $jquerybundle := slice $jquery $jqmaskjs $maskjs | resources.Concat "js/jquery-bundle.js" }}
<script src="{{ $jquerybundle.RelPermalink }}"></script>
<!-- GoatCounter --> <!-- GoatCounter -->
<script <script
data-goatcounter="https://millironx.goatcounter.com/count" data-goatcounter="https://millironx.goatcounter.com/count"

View file

@ -15,10 +15,7 @@
<div class="card-header"> <div class="card-header">
<div class="thumb-icon-wrapper"> <div class="thumb-icon-wrapper">
<span class="thumb-icon-badge"> <span class="thumb-icon-badge">
{{- $fontAwesomePath := print "assets/graphics/fa/" . ".svg" -}} {{- partial "fa.html" . -}}
<span class="fa-container fa-fw">
{{- readFile $fontAwesomePath | safeHTML -}}
</span>
</span> </span>
</div> </div>
</div> </div>
@ -63,9 +60,9 @@
<a <a
href="{{ .RelPermalink }}" href="{{ .RelPermalink }}"
class="card-link {{ if eq .LinkTitle "Thomas A. Christensen II" }} class="card-link {{ if eq .LinkTitle "Thomas A. Christensen II" }}
fw-bolder bolder
{{ end }}" {{ end }}"
><i class="fad fa-user"></i> {{ .LinkTitle }}</a >{{- partial "fa.html" "user" }} {{ .LinkTitle }}</a
> >
{{ end }} {{ end }}
@ -82,7 +79,7 @@
<div class="card-footer"> <div class="card-footer">
{{ range (.GetTerms "tags") }} {{ range (.GetTerms "tags") }}
<a href="{{ .RelPermalink }}" class="icon-link card-link" <a href="{{ .RelPermalink }}" class="icon-link card-link"
><i class="fad fa-tag"></i> {{ .LinkTitle }}</a >{{- partial "fa.html" "tag" }} {{ .LinkTitle }}</a
> >
{{ end }} {{ end }}
</div> </div>

View file

@ -3,12 +3,12 @@
{{ if eq $i 0 }} {{ if eq $i 0 }}
{{ with $.Site.GetPage (printf "/%s/%s" "categories" $category) }} {{ with $.Site.GetPage (printf "/%s/%s" "categories" $category) }}
{{ $iconDictionary := dict {{ $iconDictionary := dict
"video" "fad fa-video" "video" "video"
"paper" "fad fa-book" "paper" "book"
"poster" "fad fa-presentation" "poster" "presentation"
"thesis" "fad fa-graduation-cap" "thesis" "graduation-cap"
"presentation" "fad fa-podium" "presentation" "podium"
"web" "fad fa-globe" "web" "globe"
}} }}
{{ $categoryIcon := index $iconDictionary $category }} {{ $categoryIcon := index $iconDictionary $category }}
<a <a
@ -16,7 +16,7 @@
href="{{ .RelPermalink }}" href="{{ .RelPermalink }}"
title="{{ humanize $category }}" title="{{ humanize $category }}"
> >
<i class="{{ $categoryIcon | default "fad fa-tag" }} fa-fw"></i> {{- partial "fa.html" $categoryIcon -}}
</a> </a>
{{ end }} {{ end }}
{{ end }} {{ end }}

4
layouts/partials/fa.html Normal file
View file

@ -0,0 +1,4 @@
{{- $fontAwesomePath := print "assets/graphics/fa/" . ".svg" -}}
<span class="fa-container fa-fw">
{{- readFile $fontAwesomePath | safeHTML -}}
</span>

View file

@ -0,0 +1,6 @@
<!-- JQuery -->
{{ $jquery := resources.Get "scripts/jquery/jquery.min.js" }}
{{ $jqmaskjs := resources.Get "scripts/jquery-mask-plugin/jquery.mask.min.js" }}
{{ $maskjs := resources.Get "scripts/phone-masking.js" | minify }}
{{ $jquerybundle := slice $jquery $jqmaskjs $maskjs | resources.Concat "js/jquery-bundle.js" }}
<script src="{{ $jquerybundle.RelPermalink }}"></script>

View file

@ -1,19 +1,13 @@
{{ $millironx := resources.Get "graphics/millironx.svg" }} {{ $millironx := resources.Get "graphics/millironx.svg" }}
{{ $currentPage := . }} {{ $currentPage := . }}
<aside class="col-12 col-md-3 p-0 bg-dark flex-shrink-1"> <aside>
<nav> <nav>
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<a <a
class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}" class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}"
href="{{ .URL }}" href="{{ .URL }}"
> >
{{- $fontAwesomePath := print "assets/graphics/fa/" .Params.icon ".svg" -}} {{- partial "fa.html" .Params.icon -}}
<span
class="fa-container
fa-fw"
>
{{- readFile $fontAwesomePath | safeHTML -}}
</span>
{{ .Name }} {{ .Name }}
</a> </a>
{{ end }} {{ end }}

View file

@ -1,13 +1,2 @@
{{- $faName := .Get 0 -}} {{- $faName := .Get 0 -}}
{{- $isFullWidth := .Get 1 -}} {{- partial "fa.html" $faName -}}
{{- $fontAwesomePath := print "assets/graphics/fa/" $faName ".svg" -}}
<span
class="fa-container{{- if eq $isFullWidth "yes" }}
fa-fw
{{ end -}}"
>
{{- readFile $fontAwesomePath | safeHTML -}}
</span>

View file

@ -1,13 +0,0 @@
const purgecss = require("@fullhuman/postcss-purgecss")({
content: ["./hugo_stats.json"],
defaultExtractor: (content) => {
let els = JSON.parse(content).htmlElements;
return els.tags.concat(els.classes, els.ids);
},
});
if (process.env.HUGO_ENVIRONMENT === "production") {
module.exports = {
plugins: [purgecss],
};
}