Compare commits
55 Commits
927613629f
...
stage
| Author | SHA1 | Date | |
|---|---|---|---|
| 011e887dbc | |||
| 849cd8dca9 | |||
| 1c16b836a1 | |||
| 6ad401b951 | |||
| 4451eed3d0 | |||
| 21042fe8e0 | |||
| fd13570a30 | |||
| 1ce075d1f8 | |||
| 2650a586fc | |||
| a2cd6c853c | |||
| ea2d23957d | |||
| a4e02a0c43 | |||
| 80f8880aa9 | |||
| ed79eb891c | |||
| ab7d911937 | |||
| c547eac69e | |||
| 5cffb1ea62 | |||
| 144ce59f3b | |||
| a89665f6a4 | |||
| 9f8ab1d2d5 | |||
| 79ae67a4c0 | |||
| e5854a5778 | |||
| 27da4cbadd | |||
| f6e36aa6c6 | |||
| f9be04dc7d | |||
| 26964d8675 | |||
| de78abd352 | |||
| 6123692906 | |||
| 20f874a586 | |||
| b3531c6f1f | |||
| c3d905aa15 | |||
| 62048fa055 | |||
| b654c9db08 | |||
| 15bf95cdfa | |||
| bbf9428ea9 | |||
| 2a9523a63b | |||
| 0a9c7270fb | |||
| 98db946a83 | |||
| 15850d3c92 | |||
| 04eab8ff39 | |||
| 8d1be5af57 | |||
| 54b7f45754 | |||
| 8b039b54d1 | |||
| 419e8e3383 | |||
| 8729da7efb | |||
| 427018d2c8 | |||
| 70ccf6d733 | |||
| 94c1331121 | |||
| d43b5959bf | |||
| 696a2e635e | |||
| 15edd8f006 | |||
| 98b3edb7a8 | |||
| af0fe569a3 | |||
| 1543c5602f | |||
| a10daf86fd |
36
README.md
36
README.md
@@ -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/`
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
---
|
||||
draft: true
|
||||
pinned: false
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
subtitle: ""
|
||||
author: bug
|
||||
author: Bug
|
||||
date: "{{ .Date }}"
|
||||
toc: false
|
||||
started:
|
||||
lastmod:
|
||||
toc: true
|
||||
images:
|
||||
tags:
|
||||
- poetry
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
---
|
||||
draft: true
|
||||
pinned: false
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
subtitle: ""
|
||||
author: authorDefault
|
||||
date: "{{ .Date }}"
|
||||
started:
|
||||
lastmod:
|
||||
toc: true
|
||||
images:
|
||||
tags:
|
||||
3
content/categories/ebooks/_index.md
Normal file
3
content/categories/ebooks/_index.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
title: eBooks
|
||||
---
|
||||
@@ -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
|
||||
- blog
|
||||
series:
|
||||
- solitude
|
||||
- solitude
|
||||
categories:
|
||||
- blogposts
|
||||
toc: yes
|
||||
- blogposts
|
||||
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! :)" %}}
|
||||
|
||||
@@ -4,9 +4,9 @@ pinned: true
|
||||
title: "My People"
|
||||
subtitle: "Searching for Community"
|
||||
author: Bug
|
||||
# Idea: date: "2025-11-17T07:30:00-07:00"
|
||||
# Started: date: "2025-11-17T13:30:00-07:00"
|
||||
date: "2025-11-17T13:30:00-07:00"
|
||||
# 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:
|
||||
@@ -43,7 +43,7 @@ aliases:
|
||||
| 💚 💚 🖤 | 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 diseases. |
|
||||
| ❤️ ❤️ 🤎 | Fit | Freedom from Pain | Athletic, clean, and capable. Healed from chronic aches and sicknesses. |
|
||||
|
||||
## Prologue
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
8
content/posts/blog/why-check-ins-are-unhelpful.md
Normal file
8
content/posts/blog/why-check-ins-are-unhelpful.md
Normal 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.
|
||||
@@ -26,6 +26,8 @@ aliases:
|
||||
- /books/freedom
|
||||
- /voluntary-sovereignty
|
||||
- /books/voluntary-sovereignty
|
||||
TBD:
|
||||
- Change URLs to be external-link.
|
||||
---
|
||||
|
||||
Short eBook and printable booklet succinctly covering Morality and Sovereignty.
|
||||
|
||||
@@ -25,6 +25,8 @@ aliases:
|
||||
- /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.
|
||||
|
||||
@@ -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" >}}
|
||||
|
||||
@@ -22,6 +22,8 @@ series:
|
||||
- dips
|
||||
categories:
|
||||
- recipes
|
||||
TBD:
|
||||
- Change URLs to be external-link.
|
||||
---
|
||||
|
||||
Here's something which can be a main, side, dip, sauce, or whatever!
|
||||
|
||||
215
content/posts/tech/apple-debian-wireless-issues.md
Normal file
215
content/posts/tech/apple-debian-wireless-issues.md
Normal 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 ~]$
|
||||
```
|
||||
105
content/posts/tech/linux-laptop.md
Normal file
105
content/posts/tech/linux-laptop.md
Normal 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/" %}}
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "SSH Key Access"
|
||||
subtitle:
|
||||
author: hyperling
|
||||
date: "2025-11-13T20:00:00-07:00"
|
||||
tags:
|
||||
@@ -11,6 +12,7 @@ series:
|
||||
- sysadmin
|
||||
categories:
|
||||
- guides
|
||||
aliases:
|
||||
---
|
||||
|
||||
How to set up an SSH key and use it to access a remote machine.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Food"
|
||||
subtitle: "Recipes which have kept me dis-ease free and athletic since 2014!"
|
||||
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 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.
|
||||
|
||||
186
hugo.yaml
Normal file
186
hugo.yaml
Normal 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 ###
|
||||
@@ -20,6 +20,11 @@
|
||||
<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 and (.Params.subtitle) (and (.Params.author) (.Params.date)) }}
|
||||
{{ "--" | markdownify }} {{ .Params.subtitle}}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{{ with .Params.categories }}
|
||||
<p>
|
||||
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
|
||||
src="/feathericons/16px-a9a9b3/folder.svg" alt="Series:"
|
||||
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 }}
|
||||
|
||||
2
layouts/partials/email.html
Normal file
2
layouts/partials/email.html
Normal file
@@ -0,0 +1,2 @@
|
||||
{{ $email := .email | default .Email
|
||||
}}<a href="mailto:{{ $email }}">{{ $email }}</a>
|
||||
@@ -4,7 +4,9 @@
|
||||
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 }}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{{ with .Params.tags }}
|
||||
<p>
|
||||
<img style="display: inline-block; vertical-align: middle; margin-right: 4px;"
|
||||
src="/feathericons/16px-a9a9b3/tag.svg" alt="Series:"
|
||||
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 }}
|
||||
|
||||
3
layouts/partials/wip.html
Normal file
3
layouts/partials/wip.html
Normal file
@@ -0,0 +1,3 @@
|
||||
{{ $text := .text | default .Text
|
||||
}}{{ $wip := .sep | default .Sep | default .wip | default .WIP | default "WIP"
|
||||
}}*{{ $wip }}:* {{ $text }} *:{{ $wip }}*
|
||||
@@ -67,6 +67,11 @@
|
||||
<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" . }}
|
||||
@@ -153,5 +158,9 @@
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
<p style="text-align: center">
|
||||
Questions? Concerns? Email {{ partial "email.html" (dict "email" "me@hyperling.com") }} any time!
|
||||
</p>
|
||||
|
||||
</main>
|
||||
{{ end }}
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
src='{{ $src }}'
|
||||
type='audio/{{ .Scratch.Get "type" }}'
|
||||
>
|
||||
{{ .Scratch.Get "text" }}
|
||||
{{ .Scratch.Get "text" | markdownify }}
|
||||
</audio>
|
||||
0
layouts/shortcodes/comment.html
Normal file
0
layouts/shortcodes/comment.html
Normal file
3
layouts/shortcodes/external-link.html
Normal file
3
layouts/shortcodes/external-link.html
Normal 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>
|
||||
1
layouts/shortcodes/hide.html
Normal file
1
layouts/shortcodes/hide.html
Normal file
@@ -0,0 +1 @@
|
||||
{{ if .Inner }}{{ end }}
|
||||
15
layouts/shortcodes/image-with-fallback.html
Normal file
15
layouts/shortcodes/image-with-fallback.html
Normal 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 }}';">
|
||||
@@ -1 +1,9 @@
|
||||
TBD/TODO
|
||||
{{ $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>
|
||||
3
layouts/shortcodes/tbd.html
Normal file
3
layouts/shortcodes/tbd.html
Normal file
@@ -0,0 +1,3 @@
|
||||
{{ $text := .Get 0
|
||||
}}{{ partial "wip.html" (dict "text" $text "sep" "TBD")
|
||||
}}
|
||||
4
layouts/shortcodes/wip.html
Normal file
4
layouts/shortcodes/wip.html
Normal file
@@ -0,0 +1,4 @@
|
||||
{{ $text := .Get 0
|
||||
}}{{ $wip := .Get 1 | default "WIP"
|
||||
}}{{ partial "wip.html" (dict "text" $text "wip" $wip)
|
||||
}}
|
||||
@@ -1,3 +1,4 @@
|
||||
# Abandoned 2025-11-21 because it was not working as needed. Moved to YAML.
|
||||
|
||||
### My Params ###
|
||||
|
||||
@@ -12,9 +13,13 @@ 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 ###
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
/* Prevent excess gaps underneath headers. Looks horrible! */
|
||||
h1,h2,p,div,blockquote {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h3,h4 {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
h5,h6 {
|
||||
margin-top: 4px;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
pre,strong {
|
||||
margin-top: 2px;
|
||||
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;
|
||||
@@ -22,6 +22,13 @@ pre {
|
||||
}
|
||||
|
||||
audio {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 20px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
margin: 10px auto;
|
||||
}
|
||||
|
||||
BIN
static/img/viking-chair/2x10-backrest-dimensions.webp
Normal file
BIN
static/img/viking-chair/2x10-backrest-dimensions.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
BIN
static/img/viking-chair/2x10-seat-dimensions.webp
Normal file
BIN
static/img/viking-chair/2x10-seat-dimensions.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user