Compare commits

..

128 Commits

Author SHA1 Message Date
011e887dbc Change the edited attribute to lastmod which is already implemented by the theme. 2025-12-08 08:25:48 -07:00
849cd8dca9 Add installation guides. 2025-12-08 08:23:28 -07:00
1c16b836a1 Shorten the subtitle and move its wording to the introduction. 2025-12-08 07:45:32 -07:00
6ad401b951 Spellcheck the new article. 2025-12-08 07:40:43 -07:00
4451eed3d0 Add email address to the bottom of each post. 2025-12-08 07:38:50 -07:00
21042fe8e0 Finalize content for Linux laptop article. 2025-12-08 07:38:33 -07:00
fd13570a30 Add draft with exerpt from a recent conversation about Linux laptops. 2025-12-08 07:09:11 -07:00
1ce075d1f8 Add more fields to the poetry archetype. 2025-12-08 07:07:54 -07:00
2650a586fc Change the default.md archetype to posts.md so it is used automatically by hugo new. 2025-12-08 07:07:41 -07:00
a2cd6c853c Add subheader in draft content. 2025-11-21 17:59:08 -07:00
ea2d23957d Reword as to not use you. 2025-11-21 11:25:01 -07:00
a4e02a0c43 Keep the draft tag until actually publishing. 2025-11-21 11:24:25 -07:00
80f8880aa9 Move information on layouts into main README since Hugo was actually trying to parse it as a layout file. 2025-11-21 11:23:52 -07:00
ed79eb891c Begin a file of WHY check-ins are bleh. 2025-11-21 11:20:27 -07:00
ab7d911937 Additional content for Am I Alive? 2025-11-21 11:20:10 -07:00
c547eac69e Add a README to the shortode folderwhich explains a few things.. 2025-11-21 11:19:53 -07:00
5cffb1ea62 Add a shortcode to hide blocks of content. 2025-11-21 11:19:39 -07:00
144ce59f3b Add ability to create comments by just allowing anything in the template and not doing anything with it. 2025-11-21 11:12:32 -07:00
a89665f6a4 Add ability to flag certain content as a Work In Progress or TBD. This makes it more noticeable in both content file and webpage. 2025-11-21 11:12:00 -07:00
9f8ab1d2d5 Remove extra whitespace in external links. 2025-11-21 11:11:16 -07:00
79ae67a4c0 Help the code block text stand out better by defining the languages. Remove the horizontal lines. 2025-11-21 10:01:18 -07:00
e5854a5778 Fixes for page formatting, some things were still a bit wonky. Looking better now for blogposts, tech guides, and poetry with audio sections. 2025-11-21 10:00:38 -07:00
27da4cbadd Begin adding content to a pinned blogpost. 2025-11-21 09:59:55 -07:00
f6e36aa6c6 If no text is provided for external-link, use the URL as the text. 2025-11-21 09:59:33 -07:00
f9be04dc7d Move to YAML for config, much easier to read and write. Got TOC hierarchy now working as expected. Other sections like goldmark and menu now make more sense too. 2025-11-21 09:58:19 -07:00
26964d8675 Addd TBD for CAD images. 2025-11-19 20:42:41 -07:00
de78abd352 Add TBD's to finish implementing external links. 2025-11-19 20:38:20 -07:00
6123692906 Prevent URLs from becoming links by markdownify. 2025-11-19 20:35:56 -07:00
20f874a586 Add break so that Odysee videos are never inline. 2025-11-19 20:35:38 -07:00
b3531c6f1f Do not end HTML shortcode tags on their own line, sometimes causes page to fail loading. 2025-11-19 20:29:57 -07:00
c3d905aa15 Fix external URLs and remove old URL markdown. 2025-11-19 20:20:19 -07:00
62048fa055 Shorten title for Apple WiFi Issues. 2025-11-19 20:18:30 -07:00
b654c9db08 Ensure shortcode alt text gets displayed as markdown. 2025-11-19 20:17:17 -07:00
15bf95cdfa Display external link text as markdown. 2025-11-19 20:16:02 -07:00
bbf9428ea9 Change camping chair article to completely use external links. 2025-11-19 20:15:47 -07:00
2a9523a63b Move embed for Odysee into a shortcode. 2025-11-19 20:08:44 -07:00
0a9c7270fb Remove excess newlines. 2025-11-19 20:08:14 -07:00
98db946a83 Add the viking chair's CAD images from Cognitive Delight. 2025-11-19 20:02:44 -07:00
15850d3c92 Add ability to have a fallback image if the primary no longer exists. 2025-11-19 20:02:17 -07:00
04eab8ff39 Finalize edits to the Apple WiFi article. 2025-11-19 20:01:48 -07:00
8d1be5af57 Release the Apple WiFi help guide. 2025-11-19 19:28:52 -07:00
54b7f45754 Large set of edits for Apple WiFi article. 2025-11-19 19:21:32 -07:00
8b039b54d1 Add method for creating links which open in new tabs. 2025-11-19 19:21:08 -07:00
419e8e3383 Beginning reviews and edits on Apple wifi post. 2025-11-19 14:33:42 -07:00
8729da7efb Simplify example hierarchy at the end. 2025-11-19 13:03:07 -07:00
427018d2c8 Add article on fixing Apple WiFi issue. Still needs spellchecking and review. 2025-11-19 13:01:46 -07:00
70ccf6d733 Add missing tags to SSH Keys. 2025-11-19 13:01:27 -07:00
94c1331121 Change 'disease' to 'sickness'. 2025-11-19 11:19:21 -07:00
d43b5959bf Align the dates better with th e comments. 2025-11-17 18:07:31 -07:00
696a2e635e Ensure that eBooks is capitalized correctly. 2025-11-17 18:07:17 -07:00
15edd8f006 Add a few more outline sections to will. 2025-11-17 18:07:07 -07:00
98b3edb7a8 Show the pinned category with a paperclip as well. 2025-11-17 18:01:57 -07:00
af0fe569a3 Do not show a tag, series, or category if it is called pinned. 2025-11-17 17:59:40 -07:00
1543c5602f Add a section in the footer to denote that the article is pinned. 2025-11-17 17:59:22 -07:00
a10daf86fd Add a paperclip icon for pinned articles. 2025-11-17 17:59:02 -07:00
927613629f Add aliases to eBooks. 2025-11-17 17:39:45 -07:00
207f95f374 Edits to My People. 2025-11-17 17:39:31 -07:00
cc40cf9540 Greatly increase pagination variable. Setting to 0 and -1 do not disable the feature, unfortunately. 2025-11-17 17:39:16 -07:00
8fa2423e98 Only show the subtitle if it's an article, not a tag, series, or category list, by checking if the date and author are also set. 2025-11-17 17:38:45 -07:00
e9a32cced5 Further edits and addition of content for My People. 2025-11-17 13:56:55 -07:00
2cfef15d49 Add tags to My People post. 2025-11-17 13:37:21 -07:00
7a4539fab4 Spellcheck the My People post. 2025-11-17 13:35:19 -07:00
b724d280c5 Add an initial, unfinished, unrevised, and unedited version of My People. 2025-11-17 13:33:14 -07:00
86f5c90096 Enhance main menu's list homepages. 2025-11-16 20:59:24 -07:00
a8a69ea376 Allow markdown in a list's subtitle field. 2025-11-16 20:58:14 -07:00
5159751b44 Fully implement the food list comment. 2025-11-16 20:50:17 -07:00
ca6e98ecef Remove author from list indexes. 2025-11-16 20:48:59 -07:00
026adf68a5 Add subtitle for book tags. 2025-11-16 20:48:46 -07:00
9ea203b2f7 Use strong for subtitle now that headers are truly headers again. 2025-11-16 20:44:07 -07:00
7da019a2ee Add placeholder for eventual Odysee content shortcode. 2025-11-16 20:23:21 -07:00
cc8110901c Add audio to all poems. 2025-11-16 20:20:21 -07:00
58ee8ddb68 Continue adjusting style so that posts are more succint. 2025-11-16 20:19:39 -07:00
2362423a87 Refactor the poem's author to be prettier. Does not affect functionality 2025-11-16 19:49:47 -07:00
d4e76877e9 Add more CSS elements and be more specific with header sizes. 2025-11-16 19:49:11 -07:00
c53161a723 Make the recipe's author prettier. 2025-11-16 19:48:40 -07:00
5098f4ac1e Remove deprecated / unused shortcodes. 2025-11-16 19:48:22 -07:00
789fd6ec8d Fix recipe, did not realize it was not formatted properly. 2025-11-16 19:48:00 -07:00
a7c437c14b Finalize the pinto bean recipe. 2025-11-16 19:32:38 -07:00
73b1f415f6 Use a header on lists now that the gaps have been fixed. 2025-11-16 19:32:23 -07:00
82b6f78627 Reduce the amount of space above and below headers. Now things seem much easier to read!! 2025-11-16 19:32:03 -07:00
4b13c1a771 Change eBooks menu item to Books. 2025-11-16 19:31:15 -07:00
e94792ce04 Make the author title case for testing. 2025-11-16 19:02:13 -07:00
ca54b70d56 Add logic for Default author. Make parameter lowercase for easy of validation. 2025-11-16 19:01:32 -07:00
0f332ec4ee Run the byline partial if the author tag is present, even if it's null. 2025-11-16 19:00:41 -07:00
8c434ab71d Simplify article which use HyperVegan as author. 2025-11-16 18:49:42 -07:00
d836315946 Simplify articles which use HyperVegan as author. 2025-11-16 18:49:16 -07:00
854cdf2fd7 Simplify articles which use Hyperling as author. 2025-11-16 18:49:05 -07:00
67fcc20a3a Simplify articles which use Bug as author. 2025-11-16 18:48:44 -07:00
2ea3d73112 Remove author from list indexes. 2025-11-16 18:47:48 -07:00
8d9cee36bf Add a default author. 2025-11-16 18:47:29 -07:00
c2b53e85d2 Place the modified single.html back into _default. Copy + modify layout/posts/single.html from the hello-friend-ng theme. 2025-11-16 18:40:07 -07:00
e60c63626b Rename partial author to byline. 2025-11-16 18:30:47 -07:00
7b8342eba0 Remove the 'by' portion from shortcode. 2025-11-16 18:30:35 -07:00
d8ef8a370a Use partial and shortcode for author on gulllible poem. 2025-11-16 18:29:09 -07:00
3f2b174a93 Do the author partial like how the author shortcode needed done. 2025-11-16 18:28:39 -07:00
53deccc716 Get the author shortcode working properly as well. 2025-11-16 18:28:07 -07:00
500eee955d Refactor to avoid excess spaces and newlines in output. 2025-11-16 18:25:29 -07:00
0471787ed5 Call the author partial rather than simply placing the author in the content. 2025-11-16 18:25:08 -07:00
303d51066a Add author names to site config. 2025-11-16 18:24:41 -07:00
e67709bb0d Add a working partial which gets the full author name from the site config file. 2025-11-16 18:24:30 -07:00
a9377c0817 Add shortcode for audio. 2025-11-16 17:38:05 -07:00
03738c6660 Add missing hyphens to end of poems. 2025-11-16 12:50:26 -07:00
0c0d912e4d Attempt to add a different single.html for poetry. Hugo does not seem to notice. 2025-11-16 12:49:17 -07:00
48c2aeff49 Learning if-then in Hugo/Go templates. 2025-11-16 12:48:34 -07:00
c143eae7c5 Use shortcode for the byline. 2025-11-16 12:22:05 -07:00
574715a9a5 Correct the author, food topics are HyperVegan. 2025-11-16 12:21:43 -07:00
f16adabe36 Add shortcodes. 2025-11-16 12:20:07 -07:00
20aaa302ad Refactor front matter. 2025-11-16 11:58:08 -07:00
7598116ffa Refactor the tags to be a list format rather than array. 2025-11-16 11:57:51 -07:00
8e7ae95780 Use the new tags partial properly. 2025-11-16 11:57:22 -07:00
cad77175e2 Fix extra semi-colon in series CSS. 2025-11-16 11:57:05 -07:00
4b59058e95 Add partials for tags and categories based on the now finished series partial. 2025-11-16 11:56:44 -07:00
a07a87f838 Add local icons and a note on where they came from. They are contained in folders denoting the size and color. 2025-11-16 11:51:06 -07:00
d6291eb290 Moved series2.html over series.html, remove reference to old file. 2025-11-16 11:49:38 -07:00
24dcb51281 Use local SVG icons rather than drawing them. 2025-11-16 11:49:04 -07:00
2e76bf14f2 Update wording to show that allergens do not completely/always align with dog/rabbit allergies. 2025-11-16 11:16:35 -07:00
2178d14790 Use the subtitle on the food list. 2025-11-16 11:13:10 -07:00
d80b284b2f Change the list page to still have the title and subtitle, but make them smaller yet still able to stand out. 2025-11-16 11:12:58 -07:00
b7c6d8657d Change main header to be an H1 so that article TOC flows better (not that it's working 100% as desired yet, though!). 2025-11-16 11:12:33 -07:00
2e8ce5b686 Moving single.html to the posts type gets it working, yay! Still unsure why _default was not being used, it works for list and baseof though. 2025-11-16 11:05:26 -07:00
1a9d159502 Change new script's permissions. 2025-11-16 11:03:46 -07:00
2f1401e085 Finalize new poems. 2025-11-16 11:03:29 -07:00
af8e2649b2 Add by-line, even though still not being rendered. 2025-11-16 11:03:08 -07:00
867e9f596b Add a small script which ensures the submodules are loaded before starting the development server. 2025-11-16 10:50:18 -07:00
cac4f0930f Add a poem regarding the gulllibility of folks. 2025-11-16 10:49:48 -07:00
41ab07dda9 Add a poem for Self-Love. 2025-11-16 10:48:48 -07:00
863814cae4 Add 2025 birthday poem. 2025-11-16 10:35:41 -07:00
11d3782660 Move poetry defaults tp top level, was not working properly on another device. 2025-11-16 10:31:38 -07:00
1210 changed files with 2505 additions and 107 deletions

View File

@@ -7,3 +7,39 @@ Orignally created to move my recipes from a local flash drive to a small and sim
This website is going to be turned into something bigger, like a blog site of sorts.
Subdomain is going to be changed to musings., writings., articles., blog., works., or something more appropriate. [TBD/TODO]
# Project Structure
## layouts
### _default
TBD
### partials
TBD
### Short Codes
Short codes provide code utility in content files. They can call partials but not other short codes.
`comment.html` is intentionally blank, it allows comments in content files which do nothing.
For block comments, use `hide.html` such as:
```
{{< hide >}}
lalala
this is markdown content
# secret section not published yet
super duper unfinished content
{{< /hide >}}
```
### posts
Layouts specifically related to content under `/posts/`

View File

@@ -1,10 +1,13 @@
---
draft: true
pinned: false
title: "{{ replace .Name "-" " " | title }}"
subtitle: ""
author: 'Chad Michael "Bug" Greenwood'
author: Bug
date: "{{ .Date }}"
toc: false
started:
lastmod:
toc: true
images:
tags:
- poetry

View File

@@ -1,9 +1,12 @@
---
draft: true
pinned: false
title: "{{ replace .Name "-" " " | title }}"
subtitle: ""
author: 'Chad Michael "TBD" Greenwood'
author: authorDefault
date: "{{ .Date }}"
started:
lastmod:
toc: true
images:
tags:

View File

@@ -1,5 +1,4 @@
---
author: Hyperling
title: "Home"
---

View File

@@ -1,5 +1,4 @@
---
author: Hyperling
title: "All Categories"
---

View File

@@ -0,0 +1,3 @@
---
title: eBooks
---

View File

@@ -1,7 +1,4 @@
---
author: Hyperling
title: "All Posts"
#subtitle: "Chronologically posted articles."
subtitle: "Every article listed chronologically. You may also browse by [category](/categories), [series](/series), or [tag](/tags)."
---
Articles are listed chronologically. You may also browse by [category](/categories), [series](/series), or [tag](/tags).

View File

@@ -1,30 +1,71 @@
---
draft: yes
title: "Is Chad Alive???"
date: TBD
pinned: true
draft: true
title: "Is Chad Alive??"
subtitle: "How to easily check if I'm alive and well!"
author: Hyperling
date: "2025-11-21T09:00:00-07:00"
toc: true
tags:
- blog
series:
- solitude
categories:
- blogposts
toc: yes
aliases:
- /is-chad-alive
---
**This page has yet to be completed. Please check back later.**
## Most Likely
If you've been sent here because you asked if I'm doing alright, please bookmark this page so that you don't need to ask again. :)
### Code Changes
## Where to find "Signs of Life"
Here are a few ways to confirm that I'm alive and have been online recently.
### Most Likely
## Somewhat Likely
#### Code Changes
### Odysee Videos
I love working on my projects. The longest I'd likely go without changing something is a week. Don't worry about the technical details, just check the timestamps.
- {{< external-link "https://git.hyperling.com/me?tab=activity" >}}
#### Written Posts
## Least Likely
This website is new (at least compared to when this article is being posted) and I'm enjoying adding things every few days. Eventually it may just be weekly or biweekly though.
### Recent Photos
- {{< external-link "https://works.hyperling.com/posts" "/posts" >}}
### Somewhat Likely
#### Odysee Videos
There's not much rhyme or reason as to when I make videos. Someties there are a few ina week, sometimes only one every quarter or half year. It's a better proof of life than just code and written changes though, I suppose.
- {{< external-link "https://odysee.com/@HyperVegan:2" >}}
### Least Likely
#### Recent Photos
As of this article I'm well over a year late on posting photos. I've worked on organizing them but it's just not much of a priority. I'll get to them eventually, probably.
- {{< external-link "https://hyperling.com/photos/" >}}
## Conclusion
I really don't like check-ins, please don't ask for them. xD
Ask me to hang out instead! Or if we're not currently near each other, tell me some cool news and I'll respond when I can.
I tend to ignore messages such as "Everything alright?". So seriously, don't do it. 😂
{{% hide %}}
- Please see "{{< external-link "Managing Your Emotions" "/stop-projecting-fear-on-me" >}}" to understand why.]
{{% /hide %}}
Otherwise don't be surprised if I take longer to get back to you than others. 😈
{{% tbd "lalalalla! This is a test! :)" %}}

View File

@@ -0,0 +1,117 @@
---
draft: true
pinned: true
title: "My People"
subtitle: "Searching for Community"
author: Bug
# date: "2025-11-17T07:30:00-07:00" # Started Notes
# date: "2025-11-17T13:30:00-07:00" # Started File
date: "2025-11-17T13:30:00-07:00" # Published
toc: true
images:
tags:
- blog
- freedom
- life
- care
- sobriety
- love
- courage
- patience
- athleticism
series:
- community
- friendship
- spirituality
categories:
- musings
- pinned
aliases:
- /my-people
- /pinned/my-people
---
**Table of Desired Traits**
`A few of the characteristics that each individual would demonstrate.`
| Chakra | Trait | Liberation | Explanation |
| :-: | :--: | :-----: | :------------- |
| 🤍 🤍 🩷 | [TBD: Service] | Freedom from Materialism | Looks towards improving the life of others rather than the lower self. |
| 💜 💜 💜 | Sober | Freedom from Vices | Able to control the Mind so that the Self may remain in control. |
| 💙 💙 💙 | Assertive | Freedom from Laziness | Speaks when ideas need voiced; contributes to the collective voice. |
| 💚 💚 🖤 | Peaceful | Freedom from Violence | Does not cause harm to others, including non-human entities. |
| 💛 💛 💛 | Brave | Freedom from Fear | Can muster strength when required and stand up for Truth when it is threatened. |
| 🧡 🧡 🧡 | Patient | Freedom from Assumption | Makes informed decisions and refrains from jumping to harmful conclusions. |
| ❤️ ❤️ 🤎 | Fit | Freedom from Pain | Athletic, clean, and capable. Healed from chronic aches and sicknesses. |
## Prologue
I have met a few others who live a lifestyle similar to myself. Long term vegans who are active and say No to processed foods. They're physically active, even if older than most people would think possible. Any health ailments are due to stress and lifestyle, and are typically minuscule and considered nearly negligible compared to the current level of health being displayed by the mainstream.
Yet most the time, since these folks are so far and few, all spread thin across the globe, it is easy to feel that others do not exist. I've visited communities, ashrams, festivals, "healthy" restaurants, trails, gyms, [TBD: X], and [TBD: Y], yet found no place where we are abundant. Most people, even if they have awakened their mind to the madness consuming our world, still remain ignorant when it comes to their Health. They do not fully align themselves with Nature and seek a more natural lifestyle.
Some of the closest folks I have met with these traits are vegan Hare Krishna monks. Those which are not vegan are typically overweight and sometimes even have a less than desirable attitude towards life or others, which in my opinion does not reflect true Krishna Consciousness, and pushes me further from their "spiritual path", which appears to me as a religion. There is decent overlap with objective moral codes, and there is also oddness and absurdity in some of the rituals which does not align with what I see being truly needed in this world.
### What I Am Seeking
Folks who care about themselves or others so much that they are willing to take their lives seriously; improving themselves to be the best being they can while striving to help others in an effort to make the world a better place.
Gardens, orchards, [TBD: berry patches], and all sorts of ways to grow our own food, foraging what we can't. Tending to both the cultivated crops and the native plants of our surroundings, being a benefactor of the area and allowing it to enjoy our prescence. [TBD: more?]
Community kitchens, sweat lodges, group activities such as hikes, drum circles, and stargazing. A rotating schedule of checking in on community members to see if they could use a hand in any projects or personal [TBD: problems? emotions? healing? dilemmas?]. [TBD]
All of this in a respectuful, voluntary, non-culty way which also respects people's desire to take solitude from time to time. Obligatory events would mean coercion, oppression, and violence which have no place in such a group.
## The Problems
Truly, going out into society feels like a fairy tale when I am present. People are so far removed from Nature in today's world. I sometimes must pause and remind myself that it's not a dream, and that I too was once living under these conditions.
### Technology Addictions
Perfumes and cologne, makeup and [Z]. Many artificial [TBD: objects] exist in the cities which most people are so desensitized to that they don't even notice. Enter the overwhelming obsession with technology. A complete addiction at this point. Even in remote areas such as mountain tops or hike-in hot springs, you will be sure to see smartphones being used to take photos or videos. I see using them as a map as one thing, since the user is in control and the device is a tool for adventure. This new trend feels more like a perversion, a distraction, of what is truly important.
[Consuming the landscape as a social media [TBD: hit,blurb]], however, feels sacrilege. Insulting. I would rather see the beautiful sunrises and sunsets, waterfalls, forests, hillsides, rivers, and mountain peaks as paintings and drawings, listen to an instrumental piece created in their honor, or hear campfire stories of how amazing it was. When someone puts a digital device in my face to view pictures, they feel mute, dead, and dishonorable compared to the real thing.
This doesn't even get into video games, television and streaming, etc which also take up obscene amounts of time. Engaging in a distraction here and there can be helpful in reducing stress. Living this way leads to a consumerist attitude and sidebars creative feats and [TBD: ABC'd] endeavors from coming to fruition.
### Ignorance to Food
Even if someone is to go vegan, committing themselves to a lifestyle on non-violence to non-human animals, they are likely to continue consuming junk foods. Most people I talk to seem to think that oil is a health food. It is one of the most refined substances in the dietary world, the fatty version of processed sugar. If it does not grow immediately on a plant, then it is not a `Whole Food`. If it is not a `Whole Food`, then it did not come from `Nature`, it has been altered by the industrialized "food" system and has lost many of its beneficial qualities.
It also still astounds me that things like McDonald's still exist. That people actually go to places such as that, and that they still get enough business to keep them happily popping up all over the place. That people are so oblivious to the Truth that they elect to work in these harmful places and help perpetuate the damage being done to the animals and the planet.
I enjoy asking people a simple question. "Would you rather live in a garden, or a slaughterhouse?" This can be substituted with many examples which show the direct oppression and duality of the situation.
| Plant Agriculture | Animal Domination |
| :-------: | :-------: |
| Orchard | [TBD: hen house thing] |
| Farm Field | [TBD: cow pasture] |
| [TBD: berry patch??] | [TBD: holding cell] |
| [TBD: ] | [TBD: baby animal pen] |
## The Solutions
### Get Outside
We may be born in an artificially lit box with stagnant air in today's times, but that's not how our ancestors came about (unless you get into the theories that we're not from here -- but that's not what this is about 😜). The outdoors were our home before we started constructing our own shelters. This allowed us to move away from locations where we may have been able to survive year-round without fire, clothing, and man-made shade structures.
Most of us still live somewhere that we can enjoy the outdoors for at least a few of the seasons. Even in the less desirable seasons, there are ways we can improve our comfort and help motivate ourselves to breathe some fresh air while moving our lymphatic system.
### Electronic Free Time
Not everyone wants to be a luddite, and that's fine. This blog post is a digitally created piece, after all. There is a time and place for technology in today's world. If a task can be completed without powering on any electronics, consider completing it in an analog way. I personally carry a small notepad and pen rather than a smartphone so that I may still jot down reminders and exchange contact information.
I also spend certain times of the day and sometimes days of the week without using the Internet, even if I still get on devices in order to work on projects. And some days I avoid using any digital devices and instead choose to read, hike, swim, visit with friends, do camp duties or vehicle maintenance, etc. if you haven;t already tried it, you'll be blown away with how much time there is in the day, and how much you can find to do.
### Grow Your Own Food
Don't have a yard, you say? A friend or family member may be wishing they had help with theirs! Many communities also have spaces for raised bed gardening.
Joining a Master Gardener group was a simple and easy way that I got involved with educating myself on these topics. It required taking a single course which was about a semester long (12 weeks) and you get filled with all the required horticultural, botanical, and soil science knowledge that it takes to then know how to find the answer any gardening type question. That's all a Master Gardener is, not one who knows it all, but one who knows how to find out.
If there's truly not anywhere to tend to your own plants, perhaps learn foraging instead. This skill is highly efficient at getting you outdoors and you may learn there is quite a bit more food around than you thought!
## Conclusion
[TBD]

View File

@@ -1,14 +1,17 @@
---
draft: yes
title: "Chad's Will"
title: "My Will"
subtitle: ""
author: ""
date: TBD
tags:
- blog
series:
- public notice
categories:
- blogposts
- TBD
toc: yes
aliases:
---
**This page has yet to be completed. Please check back later.**
@@ -31,4 +34,10 @@ toc: yes
## Belongings
### Liquid Assets
### Physical Assets
### Crypto Assets
### TBD

View File

@@ -0,0 +1,8 @@
---
draft: true
---
## 1. It shows a fear-based mentality.
### It projects that feat onto me.
## 2. It shows a lack of trust.
## 3. It shows a lack of support.

View File

@@ -1,7 +1,7 @@
---
title: Voluntary Sovereignty
date: "2025-09-28T12:00:00-07:00"
author: 'Chad Michael "Hyperling" Greenwood'
author: hyperling
tags:
- books
- natural law
@@ -21,6 +21,13 @@ series:
- freedom
categories:
- ebooks
aliases:
- /freedom
- /books/freedom
- /voluntary-sovereignty
- /books/voluntary-sovereignty
TBD:
- Change URLs to be external-link.
---
Short eBook and printable booklet succinctly covering Morality and Sovereignty.

View File

@@ -1,7 +1,7 @@
---
title: "Hyperling's Health Protocol"
date: "2024-03-07T12:00:00-07:00"
author: "HyperVegan"
author: hypervegan
tags:
- books
- diet
@@ -18,6 +18,15 @@ series:
- health
categories:
- ebooks
aliases:
- /health
- /books/health
- /health-protocol
- /books/health-protocol
- /health-hyperlings-protocol
- /books/hyperlings-health-protocol
TBD:
- Change URLs to be external-link.
---
I define health as a 6-pillar system based on body dynamics, environment, and mentality. "Hyperling's Health Protocol" is my explanation of how to keep each pillar in peak condition by living as naturally as possible in an industrial world.

View File

@@ -1,6 +1,6 @@
---
title: "Wooden Camping Chair"
author: 'Chad Michael "Bug" Greenwood'
author: bug
date: "2025-09-15"
tags:
- crafts
@@ -18,23 +18,31 @@ aliases:
- /posts/recipes/wooden-camping-chair
- /posts/crafts/wooden-camping-chair
- /wooden-camping-chair
TBD:
- Also make the CAD images URLs to the full size resolution.
---
## Video
<iframe id="odysee-iframe" style="width:65%; aspect-ratio:16 / 9;" src="https://odysee.com/%24/embed/%40HyperVegan%3A2%2F20251104-HyperVegan-WoodenCampingChair%3A9?r=4q2dQKSs36tFPf8KCfHEopK8EYPchiaG" allowfullscreen></iframe>
{{< odysee
"https://odysee.com/%24/embed/%40HyperVegan%3A2%2F20251104-HyperVegan-WoodenCampingChair%3A9?r=4q2dQKSs36tFPf8KCfHEopK8EYPchiaG" >}}
[HyperVegan | Wooden Camping Chair](https://odysee.com/@HyperVegan:2/20251104-HyperVegan-WoodenCampingChair:9)
{{< external-link
text="HyperVegan | Wooden Camping Chair"
url="https://odysee.com/@HyperVegan:2/20251104-HyperVegan-WoodenCampingChair:9" >}}
## What You'll Need
### "Ingredients"
- 8ft long 2x10 (about $20 USD at Home Depot)
- [`example`](https://www.homedepot.com/p/2-in-x-10-in-x-8-ft-2-Premium-Grade-Fir-Dimensional-Lumber-915564/206182030)
- {{< external-link
text="`example`"
url="https://www.homedepot.com/p/2-in-x-10-in-x-8-ft-2-Premium-Grade-Fir-Dimensional-Lumber-915564/206182030" >}}
- 8 2.5in wood screws
- [`example`](https://www.homedepot.com/p/DECKMATE-9-2-1-2-in-Black-Exterior-Self-Starting-Star-Drive-Flat-Head-Deck-Screw-1-lb-87-Piece-115923/313358323)
- {{< external-link
text="`example`"
url="https://www.homedepot.com/p/DECKMATE-9-2-1-2-in-Black-Exterior-Self-Starting-Star-Drive-Flat-Head-Deck-Screw-1-lb-87-Piece-115923/313358323" >}}
### Tools
@@ -223,6 +231,28 @@ O: Short Frame Pieces
1. At each corner of the frame where the short pieces are sitting on the long pieces, drill a pilot hole and add a 2.5in screw or similar.
1. After carefully aligning the seat and having the frame centered, attach the long pieces to the backrest with pilot holes and more 2.5in screws just below where the short pieces were joined.
If done properly the seat should now be contained within the carry handles, and is also able to slide up and out.
If done properly the seat should now be contained within the carry handles, and is also able to slide up and out. It also allows the seat to function as a short bench or table.
[The video discusses the back frame at 07:35 if you'd like to see an example](https://odysee.com/@HyperVegan:2/20251104-HyperVegan-WoodenCampingChair:9?t=455).
{{< external-link
text="The video discusses the back frame at 07:35 if you'd like to see an example"
url="https://odysee.com/@HyperVegan:2/20251104-HyperVegan-WoodenCampingChair:9?t=455"
>}}.
## CAD Schematics
{{< external-link
text="A friend drew up images for the build"
url="https://odysee.com/@HyperVegan:2/20251104-HyperVegan-WoodenCampingChair:9?lc=56c1f4fcf38db6a5584215e6db24ce4ca02afe1eb76648da6a8f5f827d6198ab" >}}
, they're included below. Feel free to use them!
### Back Rest
{{< image-with-fallback alt="Back rest image failed to load. :("
img1="https://thumbnails.odycdn.com/optimize/s:0:0/quality:85/plain/https://i.postimg.cc/T1XMdZxr/2x10-backrest-dimensions.webp"
img2="/img/viking-chair/2x10-backrest-dimensions.webp" >}}
### Seat
{{< image-with-fallback alt="Seat image failed to load. :("
img1="https://thumbnails.odycdn.com/optimize/s:0:0/quality:85/plain/https://i.postimg.cc/d07z8qtH/2x10-seat-dimensions.webp"
img2="/img/viking-chair/2x10-seat-dimensions.webp" >}}

View File

@@ -0,0 +1,28 @@
---
title: "Birthday 2025"
subtitle: ""
author: Bug
date: "2025-11-15T09:00:00-07:00"
toc: false
images:
tags:
- poetry
series:
- birthday
categories:
- musings
aliases:
---
To the tune of "Happy Birthday."
{{% audio src="/audio/poetry/birthday-2025.aac" %}}
> Happy Birthday to me, <br>
> I hiked up Rice Peak! <br>
> I spent the whole day alone, <br>
> and without using a phone!
>
> -- {{% author "bug" %}}
On the day after my birthday I gave myself the gift of a large hike and no means of communication. :)

View File

@@ -1,6 +1,6 @@
---
title: "Friends"
author: 'Chad Michael "Bug" Greenwood'
author: Bug
date: "2025-11-04T10:00:00-07:00"
toc: false
images:
@@ -12,6 +12,8 @@ categories:
- musings
---
{{% audio src="/audio/poetry/friends.aac" %}}
> Friend, friend, what is a friend? <br>
> Surely much more than a means to an end!
>
@@ -21,4 +23,4 @@ categories:
> What a dilemma, to find such a one. <br>
> And then once you've done it -- enjoy the fun!
>
> -- Chad Michael "Bug" Greenwood
> -- {{% author "bug" %}}

View File

@@ -0,0 +1,39 @@
---
title: "Gullible"
subtitle: ""
author: Bug
date: "2025-11-16T06:30:00-07:00"
toc: false
images:
tags:
- poetry
series:
- truth
categories:
- musings
aliases:
---
{{% audio src="/audio/poetry/gullible.aac" %}}
> They give you a whale, <br>
> a big fairy tale. <br>
> You don't take it to heart, <br>
> but that's not the bad part...
>
> The common folk, <br>
> they believe it until they choke. <br>
> They act it out <br>
> as if they don't know how to doubt
>
> Convincing them otherwise -- <br>
> good luck with that. <br>
> They're not open minded enough to change <br>
> and may come at you with a bat!
>
> We shouldn't give up though, <br>
> no matter how tough it gets. <br>
> Disseminating the truth, <br>
> until it's all that exists.
>
> -- {{< author "bug" >}}

View File

@@ -0,0 +1,30 @@
---
title: "Self Love"
subtitle: ""
author: Bug
date: "2025-11-16T06:00:00-07:00"
toc: false
images:
tags:
- poetry
series:
- spirituality
categories:
- musings
aliases:
---
{{% audio src="/audio/poetry/self-love.aac" %}}
> Life is an incredible thing to cherish <br>
> all the way until we perish.
>
> There are ups and downs every here and there, <br>
> and it's all determined by Mind if we choose to care.
>
> If ever there were a thing to do: <br>
> let your expectations go; <br>
> don't take things personally; <br>
> and learn to be best friends -- with You.
>
> -- {{% author "bug" %}}

View File

@@ -1,8 +1,18 @@
---
title: "Simple Dahl w/ Zucchini"
author: 'Chad Michael "Bug" Greenwood'
author: HyperVegan
date: "2025-09-01"
tags: [food, pressure cooker, rice, lentils, dahl, vegetables, curry]
tags:
- food
- pressure cooker
- rice
- lentils
- dahl
- vegetables
- curry
- black pepper
- clove
- ginger
series:
- "curries"
categories:
@@ -16,21 +26,20 @@ aliases:
- 1.5 cups green lentils
- 1 cup rice
- 5 cups water
## Directions
1. soak overnight (12 hours) in 5+ cups water
1. drain and rinse
## Seasonings
- 7 cracks black pepper
- 7 cloves
- ginger to taste (half pinky to full thumb)
- 2 zucchinis
- 5 cups water
- 2 zucchinis, chopped or sliced
1. pressure cook for 20 minutes on high (bean setting)
## Directions
1. soak overnight (12 hours) in 5+ cups water
1. drain and rinse
1. pressure cook with 5 cups of water for 20 minutes on high (bean setting)
1. allow to release pressure naturally (15-20 minutes)
Enjoy!

View File

@@ -1,47 +1,59 @@
---
title: "Refried Pinto Beans"
date: "2025-11-07T12:00:00-07:00"
draft: true
subtitle: "Nightshade Free Pasta / Pizza Sauce!"
author: HyperVegan
date: "2025-11-16T14:00:00-07:00"
toc: true
images:
tags:
- food
- beans
- dip
- pizza sauce
- sauce
- pizza
- pasta
- pinto bean
- oregano
- black pepper
- thyme
series:
- beans
- sauces
- dips
categories:
- recipes
author: "Hyperling"
TBD:
- Change URLs to be external-link.
---
Here's something which can be a main, side, dip, sauce, or whatever!
## Ingredients
- TBD oz instant refried beans
- [Natural Grocer's]
- 750 ml water
- TBD tsp regano
- TBD tsp black pepper
- TBD tsp thyme?
- 7oz bag instant refried pinto beans
- [Natural Grocer's](https://www.naturalgrocers.com/products/beans-instant-rfrd-pinto-org-7-oz)
- 750ml or 4 cups of water
## Directions [WIP]
### Seasonings
1. Bring water to a boil.
2. Add beans and seasonings.
- 0.5 tsp oregano
- 0.5 tsp thyme
- 7 cracks black pepper
| Stove Top | Electric Pressure Cooker |
| :--- | :--- |
| 1. Reduce heat to low and stir while allow to simmer gently for 5 minutes. | 1. Place on Keep Warm and stir until desired consistency is achieved. |
Double these for a bolder flavor.
3. Done!
## Directions
If creating pizza sauce, keep thinner as it will thicken when baked.
1. Bring water to rolling boil.
1. Add pinto beans and seasonings.
1. Stir continuously until beans come to a boil.
1. Turn off heat and continue to stir until beans are no longer bubbling.
1. Allow to cool until desired texture / temperature is reached, 15-20 minutes.
- Stirring occasionally helps speed this up.
- Use a lid once the texture is where you'd like it.
1. Beans may be used as soon as they're the desired texture.
- If eating as a dip, also ensure the temperature is safe.
Dish thickens out naturally as it sits out or cools as well.
Best used thinner for sauces and thicker for dips. If going on a pizza, keep in mind that the oven will help thicken the beans up even more. If used for pasta then ensure it's about the same consistency as it should be served at.
I use an electric pressure cooker on Brown/Saute to do the boiling. If I don't stir it after it stops boiling then I leave the unit on Keep Warm for 30 minutes without a lid which helps evaporate more water if I want it thick.

View File

@@ -0,0 +1,215 @@
---
title: "Apple Wireless Issues on Debian 13 (Trixie)"
subtitle: ""
author: Hyperling
date: "2025-11-19T13:00:00-07:00"
toc: true
images:
tags:
- tech
- networking
- linux
- wireless
- apple
- macbook air
- kernel
- broadcom
- bcm4360
- wl
- dkms
- wireless-tools
- iwconfig
- uname
- modprobe
- lsmod
- lspci
- debian
- trixie
series:
- sysadmin
categories:
- guides
aliases:
---
## Disclaimer
This article assumes that your system has had the wireless card working on Debian recently.
I have a Macbook Air 7,2 (early 2015, i5) with a BCM4360 [14e4:43a0] and use the `wl` driver.
``` console
$ sudo apt list broadcom*
broadcom-sta-common/stable 6.30.223.271-26 amd64
broadcom-sta-dkms/stable,now 6.30.223.271-26 amd64 [installed]
broadcom-sta-source/stable 6.30.223.271-26 amd64
```
I do not have experience with other Mac devices, the Debian wiki and forums are your best bet if this article does not apply to you.
{{< external-link "Debian Wiki: Macbook Wireless" "https://wiki.debian.org/MacBook/Wireless" >}}
## Introduction -- Define the Problem
If your wireless card is no longer being recognized on a Debian device, ensure the latest version of the Linux kernel came with its headers.
I'm not sure why this happened, but it was when the kernel version jumped from `6.12.41` to `6.12.43` that its symptoms showed up. I had already migrated from Bookworm to Trixie and thought I had went through a few kernel updates since then without issues, but wasn't sure.
Later versions such as `6.12.48` and `6.12.57` continued to get pulled and I'd try them before having to reboot back to `6.12.41`. While booted into the newer kernel versions `/sbin/iwconfig` would show no wireless network and GNOME didn't have a Wi-Fi button listed in the Settings app nor its system menu. Then I tried this:
``` console
$ sudo modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.12.57+deb13-amd64
```
After realizing that the `wl` module wasn't being loaded I thought maybe there was a packaging issue. I was confused since it said it was not found, even though I knew it was installed since it was still working if I booted to the older installed kernel versions. I saw no error when the new versions were being installed, either. And thus began my discovery...
## Solution -- Install Headers Automagically
Ubuntu provides the packages `linux-image-generic` and `linux headers-generic`. Debian names them slightly different.
``` bash
sudo apt install linux-image-amd64 linux-headers-amd64 --reinstall
```
Some sources say that Debian has no generic/meta package for the kernel and its headers. I can't find any information as to the release date of these to confirm or deny that claim.
I'm just glad they work to now keep the headers installed automatically! I've since added the packages to my provisioning setup.
## Still Not Working?
If you're still having problems then it may be something else.
Some good troubleshooting commands are below, as well as examples of when I was running them trying to troubleshoot my system.
- `uname -a`
- `lspci -vnn | grep -i net`
- `/sbin/iwconfig`
- `lsmod`
- `modprobe`
- `apt list`
### Example -- Missing Kernel Headers (6.12.57)
``` console
[user@hostname ~]$ uname -a
Linux debian 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64 GNU/Linux
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lspci -vnn | grep -i net
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03)
[user@hostname ~]$
```
``` console
[user@hostname ~]$ /sbin/iwconfig
lo no wireless extensions.
docker0 no wireless extensions.
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lsmod | grep wl
[user@hostname ~]$
```
``` console
[user@hostname ~]$ sudo modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.12.57+deb13-amd64
[user@hostname ~]$
```
``` console
[user@hostname ~]$ sudo apt list broadcom*
broadcom-sta-common/stable 6.30.223.271-26 amd64
broadcom-sta-dkms/stable,now 6.30.223.271-26 amd64 [installed]
broadcom-sta-source/stable 6.30.223.271-26 amd64
[user@hostname ~]$
```
### Example -- Wireless Working Correctly (6.12.41)
``` console
[user@hostname ~]$ uname -a
Linux debian 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lspci -vnn | grep -i net
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03)
[user@hostname ~]$
```
``` console
[user@hostname ~]$ /sbin/iwconfig
lo no wireless extensions.
wlp3s0 IEEE 802.11 ESSID:"Private :)"
Mode:Managed Frequency:2.412 GHz Access Point: na:na:na:na:na:na
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
wg0-vpn no wireless extensions.
docker0 no wireless extensions.
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lsmod | grep wl | sort
cfg80211 1392640 1 wl
wl 6459392 0
[user@hostname ~]$
```
``` console
[user@hostname ~]$ sudo modprobe wl
[user@hostname ~]$
```
### Example -- Wireless Working Correctly (6.12.57)
``` console
[user@hostname ~]$ uname -a
Linux debian 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64 GNU/Linux
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lspci -vnn | grep -i net
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03)
[user@hostname ~]$
```
``` console
[user@hostname ~]$ /sbin/iwconfig
lo no wireless extensions.
wlp3s0 IEEE 802.11 ESSID:"Private :)"
Mode:Managed Frequency:2.412 GHz Access Point: na:na:na:na:na:na
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
wg0-vpn no wireless extensions.
docker0 no wireless extensions.
[user@hostname ~]$
```
``` console
[user@hostname ~]$ lsmod | grep wl | sort
cfg80211 1392640 1 wl
wl 6459392 0
[user@hostname ~]$
```
``` console
[user@hostname ~]$ sudo modprobe wl
[user@hostname ~]$
```

View File

@@ -0,0 +1,105 @@
---
draft: false
pinned: false
title: "Linux Laptop"
subtitle: "Buying a device with Linux pre-installed."
author: Hyperling
date: "2025-12-08T07:00:00-07:00"
started: "2025-12-04T11:38:00-07:00"
lastmod:
toc: true
images:
tags:
- tech
- laptop
- desktop
- linux
- Debian
- Arch
- Ubuntu
- Dell
- Lenovo
series:
- sysadmin
categories:
- advice
aliases:
---
## Introduction
I was recently contacted for advice on for buying a laptop with Linux already installed. Below is my response as well as some extra thoughts on the subject.
## Laptop Advice
> Howdy!! Thanks for reaching out about this! From my experience the preinstalled Linux sphere is usually expensive gaming, developer, or other specialty type systems for enthusiasts. (NovaCustom, System76, Purism)
>
> The Pinebook Pro is the only budget device for daily driving that I can think of, and you may be able to buy an SD card with an OS preinstalled. It has an ARM processor rather than a normal desktop type processor, but depending on what you're doing it may not matter, like for web browsing.
>
> It looks like both Lenovo and Dell allow choosing Ubuntu and maybe other Linux distributions when configuring some of their laptops. It knocks down the price some too since they don't have to license out a proprietary OS. This option would probably be ideal for someone with no tech background. There may be other companies too.
>
> [https://www.lenovo.com/us/en/d/deals/custom/?visibleDatas=1014%3ALaptops%3B699%3ALinux&sortBy=priceUp](https://www.lenovo.com/us/en/d/deals/custom/?visibleDatas=1014%3ALaptops%3B699%3ALinux&sortBy=priceUp)
>
> [https://www.dell.com/en-us/shop/dell-laptops/scr/laptops/appref=ubuntu-linux-os?sortBy=price-ascending](https://www.dell.com/en-us/shop/dell-laptops/scr/laptops/appref=ubuntu-linux-os?sortBy=price-ascending)
>
> Otherwise I've always bought the device which fits my needs best and then wiped it and installed the OS of my choosing. Used laptops are great for that if you don't want big tech companies getting kickbacks from places like Best Buy which sell laptops with licensed OS's.
>
> Linux can run on most hardware, and can give life back to devices over 10 years old which people thought were too slow to be useful anymore. I'd avoid Apple since they can be a pain to set up. Otherwise anything with a working battery, screen, and keyboard would be fine. If it has 8GB of RAM or more then it will have plenty of power for today's needs.
>
> Also, I recommend keeping backups of important documents on an external flash or hard drive in case of drive failure. Especially if going the used device route. Private cloud storage can be okay too if you trust the owner. Most drives last a long time but I've been burned by one going out early, it's not fun. 🙃
>
> I'd love to hear what you end up doing! Let me know if you have any other questions. :)
## Final Thoughts
The requester already had a refurbished laptop and opted to back up their files to an external device and give installing the OS a go.
If you have a spare USB drive, the process is fairly simply. There are applications for putting the installer on the flash drive, then you just plug it in and reboot the device. When it shows the laptop's brand name on the screen, you press a button, usually F10 or similar, choose the USB device, then follow the prompts from the installer.
There are plenty of guides on how to do this. I've listed a few below. It can be a very educational process, especially if you already have some experience at the terminal or with Linux in general. Then once you get fairly experienced, installing a system like Arch is extremely rewarding and teaches you a lot about what it actually takes to make a distribution and what all the running components are under the hood.
All in all, getting away from big tech is highly recommended. Windows, MacOS, and ChromeOS are all spyware meant to keep you in a locked down consumerist cycle. iOS and Google Android are no better. Liberating your devices by installing a FLOSS operating system! As of this writing I choose to use Debian on my desktops and servers, and on my smartphones I run LineageOS with microG.
Feel free to give me a holler if you make a dive into this sphere and need any pointers! :)
## Installation Guides (Desktop)
Walkthroughs of how to put a new operating system on your device.
### Beginner
- Ubuntu
- {{% external-link "https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview" %}}
- Pop!_OS
- {{% external-link "https://support.system76.com/articles/install-pop/" %}}
- Linux Mint
- {{% external-link "https://linuxmint-installation-guide.readthedocs.io/en/latest/" %}}
### Intermediate
- Debian
- {{% external-link "https://www.debian.org/releases/trixie/arm64/" %}}
- Fedora
- Shorter: {{% external-link "https://docs.fedoraproject.org/en-US/fedora/latest/getting-started" %}}
- Detailed: {{% external-link "https://docs.fedoraproject.org/en-US/fedora/f36/install-guide/" %}}
- openSUSE
- {{% external-link "https://doc.opensuse.org/documentation/leap/startup/html/book-startup/art-opensuse-installquick.html" %}}
### Advanced
- Arch Linux
- {{% external-link "https://wiki.archlinux.org/title/Installation_guide" %}}
- FreeBSD
- {{% external-link "https://docs.freebsd.org/en/books/handbook/bsdinstall/" %}}
## Installation Guides (Mobile)
### Beginner
- GrapheneOS
- {{% external-link "https://grapheneos.org/install/" %}}
### Intermediate
- LineageOS
- {{% external-link "https://wiki.lineageos.org/" %}}

View File

@@ -1,6 +1,7 @@
---
title: "SSH Key Access"
author: "Hyperling"
subtitle:
author: hyperling
date: "2025-11-13T20:00:00-07:00"
tags:
- tech
@@ -11,6 +12,7 @@ series:
- sysadmin
categories:
- guides
aliases:
---
How to set up an SSH key and use it to access a remote machine.

View File

@@ -1,7 +1,7 @@
---
title: "System Hardening"
subtitle: "Preventing Hacks"
author: 'Chad Michael "Hyperling" Greenwood'
author: Hyperling
date: "2025-11-13T21:00:00-07:00"
tags:
- tech
@@ -60,7 +60,7 @@ If placing the contents into a file, you'll want to disable the colors to preven
#### Results
The output has a human readable section of results which give a description and ID for anything which is found. Suggestions are the lowest priority, with Warning and [TBD/TODO] being the more important items to correct.
The output has a human readable section of results which give a description and ID for anything which is found. Suggestions are the lowest priority, with Found and Warning being the more important items to correct.
### NMap
@@ -113,12 +113,20 @@ nmap -A -p- --script=vuln localhost > ~/Downloads/nmap_report.txt 2>&1
If any vulnerabilities show up they usually come with a CVE which can be researched, such as `CVE-2007-6750`.
There are many reputable sites which come up when placing this in a search engine. [`cve.org`](https://www.cve.org]) is also supposed to be a good centralized repository,
There are many reputable sites which come up when placing this in a search engine.
{{< external-link
text="cve.org"
url="https://www.cve.org" >}}
is also supposed to be a good centralized repository,
Here are examples for the provided ID.
- [https://www.suse.com/security/cve/CVE-2007-6750.html](https://www.suse.com/security/cve/CVE-2007-6750.html)
- [https://www.cve.org/CVERecord?id=CVE-2007-6750](https://www.cve.org/CVERecord?id=CVE-2007-6750)
- {{< external-link
text="www.suse.com/security/cve/CVE-2007-6750.html"
url="https://www.suse.com/security/cve/CVE-2007-6750.html" >}}
- {{< external-link
text="www.cve.org/CVERecord?id=CVE-2007-6750"
url="https://www.cve.org/CVERecord?id=CVE-2007-6750" >}}
Most vulnerabilities are fixed by upgrading software, migrating to safer software, and by following best practices such as not exposing databases to the Internet.
@@ -128,7 +136,9 @@ Most vulnerabilities are fixed by upgrading software, migrating to safer softwar
I recommend playing with Metasploit if you have extra time so that you can learn how easy it is to penetrate an exploit once it is found with NMap.
- [https://www.metasploit.com/](https://www.metasploit.com/)
- {{< external-link
text="www.metasploit.com"
url="https://www.metasploit.com/" >}}
Please be sure to test against your own machines, such as setting up a VM running an old Ubuntu LTS, starting up some services like CUPS, SSH, Apache, etc.

View File

@@ -1,5 +1,4 @@
---
author: Hyperling
title: "All Tags"
#subtitle: "Chronologically posted tags."
---

View File

@@ -0,0 +1,4 @@
---
title: Books
subtitle: eBooks I've authored to date.
---

View File

@@ -1,7 +1,4 @@
---
author: Hyperling
title: "Crafts"
#subtitle: "All posts related to crafts."
subtitle: "Fun projects with useful outputs. ^_^"
---
Projects which are either fun to make or have useful outputs. ^_^

View File

@@ -1,9 +1,6 @@
---
author: Hyperling
title: "Food"
#subtitle: "Recipes which have kept me dis-ease free since 2014!"
#comments:
# - "Eating this way keeps inflammation low and fuel for athleticism high. It's how I've stayed dis-ease free since 2014! :D"
subtitle: "Recipes which have kept me sickness free and athletic since 2014!"
---
I cook high carb low fat (HCLF) whole food plant based (WFPB) meals. My allergens overlap with items which cannot be fed to dogs or rabbits. This includes alliums [onion, garlic], nightshades [tomatos, peppers, eggplant, potato], grapes, caffeine, etc.
I cook high carb low fat (HCLF) whole food plant based (WFPB) meals. My allergens mostly overlap with items which cannot be fed to dogs or rabbits. This includes alliums [onion, garlic], nightshades [tomatos, peppers, eggplant, potato], grapes, caffeine, etc.

View File

@@ -0,0 +1,4 @@
---
title: "Poetry"
subtitle: "Poems with audio readings."
---

View File

@@ -0,0 +1,4 @@
---
title: "Tech"
subtitle: "Guides for computer related topics. 🤓"
---

186
hugo.yaml Normal file
View File

@@ -0,0 +1,186 @@
# 2025-11-21 Changed to be YAML rather than TOML. Much easier to understand.
### My Params ###
baseURL: '/'
languageCode: 'en-us'
title: "Hyperling's Works"
subtitle: "My recipes, blogposts, musings, and more."
#paginate = 25
paginate: 99999
markup:
goldmark:
# Allow direct HTML.
renderer:
unsafe: true
# Prevent URLs from becoming links which open in the same tab.
extensions:
linkify: false
tableOfContents:
endLevel: 4
ordered: false
startLevel: 2
### End My Params ###
### Theme ###
# Seems pretty good, just need to add more config params so it acts better.
theme: "hello-friend-ng"
# Main Documentation
# https://github.com/rhazdon/hugo-theme-hello-friend-ng/blob/master/docs/config.md
# Favicon documentation for this theme.
# https://github.com/rhazdon/hugo-theme-hello-friend-ng/blob/master/docs/favicons.md
# Generator
# https://realfavicongenerator.net/your-favicon-is-ready
## Theme Suggested Params ##
# The parameters below were copied, modified, or inspired from:
# https://github.com/rhazdon/hugo-theme-hello-friend-ng?tab=readme-ov-file#how-to-configure
params:
dateform : "Jan 2, 2006"
dateformShort : "Jan 2"
dateformNum : "2006-01-02"
dateformNumTime : "2006-01-02 15:04"
# Subtitle for home
homeSubtitle: "Blogposts, recipes, musings, and more."
# Set disableReadOtherPosts to true in order to hide the links to other posts.
disableReadOtherPosts: false
# Enable sharing buttons, if you like
enableSharingButtons: false
# Show a global language switcher in the navigation bar
enableGlobalLanguageMenu: false
# Metadata mostly used in document's head
description: "Written works by Hyperling."
keywords: "homepage, blog, recipes, crafts, food, seasonings, woodworking, poetry, poems"
images: [""]
# My Custom Params #
authorBug: "Chad Michael \"Bug\" Greenwood"
authorHyperling: "Chad Michael \"Hyperling\" Greenwood"
authorHyperVegan: "Chad Michael \"HyperVegan\" Greenwood"
authorDefault: "Chad Michael Greenwood"
# End My Custom Params #
taxonomies:
categories : "categories"
tags : "tags"
series : "series"
languages:
en:
title: "Hyperling's Written Works"
keywords: ""
copyright: '<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
readOtherPosts: "Read other posts"
params:
#subtitle = "Blogposts, recipes, musings, and more."
logo:
logoText: "Hyperling's Works"
logoHomeLink: "/"
# or
#
# path = "/img/your-example-logo.svg"
# alt = "Your example logo alt text"
# [languages.es]
# title = "Hola Amigo!"
# keywords = ""
# copyright = '<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
# readOtherPosts = "Read other posts"
# And you can even create generic menu
menu:
main:
- identifier : "00-all"
name : "All"
url : "/posts"
weight : 1
- identifier : "01-tags"
name : "Tags"
url : "/tags"
weight : 1
parent : "00-all"
- identifier : "02-cats"
name : "Categories"
url : "/categories"
weight : 2
parent : "00-all"
- identifier : "20-food"
name : "Food"
url : "/tags/food"
weight : 2
- identifier : "30-crafts"
name : "Crafts"
url : "/tags/crafts"
weight : 3
#[[menu.main]]
# identifier = "50-blog"
# name = "Blogposts"
# url = "/tags/blog"
# weight = 5
- identifier : "60-poetry"
name : "Poetry"
url : "/tags/poetry"
weight : 6
- identifier : "70-tech"
name : "Tech"
url : "/tags/tech"
weight : 7
- identifier : "80-books"
name : "Books"
url : "/tags/books" #"https://hyperling.com/books"
weight : 8
# End parameters related to:
# https://github.com/rhazdon/hugo-theme-hello-friend-ng?tab=readme-ov-file#how-to-configure
##
### End Theme ###
### Failed Themes ###
# Do not go back to these unless figuring out what was done wrong.
# not functioning well
#theme = "recipes"
# requires creating recipe objects?
#theme = "cookbook"
# not showing index files
#theme = "awesome"
# outdated
#theme = "simple-dark"
# too complicated? Failing to compile.
#theme = "congo"
# works, reads index files, shows cool header at the beginning of posts,
# but FAILS at monospace fonts in code blocks and CSS for URLs is horrible.
# Could maybe be modified to serve well enough.
#theme = "hugo-classic"
### End Failed Themes ###

View File

@@ -4,6 +4,8 @@
{{ partial "head.html" . }}
{{ partial "favicons.html" . }}
{{ partial "meta.html" . }}
<link rel="stylesheet" href="/css/styles.css">
<link rel="stylesheet" href="/css/style.css">
</head>
{{ block "body" . }}

View File

@@ -2,9 +2,9 @@
{{ $paginator := .Paginate .Data.Pages }}
<main class="posts">
<h2>{{ .Title }}</h2>
<h1>{{ .Title }}</h1>
{{ if .Params.subtitle }}
<strong>{{ .Params.subtitle }}</strong>
<strong>{{ .Params.subtitle | markdownify }}</strong>
{{ end }}
{{ if .Content }}
@@ -20,8 +20,13 @@
<li class="post-item">
<a href="{{.Permalink}}" class="post-item-inner">
<span class="post-title">
{{ if or .Params.pinned (eq (.Title | title) "Pinned") }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/paperclip.svg" alt="Pinned:"
>
{{ end }}
{{ if .Params.tags }}{{ index .Params.tags 0 | title }}:{{ end }}
{{.Title}}{{ if .Params.subtitle }}
{{ .Title }}{{ if and (.Params.subtitle) (and (.Params.author) (.Params.date)) }}
{{ "--" | markdownify }} {{ .Params.subtitle}}
{{ end }}
</span>

View File

@@ -12,10 +12,13 @@
</div>
<article>
<h2 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
<h1 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
{{ if .Params.subtitle }}
<strong>{{ .Params.subtitle | markdownify }}</strong>
{{ end }}
{{ if .Params.author }}
<pre>{{ partial "byline.html" . }}</pre>
{{ end }}
{{ if .Params.Cover }}
<figure class="post-cover">
@@ -44,9 +47,8 @@
<hr />
<div class="post-info">
{{ partial "tags.html" .Params.tags }}
<!-- {{ partial "series.html" .Params.series }} -->
{{ partial "series2.html" . }}
{{ partial "tags.html" . }}
{{ partial "series.html" . }}
{{ partial "categories.html" . }}
{{- if .GitInfo }}

View File

@@ -0,0 +1,17 @@
{{ $author := (lower .Page.Params.author)
}}{{ if or (eq $author "authorbug") (eq $author "bug")
}}{{ .Scratch.Set "author" .Site.Params.authorBug
}}{{ else if or (eq $author "authorhyperling") (eq $author "hyperling")
}}{{ .Scratch.Set "author" .Site.Params.authorHyperling
}}{{ else if or (eq $author "authorhypervegan") (eq $author "hypervegan")
}}{{ .Scratch.Set "author" .Site.Params.authorHyperVegan
}}{{ else if and ($author) (not (eq $author ""))
}}{{ .Scratch.Set "author" $author
}}{{ else
}}{{ .Scratch.Set "author" .Site.Params.authorDefault
}}{{ end
}}{{ $author := .Scratch.Get "author"
}}{{ if $author
}}{{ print "by " $author
}}{{ end
}}

View File

@@ -0,0 +1,12 @@
{{ with .Params.categories }}
<p>
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/folder.svg" alt="Categories:"
>
{{ range . -}}
{{ if (not (eq . "pinned")) }}
<span class="tag"><a href="{{ "categories/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
{{ end }}
{{ end }}
</p>
{{ end }}

View File

@@ -0,0 +1,2 @@
{{ $email := .email | default .Email
}}<a href="mailto:{{ $email }}">{{ $email }}</a>

View File

@@ -1,9 +1,12 @@
{{ with . }}
{{ with .Params.series }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line></svg>
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/tv.svg" alt="Series:"
>
{{ range . -}}
{{ if (not (eq . "pinned")) }}
<span class="tag"><a href="{{ "series/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
{{ end }}
{{ end }}
</p>
{{ end }}

View File

@@ -1,9 +0,0 @@
{{ with .Params.series }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-folder meta-icon"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path></svg>
{{ range . -}}
<span class="tag"><a href="{{ "series/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
{{ end }}
</p>
{{ end }}

View File

@@ -0,0 +1,12 @@
{{ with .Params.tags }}
<p>
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/tag.svg" alt="Tags:"
>
{{ range . -}}
{{ if (not (eq . "pinned")) }}
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
{{ end }}
{{ end }}
</p>
{{ end }}

View File

@@ -0,0 +1,3 @@
{{ $text := .text | default .Text
}}{{ $wip := .sep | default .Sep | default .wip | default .WIP | default "WIP"
}}*{{ $wip }}:* {{ $text }} *:{{ $wip }}*

166
layouts/posts/single.html Normal file
View File

@@ -0,0 +1,166 @@
{{ define "main" }}
<main class="post">
<div class="post-info">
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-clock">
<circle cx="12" cy="12" r="10"></circle>
<polyline points="12 6 12 12 16 14"></polyline>
</svg>
{{ i18n "readingTime" .Page.ReadingTime }}
{{ if .IsTranslated }} | {{ i18n "postAvailable" }}
{{ range .Translations }}
<a href="{{ .Permalink }}"><span class="flag fi fi-{{ index $.Site.Data.langFlags (.Lang) }}"></span></a>
{{ end}}
{{ end }}
</p>
</div>
<article>
<h1 class="post-title">
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
</h1>
{{ if .Params.subtitle }}
<strong>{{ .Params.subtitle | markdownify }}</strong>
{{ end }}
{{ if (isset .Params "author") }}
<pre>{{ partial "byline.html" . }}</pre>
{{ end }}
{{ with .Params.Description }}
<div class="post-excerpt">{{ . }}</div>
{{ end }}
{{ if .Params.Cover }}
<figure class="post-cover">
<img src="{{ .Params.Cover | absURL }}" alt="{{ .Title }}" />
{{ if .Params.CoverCaption }}
<figcaption class="center">{{ .Params.CoverCaption | markdownify }}</figcaption>
{{ end }}
</figure>
{{ end }}
{{- if .Params.toc }}
<hr />
<aside id="toc">
<div class="toc-title">{{ i18n "tableOfContents" }}</div>
{{ .TableOfContents }}
</aside>
<hr />
{{- end }}
{{ if .Params.Audio }}
<div class="post-audio">
<audio controls>
<source src="{{ .Params.Audio }}">
</audio>
</div>
{{ end }}
<div class="post-content">
{{ .Content }}
</div>
</article>
<hr />
<div class="post-info">
{{ if .Params.pinned }}
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
src="/feathericons/16px-a9a9b3/paperclip.svg" alt="Pinned:"
> <a href="/categories/pinned">This article is pinned.</a>
{{ end }}
{{ partial "tags.html" . }}
{{ partial "series.html" . }}
{{ partial "categories.html" . }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
{{ i18n "wordCount" .Page.WordCount }}
</p>
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar">
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect>
<line x1="16" y1="2" x2="16" y2="6"></line>
<line x1="8" y1="2" x2="8" y2="6"></line>
<line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
{{ if .Site.Params.dateformNumTime }}
{{ dateFormat .Site.Params.dateformNumTime .Date.Local }}
{{ else }}
{{ dateFormat "2006-01-02 15:04" .Date.Local }}
{{ end }}
{{ if .Lastmod }}
{{ if not (eq .Lastmod .Date )}}
{{ if .Site.Params.dateformNumTime }}
({{ i18n "lastModified" }}: {{ dateFormat .Site.Params.dateformNumTime .Lastmod.Local }})
{{ else }}
({{ i18n "lastModified" }}: {{ dateFormat "2006-01-02 15:04" .Lastmod.Local }})
{{ end }}
{{ end }}
{{ end }}
</p>
{{- if .GitInfo }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-git-commit">
<circle cx="12" cy="12" r="4"></circle>
<line x1="1.05" y1="12" x2="7" y2="12"></line>
<line x1="17.01" y1="12" x2="22.96" y2="12"></line>
</svg>
<a href="{{ .Site.Params.gitUrl -}}{{ .GitInfo.Hash }}" target="_blank" rel="noopener">{{ .GitInfo.AbbreviatedHash }}</a>
@ {{ if .Site.Params.dateformNum }}{{ dateFormat .Site.Params.dateformNum .GitInfo.AuthorDate.Local }}{{ else }}{{ dateFormat "2006-01-02" .GitInfo.AuthorDate.Local }}{{ end }}
</p>
{{- end }}
</div>
{{- if .Site.Params.EnableSharingButtons }}
<hr />
<div class="sharing-buttons">
{{ partial "sharing-buttons.html" . }}
</div>
{{- end }}
{{ partial "pagination-single.html" . }}
{{ if .Site.Config.Services.Disqus.Shortname }}
{{ if not (eq .Params.Comments "false") }}
<div id="comments">
{{ template "_internal/disqus.html" . }}
</div>
{{ end }}
{{ end }}
{{ if .Site.Params.Commento.Url }}
<script defer src={{ .Site.Params.Commento.Url }}></script>
<div id="commento"></div>
{{ end }}
{{ if .Site.Params.Utterances.Repository }}
<script src="https://utteranc.es/client.js"
repo="{{ .Site.Params.Utterances.Repository }}"
{{ if .Site.Params.Utterances.Label }}label="{{ .Site.Params.Utterances.Label }}"{{ end }}
issue-term="{{ .Site.Params.Utterances.IssueTerm }}"
theme="{{ .Site.Params.Utterances.Theme }}"
crossorigin="anonymous"
async>
</script>
{{ end }}
<p style="text-align: center">
Questions? Concerns? Email {{ partial "email.html" (dict "email" "me@hyperling.com") }} any time!
</p>
</main>
{{ end }}

View File

@@ -0,0 +1,25 @@
{{ $src := .Get "src" | default (.Get 0)
}}
{{ $type := .Get "type"
}}{{ if and (isset .Params "type") (not (eq $type ""))
}}{{ .Scratch.Set "type" $type
}}{{ else
}}{{ $type := strings.TrimSuffix $src (path.Ext $src)
}}{{ $type := strings.TrimPrefix "." $type
}}{{ .Scratch.Set "type" $type
}}{{ end
}}
{{ $text := .Get "text"
}}{{ if and (isset .Params "text") (not (eq $text ""))
}}{{ .Scratch.Set "text" $text
}}{{ else
}}{{ .Scratch.Set "text" "Audio playback is not available on your browser."
}}{{ end
}}
<audio controls>
<source
src='{{ $src }}'
type='audio/{{ .Scratch.Get "type" }}'
>
{{ .Scratch.Get "text" | markdownify }}
</audio>

View File

@@ -0,0 +1,17 @@
{{ $author := (lower (.Get 0))
}}{{ if or (eq $author "authorbug") (eq $author "bug")
}}{{ .Scratch.Set "author" .Site.Params.authorBug
}}{{ else if or (eq $author "authorhyperling") (eq $author "hyperling")
}}{{ .Scratch.Set "author" .Site.Params.authorHyperling
}}{{ else if or (eq $author "authorhypervegan") (eq $author "hypervegan")
}}{{ .Scratch.Set "author" .Site.Params.authorHyperVegan
}}{{ else if and ($author) (not (eq $author ""))
}}{{ .Scratch.Set "author" $author
}}{{ else
}}{{ .Scratch.Set "author" .Site.Params.authorDefault
}}{{ end
}}{{ $author := .Scratch.Get "author"
}}{{ if $author
}}{{ print $author
}}{{ end
}}

View File

View File

@@ -0,0 +1 @@
[me@hyperling.com](mailto:me@hyperling.com)

View File

@@ -0,0 +1,3 @@
{{ $url := .Get "url" | default (.Get 1) | default (.Get 0)
}}{{ $text := .Get "text" | default (.Get 0) | default $url
}}<a href="{{ $url }}" target="_blank" rel="noopener noreferrer">{{ $text | markdownify }}</a>

View File

@@ -0,0 +1 @@
{{ if .Inner }}{{ end }}

View File

@@ -0,0 +1,15 @@
{{ $url1 := .Get "img1" | default (.Get "url") | default (.Get 0)
}}{{ $url2 := .Get "img2" | default (.Get "fallback") | default (.Get 1)
}}{{ $alt := .Get "alt" | default (.Get 2)
}}
<!-- These do not seem to work. Using JS solution.
<picture>
<source srcset="{{ $url1 }}">
<img src="{{ $url2 }}" alt="{{ $alt }}">
</picture>
<picture>
<source media="(min-width: 1px)" srcset="{{ $url1 }}">
<img src="{{ $url2 }}" alt="{{ $alt }}">
</picture>
-->
<img src="{{ $url1 }}" alt="{{ $alt | markdownify }}" onerror="this.onerror=null; this.src='{{ $url2 }}';">

View File

@@ -0,0 +1,9 @@
{{ $src := .Get 0 | default (.Get "url") | default (.Get "src")
}}{{ $width := .Get 1 | default (.Get "width") | default "65" }}
<iframe
id="odysee-iframe"
style="width:{{ $width }}%; aspect-ratio:16 / 9;"
src="{{ $src }}"
allowfullscreen>
</iframe>
<br>

View File

@@ -0,0 +1,3 @@
{{ $text := .Get 0
}}{{ partial "wip.html" (dict "text" $text "sep" "TBD")
}}

View File

@@ -0,0 +1,4 @@
{{ $text := .Get 0
}}{{ $wip := .Get 1 | default "WIP"
}}{{ partial "wip.html" (dict "text" $text "wip" $wip)
}}

View File

@@ -1,3 +1,4 @@
# Abandoned 2025-11-21 because it was not working as needed. Moved to YAML.
### My Params ###
@@ -6,14 +7,19 @@ languageCode = 'en-us'
title = "Hyperling's Works"
subtitle = "My recipes, blogposts, musings, and more."
paginate = 25
#paginate = 25
paginate = 99999
# Allow direct HTML.
markup.goldmark.renderer.unsafe = true
#[markup.tableOfContents]
# startLevel = 2
# endLevel = 5
# Prevent URLs from becoming links which open in the same tab.
markup.goldmark.extensions.linkify = false
[markup.tableOfContents]
endLevel = 4
ordered = false
startLevel = 2
### End My Params ###
@@ -56,6 +62,13 @@ theme = "hello-friend-ng"
keywords = "homepage, blog, recipes, crafts, food, seasonings, woodworking, poetry, poems"
images = [""]
# My Custom Params #
authorBug = "Chad Michael \"Bug\" Greenwood"
authorHyperling = "Chad Michael \"Hyperling\" Greenwood"
authorHyperVegan = "Chad Michael \"HyperVegan\" Greenwood"
authorDefault = "Chad Michael Greenwood"
# End My Custom Params #
[taxonomies]
categories = "categories"
tags = "tags"
@@ -138,7 +151,7 @@ theme = "hello-friend-ng"
[[menu.main]]
identifier = "80-books"
name = "eBooks"
name = "Books"
url = "/tags/books" #"https://hyperling.com/books"
weight = 8

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

34
static/css/style.css Normal file
View File

@@ -0,0 +1,34 @@
/* Prevent excess gaps underneath headers. Looks horrible! */
h1,h2,p,div,blockquote {
margin-top: 16px;
margin-bottom: 8px;
}
h3,h4 {
margin-top: 12px;
margin-bottom: 6px;
}
h5,h6,ul,ol {
margin-top: 8px;
margin-bottom: 4px;
}
pre,strong {
margin-top: 4px;
margin-bottom: 2px;
}
pre {
padding: 2px;
padding-left: 20px;
}
audio {
margin: 5px;
}
.post-content {
margin-top: 10px;
}
.highlight {
margin: 10px auto;
}

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-activity"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>

After

Width:  |  Height:  |  Size: 277 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-airplay"><path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1"></path><polygon points="12 15 17 21 7 21 12 15"></polygon></svg>

After

Width:  |  Height:  |  Size: 357 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>

After

Width:  |  Height:  |  Size: 351 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-octagon"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>

After

Width:  |  Height:  |  Size: 411 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>

After

Width:  |  Height:  |  Size: 419 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-align-center"><line x1="18" y1="10" x2="6" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="18" y1="18" x2="6" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 393 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-align-justify"><line x1="21" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="3" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 394 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-align-left"><line x1="17" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="17" y1="18" x2="3" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 391 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-align-right"><line x1="21" y1="10" x2="7" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="7" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 392 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-anchor"><circle cx="12" cy="5" r="3"></circle><line x1="12" y1="22" x2="12" y2="8"></line><path d="M5 12H2a10 10 0 0 0 20 0h-3"></path></svg>

After

Width:  |  Height:  |  Size: 340 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-aperture"><circle cx="12" cy="12" r="10"></circle><line x1="14.31" y1="8" x2="20.05" y2="17.94"></line><line x1="9.69" y1="8" x2="21.17" y2="8"></line><line x1="7.38" y1="12" x2="13.12" y2="2.06"></line><line x1="9.69" y1="16" x2="3.95" y2="6.06"></line><line x1="14.31" y1="16" x2="2.83" y2="16"></line><line x1="16.62" y1="12" x2="10.88" y2="21.94"></line></svg>

After

Width:  |  Height:  |  Size: 563 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-archive"><polyline points="21 8 21 21 3 21 3 8"></polyline><rect x="1" y="3" width="22" height="5"></rect><line x1="10" y1="12" x2="14" y2="12"></line></svg>

After

Width:  |  Height:  |  Size: 356 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-circle"><circle cx="12" cy="12" r="10"></circle><polyline points="8 12 12 16 16 12"></polyline><line x1="12" y1="8" x2="12" y2="16"></line></svg>

After

Width:  |  Height:  |  Size: 355 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-left"><line x1="17" y1="7" x2="7" y2="17"></line><polyline points="17 17 7 17 7 7"></polyline></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-right"><line x1="7" y1="7" x2="17" y2="17"></line><polyline points="17 7 17 17 7 17"></polyline></svg>

After

Width:  |  Height:  |  Size: 312 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down"><line x1="12" y1="5" x2="12" y2="19"></line><polyline points="19 12 12 19 5 12"></polyline></svg>

After

Width:  |  Height:  |  Size: 308 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left-circle"><circle cx="12" cy="12" r="10"></circle><polyline points="12 8 8 12 12 16"></polyline><line x1="16" y1="12" x2="8" y2="12"></line></svg>

After

Width:  |  Height:  |  Size: 354 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>

After

Width:  |  Height:  |  Size: 307 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right-circle"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>

After

Width:  |  Height:  |  Size: 356 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>

After

Width:  |  Height:  |  Size: 309 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-circle"><circle cx="12" cy="12" r="10"></circle><polyline points="16 12 12 8 8 12"></polyline><line x1="12" y1="16" x2="12" y2="8"></line></svg>

After

Width:  |  Height:  |  Size: 352 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-left"><line x1="17" y1="17" x2="7" y2="7"></line><polyline points="7 17 7 7 17 7"></polyline></svg>

After

Width:  |  Height:  |  Size: 307 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-right"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg>

After

Width:  |  Height:  |  Size: 309 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up"><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg>

After

Width:  |  Height:  |  Size: 305 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-at-sign"><circle cx="12" cy="12" r="4"></circle><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94"></path></svg>

After

Width:  |  Height:  |  Size: 317 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-award"><circle cx="12" cy="8" r="7"></circle><polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88"></polyline></svg>

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart-2"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>

After

Width:  |  Height:  |  Size: 350 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart"><line x1="12" y1="20" x2="12" y2="10"></line><line x1="18" y1="20" x2="18" y2="4"></line><line x1="6" y1="20" x2="6" y2="16"></line></svg>

After

Width:  |  Height:  |  Size: 348 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-battery-charging"><path d="M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19"></path><line x1="23" y1="13" x2="23" y2="11"></line><polyline points="11 6 7 12 13 12 9 18"></polyline></svg>

After

Width:  |  Height:  |  Size: 422 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-battery"><rect x="1" y="6" width="18" height="12" rx="2" ry="2"></rect><line x1="23" y1="13" x2="23" y2="11"></line></svg>

After

Width:  |  Height:  |  Size: 321 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bell-off"><path d="M13.73 21a2 2 0 0 1-3.46 0"></path><path d="M18.63 13A17.89 17.89 0 0 1 18 8"></path><path d="M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14"></path><path d="M18 8a6 6 0 0 0-9.33-5"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>

After

Width:  |  Height:  |  Size: 455 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bell"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path></svg>

After

Width:  |  Height:  |  Size: 316 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bluetooth"><polyline points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5"></polyline></svg>

After

Width:  |  Height:  |  Size: 293 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bold"><path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path><path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path></svg>

After

Width:  |  Height:  |  Size: 322 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>

After

Width:  |  Height:  |  Size: 334 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-book"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>

After

Width:  |  Height:  |  Size: 340 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bookmark"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path></svg>

After

Width:  |  Height:  |  Size: 282 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-box"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>

After

Width:  |  Height:  |  Size: 457 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-briefcase"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>

After

Width:  |  Height:  |  Size: 338 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-camera-off"><line x1="1" y1="1" x2="23" y2="23"></line><path d="M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56"></path></svg>

After

Width:  |  Height:  |  Size: 380 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#a9a9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-camera"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"></path><circle cx="12" cy="13" r="4"></circle></svg>

After

Width:  |  Height:  |  Size: 351 B

Some files were not shown because too many files have changed in this diff Show More