Organizing my visual book notes by topic
| blogging, 11tyI want to start building up more thoughts as chunks and relating them more logically instead of just chronologically. I've been using categories to organize my posts into buckets, but within a category, it's still chronological. I also have a large outline that includes posts from 2017 to 2024. I'd like to break it up into smaller topic pages so that they're easier to link to, although it's a little more challenging to search.
Now that I have a nice gallery view for my visual
book notes, I wanted to organize the book notes by
topic. I made an async Eleventy paired shortcode called gallerylist
that lets me turn a list of links into into thumbnails
and links.
I also modified org-html-toc
to not include the
Table of Contents header and to tweak the HTML
attributes assigned to it.
New table of contents code
(defun my-org-html-toc (depth info &optional scope) "Build a table of contents. DEPTH is an integer specifying the depth of the table. INFO is a plist used as a communication channel. Optional argument SCOPE is an element defining the scope of the table. Return the table of contents as a string, or nil if it is empty." (let ((toc-entries (mapcar (lambda (headline) (cons (org-html--format-toc-headline headline info) (org-export-get-relative-level headline info))) (org-export-collect-headlines info depth scope)))) (when toc-entries (let* ((toc-id-counter (plist-get info :org-html--toc-counter)) (toc (concat (format "<div class=\"text-table-of-contents toc-id%s\" role=\"doc-toc\">" (if toc-id-counter (format "-%d" toc-id-counter) "")) (org-html--toc-text toc-entries) "</div>\n"))) (plist-put info :org-html--toc-counter (1+ (or toc-id-counter 0))) (if scope toc (let ((outer-tag (if (org-html--html5-fancy-p info) "nav" "div"))) (concat (format "<%s class=\"table-of-contents toc-id%s\" role=\"doc-toc\">\n" outer-tag (if toc-id-counter (format "-%d" toc-id-counter) "")) ;; (let ((top-level (plist-get info :html-toplevel-hlevel))) ;; (format "<h%d>%s</h%d>\n" ;; top-level ;; (org-html--translate "Table of Contents" info) ;; top-level)) toc (format "</%s>\n" outer-tag)))))))) (with-eval-after-load 'org (defalias 'org-html-toc #'my-org-html-toc))
This is what my visual book notes topic page looks like now:
I can improve on this by using the topic maps to determine next/previous links for the posts. Someday!