Compare commits
4 Commits
e814c77333
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
3c13e385a2 | ||
|
d4cdfb6bcc | ||
|
4c1c8ae3af | ||
|
21c717ed79 |
@@ -1,7 +1,7 @@
|
||||
@import "base.scss";
|
||||
@use "base.scss";
|
||||
|
||||
.prose article {
|
||||
@include headings {
|
||||
@include base.headings {
|
||||
& > a:hover,
|
||||
& > a:active {
|
||||
text-decoration: underline;
|
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 490 B |
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 712 B |
@@ -1,20 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import type { GithubPushEvent } from "@/shared/github";
|
||||
import type { Ref } from "vue";
|
||||
|
||||
const FEED_URL = "https://api.github.com/users/potatoeggy/events";
|
||||
const imgUrl = ref("");
|
||||
const href = ref("");
|
||||
|
||||
onMounted(async () => {
|
||||
const results = (await useFetch(FEED_URL)).data as Ref<GithubPushEvent[]>;
|
||||
const latestEvent = results.value.find(
|
||||
(event) => event.type === "PushEvent"
|
||||
) as GithubPushEvent;
|
||||
const latestCommit = latestEvent.payload.commits[0];
|
||||
imgUrl.value = `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
href.value = `https://github.com/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
const { data: results } = await useFetch<GithubPushEvent[]>(FEED_URL, {
|
||||
onResponse(res) {
|
||||
res.response.json;
|
||||
},
|
||||
});
|
||||
|
||||
const latestEvent = results.value?.find(
|
||||
(event: GithubPushEvent) => event.type === "PushEvent"
|
||||
);
|
||||
|
||||
const latestCommitSha = latestEvent.payload.head;
|
||||
|
||||
const imgUrl = computed(() =>
|
||||
results.value
|
||||
? `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommitSha}`
|
||||
: ""
|
||||
);
|
||||
const href = computed(() =>
|
||||
results.value
|
||||
? `https://github.com/${latestEvent.repo.name}/commit/${latestCommitSha}`
|
||||
: ""
|
||||
);
|
||||
</script>
|
||||
|
||||
<template>
|
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { getPrettyDate, getUtcDate } from "~~/shared/metadata";
|
||||
import type { AnyParsedContent } from "~~/shared/types";
|
||||
import { getPrettyDate, getUtcDate } from "@/shared/metadata";
|
||||
import type { AnyParsedContent } from "@/shared/types";
|
||||
|
||||
const { doc } = defineProps<{ doc: AnyParsedContent }>();
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import ColourPicker from "./ColourPicker.vue";
|
||||
import { navItems } from "@/data/navItems";
|
||||
import { navItems } from "~/data/navItems";
|
||||
</script>
|
||||
|
||||
<template>
|
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import type { Project } from "@/data/projects";
|
||||
import { unref as _unref } from "vue";
|
||||
|
||||
const { project } = defineProps<{
|
||||
project: Project;
|
||||
reverse?: boolean;
|
@@ -13,40 +13,44 @@
|
||||
</p>
|
||||
<!-- i could make this a list but god i'm so tired with nuxt -->
|
||||
<div class="flex justify-around flex-wrap gap-8 items-center">
|
||||
<ServiceCard name="Gitea" href="https://git.eggworld.me" img="gitea.svg">
|
||||
<ServiceCard
|
||||
name="Gitea"
|
||||
href="https://git.eggipelago.com"
|
||||
img="gitea.svg"
|
||||
>
|
||||
Self-hosted GitHub
|
||||
</ServiceCard>
|
||||
<ServiceCard
|
||||
name="Eifueo"
|
||||
href="https://eifueo.eggworld.me"
|
||||
href="https://eifueo.eggipelago.com"
|
||||
img="eifueo.svg"
|
||||
>
|
||||
Note collection
|
||||
</ServiceCard>
|
||||
<ServiceCard
|
||||
name="Primoprod"
|
||||
href="https://primoprod.eggworld.me"
|
||||
href="https://primoprod.vercel.app"
|
||||
img="primogem.webp"
|
||||
>
|
||||
Wish simulator
|
||||
</ServiceCard>
|
||||
<ServiceCard
|
||||
name="Calibre"
|
||||
href="https://calibre.eggworld.me"
|
||||
href="https://calibre.eggipelago.com"
|
||||
img="calibre-web.webp"
|
||||
>
|
||||
Kobo Cloud
|
||||
</ServiceCard>
|
||||
<ServiceCard
|
||||
name="Jellyfin"
|
||||
href="https://jellyfin.eggworld.me"
|
||||
href="https://jellyfin.eggipelago.com"
|
||||
img="jellyfin.svg"
|
||||
>
|
||||
FOSS media server
|
||||
</ServiceCard>
|
||||
<ServiceCard
|
||||
name="Minecraft"
|
||||
href="minecraft.eggworld.me"
|
||||
href="minecraft.eggipelago.com"
|
||||
img="minecraft.svg"
|
||||
unclickable
|
||||
broken
|
13
app/data/siteRevisions.ts
Normal file
13
app/data/siteRevisions.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
interface SiteRevision {
|
||||
title: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export const revisions: SiteRevision[] = [
|
||||
{
|
||||
title: "Nuxt 3 (2022)",
|
||||
url: "https://eggipelago.com",
|
||||
},
|
||||
{ title: "Eleventy (2021)", url: "https://2021.eggipelago.com" },
|
||||
{ title: "Vanilla (2019-2020)", url: "https://2020.eggipelago.com" },
|
||||
];
|
@@ -34,7 +34,7 @@ useHead({ title: "Oeufs?" });
|
||||
GitHub</a
|
||||
>
|
||||
and
|
||||
<a class="underline" href="https://git.eggworld.me/eggy/public">
|
||||
<a class="underline" href="https://git.eggipelago.com/eggy/public">
|
||||
Gitea
|
||||
</a>
|
||||
</p>
|
1
shared/github.d.ts → app/shared/github.d.ts
vendored
1
shared/github.d.ts → app/shared/github.d.ts
vendored
@@ -78,7 +78,6 @@ export interface GithubCommitEventPayload {
|
||||
ref: string;
|
||||
head: string;
|
||||
before: string;
|
||||
commits: GithubCommit[];
|
||||
}
|
||||
|
||||
export interface GithubPullRequestEventPayload {
|
@@ -7,7 +7,7 @@ tags:
|
||||
- featured
|
||||
---
|
||||
|
||||
Welcome to the very first [Primoprod](https://primoprod.eggworld.me) progress report! In a similar vein to quite a few open source emulation projects (such as those I follow myself using [emufeed](https://github.com/potatoeggy/emufeed/blob/master/sources.py)), I'll be releasing these tidbits in lieu of daily Unstagnation shorts sometimes.
|
||||
Welcome to the very first [Primoprod](https://primoprod.vercel.app) progress report! In a similar vein to quite a few open source emulation projects (such as those I follow myself using [emufeed](https://github.com/potatoeggy/emufeed/blob/master/sources.py)), I'll be releasing these tidbits in lieu of daily Unstagnation shorts sometimes.
|
||||
|
||||
In this hopefully small series of development notes, I'll be laying out my experiences learning web development as an absolute amateur.
|
||||
|
||||
|
@@ -5,6 +5,7 @@ _draft: false
|
||||
tags:
|
||||
- tech
|
||||
- albatross
|
||||
- featured
|
||||
---
|
||||
|
||||
This article is [also published in *The FOSS Albatross.*](https://medium.com/the-foss-albatross/googles-guide-to-taking-over-the-web-26847a389ac5)
|
||||
@@ -15,7 +16,7 @@ Do you have a dream? A dream where you call the shots for billions of other peop
|
||||
|
||||
## 1. Bribe your competitors.
|
||||
|
||||
This first step is the most important. Without getting your name out there, you don't have the influence needed for web domination. Take out a small loan if you have to. We've bought out Mozilla for $450 million and Apple for $15 billion so that we're the default search engine in Firefox and Safari. Why would our users ever bother to change the default — to something like *Bing*, no less — when ours is good enough?
|
||||
This first step is the most important. Without getting your name out there, you don't have the influence needed for web domination. Take out a small loan if you have to. We've bought out Mozilla for $450 million and Apple for $15 billion so that we're the default search engine in Firefox and Safari. Why would our users ever bother to change the default — to something like *Bing*, no less — when ours is good enough?
|
||||
|
||||
You gotta get your customers to associate you with the web, and you know you've got that when your company name is added to the English dictionary. What's the first thing you do whenever you want to look something up? You Google it. And the simplest, easiest, lowest-effort way to do this is by bribing your competitors.
|
||||
|
||||
|
@@ -2,11 +2,11 @@
|
||||
title: "Sunsetting the Eifueo Project"
|
||||
date: 2023-05-23
|
||||
tags:
|
||||
- eifueo
|
||||
- retrospective
|
||||
- eifueo
|
||||
- retrospective
|
||||
---
|
||||
|
||||
For three and a half years, the [Eifueo project](https://eifueo.eggworld.me) has dutifully carried out its task of collecting and organising notes in a way that would be quick and easy to review. Although this worked out wonderfully in high school, the method is both inefficient and insufficient for the pace of higher education.
|
||||
For three and a half years, the [Eifueo project](https://eifueo.eggipelago.com) has dutifully carried out its task of collecting and organising notes in a way that would be quick and easy to review. Although this worked out wonderfully in high school, the method is both inefficient and insufficient for the pace of higher education.
|
||||
|
||||
So how can we make it better?
|
||||
|
||||
@@ -14,7 +14,7 @@ So how can we make it better?
|
||||
|
||||
We can't.
|
||||
|
||||
At their core, engineering courses in university are about problem-solving. Instead of blindly memorising rules to be applied once to get you the answer, you blindly memorise rules to be applied *two or more times* to get you the answer.
|
||||
At their core, engineering courses in university are about problem-solving. Instead of blindly memorising rules to be applied once to get you the answer, you blindly memorise rules to be applied _two or more times_ to get you the answer.
|
||||
|
||||
If we have to do that, it's much easier to write plenty of practice problems instead of rewriting plenty of notes.
|
||||
|
||||
@@ -26,7 +26,7 @@ Reformatting notes is not an easy endeavour. We have to re-examine our old notes
|
||||
|
||||
Me? A writer? Imagine.
|
||||
|
||||
This one isn't actually too bad, and doing practice problems instead isn't going to help much, but think of all the other fun things I could be doing instead. I already *have* the notes. If I need them, I'll just look back at them.
|
||||
This one isn't actually too bad, and doing practice problems instead isn't going to help much, but think of all the other fun things I could be doing instead. I already _have_ the notes. If I need them, I'll just look back at them.
|
||||
|
||||
Anyway, by the end of Eifueo's lifespan, most of the content was regurgitated onto the site.
|
||||
|
||||
@@ -40,7 +40,7 @@ High school had many courses that were "expression"-focused, and those were the
|
||||
|
||||
Unfortunately, the physics courses are antithetical to everything Eifueo stands for. They have a rigid structure that you can't bullshit your way out of but are also flexible enough that you can't simply apply a formula. The best way to get good is simply to do more problems.
|
||||
|
||||
You'll have to understand that this greatly saddened me as a person who tries his hardest to do *less* problems. The cost-benefit ratio isn't worth it anymore.
|
||||
You'll have to understand that this greatly saddened me as a person who tries his hardest to do _less_ problems. The cost-benefit ratio isn't worth it anymore.
|
||||
|
||||
## Retrospective
|
||||
|
||||
@@ -48,6 +48,4 @@ With a heavy heart, I must bid farewell to one of the first services I ever depl
|
||||
|
||||
o7 It has served me well.
|
||||
|
||||
|
||||
|
||||

|
||||
|
@@ -1,13 +0,0 @@
|
||||
interface SiteRevision {
|
||||
title: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export const revisions: SiteRevision[] = [
|
||||
{
|
||||
title: "Nuxt 3 (2022)",
|
||||
url: "https://eggworld.me",
|
||||
},
|
||||
{ title: "Eleventy (2021)", url: "https://2021.eggworld.me" },
|
||||
{ title: "Vanilla (2019-2020)", url: "https://2020.eggworld.me" },
|
||||
];
|
@@ -1,8 +1,9 @@
|
||||
import { defineNuxtConfig } from "nuxt/config";
|
||||
import svgLoader from "vite-svg-loader";
|
||||
|
||||
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
||||
export default defineNuxtConfig({
|
||||
compatibilityDate: "2024-10-16",
|
||||
compatibilityDate: "2025-10-19",
|
||||
app: {
|
||||
head: {
|
||||
htmlAttrs: {
|
||||
@@ -23,7 +24,6 @@ export default defineNuxtConfig({
|
||||
{
|
||||
defer: true,
|
||||
src: "/script.js",
|
||||
hid: "stupidEmergencyScript",
|
||||
type: "module",
|
||||
},
|
||||
],
|
||||
@@ -45,7 +45,7 @@ export default defineNuxtConfig({
|
||||
shim: false,
|
||||
},
|
||||
site: {
|
||||
url: process.env.BASE_URL || "https://eggworld.me",
|
||||
url: process.env.BASE_URL || "https://eggipelago.com",
|
||||
},
|
||||
sitemap: {
|
||||
strictNuxtContentPaths: true,
|
||||
|
19
package.json
19
package.json
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "nuxt build",
|
||||
"dev": "nuxt dev",
|
||||
@@ -8,19 +9,19 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nuxt/content": "^2.13.4",
|
||||
"@nuxtjs/color-mode": "^3.5.1",
|
||||
"@nuxtjs/sitemap": "^6.1.2",
|
||||
"@nuxtjs/tailwindcss": "^6.12.1",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"@nuxtjs/color-mode": "^3.5.2",
|
||||
"@nuxtjs/sitemap": "^7.4.7",
|
||||
"@nuxtjs/tailwindcss": "^6.14.0",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@types/node": "^22.7.5",
|
||||
"dayjs": "^1.11.13",
|
||||
"nuxt": "3.13.2",
|
||||
"prettier": "^3.3.3",
|
||||
"dayjs": "^1.11.18",
|
||||
"nuxt": "^4.1.3",
|
||||
"prettier": "^3.6.2",
|
||||
"reading-time": "^2.0.0-1",
|
||||
"rehype-katex": "^7.0.1",
|
||||
"remark-math": "^6.0.0",
|
||||
"sass": "^1.79.5",
|
||||
"typescript": "^5.6.3",
|
||||
"sass": "^1.93.2",
|
||||
"typescript": "^5.9.3",
|
||||
"vite-svg-loader": "^5.1.0"
|
||||
}
|
||||
}
|
||||
|
@@ -1,3 +1,3 @@
|
||||
Sitemap: https://eggworld.me/sitemap.xml
|
||||
Sitemap: https://eggipelago.com/sitemap.xml
|
||||
User-agent: *
|
||||
Disallow:
|
@@ -23,13 +23,13 @@ if (darkToggle) {
|
||||
const FEED_URL = "https://api.github.com/users/potatoeggy/events";
|
||||
const results = (await (await fetch(FEED_URL)).json());
|
||||
const latestEvent = results.find((e) => e.type === "PushEvent");
|
||||
const latestCommit = latestEvent.payload.commits[0];
|
||||
const latestCommit = latestEvent.payload.head;
|
||||
const commitImg = document.getElementById("github-commit-img");
|
||||
const commitAnchor = document.getElementById("github-commit-a");
|
||||
if (commitImg) {
|
||||
commitImg.src = `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
commitImg.src = `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommitSha}`;
|
||||
}
|
||||
if (commitAnchor) {
|
||||
commitAnchor.href = `https://github.com/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
commitAnchor.href = `https://github.com/${latestEvent.repo.name}/commit/${latestCommitSha}`;
|
||||
}
|
||||
export {};
|
||||
|
@@ -2,7 +2,7 @@
|
||||
// of all the nuxt bs while we wait for static generation
|
||||
// to actually become a thing in nuxt 3
|
||||
|
||||
import type { GithubPushEvent } from "../shared/github";
|
||||
import type { GithubPushEvent } from "../app/shared/github";
|
||||
|
||||
const html = document.getElementsByTagName("html")[0];
|
||||
html.className = localStorage.theme ?? "light";
|
||||
@@ -36,7 +36,7 @@ const results = (await (await fetch(FEED_URL)).json()) as GithubPushEvent[];
|
||||
const latestEvent = results.find(
|
||||
(e) => e.type === "PushEvent"
|
||||
) as GithubPushEvent;
|
||||
const latestCommit = latestEvent.payload.commits[0];
|
||||
const latestCommitSha = latestEvent.payload.head;
|
||||
|
||||
const commitImg = document.getElementById(
|
||||
"github-commit-img"
|
||||
@@ -46,11 +46,11 @@ const commitAnchor = document.getElementById(
|
||||
) as HTMLAnchorElement;
|
||||
|
||||
if (commitImg) {
|
||||
commitImg.src = `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
commitImg.src = `https://opengraph.githubassets.com/hash/${latestEvent.repo.name}/commit/${latestCommitSha}`;
|
||||
}
|
||||
|
||||
if (commitAnchor) {
|
||||
commitAnchor.href = `https://github.com/${latestEvent.repo.name}/commit/${latestCommit.sha}`;
|
||||
commitAnchor.href = `https://github.com/${latestEvent.repo.name}/commit/${latestCommitSha}`;
|
||||
}
|
||||
|
||||
// to make this an esm module for top-level await
|
||||
|
@@ -18,6 +18,6 @@
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"alwaysStrict": true
|
||||
"alwaysStrict": true,
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user