From 01a2f10cfa100996e18e52f245f0be2baf545a00 Mon Sep 17 00:00:00 2001 From: frosty Date: Tue, 16 Sep 2025 18:18:10 -0400 Subject: initial commit --- .gitignore | 2 + Makefile | 17 +++++ UNLICENSE | 22 +++++++ content/about.md | 17 +++++ content/blog/status-update-may-2025.md | 14 +++++ content/blog/vim-without-plugins.md | 90 +++++++++++++++++++++++++++ content/etc.md | 9 +++ hugo.toml | 18 ++++++ layouts/_default/_markup/render-heading.html | 6 ++ layouts/_default/baseof.html | 19 ++++++ layouts/_default/home.html | 3 + layouts/_default/single.html | 4 ++ layouts/partials/all-posts.html | 7 +++ layouts/partials/footer.html | 4 ++ layouts/partials/header.html | 11 ++++ static/avatar-512.png | Bin 0 -> 487592 bytes static/avatar.png | Bin 0 -> 8968 bytes static/gentoo-button.png | Bin 0 -> 1055 bytes static/omemo-fingerprints.txt | 3 + static/style.css | 66 ++++++++++++++++++++ static/vim-button.png | Bin 0 -> 321 bytes 21 files changed, 312 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 UNLICENSE create mode 100644 content/about.md create mode 100644 content/blog/status-update-may-2025.md create mode 100644 content/blog/vim-without-plugins.md create mode 100644 content/etc.md create mode 100644 hugo.toml create mode 100644 layouts/_default/_markup/render-heading.html create mode 100644 layouts/_default/baseof.html create mode 100644 layouts/_default/home.html create mode 100644 layouts/_default/single.html create mode 100644 layouts/partials/all-posts.html create mode 100644 layouts/partials/footer.html create mode 100644 layouts/partials/header.html create mode 100644 static/avatar-512.png create mode 100644 static/avatar.png create mode 100644 static/gentoo-button.png create mode 100644 static/omemo-fingerprints.txt create mode 100644 static/style.css create mode 100644 static/vim-button.png 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 :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 @@ + +{{ if le .Level 3 }} + # +{{ end }} +{{ .Text | safeHTML }} + 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 @@ + + + + + + {{ if not .IsHome }}{{ .Title | title }} - {{ end }}{{ .Site.Title }} + + + + + {{ partial "header.html" . }} +
+ {{ block "main" . }} + {{ .Content }} + {{ end }} + {{ partial "footer.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" }} +

{{ .Title }}

+ {{ .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" }} +
+ {{ $page.Date.Format "January 2, 2006" }} +
+ {{ $page.Title }} +
+{{ 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 @@ +
+

Thank you for taking interest in my website. The writing is under CC0 and the code is under the Unlicense. Be kind.

+ + 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 @@ +
+ + +
diff --git a/static/avatar-512.png b/static/avatar-512.png new file mode 100644 index 0000000..e50eb58 Binary files /dev/null and b/static/avatar-512.png differ diff --git a/static/avatar.png b/static/avatar.png new file mode 100644 index 0000000..429058e Binary files /dev/null and b/static/avatar.png differ diff --git a/static/gentoo-button.png b/static/gentoo-button.png new file mode 100644 index 0000000..07ae247 Binary files /dev/null and b/static/gentoo-button.png 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 Binary files /dev/null and b/static/vim-button.png differ -- cgit v1.2.3