blob: 7f269e341a570dc3615be9e9cd918f8dfde84145 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
;;; christian.el --- Personal profile & blog index -*- lexical-binding: t -*-
;; Author: Christian Cleberg <[email protected]>
;; Version: 0.1
;; Keywords: privacy, security, self-hosting
;; Package-Requires: ((emacs "27.1"))
;;; Commentary:
;; I'm a Tech Assurance Manager at KPMG.
;; I run a personal site at https://cleberg.net which contains:
;; - a blog,
;; - information about me,
;; - publicly‑hosted services.
;;
;; Prefer Tor? Use the .onion address for the same content.
;;; Code:
(defvar christian/profile
'((name . "Christian")
(email . "[email protected]")
(role . "Tech Assurance Manager at KPMG")
(gpg-key . "https://cleberg.net/gpg.txt")
(site-url . "https://cleberg.net")
(tor-url . "http://sv3g2dlyvwyk2nvi3eeh55fcrpdvjlclhi6wwsx57cste6lwdjanzyyd.onion")
(blog-posts .
((:date "2026-02-12"
:title "Automating Weblorg Deployments with GitHub Actions"
:url "https://cleberg.net/blog/automating-weblorg-deployments.html")
(:date "2026-02-08"
:title "Managing My Dotfiles with GNU Stow and Git"
:url "https://cleberg.net/blog/gnu-stow.html")
(:date "2026-02-07"
:title "IndieWeb Carnival: Intersecting Interests"
:url "https://cleberg.net/blog/indiweb-carnival-2026-02-intersecting-interests>
(:date "2026-02-02"
:title "Emacs Carnival: “Completion”"
:url "https://cleberg.net/blog/emacs-carnival-2026-02-completion.html")
(:date "2026-01-31"
:title "Emacs Carnival: “This Year, I Will...”"
:url "https://cleberg.net/blog/emacs-carnival-2026-01-this-year-i-will.html")))))
(defun christian/display-profile ()
"Pretty‑print the profile in a *Help* buffer."
(interactive)
(with-help-window "*Christian Profile*"
(princ (format "%s %s\n\n" (alist-get 'name christian/profile)
(alist-get 'emoji christian/profile)))
(princ (format "%s\n\n" (alist-get 'role christian/profile)))
(princ (format "Website: %s\n" (alist-get 'site-url christian/profile)))
(princ (format "Tor (onion): %s\n\n" (alist-get 'tor-url christian/profile)))
(princ "=== Latest Blog Posts ===\n")
(dolist (post (alist-get 'blog-posts christian/profile))
(princ (format "- %s (%s)\n %s\n"
(plist-get post :title)
(plist-get post :date)
(plist-get post :url))))))
(provide 'christian)
;;; christian.el ends here
|