Hugo blog org-capture-templates
Blogging with org-mode I do almost all my note-taking in Emacs org-mode, so naturally I also prefer to write my blog posts in it. As for my ox-hugo blogging flow, I use the less preferred method: one org file per post, the consequence is I cannot just copy-paste the org capture setup provided by the doc site. I also setup my posts in a subdirectory beneath the HUGO_BASE_DIR: 1 tree -n .. Code Snippet 1: my content directory 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 .. ├── about │ └── about.org ├── archives.org ├── configuring-neovim │ └── configuring-neovim.org ├── emacs-avy │ ├── avy.gif │ └── emacs-avy.org ├── emacs-builtin-use-package │ ├── emacs-builtin-use-package.org │ ├── prefix-key.png │ └── which-key-mode.png ├── emacs-evil │ └── emacs-evil.org ├── emacs-general │ └── emacs-general.org ├── emacs-sane-defaults │ ├── default-emacs.png │ ├── emacs-after.png │ ├── emacs-dired.png │ ├── emacs-eshell.png │ ├── emacs-sane-defaults.org │ └── emacs-tetris.png ├── emacs-shell │ ├── emacs-shell.org │ ├── eshell-command-form.png │ ├── eshell-elisp-form.png │ └── eshell.png ├── emacs-version-control │ ├── emacs-magit-status.png │ └── emacs-version-control.org ├── emacs-vertico │ ├── consult-buffer.png │ ├── consult-flymake.png │ ├── consult-outline.png │ ├── consult-yank-pop.png │ ├── corfu-completion.png │ ├── emacs-vertico.org │ ├── emacs-vertico.png │ ├── emacs-without-vertico.png │ ├── marginalia-describe-variable.png │ ├── marginalia-files.png │ ├── marginalia-find-file-with-icons.png │ ├── nerd-icons-corfu.png │ ├── orderless-default.png │ ├── vertico-buffer-mode.png │ ├── vertico-flat-mode.png │ ├── vertico-grid-mode.png │ ├── vertico-indexed-mode.png │ ├── vertico-quick.png │ └── vertico-reverse-mode.png ├── github-action-hugo-emacs │ ├── action-secrets-and-variables.png │ ├── deploy-github.png │ └── github-action-hugo-emacs.org ├── hugo-blogging-org-capture-templates │ ├── hugo-blogging-org-capture-templates.org │ └── transient.png ├── hyprland │ ├── applications.gif │ ├── hyprland.org │ └── hyprland.png ├── i3wm │ ├── i3wm-2025-06-23 23:42:18.gif │ ├── i3wm-2025-06-23_22-28.png │ ├── i3wm-dependency-2025-06-24_00-05.png │ ├── i3wm-scratch-2025-06-23 22-53.gif │ └── i3wm.org ├── learning-rust │ ├── learning-rust.org │ └── rust-perfect-number.png ├── literate-configuration │ ├── github-pages-deployed.png │ ├── literate-configuration.org │ ├── literate-emacs-screenshot.png │ └── org-edit-special.png ├── modular-guix-system-configuration │ ├── EFI-partition.png │ ├── TRAMP.png │ ├── btrfs-subvolumes.png │ ├── cow-store.png │ ├── filesystem.png │ ├── linux-partition.png │ ├── modular-guix-system-configuration.org │ ├── mount-btrfs.png │ ├── mounting-subvolumes.png │ └── swapfile-creation.png ├── notmuch-mail-emacs │ ├── full.png │ └── notmuch-mail-emacs.org ├── org-mode-workflow │ ├── emacs-dashboard.png │ ├── org-agenda-custom-commands-upcoming.png │ ├── org-agenda-custom-commands-work.png │ ├── org-agenda-custom-incomplete.png │ ├── org-agenda-custom-next-three-days.png │ ├── org-agenda-custom-today.png │ ├── org-capture-1.png │ ├── org-capture-2.png │ ├── org-capture-firefox.png │ ├── org-capture-with-template-1.png │ ├── org-capture-with-template-2.png │ ├── org-capture-with-template-3.png │ ├── org-capture-with-template-4.png │ ├── org-mode-workflow.org │ ├── org-modern-agenda.png │ ├── org-modern.png │ ├── org-protocol-capture-firefox.png │ ├── task-flow.svg │ └── vanilla-emacs-org-agenda.png ├── projects │ └── projects.org ├── search.org ├── shell-tips-and-tricks │ └── shell-tips-and-tricks.org ├── syncthing-is-underrated │ ├── syncthing-is-underrated.org │ └── syncthing-web-2025-06-27_00-11.png ├── terminal-multiplexer │ ├── gnu-screen-2.png │ ├── gnu-screen.png │ └── terminal-multiplexer.org ├── theming-emacs │ ├── default-emacs.png │ ├── emacs-doom-theme-modeline-and-dashboard.png │ ├── emacs-wombat.png │ └── theming-emacs.org └── why-use-mpd ├── cantata-2025-06-26_22-54.png ├── mpc-2025-06-26_23-41.png ├── ncmpcpp-2025-06-26_22-44.png └── why-use-mpd.org 26 directories, 107 files Custom org-capture-templates First off, org-capture-templates is just like its name; it is a template for creation of new entries. It is used by org-mode, which is a killer feature of Emacs. Initially it was design to capture notes with little interruption1. But since it was all Emacs Lisp, we can modify it with ease. ...