From 1026bb15facfba30594dc0ec0575c31c2365d52c Mon Sep 17 00:00:00 2001 From: Bret Comnes Date: Sat, 2 Dec 2023 13:02:22 -0800 Subject: [PATCH] Re-organize website --- .github/workflows/neocities.yml | 2 +- .github/workflows/tests.yml | 2 +- package.json | 4 +- src/README.md | 392 --------------- src/about.md | 6 - src/about/README.md | 7 + src/about/page.vars.js | 11 + src/blog/2023/page.js | 2 +- src/blog/2023/reorganized/README.md | 24 + src/blog/2023/reorganized/img/screenshot.png | 3 + src/blog/page.js | 2 +- src/booklist.md | 19 - src/components/blog-index-list/index.css | 15 + src/{ => components}/language-bullets.css | 4 + src/feeds.template.js | 2 +- src/globals/global.css | 4 +- src/globals/global.vars.js | 3 +- src/{ => globals}/static/atom.svg | 0 src/{ => globals}/static/bsky.png | 0 src/{ => globals}/static/github.svg | 0 src/{ => globals}/static/jsonfeed.svg | 0 src/{ => globals}/static/light-dark.svg | 0 src/{ => globals}/static/mastodon.svg | 0 src/{ => globals}/static/neocitieshead.svg | 0 src/{ => globals}/static/npm.svg | 0 src/{ => globals}/static/twtr.svg | 0 src/jobs/landrover.md | 45 -- src/jobs/page.js | 2 +- src/jobs/psu.md | 1 - src/jobs/zhealth.md | 11 - src/layouts/blog-auto-index.layout.js | 2 +- src/layouts/blog-index.layout.css | 19 +- src/layouts/blog-index.layout.js | 2 +- src/layouts/root.layout.js | 32 +- src/page.html | 472 ++++++++++++++++++ src/page.vars.js | 38 ++ .../arch-arm-raspi.svg | 0 src/portfolio-img/async-folder-walker.jpeg | 3 + .../breadcrum-dark.png | 0 .../breadcrum-light.png | 0 src/{static => portfolio-img}/browserify.png | 0 src/portfolio-img/cpx-dark.png | 3 + src/portfolio-img/cpx-light.png | 3 + src/{static => portfolio-img}/datcast.png | 0 src/portfolio-img/deploy-to-neocities.jpg | 3 + src/{static => portfolio-img}/dotfiles.png | 0 src/{static => portfolio-img}/edit.png | 0 src/{static => portfolio-img}/elenacomnes.png | 0 src/portfolio-img/fetch-undici-dark.png | 3 + src/portfolio-img/fetch-undici-light.png | 3 + src/{static => portfolio-img}/goref.png | 0 src/{static => portfolio-img}/gumcast.svg | 0 .../hifiwifi-dark.png | 0 .../hifiwifi-light.png | 0 src/{static => portfolio-img}/hyperamp.png | 0 .../hypermodules.png | 0 .../jsonfeed-to-rss.png | 0 src/portfolio-img/lsp.gif | Bin 0 -> 565112 bytes src/portfolio-img/mine-dark.png | 3 + src/portfolio-img/mine-light.png | 3 + src/{static => portfolio-img}/netlify.png | 0 src/portfolio-img/netrc-dark.png | 3 + src/portfolio-img/netrc-light.png | 3 + .../node-handbook.png | 0 src/portfolio-img/npmra-dark.png | 3 + src/portfolio-img/npmra-light.png | 3 + .../rad-portfolio-preview.jpg | 0 src/portfolio-img/resolve-email-dark.png | 3 + src/portfolio-img/resolve-email-light.png | 3 + src/portfolio-img/ssc-dark.png | 3 + src/portfolio-img/ssc-light.png | 3 + src/{static => portfolio-img}/standard.jpeg | 0 src/portfolio-img/top-bun-dark.png | 3 + src/portfolio-img/top-bun-light.png | 3 + src/portfolio-img/uhtml-dark.png | 3 + src/portfolio-img/uhtml-light.png | 3 + src/{static => portfolio-img}/vhs-tape.png | 0 src/projects/page.js | 2 +- src/projects/previous-projects/README.md | 118 +++++ .../static/2016readinglist.png | 0 .../previous-projects}/static/choo.png | 0 .../previous-projects}/static/css-pkg.png | 0 .../previous-projects}/static/flattree.png | 0 .../previous-projects}/static/leveldb.png | 0 .../previous-projects}/static/mooon.png | 0 .../static/nanocomponent.jpg | 0 .../previous-projects}/static/websockets.png | 0 src/projects/previous-projects/style.css | 79 +++ src/static/.keep | 0 .../US_UK_Apple_Podcasts_Listen_Badge_RGB.svg | 164 ------ src/static/choo-fam.png | 3 - src/static/dark-mode.png | 3 - src/static/generate-feed.png | 3 - src/static/happy-2020.jpeg | 3 - src/static/microblog-screen.png | 3 - src/static/microblog.svg | 14 - src/static/neocities.png | 3 - src/static/neocitieslogo.svg | 1 - src/static/netlify-portfolio.png | 3 - src/static/netlify.svg | 9 - src/static/socket.png | 3 - src/static/switcher.png | 3 - src/style.css | 24 +- 103 files changed, 887 insertions(+), 737 deletions(-) delete mode 100644 src/README.md delete mode 100644 src/about.md create mode 100644 src/about/README.md create mode 100644 src/about/page.vars.js create mode 100644 src/blog/2023/reorganized/README.md create mode 100644 src/blog/2023/reorganized/img/screenshot.png delete mode 100644 src/booklist.md create mode 100644 src/components/blog-index-list/index.css rename src/{ => components}/language-bullets.css (93%) rename src/{ => globals}/static/atom.svg (100%) rename src/{ => globals}/static/bsky.png (100%) rename src/{ => globals}/static/github.svg (100%) rename src/{ => globals}/static/jsonfeed.svg (100%) rename src/{ => globals}/static/light-dark.svg (100%) rename src/{ => globals}/static/mastodon.svg (100%) rename src/{ => globals}/static/neocitieshead.svg (100%) rename src/{ => globals}/static/npm.svg (100%) rename src/{ => globals}/static/twtr.svg (100%) delete mode 100644 src/jobs/landrover.md delete mode 100644 src/jobs/psu.md delete mode 100644 src/jobs/zhealth.md create mode 100644 src/page.html create mode 100644 src/page.vars.js rename src/{static => portfolio-img}/arch-arm-raspi.svg (100%) create mode 100644 src/portfolio-img/async-folder-walker.jpeg rename src/{static => portfolio-img}/breadcrum-dark.png (100%) rename src/{static => portfolio-img}/breadcrum-light.png (100%) rename src/{static => portfolio-img}/browserify.png (100%) create mode 100644 src/portfolio-img/cpx-dark.png create mode 100644 src/portfolio-img/cpx-light.png rename src/{static => portfolio-img}/datcast.png (100%) create mode 100644 src/portfolio-img/deploy-to-neocities.jpg rename src/{static => portfolio-img}/dotfiles.png (100%) rename src/{static => portfolio-img}/edit.png (100%) rename src/{static => portfolio-img}/elenacomnes.png (100%) create mode 100644 src/portfolio-img/fetch-undici-dark.png create mode 100644 src/portfolio-img/fetch-undici-light.png rename src/{static => portfolio-img}/goref.png (100%) rename src/{static => portfolio-img}/gumcast.svg (100%) rename src/{static => portfolio-img}/hifiwifi-dark.png (100%) rename src/{static => portfolio-img}/hifiwifi-light.png (100%) rename src/{static => portfolio-img}/hyperamp.png (100%) rename src/{static => portfolio-img}/hypermodules.png (100%) rename src/{static => portfolio-img}/jsonfeed-to-rss.png (100%) create mode 100644 src/portfolio-img/lsp.gif create mode 100644 src/portfolio-img/mine-dark.png create mode 100644 src/portfolio-img/mine-light.png rename src/{static => portfolio-img}/netlify.png (100%) create mode 100644 src/portfolio-img/netrc-dark.png create mode 100644 src/portfolio-img/netrc-light.png rename src/{static => portfolio-img}/node-handbook.png (100%) create mode 100644 src/portfolio-img/npmra-dark.png create mode 100644 src/portfolio-img/npmra-light.png rename src/{static => portfolio-img}/rad-portfolio-preview.jpg (100%) create mode 100644 src/portfolio-img/resolve-email-dark.png create mode 100644 src/portfolio-img/resolve-email-light.png create mode 100644 src/portfolio-img/ssc-dark.png create mode 100644 src/portfolio-img/ssc-light.png rename src/{static => portfolio-img}/standard.jpeg (100%) create mode 100644 src/portfolio-img/top-bun-dark.png create mode 100644 src/portfolio-img/top-bun-light.png create mode 100644 src/portfolio-img/uhtml-dark.png create mode 100644 src/portfolio-img/uhtml-light.png rename src/{static => portfolio-img}/vhs-tape.png (100%) create mode 100644 src/projects/previous-projects/README.md rename src/{ => projects/previous-projects}/static/2016readinglist.png (100%) rename src/{ => projects/previous-projects}/static/choo.png (100%) rename src/{ => projects/previous-projects}/static/css-pkg.png (100%) rename src/{ => projects/previous-projects}/static/flattree.png (100%) rename src/{ => projects/previous-projects}/static/leveldb.png (100%) rename src/{ => projects/previous-projects}/static/mooon.png (100%) rename src/{ => projects/previous-projects}/static/nanocomponent.jpg (100%) rename src/{ => projects/previous-projects}/static/websockets.png (100%) create mode 100644 src/projects/previous-projects/style.css delete mode 100644 src/static/.keep delete mode 100755 src/static/US_UK_Apple_Podcasts_Listen_Badge_RGB.svg delete mode 100644 src/static/choo-fam.png delete mode 100644 src/static/dark-mode.png delete mode 100644 src/static/generate-feed.png delete mode 100644 src/static/happy-2020.jpeg delete mode 100644 src/static/microblog-screen.png delete mode 100644 src/static/microblog.svg delete mode 100644 src/static/neocities.png delete mode 100644 src/static/neocitieslogo.svg delete mode 100644 src/static/netlify-portfolio.png delete mode 100644 src/static/netlify.svg delete mode 100644 src/static/socket.png delete mode 100644 src/static/switcher.png diff --git a/.github/workflows/neocities.yml b/.github/workflows/neocities.yml index 942cd3e..c4c33f8 100644 --- a/.github/workflows/neocities.yml +++ b/.github/workflows/neocities.yml @@ -6,7 +6,7 @@ on: - master env: - node-version: lts/* + node-version: 21 FORCE_COLOR: 2 concurrency: # prevent concurrent deploys doing starnge things diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 25ae17d..18a53fa 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [lts/*] + node-version: [21] steps: - uses: actions/checkout@v4 diff --git a/package.json b/package.json index 56c0caa..773334a 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,8 @@ "tape": "^5.0.0", "top-bar.css": "^3.0.0", "top-bun": "^7.0.0", - "uhtml-isomorphic": "^2.1.0", - "typescript": "~5.2.2" + "typescript": "~5.2.2", + "uhtml-isomorphic": "^2.1.0" }, "engines": { "node": ">=16.0.0", diff --git a/src/README.md b/src/README.md deleted file mode 100644 index 7625f89..0000000 --- a/src/README.md +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: null ---- -
- avatar -

Bret Comnes

-

Professional & amateur computer programmer

-
- -
- -
-

Breadcrum

-
- - - - Screenshot of Breadcrum.app - - -
Breadcrum: a bookmarking service with full text archiving and search and podcasting support for media from all around the web.
-
- -
- -
-

gumcast

-
- gumcast logo -
Custom API service allowing you to subscribe to any product on Gumroad as a Podcast.
-
- -
- -
-

HifiWi.fi

-
- - - - Screenshot of hifiwi.fi - - -
HifiWi.fi: High fidelity internet products. Catch all technical contracting (App development to mesh network deployments).
-
- -
- -
-

pkg automation

-
- a picture of the future -
Fully Automated Luxury Space Age Package Maintenance, as a blog post. (image Source)
-
- -
- -
-

Hyperamp

-
- Screenshot of Hyperamp -
Cross platform audio library app. (Download Beta)
-
- -
- -
-

News Feed Tools

-
- Screenshot of JSONFeed-to-RSS -
Simple tools to support a JSON Feed first workflow, while still supporting legacy RSS and Atom for websites and podcasting.
-
- -
- -
-

Archlinux Arm

-
- arch arm logo -
Automated provisioning of Archlinx Arm images for Rasberry Pi hardware with Hashicorp's Packer and other various micro-scale devops experiments.
-
- -
- -
-

vhs-tape

-
- VHS-Tape logo -
Generic component unit testing with async/await. (Logo by @tony-go)
-
- -
- -
-

Littlstar Portfolio

-
- - rad screenshot - -
A look at my work at Little Star Media Inc.
-
- -
- -
-

Netlify Portfolio

-
- Screenshot of Netlify website -
I worked at Netlify on product features, platform architecture and open-source.
-
- -
- -
-

Datcast

-
- Datcast logo -
Podcast exploring the people building the p2p web with @jimpick
-
- - - - - -
- -
-

Websockets

-
- Screenshot of Websockets writeup -
Experiments and abstractions with Websockets and a write up of the discoveries made regarding universal Node.js/DOM modules.
-
- -
- -
-

Hypermodul.es

-
- Screenshot of hypermodules website -
Open source development studio LLC. (Closed 2021)
-
- -
- -
-

elenacomnes.com

-
- Screenshot of elenacomnes.com website -
A minimalist, creative website.
-
- -
- -
-

css-pkg

-
- Screenshot of css-pkg website -
An org supporting CSS as node packaged modules, ready for consumption directly out of node_modules and installed with npm or yarn.
-
- -
- -
-

Choo

-
- Choo website screenshot -
Maintainer and core contributor to the choo framework and ecosystem, a lightweight and decomposable alternative to frameworks like React.
-
- -
- -
-

Nanocomponent

-
- Screenshot of nanocomponent life cycle -
Primary author of Nanocomponent, a standalone component model that works well with choo. Shoutout lrlna for the algorithm illustration.
-
- -
- -
-

Standard JS

-
- Screenshot of Standard website -
Maintainer, contributor and advisor to the Standard JS linter and formatter project, used by Timbl and B.Eich.
-
- -
- -
-

Browserify

-
- Screenshot of Browserify website -
Maintainer and contributor to Browserify and ecosystem.
-
- -
- -
-

Node.js

-
- Screenshot of Node.js handbook -
The Node.js handbook captures resources and anthropological artifacts relevant to learning Node.js.
-
- -
- -
-

Dat

-
- Screenshot of flattree website -
Contributing to the Dat module ecosystem and provided early review of the hypercore protocol spec.
-
- -
- -
-

Go

-
- Screenshot of goref -
A Golang concentrate for refreshing your memory on the go programming language.
-
- -
- -
-

Leveldb

-
- Screenshot of level-auto-index -
level-auto-index creates and maintains supplementary LevelDB indexes automatically.
-
- -
- -
-

Electron

-
- Screenshot of Mooon.app -
Creating Electron apps, developer tools and contributing to the Electron prebuild ecosystem to help improve native modules in Electron.
-
- -
- -
-

.dotfiles

-
- Screenshot of my terminal -
These are my .dotfiles, don't wear em out. I've also written a few notes on how I like to do things.
-
- -
- -
-

$ edit

-
- Screenshot of Tron Legacy theme. -
Here are a few themes and plugins I help maintain, as well as my editor settings.
-
- -
- -
-

Late 2016 Reading List

-
- Screenshot of 2016 reading list -
A list of things I was reading in late 2016.
-
-
- -
diff --git a/src/about.md b/src/about.md deleted file mode 100644 index 97a91d8..0000000 --- a/src/about.md +++ /dev/null @@ -1,6 +0,0 @@ -# About - -[![Actions Status](https://github.com/bcomnes/bret.io/workflows/tests/badge.svg)](https://github.com/bcomnes/bret.io/actions) -![Deploy to neociteis](https://github.com/bcomnes/bret.io/workflows/Deploy%20to%20neociteis/badge.svg) - -This is a simple professional website that is generated using [bcomnes/siteup](https://github.com/bcomnes/siteup). \ No newline at end of file diff --git a/src/about/README.md b/src/about/README.md new file mode 100644 index 0000000..e119018 --- /dev/null +++ b/src/about/README.md @@ -0,0 +1,7 @@ +# About + +This is [Bret Comnes](https://bret.io)' personal website built with the follwowing tools: + +```json +{{{ vars.pkg }}} +``` diff --git a/src/about/page.vars.js b/src/about/page.vars.js new file mode 100644 index 0000000..5b1d72a --- /dev/null +++ b/src/about/page.vars.js @@ -0,0 +1,11 @@ +import { readFile } from 'node:fs/promises' +import { join } from 'node:path' +const __dirname = import.meta.dirname + +export default async () => { + const pkg = await readFile(join(__dirname, '../../package.json')) + + return { + pkg + } +} diff --git a/src/blog/2023/page.js b/src/blog/2023/page.js index ea408ff..27f6544 100644 --- a/src/blog/2023/page.js +++ b/src/blog/2023/page.js @@ -1,6 +1,6 @@ /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/blog/2023/reorganized/README.md b/src/blog/2023/reorganized/README.md new file mode 100644 index 0000000..a3b52e9 --- /dev/null +++ b/src/blog/2023/reorganized/README.md @@ -0,0 +1,24 @@ +--- +layout: article +title: "Reorganized" +publishDate: "2023-12-02T20:49:41.713Z" +--- + +Behold, a mildly redesigned and reorganized landing page: + +![screenshot of the new website](./img/screenshot.png) + +It's still not great, but it should make it easier to keep it up to date going forward. + +It has 3 sections: + +- [Featured Projects](/#): important projects of note. +- [Recent Posts](/#recent-posts ): now that this site has proper blog support, I can highlight recent posts on the landing page. +- [Open Source](/#open-source): interesting and notable projects that have found some use and that I still maintain. This section now includes a bunch of open source work from the past year that I've never had time to write about. +- [Past projects](/#past-projects): inactive projects that are not longer active, but still interesting enough to share. + +I removed a bunch of older inactive projects and links and stashed them in a [project](/projects/previous-projects/). + +Additionally, the edit button in the page footer now takes you to the correct page in GitHub for editing, so if you ever see a typo, feel free to send in a fix! + +Finally, the [about](/about/) page includes a live dump of the dependencies that were used to build the website. diff --git a/src/blog/2023/reorganized/img/screenshot.png b/src/blog/2023/reorganized/img/screenshot.png new file mode 100644 index 0000000..ce79c4f --- /dev/null +++ b/src/blog/2023/reorganized/img/screenshot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5b83050d2250a721358b11412476678db48e2ce4ec140348b4a391f9924b110 +size 346564 diff --git a/src/blog/page.js b/src/blog/page.js index c4bf42e..7df98df 100644 --- a/src/blog/page.js +++ b/src/blog/page.js @@ -3,7 +3,7 @@ import { dirname, basename } from 'node:path' /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/booklist.md b/src/booklist.md deleted file mode 100644 index 959a169..0000000 --- a/src/booklist.md +++ /dev/null @@ -1,19 +0,0 @@ -# Booklist - -Books I've read and enjoyed for various reasons. - - -## Technical Books - -### Javascript - -### Go - -### Swift & Objective-C - -### Unix - -## Non-Fiction - -## Fiction - diff --git a/src/components/blog-index-list/index.css b/src/components/blog-index-list/index.css new file mode 100644 index 0000000..0288308 --- /dev/null +++ b/src/components/blog-index-list/index.css @@ -0,0 +1,15 @@ +.blog-index-list { + padding-left: 0px; + + & .blog-entry { + width: 100%; + display: inline-flex; + justify-content: space-between; + } + & .blog-entry-link {} + & .blog-entry-date { + color: var(--accent-foreground); + font-family: var(--font-code); + flex-shrink: 0; + } +} diff --git a/src/language-bullets.css b/src/components/language-bullets.css similarity index 93% rename from src/language-bullets.css rename to src/components/language-bullets.css index 454e0c5..932cc1f 100644 --- a/src/language-bullets.css +++ b/src/components/language-bullets.css @@ -40,6 +40,10 @@ li.objc::before { color: #6866fb; } +li.cpp::before { + color: #f34b7d; +} + li.docker::before { color: #384d54; } diff --git a/src/feeds.template.js b/src/feeds.template.js index 5a59e67..bdc0e1d 100644 --- a/src/feeds.template.js +++ b/src/feeds.template.js @@ -3,7 +3,7 @@ import jsonfeedToAtom from 'jsonfeed-to-atom' /** * @template T - * @typedef {import('@siteup/cli').TemplateAsyncIterator} TemplateAsyncIterator + * @typedef {import('top-bun').TemplateAsyncIterator} TemplateAsyncIterator */ /** @type {TemplateAsyncIterator<{ diff --git a/src/globals/global.css b/src/globals/global.css index 02797a6..c2bd6cd 100644 --- a/src/globals/global.css +++ b/src/globals/global.css @@ -60,7 +60,7 @@ footer > .top-bar-link:first-child { margin-left: unset; } -@media screen and (max-width: 72em) { +@media screen and (max-width: 106em) { footer.top-bar { position: inherit; top: inherit; @@ -68,7 +68,7 @@ footer > .top-bar-link:first-child { } } -@media screen and (max-width: 78em) { +@media screen and (max-width: 106em) { nav.top-bar { backdrop-filter: contrast(100%) blur(10px); z-index: 1; /* float over interactive content below */ diff --git a/src/globals/global.vars.js b/src/globals/global.vars.js index 14eca42..fe9230a 100644 --- a/src/globals/global.vars.js +++ b/src/globals/global.vars.js @@ -6,6 +6,7 @@ export default async function globalVars () { authorName: 'Bret Comnes', authorUrl: 'https://bret.io', authorImgUrl: '/favicons/apple-touch-icon-1024x1024.png', - authorImgAlt: 'Picture of author' + authorImgAlt: 'Picture of author', + githubRootUrl: 'https://github.com/bcomnes/bret.io/blob/master/src/' } } diff --git a/src/static/atom.svg b/src/globals/static/atom.svg similarity index 100% rename from src/static/atom.svg rename to src/globals/static/atom.svg diff --git a/src/static/bsky.png b/src/globals/static/bsky.png similarity index 100% rename from src/static/bsky.png rename to src/globals/static/bsky.png diff --git a/src/static/github.svg b/src/globals/static/github.svg similarity index 100% rename from src/static/github.svg rename to src/globals/static/github.svg diff --git a/src/static/jsonfeed.svg b/src/globals/static/jsonfeed.svg similarity index 100% rename from src/static/jsonfeed.svg rename to src/globals/static/jsonfeed.svg diff --git a/src/static/light-dark.svg b/src/globals/static/light-dark.svg similarity index 100% rename from src/static/light-dark.svg rename to src/globals/static/light-dark.svg diff --git a/src/static/mastodon.svg b/src/globals/static/mastodon.svg similarity index 100% rename from src/static/mastodon.svg rename to src/globals/static/mastodon.svg diff --git a/src/static/neocitieshead.svg b/src/globals/static/neocitieshead.svg similarity index 100% rename from src/static/neocitieshead.svg rename to src/globals/static/neocitieshead.svg diff --git a/src/static/npm.svg b/src/globals/static/npm.svg similarity index 100% rename from src/static/npm.svg rename to src/globals/static/npm.svg diff --git a/src/static/twtr.svg b/src/globals/static/twtr.svg similarity index 100% rename from src/static/twtr.svg rename to src/globals/static/twtr.svg diff --git a/src/jobs/landrover.md b/src/jobs/landrover.md deleted file mode 100644 index 8dd3e4d..0000000 --- a/src/jobs/landrover.md +++ /dev/null @@ -1,45 +0,0 @@ -# Jaguar Land Rover - -At Jaguar Land Rover I worked as a Javascript developer working on various internal infrastructure products and product prototype applications. - -## Infotainment Prototypes - -I was lead developer on various in-vehicle operating system prototypes targeting the following experiences: - -- Rear seat infotainment systems. -- Application IO architecture relating to communication with vehicular CAN buses. -- Express based (Node.js) servers for coordinating applications running across multiple screens. -- Prototype implementations of JLR's next generation in vehicle operating system. -- Hardware accelerated GUIs using Qt. -- Implementing novel media library experiences and HMIs. -- Facilitate user testing and focus sessions. - -## Internal infrastrucutre - -The JLR Portland office had recently opened when I joined and I was able to contribute in various ways to their internal infrastructure. - -### SSO - -I designed and developed a custom single sign-on service for the on-premise hosted infrastructure using the following technologies: - -- Express -- Browserify -- Passport -- Node.js -- Debian -- Google apps - -### Documentation server - -I developed a custom documentation server that integrated with the SSO service that provided a CI service for building and updating various internal documentation websites that use various static site generators. Built with: - -- Express -- Browserify -- Nginx -- Jekyll -- Metalsmith - -*[HMI]: Human machine interface -*[CAN]: Controller area network -*[SSO]: Single Sign On -*[CI]: Continuous integration diff --git a/src/jobs/page.js b/src/jobs/page.js index 342a749..295de2e 100644 --- a/src/jobs/page.js +++ b/src/jobs/page.js @@ -1,6 +1,6 @@ /** * @template T - * @typedef {import('@siteup/cli').PageFunction} PageFunction + * @typedef {import('top-bun').PageFunction} PageFunction */ export const vars = { diff --git a/src/jobs/psu.md b/src/jobs/psu.md deleted file mode 100644 index e5965a9..0000000 --- a/src/jobs/psu.md +++ /dev/null @@ -1 +0,0 @@ -# PSU Academic Research Computing diff --git a/src/jobs/zhealth.md b/src/jobs/zhealth.md deleted file mode 100644 index 0a6d4ce..0000000 --- a/src/jobs/zhealth.md +++ /dev/null @@ -1,11 +0,0 @@ -# Zhealth Etch CV Suite - -At Zhealth, I helped develop a custom structured documentation app for doctors and physicians in cardiac surgery centers. The app's claim to fame was its ability reduce a 30 minute documentation session down to 3 minutes, while recording precise observations that wasn't possible by the standard 'by hand' recording methods. - -Etch implemented a custom interactive SVG bodymap engine that allowed for direct input on top of an industry standard cardiac model. - -## Etch CV - -## Registry - -## IT and small office support diff --git a/src/layouts/blog-auto-index.layout.js b/src/layouts/blog-auto-index.layout.js index 14aebb9..f5de41c 100644 --- a/src/layouts/blog-auto-index.layout.js +++ b/src/layouts/blog-auto-index.layout.js @@ -3,7 +3,7 @@ import { dirname } from 'node:path' /** * @template T - * @typedef {import('@siteup/cli').LayoutFunction} LayoutFunction + * @typedef {import('top-bun').LayoutFunction} LayoutFunction */ /** diff --git a/src/layouts/blog-index.layout.css b/src/layouts/blog-index.layout.css index 333ca5b..6685fb3 100644 --- a/src/layouts/blog-index.layout.css +++ b/src/layouts/blog-index.layout.css @@ -1,19 +1,2 @@ @import '../components/breadcrumb/index.css'; - - -.blog-index-list { - padding-left: 0px; - - & .blog-entry { - width: 100%; - display: inline-flex; - justify-content: space-between; - } - & .blog-entry-link {} - & .blog-entry-date { - color: var(--accent-foreground); - font-family: var(--font-code); - flex-shrink: 0; - } -} - +@import '../components/blog-index-list/index.css'; diff --git a/src/layouts/blog-index.layout.js b/src/layouts/blog-index.layout.js index c61e19b..ee6e7be 100644 --- a/src/layouts/blog-index.layout.js +++ b/src/layouts/blog-index.layout.js @@ -4,7 +4,7 @@ import { breadcrumb } from '../components/breadcrumb/index.js' /** * @template T - * @typedef {import('@siteup/cli').LayoutFunction} LayoutFunction + * @typedef {import('top-bun').LayoutFunction} LayoutFunction */ /** diff --git a/src/layouts/root.layout.js b/src/layouts/root.layout.js index 9e8aa8a..6d10fa3 100644 --- a/src/layouts/root.layout.js +++ b/src/layouts/root.layout.js @@ -2,13 +2,14 @@ import { html } from 'uhtml-isomorphic' /** * @template T - * @typedef {import('@siteup/cli').LayoutFunction} LayoutFunction + * @typedef {import('top-bun').LayoutFunction} LayoutFunction */ /** * @typedef {{ * title: string, * siteName: string, + * githubRootUrl: string, * [key: string]: any * }} RootLayoutVars */ @@ -17,11 +18,14 @@ import { html } from 'uhtml-isomorphic' export default async function rootLayout ({ vars: { title, - siteName + siteName, + githubRootUrl }, scripts, styles, - children + children, + page + /* pages */ }) { return html` @@ -73,21 +77,21 @@ export default async function rootLayout ({ @@ -96,7 +100,7 @@ export default async function rootLayout ({