From 839c53448b6a9c18acf225271a632649f6eb74d2 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 24 Jul 2023 22:34:07 -0700 Subject: [PATCH] Add blog section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add a ‘posts/index.org’ that just includes all of the posts and only exports headings tagged with ‘summary’. - Add summaries to all posts. - Rename posts to include the date and time in the file name. - Add an RSS feed from the new ‘posts/index.org’ Unfortunately generating an RSS feed from the ‘index.org’ doesn't work, so this experiment is at a dead end for now. --- .gitignore | 1 - ....org => 20160221-0000-wdocker-compose.org} | 7 +++++++ ...ew-blog.org => 20191006-1255-new-blog.org} | 7 +++++++ ...191006-1818-my-new-emacs-configuration.org | 15 +++++++++++++++ ...200223-1828-a-very-important-blog-post.org | 13 +++++++++++++ ...org => 20230412-0702-paredit-and-ielm.org} | 10 +++++++++- ...56-switch-todo-state-when-clocking-in.org} | 7 +++++++ posts/a-very-important-blog-post.org | 4 ---- posts/index.org | 10 ++++++++++ posts/my-new-emacs-configuration.org | 8 -------- publish.el | 19 +++++++++++++++---- 11 files changed, 83 insertions(+), 18 deletions(-) rename posts/{wdocker-compose.org => 20160221-0000-wdocker-compose.org} (96%) rename posts/{new-blog.org => 20191006-1255-new-blog.org} (97%) create mode 100644 posts/20191006-1818-my-new-emacs-configuration.org create mode 100644 posts/20200223-1828-a-very-important-blog-post.org rename posts/{paredit-and-ielm.org => 20230412-0702-paredit-and-ielm.org} (83%) rename posts/{switch-todo-state-when-clocking-in.org => 20230610-0556-switch-todo-state-when-clocking-in.org} (94%) delete mode 100644 posts/a-very-important-blog-post.org create mode 100644 posts/index.org delete mode 100644 posts/my-new-emacs-configuration.org diff --git a/.gitignore b/.gitignore index 11d7ef3..f6bf352 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ /.cask /public /.org-timestamps -/posts/index.org* # Added automatically by `eldev init'. /.eldev diff --git a/posts/wdocker-compose.org b/posts/20160221-0000-wdocker-compose.org similarity index 96% rename from posts/wdocker-compose.org rename to posts/20160221-0000-wdocker-compose.org index 6117db8..3c72e96 100644 --- a/posts/wdocker-compose.org +++ b/posts/20160221-0000-wdocker-compose.org @@ -3,6 +3,7 @@ #+STARTUP: showall #+FILETAGS: wdocker docker docker-compose #+OPTIONS: num:nil toc:nil +#+exclude_tags: summary [[https://github.com/babab/wdocker][wdocker]] is a little utility written by a [[https://benjamin.althu.es][friend]] and former colleague of mine. It allows you to define commands for it in a @@ -159,3 +160,9 @@ before: variables becomes too much for you, you can call the wdocker command without arguments to see the commands you defined and the shell commands they'll run. + +* Making docker-compose easier with wdocker :summary: + +So easy! + +[[file:20160221-0000-wdocker-compose.org][Read More]] diff --git a/posts/new-blog.org b/posts/20191006-1255-new-blog.org similarity index 97% rename from posts/new-blog.org rename to posts/20191006-1255-new-blog.org index a315712..c4b86d5 100644 --- a/posts/new-blog.org +++ b/posts/20191006-1255-new-blog.org @@ -1,10 +1,17 @@ #+TITLE: New Blog #+DATE: <2019-10-06 Sun 12:55> +#+exclude_tags: summary + +* New Blog :summary: It's that time again... I've started a new project to build and maintain my site and of course it has to come with a new blog post. I'm trying to have it generate an index based on the files in this directory. +[[file:20191006-1255-new-blog.org][Read More]] + +* All the meta + I don't want it to include anything beyond the first paragraph, though. Now I need to write some content so that it doesn't stay at a 1 minute read. If the average reading speed is 225 words per minute (it's probably not, but that's diff --git a/posts/20191006-1818-my-new-emacs-configuration.org b/posts/20191006-1818-my-new-emacs-configuration.org new file mode 100644 index 0000000..1679aad --- /dev/null +++ b/posts/20191006-1818-my-new-emacs-configuration.org @@ -0,0 +1,15 @@ +#+TITLE: My new Emacs configuration +#+DATE: <2019-10-06 Sun 18:18> +#+FILETAGS: draft +#+exclude_tags: summary + +* My new Emacs configuration :summary: + +I'm still working on this one. + +[[file:20191006-1818-my-new-emacs-configuration.org][Read More]] + +* Setup + +foo bar baz + soo diff --git a/posts/20200223-1828-a-very-important-blog-post.org b/posts/20200223-1828-a-very-important-blog-post.org new file mode 100644 index 0000000..02df9c0 --- /dev/null +++ b/posts/20200223-1828-a-very-important-blog-post.org @@ -0,0 +1,13 @@ +#+TITLE: A very important blog post +#+DATE: <2020-02-23 Sun 18:28> +#+exclude_tags: summary + +* A very important blog post :summary: + +Very important business here. + +[[file:20200223-1828-a-very-important-blog-post.org][Read More]] + +* Other content + +There is more here than what you can see. diff --git a/posts/paredit-and-ielm.org b/posts/20230412-0702-paredit-and-ielm.org similarity index 83% rename from posts/paredit-and-ielm.org rename to posts/20230412-0702-paredit-and-ielm.org index d5f83b4..ccd4d2d 100644 --- a/posts/paredit-and-ielm.org +++ b/posts/20230412-0702-paredit-and-ielm.org @@ -2,8 +2,10 @@ #+TAGS: emacs #+COMMENT_STATUS: closed #+STATUS: publish -#+DATE: Wed, 12 Apr 2023 07:02:45 GMT +# #+DATE: Wed, 12 Apr 2023 07:02:45 GMT +#+DATE: <2023-04-12 Wed 07:02> #+UPDATE_URL: /admin/modify-post/2023%252f04%252f12%252fielm-paredit +#+exclude_tags: summary For a while I've been bothered by being unable to use IELM to evaluate Emacs Lisp expressions. Then [[https://www.n16f.net/blog/making-ielm-more-comfortable/][Making IELM More Comfortable]] pointed out that using paredit in IELM causes the =RET= and =C-j= keybindings to be bound to the wrong functions and proposes to fix them. The given fix, however, appears to change the keybindings for all buffers using paredit. I don't want that, and Emacs can do better! @@ -24,3 +26,9 @@ A quick search yielded [[https://stackoverflow.com/a/13102821][Buffer-locally ov #+end_src Defining =RET= and =C-j= as =nil= means that the keybinding defaults back to the major-mode keybinding. + +* IELM & Paredit :summary: + +I couldn't use IELM for a while because of Paredit. So I fixed it. + +[[file:20230412-0702-paredit-and-ielm.org][Read More]] diff --git a/posts/switch-todo-state-when-clocking-in.org b/posts/20230610-0556-switch-todo-state-when-clocking-in.org similarity index 94% rename from posts/switch-todo-state-when-clocking-in.org rename to posts/20230610-0556-switch-todo-state-when-clocking-in.org index 600e08c..87602da 100644 --- a/posts/switch-todo-state-when-clocking-in.org +++ b/posts/20230610-0556-switch-todo-state-when-clocking-in.org @@ -6,6 +6,7 @@ #+status: publish #+UPDATE_URL: /admin/modify-post/2023%252f07%252f10%252fswitch-todo-state-when-clocking-in #+DATE: Mon, 10 Jul 2023 05:56:39 GMT +#+exclude_tags: summary This Emacs configuration snippet for org-mode changes a task's state from whatever “head” state it's in into the next state in its sequence when you clock in to a task. I do this by setting the =org-clock-in-switch-to-state= variable. @@ -76,6 +77,12 @@ Finally you just set this function as the value of =org-clock-in-switch-to-state (setq org-clock-in-switch-to-state #'oni-org-maybe-change-todo-state) #+end_src +* Switch TODO state when clocking in :summary: + +For a while I wanted to automatically mark a task as in progress whenever I clocked in to it. + +[[file:20230610-0556-switch-todo-state-when-clocking-in.org][Read More]] + * Footnotes [fn:1] By which I mean by pressing =C-c C-t= when =org-use-fast-todo-selection= is =nil= or pressing =C-S-= on the headline. diff --git a/posts/a-very-important-blog-post.org b/posts/a-very-important-blog-post.org deleted file mode 100644 index 5f05a78..0000000 --- a/posts/a-very-important-blog-post.org +++ /dev/null @@ -1,4 +0,0 @@ -#+TITLE: A very important blog post -#+DATE: <2020-02-23 Sun 18:28> - -Very important business here. diff --git a/posts/index.org b/posts/index.org new file mode 100644 index 0000000..11b867a --- /dev/null +++ b/posts/index.org @@ -0,0 +1,10 @@ +#+title: posts +#+select_tags: summary +#+options: tags:nil num:nil + +#+include: "./20230610-0556-switch-todo-state-when-clocking-in.org::*Switch TODO state when clocking in" +#+include: "./20230412-0702-paredit-and-ielm.org::*IELM & Paredit" +#+include: "./20200223-1828-a-very-important-blog-post.org::*A very important blog post" +#+include: "./20191006-1818-my-new-emacs-configuration.org::*My new Emacs configuration" +#+include: "./20191006-1255-new-blog.org::*New Blog" +#+include: "./20160221-0000-wdocker-compose.org::*Making docker-compose easier with wdocker" diff --git a/posts/my-new-emacs-configuration.org b/posts/my-new-emacs-configuration.org deleted file mode 100644 index dcb072b..0000000 --- a/posts/my-new-emacs-configuration.org +++ /dev/null @@ -1,8 +0,0 @@ -#+TITLE: My new Emacs configuration -#+DATE: <2019-10-06 Sun 18:18> -#+FILETAGS: draft - -I'm still working on this one. - -foo bar baz - soo diff --git a/publish.el b/publish.el index 65e3d14..2458992 100644 --- a/publish.el +++ b/publish.el @@ -5,7 +5,7 @@ ;; Author: Tom Willemse ;; Keywords: ;; Version: 1 -;; Package-Requires: (dockerfile-mode htmlize org org-contrib rainbow-delimiters) +;; Package-Requires: (dockerfile-mode htmlize org org-contrib rainbow-delimiters ox-rss) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -29,6 +29,7 @@ (require 'dockerfile-mode) (require 'ob-dot) (require 'ox-publish) +(require 'ox-rss) (require 'rainbow-delimiters) (require 'subr-x) @@ -90,10 +91,20 @@ :html-head "" :html-preamble (lambda (project) (let ((buffer (find-file-noselect (buffer-file-name)))) - (unless (string= "ryuslash.org" - (car (org-publish-find-property (buffer-file-name) :title project))) + (unless (member (car (org-publish-find-property (buffer-file-name) :title project)) + '("ryuslash.org" "posts")) (publish-format-reading-time (publish-calculate-reading-time buffer)))))) + ("rss" + :base-directory "posts/" + :base-extension "org" + :rss-extension "xml" + :publishing-directory "public/posts/" + :publishing-function (org-rss-publish-to-rss) + :section-numbers nil + :exclude ".*" + :include ("index.org") + :table-of-contents nil) ("assets" :base-directory "." :recursive t @@ -101,7 +112,7 @@ :base-extension "svg\\|png\\|jpg" :publishing-function org-publish-attachment :publishing-directory "public/") - ("all" :components ("index" "assets")))) + ("all" :components ("index" "posts" "rss" "assets")))) (defvar publish-feed-url-format ;"https://gitlab.com/ryuslash/ryuslash.org/-/commits/master/%s?feed_token=Rf8otgpS8YEiYakJN4NR&format=atom"