summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile17
-rw-r--r--UNLICENSE22
-rw-r--r--content/about.md17
-rw-r--r--content/blog/status-update-may-2025.md14
-rw-r--r--content/blog/vim-without-plugins.md90
-rw-r--r--content/etc.md9
-rw-r--r--hugo.toml18
-rw-r--r--layouts/_default/_markup/render-heading.html6
-rw-r--r--layouts/_default/baseof.html19
-rw-r--r--layouts/_default/home.html3
-rw-r--r--layouts/_default/single.html4
-rw-r--r--layouts/partials/all-posts.html7
-rw-r--r--layouts/partials/footer.html4
-rw-r--r--layouts/partials/header.html11
-rw-r--r--static/avatar-512.pngbin0 -> 487592 bytes
-rw-r--r--static/avatar.pngbin0 -> 8968 bytes
-rw-r--r--static/gentoo-button.pngbin0 -> 1055 bytes
-rw-r--r--static/omemo-fingerprints.txt3
-rw-r--r--static/style.css66
-rw-r--r--static/vim-button.pngbin0 -> 321 bytes
21 files changed, 312 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c4b387a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.hugo_build.lock
+public/
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e5590c5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+.POSIX:
+.SUFFIXES:
+
+HUGO ?= hugo
+
+all: build
+
+clean:
+ @[ ! -d public ] || rm -rf public
+
+build: clean
+ @$(HUGO) build --minify
+
+serve: clean
+ @$(HUGO) serve --disableFastRender
+
+.PHONY: all clean build serve
diff --git a/UNLICENSE b/UNLICENSE
new file mode 100644
index 0000000..b3dbff0
--- /dev/null
+++ b/UNLICENSE
@@ -0,0 +1,22 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/content/about.md b/content/about.md
new file mode 100644
index 0000000..9a953f7
--- /dev/null
+++ b/content/about.md
@@ -0,0 +1,17 @@
+---
+title: "About"
+lastmod: "2025-09-16"
+---
+
+Hi there. I'm a hobbyist network engineer, systems administrator, computer programmer, and photographer. Most of my work is offline, but I'm slowly working on writing posts about what I've done.
+
+## Contact
+
+* XMPP: `frosty` [aatt] `orcanet` [ddoott] `sh`
+ * Please use OMEMO and encrypt for [this list](/omemo-fingerprints.txt) of fingerprints.
+
+## Me Elsewhere
+
+* Git repositories: [Personal](https://git.mending.trade/), [sourcehut](https://git.sr.ht/~auroras)
+* [linkhut](https://ln.ht/~auroras)
+* [Gentoo wiki](https://wiki.gentoo.org/wiki/User:Auroras)
diff --git a/content/blog/status-update-may-2025.md b/content/blog/status-update-may-2025.md
new file mode 100644
index 0000000..139e0e9
--- /dev/null
+++ b/content/blog/status-update-may-2025.md
@@ -0,0 +1,14 @@
+---
+title: "Status update, May 2025"
+date: "2025-06-04"
+---
+
+Welcome to my first status update post on the website. I'm not used to this format, so I apologize if it's all over the place.
+
+As of the beginning of the month, I've started taking my home server projects more seriously. I now rent out a small VPS, which has been a nice addition. Nothing else of interest to add.
+
+Also, I started doing basic telephony in my home. I have 2 Cisco 7965 IP phones that are connected to an Asterisk PBX, which has been patched with [USECALLMANAGER][usecallmanager] to allow the Cisco phones to have more features over SIP. It's been a really neat thing to work on so far.
+
+And that's about it for now. Feel free to email with questions, and I'll see you next time!
+
+[usecallmanager]: https://usecallmanager.nz/documentation-overview.html
diff --git a/content/blog/vim-without-plugins.md b/content/blog/vim-without-plugins.md
new file mode 100644
index 0000000..0fadb18
--- /dev/null
+++ b/content/blog/vim-without-plugins.md
@@ -0,0 +1,90 @@
+---
+title: "(Neo)vim is usable without plugins"
+date: "2025-06-17"
+---
+
+Vim and Neovim are extremely powerful editors, but despite having lots of features built-in, many folk reach for third-party plugins quite easily. Here are a few common features that may be found of use which are built in to the editor.
+
+## Completion (Vim)
+
+Completion functions are all prefixed with `C-x` in insert mode. Take this snippet from the `ins-completion` help section for reference:
+
+```txt {tabWidth=0}
+In Insert and Replace mode, there are several commands to complete part of a
+keyword or line that has been typed. This is useful if you are using
+complicated keywords (e.g., function names with capitals and underscores).
+
+Completion can be done for:
+
+1. Whole lines |i_CTRL-X_CTRL-L|
+2. keywords in the current file |i_CTRL-X_CTRL-N|
+3. keywords in 'dictionary' |i_CTRL-X_CTRL-K|
+4. keywords in 'thesaurus', thesaurus-style |i_CTRL-X_CTRL-T|
+5. keywords in the current and included files |i_CTRL-X_CTRL-I|
+6. tags |i_CTRL-X_CTRL-]|
+7. file names |i_CTRL-X_CTRL-F|
+8. definitions or macros |i_CTRL-X_CTRL-D|
+9. Vim command-line |i_CTRL-X_CTRL-V|
+10. User defined completion |i_CTRL-X_CTRL-U|
+11. omni completion |i_CTRL-X_CTRL-O|
+12. Spelling suggestions |i_CTRL-X_s|
+13. keywords in 'complete' |i_CTRL-N| |i_CTRL-P|
+```
+
+Highlights are omni completion - often tied to LSP, spelling suggestions, and file names.
+
+## LSP (Neovim)
+
+This is easier to set up than ever thanks to Neovim v0.11 adding `vim.lsp.Config`.
+
+For starters, a configuration file for each language server must be created. Below is an example of one for `gopls`:
+
+```lua
+return {
+ cmd = { "gopls" },
+ root_markers = { ".git", "go.mod", "go.work" },
+ filetypes = { "go", "gomod", "gotmpl", "gowork" },
+}
+```
+
+Then, just enable the server:
+
+```vim
+if has('nvim-0.11')
+ if executable('gopls')
+ lua vim.lsp.enable('gopls')
+ endif
+endif
+```
+
+See the [Neovim docs](https://neovim.io/doc/user/lsp.html#vim.lsp.Config) for more information.
+
+## Fuzzy Finding (Vim)
+
+This is self-explanatory. Vim has recursive search support, along with wildcards.
+
+```vim
+" Include subdirectories in search path
+set path+=**
+
+" Add exclusions from recursive searches
+set wildignore+=**/.git/**,**/build/**,**/node_modules/**
+
+" Bind a key for searching
+nnoremap <C-p> :e **/*
+```
+
+## Tree-sitter (Neovim)
+
+Tree-sitter parsers must be installed with an external package manager, ideally the one your operating system already uses.
+
+Other than that, Neovim should start Tree-sitter with just the below code:
+
+```vim
+if has('nvim')
+ augroup StartTreesitter
+ autocmd!
+ autocmd FileType * lua pcall(vim.treesitter.start)
+ augroup END
+endif
+```
diff --git a/content/etc.md b/content/etc.md
new file mode 100644
index 0000000..0d34724
--- /dev/null
+++ b/content/etc.md
@@ -0,0 +1,9 @@
+---
+title: "Links, information, et cetera"
+---
+
+This is my general dump of things I find interest in.
+
+## Assistance in this site's creation
+
+* [Hugo](https://gohugo.io/)
diff --git a/hugo.toml b/hugo.toml
new file mode 100644
index 0000000..a48ad5f
--- /dev/null
+++ b/hugo.toml
@@ -0,0 +1,18 @@
+baseURL = "https://mending.trade/"
+title = "frosty's blog"
+uglyURLs = true
+titleCaseStyle = "none"
+disableKinds = ["rss", "section", "sitemap", "taxonomy"]
+
+[permalinks]
+blog = "/:year/:month/:day/:contentbasename"
+
+[[menus.main]]
+name = "etc"
+url = "/etc.html"
+weight = 10
+
+[[menus.main]]
+name = "about"
+url = "/about.html"
+weight = 20
diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
new file mode 100644
index 0000000..7035d68
--- /dev/null
+++ b/layouts/_default/_markup/render-heading.html
@@ -0,0 +1,6 @@
+<h{{ .Level }} {{ if le .Level 3 }} id="{{ .Anchor | safeURL }}" {{ end }}>
+{{ if le .Level 3 }}
+ <a href="#{{ .Anchor | safeURL }}">#</a>
+{{ end }}
+{{ .Text | safeHTML }}
+</h{{ .Level }}>
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..d9b2212
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="{{ .Site.Language }}">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>{{ if not .IsHome }}{{ .Title | title }} - {{ end }}{{ .Site.Title }}</title>
+ <link rel="stylesheet" type="text/css" href="/style.css">
+ <link rel="icon" href="/favicon.ico">
+</head>
+<body>
+ {{ partial "header.html" . }}
+ <main>
+ {{ block "main" . }}
+ {{ .Content }}
+ {{ end }}
+ {{ partial "footer.html" . }}
+ </main>
+</body>
+</html>
diff --git a/layouts/_default/home.html b/layouts/_default/home.html
new file mode 100644
index 0000000..94674b6
--- /dev/null
+++ b/layouts/_default/home.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+ {{ partial "all-posts.html" . }}
+{{ end }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..4cfd224
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,4 @@
+{{ define "main" }}
+ <h1>{{ .Title }}</h1>
+ {{ .Content }}
+{{ end }}
diff --git a/layouts/partials/all-posts.html b/layouts/partials/all-posts.html
new file mode 100644
index 0000000..77d8a18
--- /dev/null
+++ b/layouts/partials/all-posts.html
@@ -0,0 +1,7 @@
+{{ range $index, $page := where .Site.RegularPages "Section" "blog" }}
+ <div class="blog-item">
+ {{ $page.Date.Format "January 2, 2006" }}
+ <br>
+ <a href="{{ $page.RelPermalink }}">{{ $page.Title }}</a>
+ </div>
+{{ end }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..83b6ab0
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,4 @@
+<hr>
+<p>Thank you for taking interest in my website. The writing is under <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> and <a href="https://git.mending.trade/www">the code</a> is under the <a href="https://unlicense.org/">Unlicense</a>. Be kind.</p>
+<a href="https://www.gentoo.org/"><img src="/gentoo-button.png"/></a>
+<a href="https://www.vim.org/"><img src="/vim-button.png"/></a>
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
new file mode 100644
index 0000000..dbc52c5
--- /dev/null
+++ b/layouts/partials/header.html
@@ -0,0 +1,11 @@
+<header>
+ <img src="/avatar.png" width="64" height="64"/>
+ <div class="links">
+ <span class="title"><a href="/">{{ .Site.Title }}</a></span>
+ <nav>
+ {{ range site.Menus.main }}
+ <a href="{{ .URL }}">{{ .Name }}</a>
+ {{ end }}
+ </nav>
+ </div>
+</header>
diff --git a/static/avatar-512.png b/static/avatar-512.png
new file mode 100644
index 0000000..e50eb58
--- /dev/null
+++ b/static/avatar-512.png
Binary files differ
diff --git a/static/avatar.png b/static/avatar.png
new file mode 100644
index 0000000..429058e
--- /dev/null
+++ b/static/avatar.png
Binary files differ
diff --git a/static/gentoo-button.png b/static/gentoo-button.png
new file mode 100644
index 0000000..07ae247
--- /dev/null
+++ b/static/gentoo-button.png
Binary files differ
diff --git a/static/omemo-fingerprints.txt b/static/omemo-fingerprints.txt
new file mode 100644
index 0000000..7067ec4
--- /dev/null
+++ b/static/omemo-fingerprints.txt
@@ -0,0 +1,3 @@
+346338FC 140C086E F6B9873F CADBD472 1F9F9A38 65AD7383 9830438C 18AEC702
+2C68682C 915BE0B7 3F321DC0 6EFEFDCD 182D667E 9EA16828 27288243 2DC5B807
+40386F80 F0FB2972 57F7D0CA 241AA7FC 7A5B26EB 5555CC26 67DDB329 5537E542
diff --git a/static/style.css b/static/style.css
new file mode 100644
index 0000000..caa8305
--- /dev/null
+++ b/static/style.css
@@ -0,0 +1,66 @@
+body {
+ margin: 0 auto;
+ max-width: 50em;
+ font-family: system-ui, sans-serif;
+ font-weight: normal;
+ background: #090909;
+ color: #ffffff;
+}
+
+a {
+ color: #ee82ee;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+hr {
+ border: none;
+ border-bottom: 1px #d3d3d3 dotted;
+}
+
+main h1,
+main h2,
+main h3 {
+ border-bottom: 1px #d3d3d3 dotted;
+}
+
+header {
+ height: 64px;
+ margin: 1em 0;
+}
+
+header .links a {
+ color: #ffffff;
+}
+
+header .links {
+ margin-left: 0.5em;
+}
+
+header img,
+header .links {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+header .title {
+ font-size: 1.5em;
+ font-weight: bold;
+}
+
+.blog-item {
+ padding: 0.5em;
+ background: #191919;
+ margin: 1em 0;
+}
+
+.blog-item span {
+ color: #d3d3d3;
+}
+
+pre {
+ padding: 0.25em;
+}
diff --git a/static/vim-button.png b/static/vim-button.png
new file mode 100644
index 0000000..7be23f8
--- /dev/null
+++ b/static/vim-button.png
Binary files differ