08:57 Monday 06 May 2019 JST
Atom editor has a way to write my own autocomplete rules. I don’t have a link handy, but it is handy for making links.
So I have a two part approach:
- create a file with Emacs by entering a Title (part name), Shortcode, Image,
Tag(s), and date. Emacs creates the new file as part_name.md
and now appends to the Atom file
~/.atom/snippets.csonthe information necessary to let Atom auto complete the markdown after I type the shortcode.
- use Atom to edit the file and easily insert markdown via autocompletion. Yay!
Here is the most recent addition to
'Lower Zig Zag 3 ban Upper Base Base': 'prefix': 'lzz3bubb' 'body': '[Lower Zig Zag 3 ban Upper Base Base](/parts/lower-zig-zag-3-ban-upper-base-base/)'
With this, I can type
lzz3bubb RET to get Atom to write
[Lower Zig Zag 3 ban Upper Base Base](/parts/lower-zig-zag-3-ban-upper-base-base/)
I am headed to men’s group to lead workshops all day so will probably forget to show the code, but there is code on github.
Emacs function to create file and autocomplete
(defun mt3-new-part (title shortcode tags image yyyy mm dd) "Create a new track part for Marble Track 3 .com with TITLE, TAGs, and shortcode." (interactive (list (read-string "Title: ") (read-string "Shortcode: ") (journal-read-tags nil) (read-string "Image: " nil nil "/img/guest/default-guest.png") (read-string (format "Year (%s): " (format-time-string "%Y")) nil nil (format-time-string "%Y")) (read-string (format "Month (%s): " (format-time-string "%m")) nil nil (format-time-string "%m")) (read-string (format "Date (%s): " (format-time-string "%d")) nil nil (format-time-string "%d")) ) ) (let ( (file-name (journal-post-title dd title)) (file-path (journal-no-date-path title)) ) (switch-to-buffer (find-file-noselect location-atom-snippets)) (end-of-buffer) (insert (format (get-string-from-file (expand-file-name "snippet_part.txt" location-journal-template-files)) title shortcode title (file-name-sans-extension file-path) ;; https://stackoverflow.com/a/8716106/194309 )) (save-buffer) (kill-buffer) (set-buffer (get-buffer-create file-path)) (insert (format (get-string-from-file (expand-file-name "mt3_parts_template.txt" location-journal-template-files)) title (mapconcat (lambda (x) (format "\"%s\"" (downcase x))) tags ", ") image (thumbnail-path image) title shortcode yyyy mm dd (format-time-string "%H:%M:%S+09:00") (format-time-string "%Y %b %d ") ) ) (write-file (expand-file-name file-path (concat mt3-site-location "parts"))) (switch-to-buffer file-path) (auto-fill-mode) ) )