diff --git a/.envrc b/.envrc index f773b0e..d4b93ce 100644 --- a/.envrc +++ b/.envrc @@ -1,4 +1,2 @@ use flake layout node -mkdir -p "${HOME}/Library/Application Support/SourceGit" -echo "${PATH}" > "${HOME}/Library/Application Support/SourceGit/PATH" diff --git a/.gitignore b/.gitignore index c4bb138..eaedb26 100644 --- a/.gitignore +++ b/.gitignore @@ -161,31 +161,3 @@ fontawesome-pro-6.3.0-web ### Nix Flake gitignore ### result - -### MacOS gitignore ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 1fea400..0000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -layouts/_default/index.manifest.json diff --git a/.prettierrc b/.prettierrc index 672b6f3..7c5268b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -4,6 +4,3 @@ overrides: - files: "*.html" options: parser: "go-template" - - files: "*.gotmpl" - options: - parser: "go-template" diff --git a/.woodpecker.yml b/.woodpecker.yml index 881a8fd..4de02aa 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,15 +1,14 @@ when: branch: master - event: - - push - - cron - cron: "weekly-build" + event: push steps: - name: Build site - image: hugomods/hugo:std-base-non-root-0.141.0 + image: nixos/nix:2.24.11 commands: - - hugo --minify + - echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf + - nix build + - mkdir public && cp -av result/* public - name: Deploy to pages image: codeberg.org/xfix/plugin-codeberg-pages-deploy:1 settings: diff --git a/.zed/settings.json b/.zed/settings.json deleted file mode 100644 index eb5924a..0000000 --- a/.zed/settings.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "languages": { - "HTML": { - "formatter": { - "external": { - "command": "prettier", - "arguments": ["--stdin-filepath", "{buffer_path}"] - } - } - } - }, - "file_types": { "HTML": ["gotmpl"] } -} diff --git a/README.md b/README.md index 165340a..400066a 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,18 @@ My personal website. Hosted over at ## Notes to self -### Nix dev shell - -All developer dependencies are now bundled as a Nix Flake. The only trouble with -this is that npm packages don't play well with Nix (and especially Flakes), so -npm packages are specified twice: once in `package{-lock}.json` and then again -in `node*.nix`. +All dependencies are now bundled as a Nix Flake. The only trouble with this is +that npm packages don't play well with Nix (and especially Flakes), so npm +packages are specified twice: once in `package{-lock}.json` and then again in +`node*.nix`. Compounding this, there are formatters and commit hooks that require npm to be functional. So, to develop right now requires allowing direnv to setup the Nix development shell, then immediately installing npm packages via `npm ci`. VSCode -(with extensions) and Zed are smart enough to figure out how to use direnv, and -direnv will pass the PATH to SourceGit for Mac, but other programs aren't that -smart, so you'll need to launch those programs from inside a direnv shell to -make sure they have Prettier, Husky, and all that jazz to execute the hooks. +(with extensions) and Zed are smart enough to figure out how to use direnv, but +other programs (like SourceGit) not so much, so you'll need to launch those +programs from inside a direnv shell to make sure they have Prettier, Husky, and +all that jazz to execute the hooks. Last compounding factors: if `node_modules` is present in the root directory, then node2nix won't create a correct derivation, so `node_modules` will need to @@ -32,11 +30,3 @@ run. Yes, hopefully I can get completely away from npm here soon, but this is a minor inconvenience considering how (not) often I install new packages into this site, and really discourages me from contributing to the website obesity crisis. - -### Nix building - -Nix building will not work because Hugo reaches out to the internet via content -adapters, and that (by intention) is not perfectly reproducable. As such, -_development_ tools are installed in a Nix shell, but building has been removed -from the Flake. Thankfully, hugomods provides "canonical" Docker images for hugo -now. diff --git a/assets/characters/README.md b/assets/characters/README.md deleted file mode 100644 index 3b2d851..0000000 --- a/assets/characters/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Characters - -Imaginary friends that help me inject personality into my articles. These are -anthropomorphized versions of animals that I have known in real life. I tried to -draw them roughly in the style of Chris Pasquini, but failed myself, then tried -using Perplexity's image generation. The style isn't quite the same, but I like -it for these animals. Also, Perplexity does a horrible job of labeling images, -so ignore the ref sheet emotion labels. - -## Spawn of Satan (aka Spawn aka SOS) - -![Spawn ref sheet](spawn/_ref-body-perplexity.png) - -Spawn of Satan is the name Travis gave to the cannulated cow, and it stuck. -Spawn is old and cynical after having every professor with a new idea experiment -on her. After being in academia for so long, she knows her way around -mathematics and the scientific method reasonably well, even if she's never -formally taken a college course in the sciences. She is the realist to any blog -post's optimist. - -## Whelen - -![Whelen ref sheet](whelen/_ref-body-perplexity.png) - -Whelen is a happy-go-lucky German Shepherd/Husky mix puppy. He's been to school -once - and that was just to get neutered - so his knowledge of math and science, -heck, even of the humanities, isn't very good. He is very naive and thinks -everyone is nice and wants to be his friend, but he is also friendly to everyone -and is very vocal when he feels left out. He will step in when any blog post is -getting too technical and demand an explanation for real people (dogs?). diff --git a/assets/characters/spawn/_ref-blueeye-perplexity.png b/assets/characters/spawn/_ref-blueeye-perplexity.png deleted file mode 100644 index b8bef00..0000000 Binary files a/assets/characters/spawn/_ref-blueeye-perplexity.png and /dev/null differ diff --git a/assets/characters/spawn/_ref-body-perplexity.png b/assets/characters/spawn/_ref-body-perplexity.png deleted file mode 100644 index 04f95a6..0000000 Binary files a/assets/characters/spawn/_ref-body-perplexity.png and /dev/null differ diff --git a/assets/characters/spawn/_ref-bodysmirk-perplexity.png b/assets/characters/spawn/_ref-bodysmirk-perplexity.png deleted file mode 100644 index afb9ba2..0000000 Binary files a/assets/characters/spawn/_ref-bodysmirk-perplexity.png and /dev/null differ diff --git a/assets/characters/spawn/_ref-face-perplexity.png b/assets/characters/spawn/_ref-face-perplexity.png deleted file mode 100644 index de286db..0000000 Binary files a/assets/characters/spawn/_ref-face-perplexity.png and /dev/null differ diff --git a/assets/characters/spawn/body-anger.png b/assets/characters/spawn/body-anger.png deleted file mode 100644 index 0f9fd87..0000000 Binary files a/assets/characters/spawn/body-anger.png and /dev/null differ diff --git a/assets/characters/spawn/body-lazy.png b/assets/characters/spawn/body-lazy.png deleted file mode 100644 index 530eb46..0000000 Binary files a/assets/characters/spawn/body-lazy.png and /dev/null differ diff --git a/assets/characters/spawn/body-skeptic.png b/assets/characters/spawn/body-skeptic.png deleted file mode 100644 index 8e110dc..0000000 Binary files a/assets/characters/spawn/body-skeptic.png and /dev/null differ diff --git a/assets/characters/spawn/body-snark.png b/assets/characters/spawn/body-snark.png deleted file mode 100644 index e2be9e1..0000000 Binary files a/assets/characters/spawn/body-snark.png and /dev/null differ diff --git a/assets/characters/spawn/body-tired.png b/assets/characters/spawn/body-tired.png deleted file mode 100644 index 3d84c4d..0000000 Binary files a/assets/characters/spawn/body-tired.png and /dev/null differ diff --git a/assets/characters/spawn/face-confusion.png b/assets/characters/spawn/face-confusion.png deleted file mode 100644 index 6a70166..0000000 Binary files a/assets/characters/spawn/face-confusion.png and /dev/null differ diff --git a/assets/characters/spawn/face-happy.png b/assets/characters/spawn/face-happy.png deleted file mode 100644 index 445dcef..0000000 Binary files a/assets/characters/spawn/face-happy.png and /dev/null differ diff --git a/assets/characters/spawn/face-neutral.png b/assets/characters/spawn/face-neutral.png deleted file mode 100644 index 44b5522..0000000 Binary files a/assets/characters/spawn/face-neutral.png and /dev/null differ diff --git a/assets/characters/spawn/face-sad.png b/assets/characters/spawn/face-sad.png deleted file mode 100644 index 15fdb4e..0000000 Binary files a/assets/characters/spawn/face-sad.png and /dev/null differ diff --git a/assets/characters/spawn/face-toldyouso.png b/assets/characters/spawn/face-toldyouso.png deleted file mode 100644 index 9a908bb..0000000 Binary files a/assets/characters/spawn/face-toldyouso.png and /dev/null differ diff --git a/assets/characters/whelen/_ref-body-perplexity.png b/assets/characters/whelen/_ref-body-perplexity.png deleted file mode 100644 index e5d4103..0000000 Binary files a/assets/characters/whelen/_ref-body-perplexity.png and /dev/null differ diff --git a/assets/characters/whelen/_ref-face-perplexity.png b/assets/characters/whelen/_ref-face-perplexity.png deleted file mode 100644 index 107709c..0000000 Binary files a/assets/characters/whelen/_ref-face-perplexity.png and /dev/null differ diff --git a/assets/characters/whelen/body-determined.png b/assets/characters/whelen/body-determined.png deleted file mode 100644 index 2c37c46..0000000 Binary files a/assets/characters/whelen/body-determined.png and /dev/null differ diff --git a/assets/characters/whelen/body-happy.png b/assets/characters/whelen/body-happy.png deleted file mode 100644 index ef40187..0000000 Binary files a/assets/characters/whelen/body-happy.png and /dev/null differ diff --git a/assets/characters/whelen/body-neutral.png b/assets/characters/whelen/body-neutral.png deleted file mode 100644 index 9737ccc..0000000 Binary files a/assets/characters/whelen/body-neutral.png and /dev/null differ diff --git a/assets/characters/whelen/body-sad.png b/assets/characters/whelen/body-sad.png deleted file mode 100644 index 2056f02..0000000 Binary files a/assets/characters/whelen/body-sad.png and /dev/null differ diff --git a/assets/characters/whelen/body-tired.png b/assets/characters/whelen/body-tired.png deleted file mode 100644 index 855a49d..0000000 Binary files a/assets/characters/whelen/body-tired.png and /dev/null differ diff --git a/assets/characters/whelen/body-worry.png b/assets/characters/whelen/body-worry.png deleted file mode 100644 index 2dd85e2..0000000 Binary files a/assets/characters/whelen/body-worry.png and /dev/null differ diff --git a/assets/characters/whelen/face-anticipation.png b/assets/characters/whelen/face-anticipation.png deleted file mode 100644 index 0be27d0..0000000 Binary files a/assets/characters/whelen/face-anticipation.png and /dev/null differ diff --git a/assets/characters/whelen/face-bored.png b/assets/characters/whelen/face-bored.png deleted file mode 100644 index d376b4d..0000000 Binary files a/assets/characters/whelen/face-bored.png and /dev/null differ diff --git a/assets/characters/whelen/face-happy.png b/assets/characters/whelen/face-happy.png deleted file mode 100644 index af35cae..0000000 Binary files a/assets/characters/whelen/face-happy.png and /dev/null differ diff --git a/assets/characters/whelen/face-neutral.png b/assets/characters/whelen/face-neutral.png deleted file mode 100644 index 1a93432..0000000 Binary files a/assets/characters/whelen/face-neutral.png and /dev/null differ diff --git a/assets/characters/whelen/face-skeptic.png b/assets/characters/whelen/face-skeptic.png deleted file mode 100644 index 33cc063..0000000 Binary files a/assets/characters/whelen/face-skeptic.png and /dev/null differ diff --git a/assets/characters/whelen/face-tired.png b/assets/characters/whelen/face-tired.png deleted file mode 100644 index f395166..0000000 Binary files a/assets/characters/whelen/face-tired.png and /dev/null differ diff --git a/assets/characters/whelen/face-worry.png b/assets/characters/whelen/face-worry.png deleted file mode 100644 index 563b68e..0000000 Binary files a/assets/characters/whelen/face-worry.png and /dev/null differ diff --git a/assets/graphics/fa/bitcoin.svg b/assets/graphics/fa/bitcoin.svg deleted file mode 100644 index 8815bce..0000000 --- a/assets/graphics/fa/bitcoin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/block-quote.svg b/assets/graphics/fa/block-quote.svg deleted file mode 100644 index faa51e9..0000000 --- a/assets/graphics/fa/block-quote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/candy-bar.svg b/assets/graphics/fa/candy-bar.svg deleted file mode 100644 index 3c0bdfa..0000000 --- a/assets/graphics/fa/candy-bar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/chevrons-down.svg b/assets/graphics/fa/chevrons-down.svg deleted file mode 100644 index 0fab552..0000000 --- a/assets/graphics/fa/chevrons-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/circle-info.svg b/assets/graphics/fa/circle-info.svg deleted file mode 100644 index 025e8d0..0000000 --- a/assets/graphics/fa/circle-info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/circle-quarters.svg b/assets/graphics/fa/circle-quarters.svg deleted file mode 100644 index 31f53d2..0000000 --- a/assets/graphics/fa/circle-quarters.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/code.svg b/assets/graphics/fa/code.svg deleted file mode 100644 index c43b6d1..0000000 --- a/assets/graphics/fa/code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/codeberg.svg b/assets/graphics/fa/codeberg.svg deleted file mode 100644 index d5fdd1a..0000000 --- a/assets/graphics/fa/codeberg.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/graphics/fa/ebay.svg b/assets/graphics/fa/ebay.svg deleted file mode 100644 index cc19ef6..0000000 --- a/assets/graphics/fa/ebay.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/ethereum.svg b/assets/graphics/fa/ethereum.svg deleted file mode 100644 index b200fd2..0000000 --- a/assets/graphics/fa/ethereum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/google-scholar.svg b/assets/graphics/fa/google-scholar.svg deleted file mode 100644 index e2b6347..0000000 --- a/assets/graphics/fa/google-scholar.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/graphics/fa/hacker-news.svg b/assets/graphics/fa/hacker-news.svg deleted file mode 100644 index 1d402c1..0000000 --- a/assets/graphics/fa/hacker-news.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/lightning.svg b/assets/graphics/fa/lightning.svg deleted file mode 100644 index e8cc00c..0000000 --- a/assets/graphics/fa/lightning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/link.svg b/assets/graphics/fa/link.svg deleted file mode 100644 index 9ace2c7..0000000 --- a/assets/graphics/fa/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/lutris.svg b/assets/graphics/fa/lutris.svg deleted file mode 100644 index fd6d2aa..0000000 --- a/assets/graphics/fa/lutris.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/assets/graphics/fa/matrix.svg b/assets/graphics/fa/matrix.svg deleted file mode 100644 index a178912..0000000 --- a/assets/graphics/fa/matrix.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/graphics/fa/monero.svg b/assets/graphics/fa/monero.svg deleted file mode 100644 index 2a1a5dc..0000000 --- a/assets/graphics/fa/monero.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/p.svg b/assets/graphics/fa/p.svg deleted file mode 100644 index 8082e1d..0000000 --- a/assets/graphics/fa/p.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/right-to-bracket.svg b/assets/graphics/fa/right-to-bracket.svg deleted file mode 100644 index 0d86ac3..0000000 --- a/assets/graphics/fa/right-to-bracket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/rss.svg b/assets/graphics/fa/rss.svg deleted file mode 100644 index ce2e0d4..0000000 --- a/assets/graphics/fa/rss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/scroll.svg b/assets/graphics/fa/scroll.svg deleted file mode 100644 index 2d5e7a8..0000000 --- a/assets/graphics/fa/scroll.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/spotify.svg b/assets/graphics/fa/spotify.svg deleted file mode 100644 index cb99987..0000000 --- a/assets/graphics/fa/spotify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/zcash.svg b/assets/graphics/fa/zcash.svg deleted file mode 100644 index 2a9c9d7..0000000 --- a/assets/graphics/fa/zcash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/graphics/fa/zotero.svg b/assets/graphics/fa/zotero.svg deleted file mode 100644 index 2948c62..0000000 --- a/assets/graphics/fa/zotero.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/graphics/millironx-icon.png b/assets/graphics/millironx-icon.png deleted file mode 100644 index 1c4913f..0000000 Binary files a/assets/graphics/millironx-icon.png and /dev/null differ diff --git a/assets/graphics/millironx-icon.svg b/assets/graphics/millironx-icon.svg deleted file mode 100644 index 42b2777..0000000 --- a/assets/graphics/millironx-icon.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - diff --git a/assets/graphics/millironx.svg b/assets/graphics/millironx.svg index 2e1c756..c0e4bd1 100644 --- a/assets/graphics/millironx.svg +++ b/assets/graphics/millironx.svg @@ -1,42 +1,43 @@ - + + - + + + + + + diff --git a/content/thumbnail.jpg b/assets/images/charolette.jpg similarity index 100% rename from content/thumbnail.jpg rename to assets/images/charolette.jpg diff --git a/content/blogroll/thumbnail.jpg b/assets/images/eclipse.jpg similarity index 100% rename from content/blogroll/thumbnail.jpg rename to assets/images/eclipse.jpg diff --git a/content/academia/thumbnail.jpg b/assets/images/library.jpg similarity index 100% rename from content/academia/thumbnail.jpg rename to assets/images/library.jpg diff --git a/content/contact/thumbnail.jpg b/assets/images/venice-mailbox.jpg similarity index 100% rename from content/contact/thumbnail.jpg rename to assets/images/venice-mailbox.jpg diff --git a/assets/styles/millironx.css b/assets/styles/millironx.css index 00ad31e..a4fcf70 100644 --- a/assets/styles/millironx.css +++ b/assets/styles/millironx.css @@ -165,18 +165,7 @@ ); --container-border: light-dark(var(--swiss-brown-6), var(--eclipse-16)); --container-background: light-dark(var(--swiss-brown-4), var(--eclipse-12)); - --container-border-alt: light-dark(var(--eclipse-16), var(--swiss-brown-6)); - --container-background-alt: light-dark( - var(--eclipse-12), - var(--swiss-brown-4) - ); --motto-background: rgba(0, 0, 0, 0.66); - --page-button-text: var(--prickly-pear-yellow-1); - --page-button-background: var(--prickly-pear-yellow-8); - --page-button-background-hover: var(--prickly-pear-yellow-10); - --page-button-background-active: var(--prickly-pear-yellow-12); - --page-button-background-disabled: var(--prickly-pear-yellow-6); - --page-button-text-disabled: var(--eclipse-7); /* Fonts @@ -185,10 +174,7 @@ "URW Bookman L", "Georgia Pro", Georgia, serif; --font-family-slab-serif: Rockwell, "Rockwell Nova", "Roboto Slab", "DejaVu Serif", "Sitka Small", serif; - --font-family-transitional: Charter, "Bitstream Charter", "Sitka Text", - Cambria, serif; --font-family-system-ui: system-ui, sans-serif; - --font-family-monospace: "Nimbus Mono PS", "Courier New", monospace; } /* @@ -200,26 +186,6 @@ html { font-family: var(--font-family-slab-serif); } -body { - display: flex; - flex-direction: column; - min-height: 98vh; - margin: 0 8px; - align-items: center; -} - -.container { - max-width: min(60rem, 100vw - 2rem); -} - -.footer-inner { - width: min(60rem, 100vw - 2rem); - display: flex; - justify-content: space-between; - align-items: center; - flex-shrink: 0; -} - a { color: var(--link-color); } @@ -269,39 +235,6 @@ nav a:hover { background-color: var(--nav-button-background-hover); } -main { - display: flex; - flex-direction: column; -} - -article p, -.character-dialog-text, -article li { - font-family: var(--font-family-transitional); - font-size: 1.15rem; - text-justify: inter-word; - text-align: justify; - hyphens: auto; -} - -article > p { - text-indent: 2ch; - line-height: 1.5em; -} - -article h1 + p, -article h2 + p, -article h3 + p, -article h4 + p, -article h5 + p, -article h6 + p { - text-indent: 0; -} - -.footnotes p { - font-size: smaller; -} - figure { border-color: var(--container-border); border-width: 1.5pt; @@ -311,41 +244,33 @@ figure { padding: 1.25pt; } -figure:has(blockquote) { +blockquote { background: linear-gradient( to right, var(--container-border), var(--container-background) ); - border: none; - border-radius: 0; - border-left: 6px solid black; - padding: 0.25em 1em; + border-left: 5px solid black; + padding: 1px; + padding-left: 6px; } -figure:has(blockquote) > blockquote { - margin: 0; -} - -figure:has(blockquote) > figcaption::before { +blockquote small::before { content: "\2014 \00A0"; } -figure:has(blockquote) > figcaption { - margin-top: -1em; - margin-bottom: 1em; +blockquote small { font-size: 80%; } footer { - display: flex; - flex-direction: column; - align-items: center; background-color: var(--container-background); margin: 0 0 -1em -1em; width: calc(100% - 1em); padding: 0.25em 1.25em; - font-size: smaller; + display: flex; + justify-content: space-between; + align-items: center; } form { @@ -370,25 +295,6 @@ textarea:invalid { border-bottom-color: var(--ear-tag-red); } -code { - font-family: var(--font-family-monospace); -} - -/* - abbr element "tooltip" for mobile - heavily modified from https://bitsofco.de/making-abbr-work-for-touchscreen-keyboard-mouse/ -*/ -abbr[title]:focus::after { - content: attr(title); - background-color: #1e1e1e; - color: #fff; - border-radius: 0.125em; - box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.4); - font-size: smaller; - padding: 0.5em; - display: block; -} - /* Container-type helper classes */ @@ -398,12 +304,6 @@ abbr[title]:focus::after { width: 100%; } -.motto-wrapper { - display: block; - flex: 1 0 30vh; - margin-bottom: 1em; -} - .motto { position: relative; display: grid; @@ -413,7 +313,6 @@ abbr[title]:focus::after { font-weight: 600; text-shadow: 0 0 10px rgba(0, 0, 0, 0.33); width: 100%; - height: 100%; padding: 0 0 0.5em 0; border-radius: 0.25rem; z-index: 10; @@ -441,7 +340,6 @@ abbr[title]:focus::after { .motto .motto-inside h1 { background-color: var(--motto-background); - padding: 0.5rem; } .card { @@ -453,23 +351,11 @@ abbr[title]:focus::after { margin: 1rem 0; padding: 0.5rem; padding-top: 0; + position: relative; display: flex; flex-direction: column; } -.card-content { - display: flex; - flex-direction: column; - flex-grow: 1; -} - -.card-header { - display: flex; - flex-direction: row; - justify-content: space-between; - flex-grow: 1; -} - .card-link { white-space: nowrap; display: inline-flex; @@ -477,26 +363,22 @@ abbr[title]:focus::after { align-items: center; text-underline-offset: 0.25em; backface-visibility: hidden; - margin: 0.1em 0.25em; - padding: 0.33em; - padding-right: 0.45em; -} - -.card-body { - margin-top: 0.33em; + margin: 0 0.5em; } .category-button { + position: absolute; + top: 1em; + right: 1em; display: grid; - align-items: center; - justify-items: center; color: white; background-color: var(--ear-tag-red); border-radius: 0.5em; padding: 1em; - margin: 1em; - height: 2em; - aspect-ratio: 1 / 1; +} + +.card-title a h3 { + margin-right: 3.5em; } .card-title > a { @@ -539,118 +421,6 @@ abbr[title]:focus::after { fill: currentColor; } -.account-bucket { - display: grid; - grid-template-columns: 3em 1em 1fr; - background-color: var(--container-background-alt); - padding: 1em 0; - border-radius: 0.5em; - border-color: var(--container-border-alt); - border-style: solid; - color: light-dark(white, black); - margin: 1em 0; - align-items: center; -} - -.account-bucket h3 { - align-self: center; - writing-mode: sideways-lr; -} - -.account-bucket details { - grid-column: 3; -} - -.account-bucket .crypto-list { - grid-column: 3; - max-width: 100%; -} - -.account-list { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - width: calc(100% - 1.5em); -} - -.account-bucket .account-list { - grid-column: 3; -} - -.account-list a { - font-size: xx-large; - text-decoration: none; - color: inherit; - padding: 0.5em; -} - -.account-list a:hover { - background-color: var(--container-background); - border-color: var(--container-border); - border-width: 2.5px; - border-radius: 0.5em; - border-style: solid; - padding: calc(0.5em - 2.5px); -} - -figcaption .mono { - color: light-dark(black, white); - overflow-wrap: anywhere; -} - -.crypto-list details { - max-width: 100%; -} - -.character-dialog { - display: grid; - width: calc(100% - 1rem); - grid-template-columns: 5rem 1fr; - grid-template-rows: auto auto; - gap: 1em; - margin: 0.5rem; -} - -.character-avatar { - display: grid; - max-width: 100%; - grid-row: 1 / span 2; - grid-column: 1; - align-self: start; - align-items: center; - justify-items: center; - min-width: 5rem; - min-height: 5rem; - border-radius: 5rem; - align-items: center; - border-style: solid; - border-color: var(--nav-button-background-hover); - background-color: var(--cowhide-2); -} - -.character-avatar > img { - max-width: 4rem; - max-height: 4rem; -} - -.character-dialog-bubble { - display: grid; - grid-template-rows: auto auto; - align-self: start; - border-radius: 0.5em; - border-width: 0.2rem; - border-color: var(--nav-button-background); - border-style: outset; - row-gap: 0.5rem; - padding: 0.5rem; - background-color: var(--container-border); - min-height: 5rem; -} - -.character-dialog-title { - font-weight: bolder; -} - /* Helper classes */ @@ -661,9 +431,6 @@ figcaption .mono { .img-fluid { max-width: 100%; height: auto; - display: grid; - align-items: center; - justify-items: center; } .float-left { @@ -676,68 +443,6 @@ figcaption .mono { max-width: 100%; } -.pagination { - display: flex; - justify-content: center; - gap: 0.5em; - padding-left: 0; -} - -.pagination li { - list-style-type: none; - color: var(--nav-button-text); -} - -.pagination li a { - color: var(--page-button-text); - background-color: var(--page-button-background); - border-radius: 0.05rem; - border-style: outset; - border-width: 0.2rem; - border-color: var(--page-button-background); - width: 2rem; - max-width: 1.8vw; - aspect-ratio: 1 / 1; - display: flex; - justify-content: center; - align-items: center; - margin: 0.2rem; - text-decoration: none; - padding: 0 0.2rem; - font-family: var(--font-family-system-ui); -} - -.pagination li a:hover { - background-color: var(--page-button-background-hover); -} - -.pagination li.active a { - background-color: var(--page-button-background-active); -} - -.pagination li.disabled a { - cursor: not-allowed; - background-color: var(--page-button-background-disabled); - color: var(--page-button-text-disabled); - border-style: solid; -} - -.mono { - font-family: var(--font-family-monospace); - font-weight: 600; -} - -.bolder { - font-weight: bolder; - background-color: rgba(0, 0, 0, 0.33); - border-radius: 0.25em; -} - -/* Specific elements */ -#content { - flex: 1 0 max-content; -} - /* Desktop screen size adjustments */ @@ -775,15 +480,6 @@ figcaption .mono { flex-direction: row; } - .person-profile { - position: sticky; - top: 0; - width: 300px; - min-width: 20vw; - max-width: 30vw; - margin-bottom: 5vh; - } - /* Helper classes */ @@ -805,19 +501,20 @@ figcaption .mono { margin-right: 1rem; } - .card-thumbnail { + .card-header { width: 20vw; flex-shrink: 0; } - .card-thumbnail:not( - :has(~ .card-content > .card-header > .card-title > .dt-published) - ) { - width: 10vw; + .card-body { + margin-left: 1rem; } - .card-content { - margin-left: 1rem; + .bolder { + font-weight: bolder; + background-color: rgba(0, 0, 0, 0.33); + border-radius: 0.25em; + padding: 0.25em 0.75em 0.5em 0.33em; } /* @@ -837,3 +534,79 @@ figcaption .mono { clear: both; } } /* end @media */ + +@media (prefers-reduced-motion: no-preference) { + @supports (animation-timeline: scroll()) and (animation-range: 0 50vh) { + @keyframes sticky-header { + from { + height: 50vh; + top: 6rem; + } + + to { + height: 10vh; + top: -1rem; + } + } + + @keyframes blurry-header { + from { + filter: blur(0); + } + + to { + filter: blur(2px); + } + } + + @keyframes transparent-text-bg { + from { + background-color: var(--motto-background); + } + to { + background-color: rgba(0, 0, 0, 0); + } + } + + main, + footer { + position: relative; + top: 55vh; + } + + .motto { + position: fixed; + top: 12rem; + + animation: sticky-header linear forwards; + animation-timeline: scroll(); + animation-range: 0 50vh; + } + + .motto::before { + filter: blur(12px); + + top: 2rem; + + animation: blurry-header linear forwards; + animation-timeline: scroll(); + animation-range: 0 50vh; + } + + .motto-inside h1 { + animation: transparent-text-bg linear forwards; + animation-timeline: scroll(); + animation-range: 0 40vh; + } + + @media (min-width: 768px) { + .motto { + width: calc(100% - 8rem); + } + + .motto::before { + top: 0; + } + } + } /* end @supports */ +} /* end @media */ diff --git a/assets/styles/scrolling-header.css b/assets/styles/scrolling-header.css deleted file mode 100644 index acc8a4b..0000000 --- a/assets/styles/scrolling-header.css +++ /dev/null @@ -1,68 +0,0 @@ -@media (prefers-reduced-motion: no-preference) { - @supports (animation-timeline: scroll()) and (animation-range: 0 50vh) { - @keyframes sticky-header { - from { - flex-basis: 30vh; - } - - to { - flex-basis: 0; - } - } - - .motto-wrapper { - position: sticky; - top: 0; - z-index: 100; - - animation: sticky-header linear forwards; - animation-timeline: scroll(); - animation-range: 0 30vh; - - contain: content; - } - - @keyframes blurry-header { - from { - filter: blur(0); - } - - to { - filter: blur(3.5px); - } - } - - .motto::before { - animation: blurry-header linear forwards; - animation-timeline: scroll(); - animation-range: 0 30vh; - } - - @keyframes transparent-text-bg { - from { - background-color: var(--motto-background); - text-shadow: 0 0 10px rgba(0, 0, 0, 0.33); - } - to { - background-color: rgba(0, 0, 0, 0); - text-shadow: 0 0 10px rgba(0, 0, 0, 1); - } - } - .motto-inside h1 { - animation: transparent-text-bg linear forwards; - animation-timeline: scroll(); - animation-range: 0 30vh; - } - - .motto-inside h1 small { - display: block; - font-size: calc(1vh + 1vw); - line-height: calc(1vh + 1vw); - } - - main section { - margin: 0 0.25em; - contain: content; - } - } /* end @supports */ -} /* end @media */ diff --git a/config.toml b/config.toml index 8a730b3..3051f2b 100644 --- a/config.toml +++ b/config.toml @@ -1,9 +1,7 @@ baseURL = "https://millironx.com" languageCode = "en-us" -title = "Milliron X" - -[pagination] -pagerSize = 5 +title = "MillironX" +paginate = 5 [build] writeStats = true @@ -11,47 +9,8 @@ writeStats = true [Params] cardImage = "saddles" motto = "" -images = ["saddles.jpg"] -categories = [] [taxonomies] people = "people" tag = "tags" category = "categories" - -[mediaTypes] - -[mediaTypes."application/atom+xml"] -suffixes = ["xml"] - -[outputs] -home = ["atom", "html", "manifest"] -page = ["html"] -section = ["html", "atom"] -term = ["html", "atom"] - -[outputFormats] - -[outputFormats.atom] -mediaType = "application/atom+xml" -baseName = "feed" - -[outputFormats.manifest] -name = "manifest" -baseName = "manifest" -mediaType = "application/json" -notAlternative = "true" - -[markup] - -[markup.goldmark] - -[markup.goldmark.parser] - -[markup.goldmark.parser.attribute] -block = true - -[markup.goldmark.renderHooks] - -[markup.goldmark.renderHooks.link] -enableDefault = true diff --git a/content/_index.md b/content/_index.md index 1cfe790..aae5dd7 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,11 +1,12 @@ --- +title: Home cardImage: charolette cardImageDescription: She almost looks like she's in her native country again. motto: My name is Thomas Christensen
I am Milliron X description: The homepage of Thomas A. Christensen II +layout: _default/list menu: main: - name: Home params: icon: home weight: -1000 @@ -28,3 +29,58 @@ to a sense of withholding, prestige, and power. Together, these two symbols represent the qualities I strive for in each of my works: authenticity, originality, power, depth, and prestige. + +## Who am I? + +{{< imgproc me-and-lady Resize "768x" "float-right" >}} Image courtesy +[Guy McCutcheon Photography](https://www.guymccutcheon.com/) {{< /imgproc >}} + +I am + +- 🧬 A bioinformatician (by profession) +- 📐 An engineer (by education) +- 🐂 A rancher (by lifestyle) +- 🖥️ A techie (self-taught) +- 🎥 And a filmmaker (at heart) + +I've got a soft spot for Brown Swiss dairy cows (just in case you couldn't tell +by the pictures), and am sometimes called "one of those crazy, Wyoming dairy cow +people." I love anything to do with cattle or technology, but especially +anything to do with both of them. + +_{{< abbr "Born again, fundamentalist, dispensationalist, King James Bible-believing, independent Baptist" >}}Christian{{< /abbr >}}, +American, Convervative, Pro-gun, Heterosexual - any questions?_ + +## Where am I? + +{{< imgproc wy-in-ks Resize "768x" "float-left" / >}} + +I am a Wyomingite sojurning in Kansas. That ought to lead to some interesting +stories. + +Around the web you can find me at (in order of subjective importance) + +- {{< fa github >}} GitHub: [@MillironX](https://github.com/MillironX) +- {{< fa orcid >}} ORDiD: + [0000-0003-1219-9320](https://orcid.org/0000-0003-1219-9320) +- {{< fa gitlab >}} GitLab: [@MillironX](https://gitlab.com/MillironX) +- {{< fa vimeo >}} Vimeo: + [Thomas Christensen II](https://vimeo.com/tchristensenii) +- {{< fa stack-overflow >}} StackExchange: + [Milliron X](https://stackexchange.com/users/4863541/milliron-x) +- {{< fa steam >}} Steam: [MillironX](https://steamcommunity.com/id/millironx) + +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 +RMS: + +{{< blockquote "Richard Stallman _in_ [If you feel your organization needs a 'presence' in Facebook](https://stallman.org/facebook-presence.html)" >}} +Facebook is a bad place for a person to be. When people find us on Facebook, we +lead them away from Facebook and then talk with them elsewhere. +{{< /blockquote >}} + +I typically don't respond to inquiries made on these platforms. Please use +[my contact form](/contact), instead. + + + diff --git a/content/academia/_index.md b/content/academia/_index.md index ea2eb55..10e4083 100644 --- a/content/academia/_index.md +++ b/content/academia/_index.md @@ -14,15 +14,13 @@ menu: fa-thumbnail: university --- +> I have spent too long in school and not enough time in the middle of nowhere +> +> -- Baxter Black, DVM + During my time in academia, I have amassed a few notable accomplishments. Of course, as the old saying goes, "if it isn't published, then it never happened," -so here is a list of everything that actually happened. - -Academia is not the be-all and end-all of life (contrary to what your professor -might have told you). I've found the side-effects to be similar to this guy's: - - -> I have spent too long in school and not enough time in the middle of nowhere, -> and it has inhibited my ability to learn the simple things. -{author="Baxter Black, DVM"} - +so here is a list of everything that actually happened. Several of these +articles are also available on +[my Google Scholar page](https://scholar.google.com/citations?user=gbP4RDgAAAAJ), +but this is the complete list. diff --git a/content/academia/bpv-genetics.md b/content/academia/bpv-genetics.md deleted file mode 100644 index edd678f..0000000 --- a/content/academia/bpv-genetics.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Genetic analysis of bovine papillomas" -date: 2024-09-19 -categories: - - poster -people: - - Thomas A. Christensen II - - Rachel Palinski - - Bob Gentry -journal: - "National Association of Animal Breeders Technical Conference Student Poster - session" -location: "Middleton, Wisconsin" ---- - -Bovine papillomavirus (BPV) is a major cause of reproductive failure in cattle. -In bulls, penile papillomas caused by BPV may cause reluctance to breed, and is -always a cause to fail an animal on a breeding soundness exam. Historically, it -has been thought that BPV was transmitted via direct contact and could be -controlled by managing clinically presenting animals in the herd, but more -recent evidence suggests alternative modes of transmission. BPV has been found -repeatably in clinically healthy animals, and in non-cutaneous secretions -including milk, blood, urine and semen. Currently, no commercially available BPV -vaccine uses isolated viral particles and naturally occurring virus does not -produce cross-protective immunity. In order to develop a proper vaccine for -penile papillomas further studies are required to understand the epidemiology of -BPV in herds. While vulvar, cutaneous, and mammary papillomas have been -genotyped in recent years, this information is not available for penile -papillomas. In this study there were 31 submissions, collected from 7 states, -NE, KS, NY, TX, AL, MO and SD (14 different cattle operations) Samples were -collected between August of 2022 and April 2024. Twenty-two submissions were -penile papillomas and with pooling of samples represented over 50 penile -papillomas. Samples were metagenomically sequenced at the Kansas State -Veterinary Diagnostic Lab, and the genotype of each sample was determined using -the phylogenetic analysis. The clade of each sample was determined by aligning -consensus sequences of the L1 gene (used for both for phylogeny and as a vaccine -target) using MAFFT and a maximum-likelihood phylogeny generated in Mega X. -Analysis found that all penile papilloma submissions were composed of BPV type -2, with one sample showing co-infection with BPV type 1. Conversely, cutaneous -and teat papillomas had BPV genotypes that were more variable with genotypes of -1,2,7,12,14,29 and 40. These results indicate that BPV type 2 and type 1 provide -a unified target for bovine penile papilloma vaccine development. diff --git a/content/academia/got-warts-naab.md b/content/academia/got-warts-naab.md deleted file mode 100644 index adea3d8..0000000 --- a/content/academia/got-warts-naab.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: - "Got Warts? Bovine Papillomavirus Pathogenesis, Transmission, and Vaccination" -date: 2024-09-19 -featured: false -categories: - - presentation -people: - - Bob Gentry - - Thomas A. Christensen II -journal: - "National Association of Animal Breeders Technical Conference Sponsor session" -location: "Middleton, Wisconsin" ---- diff --git a/content/academia/metagenomics/thumbnail.jpg b/content/academia/metagenomics/thumbnail.jpg deleted file mode 100644 index b952da2..0000000 Binary files a/content/academia/metagenomics/thumbnail.jpg and /dev/null differ diff --git a/content/academia/pva-aiche/thumbnail.jpg b/content/academia/pva-aiche/thumbnail.jpg deleted file mode 100644 index 80f1c8e..0000000 Binary files a/content/academia/pva-aiche/thumbnail.jpg and /dev/null differ diff --git a/content/academia/taxprofiler.md b/content/academia/taxprofiler.md index b629a8a..88c62e4 100644 --- a/content/academia/taxprofiler.md +++ b/content/academia/taxprofiler.md @@ -1,7 +1,6 @@ --- title: - "nf-core/taxprofiler: highly parallelised and flexible pipeline for - metagenomic taxonomic classification and profiling" + "nf-core/taxprofiler: highly parallelised and flexible pipeline for metagenomic taxonomic classification and profiling" date: 2023-10-23 featured: true tags: @@ -17,25 +16,9 @@ people: - Maxime Borry - Mahwash Jamy - nf-core community - - James A. Fellows Yates + - James A. Fellows Yate link: https://doi.org/10.1101/2023.10.20.563221 journal: bioRxiv --- -Metagenomic classification tackles the problem of characterising the taxonomic -source of all DNA sequencing reads in a sample. A common approach to address the -differences and biases between the many different taxonomic classification tools -is to run metagenomic data through multiple classification tools and databases. -This, however, is a very time-consuming task when performed manually - -particularly when combined with the appropriate preprocessing of sequencing -reads before the classification. Here we present nf-core/taxprofiler, a highly -parallelised read-processing and taxonomic classification pipeline. It is -designed for the automated and simultaneous classification and/or profiling of -both short- and long-read metagenomic sequencing libraries against a 11 -taxonomic classifiers and profilers as well as databases within a single -pipeline run. Implemented in Nextflow and as part of the nf-core initiative, the -pipeline benefits from high levels of scalability and portability, accommodating -from small to extremely large projects on a wide range of computing -infrastructure. It has been developed following best-practise software -development practises and community support to ensure longevity and adaptability -of the pipeline, to help keep it up to date with the field of metagenomics. +Metagenomic classification tackles the problem of characterising the taxonomic source of all DNA sequencing reads in a sample. A common approach to address the differences and biases between the many different taxonomic classification tools is to run metagenomic data through multiple classification tools and databases. This, however, is a very time-consuming task when performed manually - particularly when combined with the appropriate preprocessing of sequencing reads before the classification. Here we present nf-core/taxprofiler, a highly parallelised read-processing and taxonomic classification pipeline. It is designed for the automated and simultaneous classification and/or profiling of both short- and long-read metagenomic sequencing libraries against a 11 taxonomic classifiers and profilers as well as databases within a single pipeline run. Implemented in Nextflow and as part of the nf-core initiative, the pipeline benefits from high levels of scalability and portability, accommodating from small to extremely large projects on a wide range of computing infrastructure. It has been developed following best-practise software development practises and community support to ensure longevity and adaptability of the pipeline, to help keep it up to date with the field of metagenomics. diff --git a/content/academia/yavsap/index.md b/content/academia/yavsap/index.md deleted file mode 100644 index 3ffc79c..0000000 --- a/content/academia/yavsap/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "YAVSAP: versatile viral quasispecies analysis for veterinary samples" -date: 2024-03-05 -featured: false -categories: - - presentation -people: - - Thomas A. Christensen II - - Steven Stancic - - Andrea Lu - - Dana Mitzel - - William Wilson - - Rachel Palinski -journal: "Phi Zeta Research Day" -location: "Manhattan, Kansas" -tags: - - virus - - quasispecies - - next-generation sequencing - - pipeline -awards: - - "2nd Place Large Animal Applied Research Presentation" -link: "/academia/yavsap/yavsap.pdf" ---- - -Viral populations within an infected host are composed of viral particles with a -spectrum of genetic mutations rather than a unified genome. This phenomenon is -referred to as viral "quasispecies," and has been useful for the understanding -of viral transmission and early detection of new viral variants. Next generation -sequencing (NGS) has enabled the study of these quasispecies for many viral -species, notably Influenza A and B, Human Immunodeficiency Virus (HIV), Foot and -Mouth Disease Virus (FMDV), and Severe Acute Respiratory Syndrome Coronavirus 2 -(SARS CoV2), and established protocols and computer analysis tools have been -developed for these species. Some of the most important viruses, such as -emerging and exotic disease agents, however, do not have replicatable protocols -or software tools capable of producing valid output from their sequence data. -Here, we present Yet Another Viral Subspecies Analysis Pipeline (YAVSAP). YAVSAP -is a fully automated bioinformatic pipeline built from the ground up to identify -and analyze viral quasispecies of any arbitrary virus in human and veterinary -samples. YAVSAP provides reference-based genome mapping of both long- and -short-read sequencing reads to any reference genome that the user chooses, -identifies subconsensus variants and haplotypes, and assesses the phylogenies of -all viral sequences found within a sample. YAVSAP is written in Nextflow and -conforms to the nf-core initiative's standards, which allows it to run on -low-end computers, high performance computing (HPC) clusters, or anything in -between with zero configuration. YAVSAP has been tested on viruses of interest -to veterinary medicine and public health, including Japanese Encephalitis Virus -(JEV), Influenza D Virus (IDV), Bovine Coronavirus (BCoV), SARS CoV2, and Rift -Valley Fever Virus (RVFV), and can correctly identify consensus genomes and -quasispecies within samples containing each of these viruses. This tool provides -a means for biologists with little bioinformatic experience to analyze deep -sequence data while correcting for many of the pitfalls associated with previous -and current analysis platforms. YAVSAP is open source software and is publicly -available at https://github.com/ksumngs/yavsap. diff --git a/content/academia/yavsap/yavsap.pdf b/content/academia/yavsap/yavsap.pdf deleted file mode 100644 index 14462c7..0000000 Binary files a/content/academia/yavsap/yavsap.pdf and /dev/null differ diff --git a/content/blogroll/_index.md b/content/blogroll/_index.md index 307a619..2a17fb5 100644 --- a/content/blogroll/_index.md +++ b/content/blogroll/_index.md @@ -1,15 +1,5 @@ --- -title: "Blogroll" -menu: - main: - name: Blogroll - params: - icon: scroll - weight: -800 -cardImage: eclipse -cardImageDescription: | - Randall Monroe was right. Eclipses are way cooler than they sound. -suppressRss: true +draft: true --- ## Stuff I like on the internet @@ -17,4 +7,39 @@ suppressRss: true This section of a website used to be called a "blogroll." I don't know what it's called now. In order to be on this list, I must have been subscribed or otherwise follow it for over a year. It's amazing how little stuff on the -internet can make that cut. +internet can't make that cut. + +### [Thru the Bible](https://ttb.org/) + +I'm convinced that the word of God is timeless, and we need less commentary and +cherry-picking of favorite verses, and more study of the complete Bible. Dr. +McGee does just that. + +### [Enoch the Cow Vet](https://youtube.com/channel/UC6PPmHUbcdOSzX5tLB3uXdw) + +A veterinarian/agricultural channel that doesn't make me cringe. "God built +these things for cows for vets ... [there are] so many aspects of the cow that +are just designed for vets." Amen, Enoch. Amen. + +### [Proglogion](https://blog.drwile.com/) + +The blog of my high school science teacher (of sorts). It is refreshing to find +a creationist who can still think critically. I love his "bad sermon +illustrations" posts. + +### [The Milk Check](https://www.jacoby.com/learning-center/podcasts-overview/) + +A pragmatic inside look at dairy marketing. I only understand half of what +they're talking about, but I learn something new every episode. + +### [Brian Harry's Blog](https://devblogs.microsoft.com/bharry/) + +Where else are you going to find a blog about cows _and_ version control? The +blog is basically dead now, but it's still fun to go back and read the farm +stories. + +### [Car Talk](https://cartalk.com/) + +The antics of these guys are enough to make anyone have to pull over to the side +of the road from laughing too much. I dread the day when NPR fully axes the only +good program to cross their airwaves. diff --git a/content/blogroll/brian-harry/index.md b/content/blogroll/brian-harry/index.md deleted file mode 100644 index a75e0bd..0000000 --- a/content/blogroll/brian-harry/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Brian Harry's blog -link: https://devblogs.microsoft.com/bharry/ ---- - -Where else are you going to find a blog about cows _and_ version control? The -blog is basically dead now, but it's still fun to go back and read the farm -stories. diff --git a/content/blogroll/brian-harry/thumbnail.png b/content/blogroll/brian-harry/thumbnail.png deleted file mode 100644 index 98cd5b5..0000000 Binary files a/content/blogroll/brian-harry/thumbnail.png and /dev/null differ diff --git a/content/blogroll/car-talk/index.md b/content/blogroll/car-talk/index.md deleted file mode 100644 index ee66c77..0000000 --- a/content/blogroll/car-talk/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Car Talk -link: https://cartalk.com ---- - -The antics of these guys are enough to make anyone have to pull over to the side -of the road from laughing too much. I dread the day when NPR fully axes the only -good program to cross their airwaves. diff --git a/content/blogroll/car-talk/thumbnail.jpg b/content/blogroll/car-talk/thumbnail.jpg deleted file mode 100644 index d09dcaf..0000000 Binary files a/content/blogroll/car-talk/thumbnail.jpg and /dev/null differ diff --git a/content/blogroll/enoch-the-cow-vet/index.md b/content/blogroll/enoch-the-cow-vet/index.md deleted file mode 100644 index 0e3f074..0000000 --- a/content/blogroll/enoch-the-cow-vet/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Enoch the Cow Vet -link: https://youtube.com/channel/UC6PPmHUbcdOSzX5tLB3uXdw ---- - -A veterinarian/agricultural channel that doesn't make me cringe. "God built -these things for cows for vets ... [there are] so many aspects of the cow that -are just designed for vets." Amen, Enoch. Amen. diff --git a/content/blogroll/enoch-the-cow-vet/thumbnail.jpg b/content/blogroll/enoch-the-cow-vet/thumbnail.jpg deleted file mode 100644 index 3e99c2f..0000000 Binary files a/content/blogroll/enoch-the-cow-vet/thumbnail.jpg and /dev/null differ diff --git a/content/blogroll/proslogion/index.md b/content/blogroll/proslogion/index.md deleted file mode 100644 index f73002f..0000000 --- a/content/blogroll/proslogion/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Proslogion -link: https://blog.drwile.com ---- - -The blog of my high school science teacher (of sorts). It is refreshing to find -a creationist who can still think critically. I love his "bad sermon -illustrations" posts. diff --git a/content/blogroll/proslogion/thumbnail.jpg b/content/blogroll/proslogion/thumbnail.jpg deleted file mode 100644 index 2369d6c..0000000 Binary files a/content/blogroll/proslogion/thumbnail.jpg and /dev/null differ diff --git a/content/blogroll/thru-the-bible/index.md b/content/blogroll/thru-the-bible/index.md deleted file mode 100644 index 9863380..0000000 --- a/content/blogroll/thru-the-bible/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Thru the Bible -link: https://ttb.org ---- - -I'm convinced that the word of God is timeless, and we need less commentary and -cherry-picking of favorite verses, and more study of the complete Bible. Dr. -McGee does just that. diff --git a/content/blogroll/thru-the-bible/thumbnail.jpg b/content/blogroll/thru-the-bible/thumbnail.jpg deleted file mode 100644 index 87c7d57..0000000 Binary files a/content/blogroll/thru-the-bible/thumbnail.jpg and /dev/null differ diff --git a/content/code/_content.gotmpl b/content/code/_content.gotmpl deleted file mode 100644 index 2992e8b..0000000 --- a/content/code/_content.gotmpl +++ /dev/null @@ -1,75 +0,0 @@ -{{ $data := dict }} -{{ $url := "https://code.millironx.com/api/v1/users/millironx/repos" }} -{{ with try (resources.GetRemote $url) }} - {{ with .Err }} - {{ errorf "Unable to get remote resource %s: %s" $url . }} - {{ else with .Value }} - {{ $data = . | transform.Unmarshal }} - {{ end }} -{{ else }} - {{ errorf "Unable to get remote resource %s" $url }} -{{ end }} - -{{ range $data }} - {{/* Get tags of this repository. To quote Steve Edstrom, "If it doesn't have a - tag, it doesn't count." - */}} - {{ $tagUrl := print "https://code.millironx.com/api/v1/repos/millironx/" .name "/tags" }} - {{ $tagData := dict }} - {{ with try (resources.GetRemote $tagUrl) }} - {{ with .Err }} - {{ errorf "Unable to get remote resource %s: %s" $tagUrl . }} - {{ else with .Value }} - {{ $tagData = . | transform.Unmarshal }} - {{ end }} - {{ else }} - {{ errorf "Unable to get remote resource %s" $tagUrl }} - {{ end }} - - {{ $firstTag := index $tagData 0 }} - - {{ if $firstTag }} - {{ $dates := dict "date" (time.AsTime $firstTag.commit.created) }} - - {{ $content := dict "mediaType" "text/markdown" "value" .description }} - {{ $categories := slice "code" }} - {{ $people := slice "Thomas A. Christensen II" }} - {{ $link := .html_url }} - {{ $featured := (gt .stars_count 0) }} - {{ $tags := .topics }} - {{ $params := dict - "categories" $categories - "people" $people - "link" $link - "featured" $featured - "tags" $tags - }} - {{ $page := dict - "content" $content - "dates" $dates - "title" .name - "path" .name - "params" $params - }} - {{ $.AddPage $page }} - - {{ $item := . }} - {{ with $url := $item.avatar_url }} - {{ with resources.GetRemote $url }} - {{ with .Err }} - {{ errorf "Unable to get remote resource %s: %s" $url . }} - {{ else }} - {{ $content := dict "mediaType" .MediaType.Type "value" .Content }} - {{ $resource := dict - "content" $content - "path" (print $item.name "/thumbnail." .MediaType.SubType) - }} - {{ $.AddResource $resource }} - {{ end }} - {{ else }} - {{ errorf "Unable to get remote resource %s" $url }} - {{ end }} - {{ end }} - {{ end }} - -{{ end }} diff --git a/content/code/_index.md b/content/code/_index.md deleted file mode 100644 index c7c7df5..0000000 --- a/content/code/_index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Coding projects -menu: - main: - name: Code - params: - icon: code - link: https://code.millironx.com - weight: 50 -fa-thumbnail: code -link: https://code.millironx.com ---- - -A Forgejo instance dedicated to cows and technology diff --git a/content/contact/_index.html b/content/contact/_index.html index 3d73f4f..79d864c 100644 --- a/content/contact/_index.html +++ b/content/contact/_index.html @@ -15,21 +15,12 @@ menu: weight: 1 fa-thumbnail: file-signature validation: true -suppressRss: true --- - -
Contact Me - + - - -
-