merge back #20

Merged
joshuafhiggins merged 15 commits from main into dev 2025-07-04 04:39:50 +00:00
90 changed files with 211 additions and 147 deletions

View File

@@ -31,7 +31,7 @@ jobs:
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.108.0
HUGO_VERSION: 0.137.0
steps:
- name: Install Hugo CLI
run: |

1
.gitignore vendored
View File

@@ -7,3 +7,4 @@
/public/
assets/jsconfig.json
/.idea/
/content/.obsidian/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

BIN
assets/images/avatar.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
assets/images/banner.avif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 MiB

View File

@@ -13,7 +13,7 @@ subtitle = "The blog for my programming projects"
[Params.Sidebar.Avatar]
enabled = true
local = true
src = "images/avatar.png"
src = "images/avatar.webp"
[Params.Footer]
since = 2019
@@ -44,4 +44,4 @@ card = "summary"
[Params.defaultImage.opengraph]
enabled = true
local = true
src = "images/banner.png"
src = "images/banner.avif"

View File

@@ -26,15 +26,6 @@ url = "https://www.youtube.com/channel/UCIk0qQcaVTxhfTD9sK_0PtQ"
[social.params]
icon = "brand-youtube"
[[social]]
identifier = "discord"
name = "Discord"
weight = 4
url = "https://discord.com/invite/b48D4m8jNs"
[social.params]
icon = "brand-discord"
[[social]]
identifier = "email"
name = "Email"

View File

@@ -1,6 +1,6 @@
---
title: "Butter Engine"
image: "featured-image.png"
image: "featured-image.webp"
---
Butter Engine is a game engine made in LWJGL and uses its subset libraries for various tasks. What originally started as a simple rendering library to use LWJGL easier is now becoming a fully-fledged engine and with the hope to fill the same role as Garry's Mod in end-user development.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,6 +1,6 @@
---
title: "Click Counter"
image: "featured-image.png"
image: "featured-image.webp"
---
A Minecraft Forge 1.8.9 mod for counting how many times you left/right click. Featuring custom coloring, positioning, and prefixes, this mod provides useful statistics. Get started by typing the "/clicks" command in chat. The project is under the [MIT License](https://raw.githubusercontent.com/joshuafhiggins/clickcounter/master/LICENSE).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -1,6 +1,6 @@
---
title: "Docker"
image: "featured-image.png"
image: "featured-image.webp"
---
Releases and updates to Docker images.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

View File

@@ -1,6 +1,6 @@
---
title: "Guides"
image: "featured-image.png"
image: "featured-image.webp"
---
The guides I have made.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

View File

@@ -1,9 +1,7 @@
---
title: "Prank Suite"
image: "featured-image.png"
image: "featured-image.webp"
---
*[Formally, Weeb Detector](https://www.youtube.com/embed/grI_YSRRoBY) was a prank I made to use on my brother, since he started watching anime. He deserved this punishment fully. I made a video on how to set it up and a code walk-through aswell.*
NOTE: This software can be used maliciously. I am no way responsible for the use of this software and encourage its use in good faith.
## Features
@@ -12,10 +10,6 @@ NOTE: This software can be used maliciously. I am no way responsible for the use
- Trigger HTML popups
- Remotely play sounds
- Remotely change the user's wallpaper
## Changes since Weeb Detector
- Trigger HTML popups
- Remotely play sounds
- UI Redesign for ease of pranking
- Ability to transfer files for all pranks

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,4 @@
---
title: Realm
image: featured-image.webp
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -12,6 +12,6 @@ readingTime: false
---
![Banner](/images/banner.png " ")
![Banner](/images/banner.avif " ")
This site is the best place to catch up on my projects and to get the downloads for my projects when they come out. I work on various things like game development to modding Minecraft. Any project will have its own subdomain and page. If you want to talk to me personally about something, here's my [email](mailto:joshuafhiggins@gmail.com).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -5,7 +5,7 @@ lastmod: 2022-08-22T16:02:56-04:00
draft: false
description: "I feel like I wrote this code before..."
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Progress Updates"]
categories: ["butterengine"]
@@ -66,7 +66,7 @@ Derivatives were made when going through the tutorials but were ultimately remov
## Textures
Right now, only Albedo is being used and the Material class is nothing but a holder for SlickUtil Textures. I want the Material class to hold all of the textures without order and you leave it to modders to make their shaders and textures line up. I'm only using SlickUtil right now because of the ability to load Textures from class resources rather than the file path. But I'm ultimately going to replace it with my one Texture class because of the [model loader](#Model Loading) not using class resources. Supposedly we can load from resources, and call the function to load model from memory or textures from memory with STB, but I have no idea what the size of the buffers should be.
![Smiley is rendering but streched!](butter-smiley-streched.png)
![Smiley is rendering but streched!](butter-smiley-streched.webp)
## 3D Projection
JOML is being used for math and matrix loading and what not but this may change (see [the physics section](#physics)). Once I did this, it kinda made me think about what next. I thought I should focus on an ECS system for holding positions, rotations, etc. which right now is the Entity class that should be derived from but will change (see [the ECS section](#ecs)). This was kind of the thing that spun off into the unproductive week. Although this was not easy at all because the shader was originally going from different matrices in the wrong order.
@@ -90,7 +90,7 @@ void main() {
But here it is now working just right:
![Smiley looking better now](butter-smiley-projected.png)
![Smiley looking better now](butter-smiley-projected.webp)
## Mod Loading
The Main class no longer holds any GLFW and is instead held in the Window class, similar to the Mesh class and BufferObjects. Mods right now hold a lot of control over what's happening. This is still subject to change because while this was going to be a render engine, it quickly became this bigger thing and the order of events right now is: Rendering (v0.1) -> ECS/Physics (v0.2) -> Audio/Sound (v0.3) -> Events/Mod Loading (v0.4). So we aren't even done with v0.1 and shouldn't worry about the specifics of this just yet. I just want to emphasize that this is a render engine before a game engine, no matter how much I want the latter.
@@ -111,4 +111,4 @@ For ECS I'm gonna go with [Ashley](https://github.com/libgdx/ashley), a LibGDX s
## Model Loading
This is in no way finished as it is not grabbing all possible data right now, which is kind of driving me nuts but I'm gonna try to ignore it for now until the data being grabbed, like material data, can be used in engine. Here it is so far, using the smiley texture and the dragon model:
![Model loaded!](butter-dragon-modelloading.png)
![Model loaded!](butter-dragon-modelloading.webp)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

View File

@@ -1,19 +0,0 @@
---
title: "Butter Engine: April 2023"
date: 2022-08-21T15:02:56-04:00
lastmod: 2022-08-21T16:02:56-04:00
# date: YEAR-MONTH-DAYTHOUR:MINUTE:SECOND-04:00
draft: true
# author: "LitlToast"
# authorLink: "https://higgy999.github.io"
description: "A lot has changed, let's jump right in."
image: "featured-image.png"
tags: ["Butter Engine", "Update", "Programming"]
categories: ["butterengine"]
---
Butter Engine (Java): UI, Physics, and Maps Post
Now in Rust, Java struggles
Whats Rust Like

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -4,7 +4,7 @@ date: 2023-06-23T12:00:00-04:00
lastmod: 2023-06-23T12:00:00-04:00
description: "Right clicks, general refactor, more stable/modern codebase, QOL features."
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Minecraft", "Modding", "Updates"]
categories: ["clickcounter"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -4,7 +4,7 @@ date: 2023-06-24T12:00:00-04:00
lastmod: 2023-06-24T12:00:00-04:00
description: "Bug fixes"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Minecraft", "Modding", "Updates"]
categories: ["clickcounter"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

View File

@@ -5,7 +5,7 @@ lastmod: 2022-08-21T19:00:00-04:00
draft: true
description: "Description"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Tag"]
categories: ["Project"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -5,7 +5,7 @@ lastmod: 2022-08-22T19:13:30-04:00
draft: false
description: "General things I need to do with the site"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Website", "Progress Updates"]
# categories: ["general"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -8,7 +8,7 @@ draft: false
# author: "LitlToast"
# authorLink: "https://higgy999.github.io"
description: "The next step in pranking your friends and family."
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Releases"]
categories: ["pranksuite"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,38 @@
---
title: Introducing, Realm
date: 2024-11-03
lastmod: 2024-11-03T01:00:00-04:00
draft: false
description: Collaborate, Communicate, Connect
image: featured-image.webp
tags:
- messaging
- secure
- decentralized
- federated
- community
categories:
- realm
toc: true
---
Welcome to Realm, a decentralized, federated forum and messaging platform designed to help empower communities. The app aims to compete with Discord and Reddit in providing easy-to-use, open-source programs anyone can run to host their own communities, as well as to guide the direction of the platform's development.
## Why?
Almost 10 months ago, [Reddit made a deal with Google](https://www.theverge.com/2024/2/22/24080165/google-reddit-ai-training-data) to allow exclusive access to content posted to be used in LLM training, in a shock to the hundreds of thousands of users who contributed their free time and resources to building libraries worth of information. In the two months after this [Reddit went on to announce its IPO on the stock market](https://www.reuters.com/markets/deals/reddit-set-hotly-anticipated-debut-after-pricing-ipo-top-range-2024-03-21/) and in May [announced a similar deal to Google's with OpenAI](https://openai.com/index/openai-and-reddit-partnership/). Then in June, Reddit made waves in the news again for [blocking anyone from crawling the site under there robots.txt file](https://www.theverge.com/2024/6/25/24185984/reddit-robots-txt-fight-ai-bots-scraping-crawlers), meaning that search engines like Bing or DuckDuckGo could no longer crawl Reddit for use in search results, only Google and OpenAI could with their deals with the company.
All of these actions over the course of the last year has shown a clear trend that Reddit's focus is squarely on profit at the expense of its users and is willing to exploit their content by any means necessary, through selling it to other companies without its users seeing a dime. While not inherently being a bad thing alone, Reddit's quest for profit has come at the cost of the usability of the platform and creates a lock in effect, where users feel compelled to stay because the generational wealth of information even as the company grows more user hostile. Content on Reddit on average has also decreased as moderation tools became blocked with [the API changes that occurred last year](https://en.wikipedia.org/wiki/2023_Reddit_API_controversy), once again putting monetization and profit over the health of the platform.
Though, Reddit isn't the only place for communities with many younger people gravitating towards using Discord for this instead. Discord functions similarly to the internet chatrooms of an older era while also offering voice channels like Mumble, all while providing hosting for free. The main issue that occurs from this is the preservation of information. Chat rooms are more ephemeral then forum posts and make it harder to follow a conversation or to jump in on one as the line between start and end are fuzzier. This leads to the same questions being asked over a and over again. The ability to search within a channel is also poorly designed and makes it hard to link back to previous conversations in order to alleviate the above issue. Information is also harder to find from the greater internet, as these chatrooms are unable to be indexed by search engines, leading to users having to join the server for a quick answer and making their quest for information feel clunky overall.
## Goals
Realm plans to solve these issues by proving an open-source, self-hostable platform (so that there is no need for upkeep and finance from a central source) that can provide the pros of forum posts with the ease-of-use of chats as well as being accessible from a website as well as desktop (providing access to indexers).
## Early Demo
Windows builds of the client are available here at [realm.abunchofknowitalls.com](https://realm.abunchofknowitalls.com). All the source code of the project is available [on GitHub](https://github.com/joshuafhiggins/realm-chat), in order to compile for Linux or macOS.
## Plans for the Future
The current demo is a very rough prototype and I plan to redesign the protocol as well as the client in the future. Watch out for future posts that will detail how each application was designed and my plans on how to remake them.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -5,7 +5,7 @@ lastmod: 2022-08-23T00:09:32-04:00
draft: false
description: "Hopefully this will not be a yearly tradition of me updating the site, making one post, and leaving it untouched."
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Website", "Progress Updates"]
# categories: ["general"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -5,7 +5,7 @@ lastmod: 2024-03-16T20:10:00-04:00
draft: false
description: "'Tis tradition."
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Website", "Progress Updates"]
# categories: ["general"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

View File

@@ -8,7 +8,7 @@ draft: false
# author: "LitlToast"
# authorLink: "https://higgy999.github.io"
description: "I made no posts for the rest of 2022, since the last redesign, and then I felt like redesigning the site again. (AI generated image btw)"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Website", "Progress Updates"]
# categories: ["general"]
@@ -28,7 +28,7 @@ Known Bugs:
- Mobile: Hamburger menu missing when reading a post, this existed before but really shouldn't have
```
![The new design!](april2023-website.png)
![The new design!](april2023-website.webp)
Light theme looks better than before, and better than dark mode in my opinion. The new header bar is inspired by Hearthstone's website too, although I kept some of the old design on mobile. Several changes had to be made to the theme itself, at some point I need to find a way to move all changes that were made to `_override.scss`. Maybe now I'll make an update post for Prank Suite?
@@ -36,7 +36,7 @@ Light theme looks better than before, and better than dark mode in my opinion. T
I made a [Discord server](https://discord.gg/b48D4m8jNs)! There's channels for asking for help with Java, Kotlin, and Rust, as well as helpful resources. I encourage everyone to put your favorite resources for the languages in their respective channels. I often forget cool things I find and this will be my way of having a whole list to revisit anytime I want. You can also showcase your projects as a thread in the [`#showcase`](https://discord.gg/b48D4m8jNs) channel. I look forward to seeing you there!
![Music Bot](april2023-bard.png) ![Server Icon](april2023-toaster.png)
![Music Bot](april2023-bard.webp) ![Server Icon](april2023-toaster.webp)
## Plans & Current Projects

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

View File

@@ -4,7 +4,7 @@ date: 2023-06-21T19:00:00-04:00
lastmod: 2022-08-21T19:00:00-04:00
description: "TF2C dedicated server image, made from cm2network's TF2 image. Art by Hunter R. Thompson"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Releases"]
categories: ["docker"]
@@ -19,7 +19,7 @@ I created this Docker image for my own servers, but have released it for anyone
## How to use this image
### Hosting a simple game server
Running on the *host* interface (recommended):<br/>
Running on the *host* interface (recommended):
```console
$ docker run -d -it --net=host --name=tf2classic -e SRCDS_TOKEN={YOURTOKEN} litltoast/tf2-classic
```
@@ -37,11 +37,12 @@ $ docker run -d -it --net=host --name=tf2classic-2 -e SRCDS_PORT=27016 -e SRCDS_
```
`SRCDS_TOKEN` **is required to be listed & reachable. Generate one here using AppID `243750`:**
[https://steamcommunity.com/dev/managegameservers](https://steamcommunity.com/dev/managegameservers)<br/><br/>
`SRCDS_WORKSHOP_AUTHKEY` **is required to use workshop features:**
[https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey)<br/>
[https://steamcommunity.com/dev/managegameservers](https://steamcommunity.com/dev/managegameservers)
**It's also recommended to use "--cpuset-cpus=" to limit the game server to a specific core & thread.**<br/>
`SRCDS_WORKSHOP_AUTHKEY` **is required to use workshop features:**
[https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey)
**It's also recommended to use "--cpuset-cpus=" to limit the game server to a specific core & thread.**
## Configuration
### Environment Variables
@@ -76,8 +77,5 @@ If you want to learn more about configuring a TF2 server check this [documentati
### `tf2-classic:latest`
This is the only image
## Contributors
[![Contributors Display](https://badges.pufler.dev/contributors/joshuafhiggins/TF2-Classic?size=50&padding=5&bots=false)](https://github.com/joshuafhiggins/TF2-Classic/graphs/contributors)
## The Making of the Image
The original image from cm2network used `git clone` to pull the `entry.sh` script changes into the image. This meant that new containers would not get the entry script changes, unless the whole image was scrapped and rebuilt. Docker doesn't rebuild images if the `Dockerfile` hasn't changed, but the image needs to change if the script has changed. The solution was to simply use the `COPY` command in the `Dockerfile`. Besides that, making the Docker image was smooth. I plan on making one for [my Discord bot](https://discord.gg/b48D4m8jNs) next and to find other cool services to spin up on my home server.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

View File

@@ -1,11 +1,11 @@
---
title: "The Ultimate Beeper-iMessage Guide: 2024"
date: 2024-03-24T01:00:00-04:00
lastmod: 2024-05-4T01:00:00-04:00
lastmod: 2024-05-04T01:00:00-04:00
draft: false
description: "The One Guide to Rule Them All (for at least 2024)"
image: "featured-image.png"
image: "featured-image.webp"
tags: ["Beeper", "Beeper Mini", "iMessage", "BlueBubbles", "Virtual Machines"]
categories: ["guides"]

View File

@@ -1,6 +1,6 @@
a {
text-decoration: none;
color: var(--accent-color);
color: var(--body-text-color);
&:hover {
color: var(--accent-color-darker);
@@ -18,8 +18,6 @@ a {
.section-title {
text-transform: uppercase;
margin-top: 0;
margin-bottom: 10px;
display: block;
font-size: 1.6rem;
font-weight: bold;

View File

@@ -91,9 +91,8 @@ main.main {
.main-container {
min-height: 100vh;
align-items: flex-start;
padding: 0 15px;
gap: var(--section-separation);
padding-top: var(--main-top-padding);
padding: var(--main-top-padding) 15px 0;
@include respond(md) {
padding: 0 20px;

View File

@@ -34,14 +34,14 @@
}
}
@for $i from 1 through length($defaultTagBackgrounds) {
&:nth-child(#{length($defaultTagBackgrounds)}n + #{$i}) {
.article-category a {
background: nth($defaultTagBackgrounds, $i);
color: nth($defaultTagColors, $i);
}
}
}
//@for $i from 1 through length($defaultTagBackgrounds) {
// &:nth-child(#{length($defaultTagBackgrounds)}n + #{$i}) {
// .article-category a {
// background: nth($defaultTagBackgrounds, $i);
// color: nth($defaultTagColors, $i);
// }
// }
//}
}
}

View File

@@ -14,6 +14,15 @@
box-shadow: var(--shadow-l1);
overflow: hidden;
@media (max-width:768px) {
border-radius: unset;
width: 100vw;
position: relative;
left: 50%;
transform: translateX(-50%);
max-width: none;
}
.article-header {
.article-image {
img {

View File

@@ -218,6 +218,30 @@
flex-direction: row;
gap: 10px;
@media (max-width: 768px) {
display: none;
}
svg {
width: 24px;
height: 24px;
stroke: var(--body-text-color);
stroke-width: 1.33;
}
}
.social-menu-waffle {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: row;
gap: 10px;
@media (min-width: 768px) {
display: none;
}
svg {
width: 24px;
height: 24px;

View File

@@ -90,6 +90,10 @@
flex-direction: column;
gap: var(--sidebar-element-separation);
@media (max-width: 768px) {
flex-direction: row;
}
@include respond(md) {
padding: 0;
}

View File

@@ -14,6 +14,13 @@
/* Tag cloud widget */
.tagCloud {
a {
display: flex;
flex-direction: row;
gap: 1rem;
align-items: center;
}
.tagCloud-tags {
display: flex;
flex-wrap: wrap;
@@ -43,6 +50,13 @@
background-color: var(--card-background);
}
a {
display: flex;
flex-direction: row;
gap: 1rem;
align-items: center;
}
.archives-year {
&:not(:last-of-type) {
border-bottom: 1.5px solid var(--card-separator-color);

View File

@@ -11,12 +11,12 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
--main-top-padding: 50px;
}
--body-background: #fbfbfe;
--body-background: #faf8f5;
--accent-color: #443dff;
--accent-color-darker: #2f27ce;
--accent-color-text: #fff;
--body-text-color: #040316;
--accent-color: #6daf62;
--accent-color-darker: #5f5735;
--accent-color-text: #1d1a11; //9dc497
--body-text-color: #1d1a11;
--tag-border-radius: 4px;
@@ -27,11 +27,11 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
--scrollbar-track: var(--body-background);
&[data-scheme="dark"] {
--body-background: #010104;
--accent-color: #443dff;
--accent-color-darker: #3a31d8;
--accent-color-text: #fff;
--body-text-color: #eae9fc;
--body-background: #0a0805;
--accent-color: #5fa56c;
--accent-color-darker: #cac2a0;
--accent-color-text: #eeebe2; //41683b
--body-text-color: #eeebe2;
//--scrollbar-thumb: hsl(0, 0%, 40%);
--scrollbar-thumb: var(--card-background);
--scrollbar-track: var(--body-background);
@@ -58,8 +58,8 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
* Card style
*/
:root {
--card-background: #cfcdf0;
--card-background-selected: #dddbff;
--card-background: #acdfa4;
--card-background-selected: #c8dec4;
--card-text-color-main: #040316;
--card-text-color-secondary: #747474;
@@ -91,7 +91,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
// --accent: #0600c2;
&[data-scheme="dark"] {
--card-background: #171530; //020024
--card-background: #204427; //020024
--card-background-selected: rgba(255, 255, 255, 0.16);
--card-text-color-main: rgba(255, 255, 255, 0.9);
--card-text-color-secondary: rgba(255, 255, 255, 0.7);

View File

@@ -18,30 +18,30 @@
<section class="section-description">{{ .Content }}</section>
</div>
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "section") .RelPermalink "section" -}}
{{ if $image.exists }}
<div class="section-image">
{{ if $image.resource }}
{{- $Permalink := $image.resource.RelPermalink -}}
{{- $Width := $image.resource.Width -}}
{{- $Height := $image.resource.Height -}}
{{- if (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}
{{- $thumbnail := $image.resource.Fill "120x120" -}}
{{- $Permalink = $thumbnail.RelPermalink -}}
{{- $Width = $thumbnail.Width -}}
{{- $Height = $thumbnail.Height -}}
{{- end -}}
<img src="{{ $Permalink }}"
width="{{ $Width }}"
height="{{ $Height }}"
loading="lazy">
{{ else }}
<img src="{{ $image.permalink }}" loading="lazy" />
{{ end }}
</div>
{{ end }}
<!-- {{- $image := partialCached "helper/image" (dict "Context" . "Type" "section") .RelPermalink "section" -}}-->
<!-- {{ if $image.exists }}-->
<!-- <div class="section-image">-->
<!-- {{ if $image.resource }}-->
<!-- {{- $Permalink := $image.resource.RelPermalink -}}-->
<!-- {{- $Width := $image.resource.Width -}}-->
<!-- {{- $Height := $image.resource.Height -}}-->
<!-- -->
<!-- {{- if (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}-->
<!-- {{- $thumbnail := $image.resource.Fill "120x120" -}}-->
<!-- {{- $Permalink = $thumbnail.RelPermalink -}}-->
<!-- {{- $Width = $thumbnail.Width -}}-->
<!-- {{- $Height = $thumbnail.Height -}}-->
<!-- {{- end -}}-->
<!-- -->
<!-- <img src="{{ $Permalink }}" -->
<!-- width="{{ $Width }}"-->
<!-- height="{{ $Height }}" -->
<!-- loading="lazy">-->
<!-- {{ else }}-->
<!-- <img src="{{ $image.permalink }}" loading="lazy" />-->
<!-- {{ end }}-->
<!-- </div>-->
<!-- {{ end }}-->
</div>
</header>

View File

@@ -2,7 +2,7 @@
{{ if .Params.categories }}
<header class="article-category">
{{ range (.GetTerms "categories") }}
<a href="{{ .RelPermalink }}" {{ with .Params.style }}style="background-color: {{ .background }}; color: {{ .color }};"{{ end }}>
<a href="{{ .RelPermalink }}">
{{ .LinkTitle }}
</a>
{{ end }}

View File

@@ -2,7 +2,7 @@
{{- $disqusjs := .Site.Params.Comments.disqusjs -}}
{{- if and (not $pc.Disable) (and $disqusjs.Shortname $disqusjs.ApiKey) -}}
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | resources.ToCSS | minify -}}
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | css.Sass | minify -}}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<div class="disqus-container">

View File

@@ -32,8 +32,8 @@
<meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/>
{{- end -}}
{{- else -}}
{{- if not .Site.LastChange.IsZero -}}
<meta property='og:updated_time' content='{{ .Site.LastChange.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
{{- if not .Site.Lastmod.IsZero -}}
<meta property='og:updated_time' content='{{ .Site.Lastmod.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
{{- end -}}
{{- end -}}

View File

@@ -1,3 +1,3 @@
{{ $sass := resources.Get "scss/style.scss" }}
{{ $style := $sass | resources.ToCSS | minify | resources.Fingerprint "sha256" }}
{{ $style := $sass | css.Sass | minify | resources.Fingerprint "sha256" }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">

View File

@@ -1,10 +1,4 @@
<aside class="sidebar left-sidebar sticky {{ if .Site.Params.sidebar.compact }}compact{{ end }}">
<button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="{{ T `toggleMenu` }}">
<span class="hamburger-box">
<span class="hamburger-inner"></span>
</span>
</button>
<header>
{{ with .Site.Params.sidebar.avatar }}
{{ if (default true .enabled) }}
@@ -35,6 +29,12 @@
<h1 class="site-name"><a href="{{ .Site.BaseURL | relLangURL }}">{{ .Site.Title }}</a></h1>
<h2 class="site-description">{{ .Site.Params.sidebar.subtitle }}</h2>
</div>
<button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="{{ T `toggleMenu` }}">
<span class="hamburger-box">
<span class="hamburger-inner"></span>
</span>
</button>
</header>
{{- with .Site.Menus.social -}}
@@ -76,18 +76,6 @@
{{ end }}
<div class="menu-bottom-section">
{{- $currentLanguageCode := .Language.Lang -}}
{{ with .Site.Home.AllTranslations }}
<li id="i18n-switch">
{{ partial "helper/icon" "language" }}
<select name="language" onchange="window.location.href = this.selectedOptions[0].value">
{{ range . }}
<option value="{{ .Permalink }}" {{ if eq .Language.Lang $currentLanguageCode }}selected{{ end }}>{{ .Language.LanguageName }}</option>
{{ end }}
</select>
</li>
{{ end }}
{{ if (default false .Site.Params.colorScheme.toggle) }}
<li id="dark-mode-toggle">
{{ partial "helper/icon" "toggle-left" }}
@@ -95,6 +83,26 @@
<span>{{ T "darkMode" }}</span>
</li>
{{ end }}
{{- with .Site.Menus.social -}}
<ol class="social-menu-waffle">
{{ range . }}
<li>
<a
href='{{ .URL }}'
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
{{ with .Name }}title="{{ . }}"{{ end }}
rel="me"
>
{{ $icon := default "link" .Params.Icon }}
{{ with $icon }}
{{ partial "helper/icon" . }}
{{ end }}
</a>
</li>
{{ end }}
</ol>
{{- end -}}
</div>
</ol>
</aside>

View File

@@ -1,11 +1,12 @@
{{ if (.Context.Scratch.Get "TOCEnabled") }}
<section class="widget archives">
<div class="widget-icon">
{{ partial "helper/icon" "hash" }}
</div>
<h2 class="widget-title section-title">{{ T "article.tableOfContents" }}</h2>
<div class="widget--toc">
<div style="display: flex; flex-direction: row; align-items: center; gap: 0.5rem; padding-top: 1rem; padding-left: 1rem; border-bottom: 1.5px solid var(--card-separator-color);">
<div class="widget-icon" style="width: 32px; height: 32px;">
{{ partial "helper/icon" "hash" }}
</div>
<h2 class="widget-title section-title" style="text-anchor: middle">{{ T "article.tableOfContents" }}</h2>
</div>
{{ .Context.TableOfContents }}
</div>
</section>