Sun Mar 12 15:02 EDT; goldblum ============================== I think I figured out a good workflow for publishing straight from org capture. Here's the bit of config in my emacs init: ,---- | (require 'org-element) | | (let ((gopher-dir (concat (getenv "HOME") "/gopher/")) | (entry-file "first.org") | (log-file "log.org") | (sdf-dir "/ssh:sdf:~/gopher/")) | | (defun j0ni/prepare-first-entry (plist filename dst-dir) | (let* ((org-inhibit-startup t) | (visiting (find-buffer-visiting filename)) | (work-buffer (or visiting (find-file-noselect filename))) | (dst-file (expand-file-name entry-file dst-dir))) | (with-current-buffer work-buffer | (let ((entry (org-element-map (org-element-parse-buffer) 'headline | (lambda (hl) | (when (= (org-element-property :level hl) 2) | hl)) | nil t))) | (with-temp-buffer | (insert "#+OPTIONS: toc:nil H:1 num:nil title:nil author:nil creator:nil") | (newline) | (insert "#+ATTR_ASCII: width:60") | (newline) | (insert (org-element-interpret-data entry)) | (write-region (point-min) (point-max) dst-file)))))) | | (setopt org-publish-project-alist | ;; This makes a markdown version of this file. | `(("notwithstanding" | :base-directory ,user-emacs-directory | :publishing-directory ,user-emacs-directory | :publishing-function org-md-publish-to-md) | ("captains-phlog" | :include ("log.org") | :exclude "first.org" | :base-directory ,gopher-dir | :publishing-directory ,gopher-dir | :publishing-function (org-ascii-publish-to-ascii j0ni/prepare-first-entry)) | ("first-entry" | :include ("first.org") | :exclude "log.org" | :base-directory ,gopher-dir | :publishing-directory ,sdf-dir | :publishing-function org-ascii-publish-to-ascii) | ("phlog" :components ("captains-phlog" "first-entry"))))) `---- Note that the "notwithstanding" part is unrelated, but ¯\_(ツ)_/¯. Let's see how it goes, and if this is just too much text.