commit 46d4e27ad4f27c4764061c2581e56893864d79d7 Author: chasechimeric Date: Sun Apr 26 23:21:15 2026 -0700 first comm diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73fdcda --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/public +/resources +/.hugo_build.lock diff --git a/README.md b/README.md new file mode 100644 index 0000000..98c5d6d --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# Personal Blog (Hugo + re-Terminal + Sveltia CMS) + +This site is preconfigured with: + +- Hugo theme: `github.com/mirus-ua/hugo-theme-re-terminal/v2` +- Headless CMS module: `github.com/privatemaker/headless-cms` +- CMS engine: `sveltia` + +## Run locally + +```bash +cd /home/chasechimeric/Documents/Code/personal-blog +hugo server -D +``` + +- Blog: `http://localhost:1313/` +- CMS: `http://localhost:1313/admin/` + +## Required personalization + +Edit `hugo.yaml` and replace: + +1. `baseURL: https://example.org/` with your real domain. +2. `params.headless_cms.backend.repo: REPLACE_WITH_OWNER/REPLACE_WITH_REPO` with your GitHub repo. + +## Notes + +- The project uses Hugo Modules (`go.mod`/`go.sum` already initialized). +- A local RSS template override is included for compatibility with current Hugo releases. diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..0d5eebd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ +--- +date: '{{ .Date }}' +draft: true +title: '{{ replace .File.ContentBaseName "-" " " | title }}' +--- diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..ccfbfc9 --- /dev/null +++ b/content/about.md @@ -0,0 +1,9 @@ +--- +title: About +date: 2026-04-26T00:00:00-07:00 +draft: false +--- + +Hi, I am Chase. + +This is my personal blog built with Hugo, re-Terminal, and Sveltia CMS. diff --git a/content/admin/_index.md b/content/admin/_index.md new file mode 100644 index 0000000..6455ed5 --- /dev/null +++ b/content/admin/_index.md @@ -0,0 +1,4 @@ +--- +title: Content Admin +layout: headless-cms +--- diff --git a/content/posts/_index.md b/content/posts/_index.md new file mode 100644 index 0000000..76fa783 --- /dev/null +++ b/content/posts/_index.md @@ -0,0 +1,3 @@ +--- +title: Posts +--- diff --git a/content/posts/hello-world.md b/content/posts/hello-world.md new file mode 100644 index 0000000..7ed14f5 --- /dev/null +++ b/content/posts/hello-world.md @@ -0,0 +1,14 @@ +--- +title: Hello World +date: 2026-04-26T00:00:00-07:00 +draft: false +author: Chase Chimeric +description: First post on the new blog. +tags: + - hugo + - blog +--- + +This is the first post on the new personal site. + +If you are reading this, the theme and content pipeline are working. diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..36cfa84 --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module github.com/chasechimeric/personal-blog + +go 1.26.2 + +require ( + github.com/mirus-ua/hugo-theme-re-terminal/v2 v2.4.3 // indirect + github.com/privatemaker/headless-cms v0.1.2 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..cb6187f --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +github.com/mirus-ua/hugo-theme-re-terminal/v2 v2.4.3 h1:gW7ZbSzwbPAQQKhAEC62TWecEOmHwv23NoXEyx/D0og= +github.com/mirus-ua/hugo-theme-re-terminal/v2 v2.4.3/go.mod h1:mcOfSJ/BI1p/yQ8nMAUD0gqVOK4Wo/Biw3ZHFy45NuM= +github.com/privatemaker/headless-cms v0.1.2 h1:uLCiN3k3Tr48WzOeWsIJ8S7TXOoMoOrz4KT2V7hisso= +github.com/privatemaker/headless-cms v0.1.2/go.mod h1:ZcHkPZzL9yCsBdmn9FpoIW35snTyj1bDOfqT0ZFJoZE= diff --git a/hugo.yaml b/hugo.yaml new file mode 100644 index 0000000..068f051 --- /dev/null +++ b/hugo.yaml @@ -0,0 +1,126 @@ +baseURL: https://example.org/ +languageCode: en-us +title: Chase Chimeric +enableRobotsTXT: true + +pagination: + pagerSize: 6 + +taxonomies: + tag: tags + category: categories + +outputFormats: + HeadlessCMSConfig: + baseName: headless-cms-config + isHTML: false + notAlternative: true + mediaType: application/yaml + +outputs: + home: + - HTML + - RSS + - HeadlessCMSConfig + +services: + rss: + limit: 25 + +menu: + main: + - identifier: posts + name: Posts + url: /posts/ + weight: 10 + - identifier: about + name: About + url: /about/ + weight: 20 + +module: + imports: + - path: github.com/mirus-ua/hugo-theme-re-terminal/v2 + - path: github.com/privatemaker/headless-cms + +params: + contentTypeName: posts + themeColor: blue + showMenuItems: 3 + showLanguageSelector: false + fullWidthTheme: false + centerTheme: true + autoCover: true + readingTime: true + Toc: true + TocTitle: Table of Contents + + logo: + logoText: Chase Chimeric + logoHomeLink: / + + author: + name: Chase Chimeric + email: you@example.com + + headless_cms: + engine: sveltia + publish_mode: editorial_workflow + media_folder: static/uploads + public_folder: /uploads + backend: + name: github + repo: ChaseChimeric/personal-blog + branch: main + collections: + - name: posts + label: Posts + label_singular: Post + folder: content/posts + create: true + slug: "{{year}}-{{month}}-{{day}}-{{slug}}" + extension: md + format: yaml-frontmatter + preview_path: posts/{{slug}} + fields: + - label: Title + name: title + widget: string + - label: Date + name: date + widget: datetime + - label: Draft + name: draft + widget: boolean + default: true + required: false + - label: Author + name: author + widget: string + required: false + - label: Description + name: description + widget: text + required: false + - label: Tags + name: tags + widget: list + required: false + - label: Body + name: body + widget: markdown + +languages: + en: + languageName: English + params: + title: Chase Chimeric + subtitle: Notes on software, systems, and experiments + owner: Chase Chimeric + menuMore: Show more + readMore: Read more + readOtherPosts: Read other posts + newerPosts: Newer posts + olderPosts: Older posts + minuteReadingTime: min read + words: words diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml new file mode 100644 index 0000000..f0a522b --- /dev/null +++ b/layouts/_default/rss.xml @@ -0,0 +1,48 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} +{{- $pages := slice -}} +{{- if or $.IsHome $.IsSection -}} +{{- $pages = $pctx.RegularPages -}} +{{- else -}} +{{- $pages = $pctx.Pages -}} +{{- end -}} +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 1 -}} +{{- $pages = $pages | first $limit -}} +{{- end -}} +{{- $authorEmail := "" -}} +{{- $authorName := "" -}} +{{- with .Site.Params.author -}} + {{- with .email -}}{{- $authorEmail = . -}}{{- end -}} + {{- with .name -}}{{- $authorName = . -}}{{- end -}} +{{- end -}} +{{- printf "" | safeHTML }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{ . }}{{ end }} + {{- if $authorEmail }} + {{ $authorEmail }}{{ with $authorName }} ({{ . }}){{ end }} + {{ $authorEmail }}{{ with $authorName }} ({{ . }}){{ end }} + {{- end }}{{ with .Site.Copyright }} + {{ . }}{{ end }}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{- with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{- end -}} + {{ range $pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{- if $authorEmail }}{{ $authorEmail }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }} + {{ .Permalink }} + {{ .Summary | html }} + {{ .Content | html }} + + {{ end }} + + diff --git a/static/uploads/.gitkeep b/static/uploads/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/static/uploads/.gitkeep @@ -0,0 +1 @@ +