summaryrefslogtreecommitdiff
path: root/christian.el
blob: 24a707c59adc74e7f0842334b289566a8341580c (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 "2025-12-06"
                          :title "Self‑Hosting Guide: Tor Websites"
                          :url "https://cleberg.net/blog/self-hosting-tor.html")
                  (:date "2025-11-23"
                          :title "Practical Uses for AI in IT Audit"
                          :url "https://cleberg.net/blog/it-audit-ai.html")
                  (:date "2025-11-15"
                          :title "Striving for 100% WCAG 2 Compliance"
                          :url "https://cleberg.net/blog/wcag.html")
                  (:date "2025-11-02"
                          :title "Using aerc on macOS"
                          :url "https://cleberg.net/blog/aerc-macos.html")
                  (:date "2025-10-25"
                          :title "Digital Garden"
                          :url "https://cleberg.net/blog/digital-garden.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