Compare commits
2 commits
39077eac0b
...
d3f56052a0
Author | SHA1 | Date | |
---|---|---|---|
d3f56052a0 | |||
2b1a0fe04d |
12 changed files with 1808 additions and 1667 deletions
34
.dockerignore
Normal file
34
.dockerignore
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Include any files or directories that you don't want to be copied to your
|
||||
# container here (e.g., local build artifacts, temporary files, etc.).
|
||||
#
|
||||
# For more help, visit the .dockerignore file reference guide at
|
||||
# https://docs.docker.com/go/build-context-dockerignore/
|
||||
|
||||
**/.classpath
|
||||
**/.dockerignore
|
||||
**/.env
|
||||
**/.git
|
||||
**/.gitignore
|
||||
**/.project
|
||||
**/.settings
|
||||
**/.toolstarget
|
||||
**/.vs
|
||||
**/.vscode
|
||||
**/.next
|
||||
**/.cache
|
||||
**/*.*proj.user
|
||||
**/*.dbmdl
|
||||
**/*.jfm
|
||||
**/charts
|
||||
**/docker-compose*
|
||||
**/compose.y*ml
|
||||
**/Dockerfile*
|
||||
**/node_modules
|
||||
**/npm-debug.log
|
||||
**/obj
|
||||
**/secrets.dev.yaml
|
||||
**/values.dev.yaml
|
||||
**/build
|
||||
**/dist
|
||||
LICENSE
|
||||
README.md
|
41
.forgejo/workflows/docker-build.yaml
Normal file
41
.forgejo/workflows/docker-build.yaml
Normal file
|
@ -0,0 +1,41 @@
|
|||
name: ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
|
||||
jobs:
|
||||
builder:
|
||||
runs-on: docker
|
||||
container:
|
||||
image: node:23-alpine
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up context
|
||||
uses: docker context create builders
|
||||
|
||||
- name: Set up Docker Build
|
||||
uses: docker/setup-buildx-action@v2
|
||||
with:
|
||||
version: latest
|
||||
endpoint: builders
|
||||
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ vars.REGISTRY_URL }}
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: ${{ vars.REGISTRY_URL }}/${{ env.GITHUB_REPOSITORY }}:latest
|
79
Dockerfile
Normal file
79
Dockerfile
Normal file
|
@ -0,0 +1,79 @@
|
|||
# syntax=docker/dockerfile:1
|
||||
|
||||
# Comments are provided throughout this file to help you get started.
|
||||
# If you need more help, visit the Dockerfile reference guide at
|
||||
# https://docs.docker.com/go/dockerfile-reference/
|
||||
|
||||
# Want to help us make this template better? Share your feedback here: https://forms.gle/ybq9Krt8jtBL3iCk7
|
||||
|
||||
ARG NODE_VERSION=23.3.0
|
||||
ARG PNPM_VERSION=9.10.0
|
||||
|
||||
################################################################################
|
||||
# Use node image for base image for all stages.
|
||||
FROM node:${NODE_VERSION}-alpine AS base
|
||||
|
||||
# Set working directory for all build stages.
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Install pnpm.
|
||||
RUN --mount=type=cache,target=/root/.npm \
|
||||
npm install -g pnpm@${PNPM_VERSION}
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
################################################################################
|
||||
# Create a stage for installing production dependecies.
|
||||
FROM base AS deps
|
||||
|
||||
# Download dependencies as a separate step to take advantage of Docker's caching.
|
||||
# Leverage a cache mount to /root/.local/share/pnpm/store to speed up subsequent builds.
|
||||
# Leverage bind mounts to package.json and pnpm-lock.yaml to avoid having to copy them
|
||||
# into this layer.
|
||||
RUN --mount=type=bind,source=package.json,target=package.json \
|
||||
--mount=type=bind,source=pnpm-lock.yaml,target=pnpm-lock.yaml \
|
||||
--mount=type=cache,target=/root/.local/share/pnpm/store \
|
||||
pnpm install --prod --frozen-lockfile
|
||||
|
||||
################################################################################
|
||||
# Create a stage for building the application.
|
||||
FROM deps AS build
|
||||
|
||||
# Download additional development dependencies before building, as some projects require
|
||||
# "devDependencies" to be installed to build. If you don't need this, remove this step.
|
||||
RUN --mount=type=bind,source=package.json,target=package.json \
|
||||
--mount=type=bind,source=pnpm-lock.yaml,target=pnpm-lock.yaml \
|
||||
--mount=type=cache,target=/root/.local/share/pnpm/store \
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
# Copy the rest of the source files into the image.
|
||||
COPY . .
|
||||
# Run the build script.
|
||||
RUN pnpm run build
|
||||
|
||||
################################################################################
|
||||
# Create a new stage to run the application with minimal runtime dependencies
|
||||
# where the necessary files are copied from the build stage.
|
||||
FROM base AS final
|
||||
|
||||
# Use production node environment by default.
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# Run the application as a non-root user.
|
||||
USER node
|
||||
|
||||
# Copy package.json so that package manager commands can be used.
|
||||
COPY package.json .
|
||||
|
||||
# Copy the production dependencies from the deps stage and also
|
||||
# the built application from the build stage into the image.
|
||||
COPY --from=deps /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=build /usr/src/app/dist ./dist
|
||||
|
||||
# Expose the port that the application listens on.
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=4321
|
||||
EXPOSE 4321
|
||||
|
||||
# Run the application.
|
||||
CMD pnpm start
|
22
README.Docker.md
Normal file
22
README.Docker.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
### Building and running your application
|
||||
|
||||
When you're ready, start your application by running:
|
||||
`docker compose up --build`.
|
||||
|
||||
Your application will be available at http://localhost:4321.
|
||||
|
||||
### Deploying your application to the cloud
|
||||
|
||||
First, build your image, e.g.: `docker build -t myapp .`.
|
||||
If your cloud uses a different CPU architecture than your development
|
||||
machine (e.g., you are on a Mac M1 and your cloud provider is amd64),
|
||||
you'll want to build the image for that platform, e.g.:
|
||||
`docker build --platform=linux/amd64 -t myapp .`.
|
||||
|
||||
Then, push it to your registry, e.g. `docker push myregistry.com/myapp`.
|
||||
|
||||
Consult Docker's [getting started](https://docs.docker.com/go/get-started-sharing/)
|
||||
docs for more detail on building and pushing.
|
||||
|
||||
### References
|
||||
* [Docker's Node.js guide](https://docs.docker.com/language/nodejs/)
|
57
compose.yaml
Normal file
57
compose.yaml
Normal file
|
@ -0,0 +1,57 @@
|
|||
# Comments are provided throughout this file to help you get started.
|
||||
# If you need more help, visit the Docker Compose reference guide at
|
||||
# https://docs.docker.com/go/compose-spec-reference/
|
||||
|
||||
# Here the instructions define your application as a service called "server".
|
||||
# This service is built from the Dockerfile in the current directory.
|
||||
# You can add other services your application may depend on here, such as a
|
||||
# database or a cache. For examples, see the Awesome Compose repository:
|
||||
# https://github.com/docker/awesome-compose
|
||||
services:
|
||||
server:
|
||||
build:
|
||||
context: .
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
ports:
|
||||
- 127.0.0.1:4321:4321
|
||||
watchtower:
|
||||
image: containrrr/watchtower
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /$HOME/.docker/config.json:/config.json
|
||||
command: --interval 300
|
||||
|
||||
# The commented out section below is an example of how to define a PostgreSQL
|
||||
# database that your application can use. `depends_on` tells Docker Compose to
|
||||
# start the database before your application. The `db-data` volume persists the
|
||||
# database data between container restarts. The `db-password` secret is used
|
||||
# to set the database password. You must create `db/password.txt` and add
|
||||
# a password of your choosing to it before running `docker-compose up`.
|
||||
# depends_on:
|
||||
# db:
|
||||
# condition: service_healthy
|
||||
# db:
|
||||
# image: postgres
|
||||
# restart: always
|
||||
# user: postgres
|
||||
# secrets:
|
||||
# - db-password
|
||||
# volumes:
|
||||
# - db-data:/var/lib/postgresql/data
|
||||
# environment:
|
||||
# - POSTGRES_DB=example
|
||||
# - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
|
||||
# expose:
|
||||
# - 5432
|
||||
# healthcheck:
|
||||
# test: [ "CMD", "pg_isready" ]
|
||||
# interval: 10s
|
||||
# timeout: 5s
|
||||
# retries: 5
|
||||
# volumes:
|
||||
# db-data:
|
||||
# secrets:
|
||||
# db-password:
|
||||
# file: db/password.txt
|
||||
|
50
package.json
50
package.json
|
@ -4,51 +4,53 @@
|
|||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"start": "export $(cat .env.runtime) && node ./dist/server/entry.mjs",
|
||||
"start": "node ./dist/server/entry.mjs",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.9.4",
|
||||
"@astrojs/mdx": "^3.1.9",
|
||||
"@astrojs/node": "^8.3.4",
|
||||
"@astrojs/prism": "^3.1.0",
|
||||
"@astrojs/react": "^3.6.2",
|
||||
"@astrojs/rss": "^4.0.9",
|
||||
"@astrojs/tailwind": "^5.1.2",
|
||||
"@fontsource/libre-baskerville": "^5.1.0",
|
||||
"@fontsource/nunito": "^5.1.0",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"astro": "^4.16.10",
|
||||
"astro-icon": "^1.1.1",
|
||||
"@astrojs/mdx": "^4.0.7",
|
||||
"@astrojs/node": "^9.0.1",
|
||||
"@astrojs/prism": "^3.2.0",
|
||||
"@astrojs/react": "^4.1.6",
|
||||
"@astrojs/rss": "^4.0.11",
|
||||
"@astrojs/tailwind": "^5.1.5",
|
||||
"@fontsource/libre-baskerville": "^5.1.1",
|
||||
"@fontsource/nunito": "^5.1.1",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"astro": "^5.1.8",
|
||||
"astro-icon": "^1.1.5",
|
||||
"astro-m2dx": "^0.7.16",
|
||||
"date-fns": "^4.1.0",
|
||||
"date-fns-tz": "^3.2.0",
|
||||
"feed": "^4.2.2",
|
||||
"github-slugger": "^2.0.0",
|
||||
"linkedom": "^0.18.5",
|
||||
"linkedom": "^0.18.6",
|
||||
"node-html-parser": "^6.1.13",
|
||||
"prism": "^4.1.2",
|
||||
"prism-react-renderer": "^2.4.0",
|
||||
"prism-react-renderer": "^2.4.1",
|
||||
"prismjs": "^1.29.0",
|
||||
"react": "^18.3.1",
|
||||
"react-code-block": "^1.0.0",
|
||||
"react-code-block": "^1.1.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-icons": "^5.3.0",
|
||||
"react-icons": "^5.4.0",
|
||||
"rehype-mdx-code-props": "^3.0.1",
|
||||
"rehype-pretty-code": "^0.14.0",
|
||||
"rehype-slug": "^6.0.0",
|
||||
"tailwindcss": "^3.4.13",
|
||||
"sharp": "^0.33.5",
|
||||
"tailwindcss": "^3.4.17",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"typescript": "^5.6.2"
|
||||
"typescript": "^5.7.3",
|
||||
"@types/lodash": "^4.17.14",
|
||||
"astro-auto-import": "^0.4.4",
|
||||
"astro-mdx-code-blocks": "^0.0.6",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"packageManager": "pnpm@9.10.0+sha512.73a29afa36a0d092ece5271de5177ecbf8318d454ecd701343131b8ebc0c1a91c487da46ab77c8e596d6acf1461e3594ced4becedf8921b074fbd8653ed7051c",
|
||||
"devDependencies": {
|
||||
"@types/lodash": "^4.17.13",
|
||||
"astro-auto-import": "^0.4.4",
|
||||
"astro-mdx-code-blocks": "^0.0.6",
|
||||
"lodash": "^4.17.21",
|
||||
"node-html-parser": "^6.1.13"
|
||||
|
||||
}
|
||||
}
|
||||
|
|
3053
pnpm-lock.yaml
generated
3053
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,8 @@ import { parse } from 'node-html-parser';
|
|||
// https://ellodave.dev/blog/article/using-svgs-as-astro-components-and-inline-css/
|
||||
|
||||
export interface Props {
|
||||
icon: string
|
||||
icon: string,
|
||||
class: string,
|
||||
}
|
||||
|
||||
function getSVG(name: string) {
|
||||
|
|
|
@ -97,7 +97,7 @@ import HR from "../HR.astro";
|
|||
button.addEventListener("click", (event) => {
|
||||
if (!menu.classList.contains("active")) { // if closed, stop having it be closed!
|
||||
menu.classList.add("active");
|
||||
button.setAttribute("aria-expanded", true);
|
||||
button.setAttribute("aria-expanded", "true");
|
||||
|
||||
// we need to set the max height to the height of the accordion object so the animations work correctly
|
||||
content.classList.remove("hidden");
|
||||
|
@ -105,7 +105,7 @@ import HR from "../HR.astro";
|
|||
chevron.classList.add("rotate-180");
|
||||
} else { // if open, stop having it be open!!!!
|
||||
menu.classList.remove("active");
|
||||
button.setAttribute("aria-expanded", false);
|
||||
button.setAttribute("aria-expanded", "false");
|
||||
|
||||
content.style.maxHeight = '0px';
|
||||
chevron.classList.remove("rotate-180");
|
||||
|
|
|
@ -21,7 +21,7 @@ if (p.href.includes('https://') || p.href.includes('http://')) {
|
|||
<slot/>
|
||||
{external ? (
|
||||
<>
|
||||
<Icon icon="FaExternalLink" class='w-2.5 inline-block align-super fill-crusta-800 fill:stroke-night-400' aria-hidden="true"/>
|
||||
<Icon icon="FaExternalLink" class='w-2.5 inline-block align-super fill-crusta-800 dark:fill-night-400' aria-hidden="true"/>
|
||||
<span class="hidden">opens in a new tab</span>
|
||||
</>
|
||||
) : ''}
|
||||
|
|
|
@ -21,7 +21,7 @@ import { timeZone } from "../lib/utils";
|
|||
<h2 class="font-serif text-3xl my-2">Hey. Welcome to City 23.</h2>
|
||||
<Picture
|
||||
src={cri}
|
||||
alt="A scrunkly picture of my sona crying"
|
||||
alt="A scrunkly drawing of my sona crying"
|
||||
class="w-20 mr-4 inline-flex float-left"
|
||||
/>
|
||||
<p class="mb-2">
|
||||
|
@ -34,18 +34,10 @@ import { timeZone } from "../lib/utils";
|
|||
<a href="/journal" class="font-serif text-subtitle text-sm hover:underline">November 14, 2024</a>
|
||||
</p>
|
||||
|
||||
<MDXCallout preset="new">
|
||||
This site is now using the <a href="https://astro.build">Astro web framework</a>!
|
||||
Previously, this site was using <a href="https://nextjs.org">Next.js</a>, a fullstack framework built for big whig companies
|
||||
with big whig webapps... and it didn't really fit this site. Hopefully, the move to Astro will mean a more responsive and performant
|
||||
blog that still has room to expand in the future. To learn more about this, check out my <a href="/journal#2024-11-12"
|
||||
class="text-subtitle hover:underline">latest journal entry</a>.
|
||||
<MDXCallout preset="info">
|
||||
whoops i forgor to pay my hosting provider so my website went poof. i fixed it. website back now. yey
|
||||
<br/><br/>
|
||||
I also want to note that there are now only <b>two</b> content feeds, Atom and JSON,
|
||||
accessed via <a href="/feeds/feed.xml" class="text-subtitle hover:underline"><code>/feeds/feed.xml</code></a> and <a href="/feeds/feed.json" class="text-subtitle hover:underline"><code>/feeds/feed.json</code></a> respectively. This was done to simplify my RSS feeds and give myself
|
||||
less work lmao.
|
||||
<br/><br/>
|
||||
If you have any questions (or bug reports) regarding the transition to Astro, please reach out via email. Hope you enjoy the new site!
|
||||
Expect an editing pass to my last blog post (f i n a l l y) sometime soon-ish.
|
||||
</MDXCallout>
|
||||
|
||||
<h2 class="font-serif text-2xl mb-2">recent posts</h2>
|
||||
|
|
|
@ -13,30 +13,42 @@ import Icon from "../components/Icon.astro";
|
|||
|
||||
## now
|
||||
|
||||
Working on my website instead of taking notes for class because i do not control the hyperfixation.... and also I'm way behind and I am too stressed to catch up right now ;3;
|
||||
it's 4am. i need to sleep. but i will not. because i do not control the eep
|
||||
|
||||
---
|
||||
|
||||
<MDXAccordion title="todo">
|
||||
- [ ] Make an editing pass on the last blog post (FINALLY) so I can stop worrying about it.
|
||||
- [ ] Just. Write. Goddammit.
|
||||
- [ ] Figure out how to make the API route serving the Atom feed ([feed.xml](../feeds/feed.xml)) actually send an xml file that can be recognized by the browser (i.e. allowing for a `.xsl` to work with it and/or opening it automatically in your RSS reader of choice).
|
||||
- [ ] Write *oooooooone* more blog post deliberately **less** involved in order to break my habit of assuming a blog post has to have 5000 characters and five headings to be worth posting
|
||||
- [ ] Pretty up the python function blog post to fix typos and have clearer instructions (it *is* a tutorial, after all).
|
||||
- [ ] Set up a dev version of this site & start implementing the account system!
|
||||
</MDXAccordion>
|
||||
|
||||
{/*
|
||||
---
|
||||
|
||||
## todo
|
||||
# 2025-01-22
|
||||
|
||||
- [ ] Make external links open in a new tab. This should be pretty easy to implement.
|
||||
- [ ] Potentially add an extra "new-tab" flag to MDX links (a space & "+" after the link in the parentheses? that might be too complicated
|
||||
to implement nicely tho)
|
||||
- [ ] Automatically insert an "external link" icon (<MdOpenInNew size='16' className="inline-flex"/>) on links that open in a new tab.
|
||||
- [ ] Set up a dev version of this site & start implementing the account system!
|
||||
*/}
|
||||
Oh my god!!! It's another year!!!!
|
||||
|
||||
---
|
||||
In fact, it has officially been six-ish months since this version of my website has been around
|
||||
(yes, it's only been two since I switched to Astro, but since that was more of a technical migration rather
|
||||
than a whole website redesign, I'm not counting that lol).
|
||||
|
||||
On one hand, it is really cool that I've settled on something that I can feel proud of every time I look at it.
|
||||
On the other hand, **my god do I need to put more stuff on here.**
|
||||
|
||||
So, here's the current plan:
|
||||
|
||||
- Make an editing pass on the last blog post (FINALLY) so I can stop worrying about it.
|
||||
- Just. Write. Goddammit.
|
||||
- Theeeeeen maybe we can worry about that fancy comments system I keep fantasizing about.
|
||||
|
||||
Heck, if you want to leave me a note on one of my blog posts, there's a great way to do so: email me! Or fedi me!! Or bsky me (ok maybe dont do that because i rarely use bsky)!!!
|
||||
The main reason I want to implement a comments system is to build a community... but I can't really do that if
|
||||
there are no people to fill it. So if you want to be a part of that, let me know.
|
||||
|
||||
......Completely unrelated question, does anyone want to see an eleboog.com IRC chatroom?
|
||||
|
||||
oh and [obligatory song link](https://www.youtube.com/watch?v=kI811LrVAu8)
|
||||
|
||||
# 2024-11-14
|
||||
|
||||
|
@ -409,72 +421,76 @@ As usual, [here's my song recommendation of the whenever](https://www.youtube.co
|
|||
|
||||
---
|
||||
|
||||
<MDXCallout preset="note">The rest of this page contains older journal entries ported over from the previous version of this site.</MDXCallout>
|
||||
|
||||
# 2023-08-20
|
||||
|
||||
My CalcKey instance has been perpetually upset at me. It sucks because if I undo my migration, I'll likely lose all of my follows and followers. I think I might need to upgrade my VPS so it isn't using up all my server's resources... but I'm not sure if I can afford it right now. If you have some suggestions as to how I can fix this, email me lol
|
||||
<MDXAccordion title="really old entries">
|
||||
<MDXCallout preset="note">
|
||||
This section contains older journal entries ported over from the previous version of this site.
|
||||
</MDXCallout>
|
||||
# 2023-08-20
|
||||
|
||||
Also, sorry for fucking up the sharefeed and not realizing until more than a month later. whoops.
|
||||
My CalcKey instance has been perpetually upset at me. It sucks because if I undo my migration, I'll likely lose all of my follows and followers. I think I might need to upgrade my VPS so it isn't using up all my server's resources... but I'm not sure if I can afford it right now. If you have some suggestions as to how I can fix this, email me lol
|
||||
|
||||
# 2023-07-05
|
||||
Also, sorry for fucking up the sharefeed and not realizing until more than a month later. whoops.
|
||||
|
||||
I've been meaning to create an online forums for a while now to serve as my blog's comment section and provide an alternative social space for queer nerds like me. I thought I found the perfect solution in Discourse... but it eats up so much ram. Only around 70MB is left of my VPS's 2GB of ram. Ouch.
|
||||
# 2023-07-05
|
||||
|
||||
Thus, even though you may have noticed that I had Discourse serve as the comments section of my site for about a month, I am disabling it for now to make room for a Calckey instance. Sorry about that!
|
||||
I've been meaning to create an online forums for a while now to serve as my blog's comment section and provide an alternative social space for queer nerds like me. I thought I found the perfect solution in Discourse... but it eats up so much ram. Only around 70MB is left of my VPS's 2GB of ram. Ouch.
|
||||
|
||||
As an apology, more sharefeed stuffs coming your way! :3
|
||||
Thus, even though you may have noticed that I had Discourse serve as the comments section of my site for about a month, I am disabling it for now to make room for a Calckey instance. Sorry about that!
|
||||
|
||||
also listen to this album plz: [This Town Needs Guns - Animals](https://www.youtube.com/watch?v=DOHGTJoh498)
|
||||
As an apology, more sharefeed stuffs coming your way! :3
|
||||
|
||||
# 2023-06-03
|
||||
also listen to this album plz: [This Town Needs Guns - Animals](https://www.youtube.com/watch?v=DOHGTJoh498)
|
||||
|
||||
Tried to wrangle IndieWeb stuff like h-entries and h-cards. I want to murder IndieWeb now.
|
||||
# 2023-06-03
|
||||
|
||||
In better news, I decided to roll my own social links in the footer instead of the side bar, and I think it works well!
|
||||
Tried to wrangle IndieWeb stuff like h-entries and h-cards. I want to murder IndieWeb now.
|
||||
|
||||
Gonna throw out some more sharefeed posts in a bit. yay.
|
||||
In better news, I decided to roll my own social links in the footer instead of the side bar, and I think it works well!
|
||||
|
||||
# 2023-06-02
|
||||
Gonna throw out some more sharefeed posts in a bit. yay.
|
||||
|
||||
I found out something funny about the new Etrian Odyssey HD remasters.
|
||||
# 2023-06-02
|
||||
|
||||
The digital release of all three games is priced at $80. There is no physical release of the game except in Asian markets.
|
||||
I found out something funny about the new Etrian Odyssey HD remasters.
|
||||
|
||||
However, PlayAsia is selling said physical release (for the Nintendo Switch) at *$70*. With standard shipping to the US, the total price is $77.90... ***cheaper than the digital release.***
|
||||
The digital release of all three games is priced at $80. There is no physical release of the game except in Asian markets.
|
||||
|
||||
Guess me being a weirdo who likes collecting physical Switch games wasn't dumb after all.
|
||||
However, PlayAsia is selling said physical release (for the Nintendo Switch) at *$70*. With standard shipping to the US, the total price is $77.90... ***cheaper than the digital release.***
|
||||
|
||||
Also, I have a bunch of shit lined up for the sharefeed. Going to be spreading them out over the weekend. Happy reading!
|
||||
Guess me being a weirdo who likes collecting physical Switch games wasn't dumb after all.
|
||||
|
||||
# 2023-06-01
|
||||
Also, I have a bunch of shit lined up for the sharefeed. Going to be spreading them out over the weekend. Happy reading!
|
||||
|
||||
First of all, happy pride month. Be gay. Do crime.
|
||||
# 2023-06-01
|
||||
|
||||
Second, you may notice my blog is now Evil PewDiePie flavored. Figured it would be a cool way to spice up the visual design. If there are any elements that still look messed up with this change, let me know.
|
||||
First of all, happy pride month. Be gay. Do crime.
|
||||
|
||||
Finally, link emebeds now work. I may pretty up the embed image at some point for articles, but for now, I'm pretty excited!
|
||||
Second, you may notice my blog is now Evil PewDiePie flavored. Figured it would be a cool way to spice up the visual design. If there are any elements that still look messed up with this change, let me know.
|
||||
|
||||
# 2023-05-19
|
||||
Finally, link emebeds now work. I may pretty up the embed image at some point for articles, but for now, I'm pretty excited!
|
||||
|
||||
I follow a Hacker News bot on Telegram. Whenever I see something interesting, I forward the post to my "Saved Messages" to read later... which I never do.
|
||||
# 2023-05-19
|
||||
|
||||
I had an idea to turn this pipeline into something that is actually useful for not just me but for anyone else who is as much of a fucking nerd as I am. Basically, it would be a webpage filled with links to blog posts or articles or other websites that I find interesting (note: interesting != good) that can also be viewed as an Atom feed. I would attach summaries/notes to each link (which would be stuffed under the \<summary\> tag on the Atom feed) so I can give some more detials of what I think about it and possibly what I might do with it in the future (e. make a response to it on my blog, use the project for my own purposes, etc).
|
||||
I follow a Hacker News bot on Telegram. Whenever I see something interesting, I forward the post to my "Saved Messages" to read later... which I never do.
|
||||
|
||||
I'm sure there's already solutions for "read later" feeds like what I wanna do, but I wanna roll my own because I think it would be pretty simple to make a basic rendition of this (especially in Jekyll thanks to Liquid markup allowing you to literally roll your own custom Atom feed if you wanna). Plus... if this kicks off, maybe I can develop it further! Comments, a framework to make something like it for your own site... maybe even ActivityPub support.
|
||||
I had an idea to turn this pipeline into something that is actually useful for not just me but for anyone else who is as much of a fucking nerd as I am. Basically, it would be a webpage filled with links to blog posts or articles or other websites that I find interesting (note: interesting != good) that can also be viewed as an Atom feed. I would attach summaries/notes to each link (which would be stuffed under the \<summary\> tag on the Atom feed) so I can give some more detials of what I think about it and possibly what I might do with it in the future (e. make a response to it on my blog, use the project for my own purposes, etc).
|
||||
|
||||
Now, for something completely different... [Listen to this right the fuck now.](
|
||||
https://www.youtube.com/watch?v=DZ2jgJi54So)
|
||||
I'm sure there's already solutions for "read later" feeds like what I wanna do, but I wanna roll my own because I think it would be pretty simple to make a basic rendition of this (especially in Jekyll thanks to Liquid markup allowing you to literally roll your own custom Atom feed if you wanna). Plus... if this kicks off, maybe I can develop it further! Comments, a framework to make something like it for your own site... maybe even ActivityPub support.
|
||||
|
||||
# 2023-05-02
|
||||
Now, for something completely different... [Listen to this right the fuck now.](
|
||||
https://www.youtube.com/watch?v=DZ2jgJi54So)
|
||||
|
||||
I just updated the theme of this blog from Minima to Chirpy. Find this a lot better than I had before! Gonna make a blog post on it once I finalize some shit.
|
||||
# 2023-05-02
|
||||
|
||||
I also need to fix up this journal to actually work as an HTML journal. Right now, there's some elements missing, and I need to make a jekyll plugin to parse through this page's content and put in the proper elements for each entry. Might do that as a warm up to [jekyll-to-gemini](../posts/jekyll-to-gemini).
|
||||
I just updated the theme of this blog from Minima to Chirpy. Find this a lot better than I had before! Gonna make a blog post on it once I finalize some shit.
|
||||
|
||||
oh also pro tip that i just learned: adding two or more spaces to a line and then inserting a newline lets you insert a line break. donno why it doesn't just format it the right way in the first place but I didn't make Markdown.
|
||||
|
||||
# 2023-03-28
|
||||
I also need to fix up this journal to actually work as an HTML journal. Right now, there's some elements missing, and I need to make a jekyll plugin to parse through this page's content and put in the proper elements for each entry. Might do that as a warm up to [jekyll-to-gemini](../posts/jekyll-to-gemini).
|
||||
|
||||
Gonna try to use this as a space to put stuff that doesn't feel "big enough" for a blog post. Hopefully this encourages me to actually use this site more lol
|
||||
oh also pro tip that i just learned: adding two or more spaces to a line and then inserting a newline lets you insert a line break. donno why it doesn't just format it the right way in the first place but I didn't make Markdown.
|
||||
|
||||
# 2023-03-28
|
||||
|
||||
Gonna try to use this as a space to put stuff that doesn't feel "big enough" for a blog post. Hopefully this encourages me to actually use this site more lol
|
||||
</MDXAccordion>
|
||||
|
|
Loading…
Add table
Reference in a new issue