Web bookmarks using Org Mode – Part 1

I have been using the Org Mode feature within Emacs for two years now, primarily for keeping a work log and a work to-do list (wrote about this in December 2021). The outlining features and the TODO/DONE construct have been sufficient for me to do what I needed to do. I have not spent much time learning other features, mostly because of my resistance problem. However, I have decided to try to use Org Mode to manage/organize my personal bookmark library. This is spread across multiple text and word processing documents, and I want to be able to search them and for this collection to not be a “write-only” set of data (which is mostly what it is).

When I started researching how I might go about this effort, I found a lot of examples of Org Mode capture templates, Elisp programs, and other techniques. This was a little overwhelming, so I decided to step back and think about my requirements – what data did I want to save, and what did I want to do with these bookmarks (see Karl Voit for reference). These were my initial “data requirements”:

1. Link URL and title of page

2. Tags

3. Description of URL content/other comments

4. Date/timestamp

My main “what to do” requirements were:

1. Search (by tags, text string, something else)

2. Present by some organization (like tags)

I spent time learning about capture templates, and the various features of those templates, and again felt overwhelmed. I decided then to just try capturing the data items above just in a word processing document. After doing that for my five most recent bookmarks, I still felt like that was the right data to collect. I then tried to think about the simplest way to collect that data using the org-capture feature.

After reviewing all the examples I had collected, I decided to try a capture template that provided a way to enter the same data I had entered in my word processing document. I went with a template from Karl Voit’s post on bookmarks and Org:

          ("b" "Bookmark" entry (file+headline "~/share/all/org-mode/notes.org" "Bookmarks")
           "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)


I added this to some capture templates I had already created in my .emacs file.

'(("l" "Link" entry (file+headline "C:/Users/sylve/Documents/OrgFiles/GTD/links.org" "Links")
      "* %? %^L %^g \n%T" :prepend t)
("n" "Note" entry (file+headline "C:/Users/sylve/Documents/OrgFiles/GTD/newnotes.org" "Notes")
"* %u %? " :prepend t)
("b" "Bookmark" entry (file+headline "C:/Users/sylve/Documents/OrgFiles/GTD/linkskv.org" "Bookmarks")
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n" :empty-lines 1)

I had also learned about how Org Mode can render a bookmark as a live link if entered in this form:

[[URL][Link text]]

I decided to enter the URL and title in this way. When an entry was complete, it became a link that could be clicked on and open a new browser tab with that URL. After trying the new capture template, I felt that would serve for now.

* Bookmarks
** [[http://www.howardism.org/Technical/Emacs/capturing-content.html][Capturing Content for Emacs]]
:PROPERTIES:
:CREATED: [2022-07-24 Sun 17:51]
:END:
More examples of how to capture content in other apps and get it into Emacs
org_mode, org_capture

Next post: a summary of the Org Mode bookmark tools/techniques I found in my initial search.

Hey Lazyweb and Org mode users! I tried to install org-opml this weekend but had problems – anyone else tried this?

Gettting Things Done Simply – With Org Mode

I have done a lot of reading on incorporating the “Getting Things Done” workflow/system (GTD) into my life using Org Mode in Emacs as the tool of choice. However, I have had some resistance in trying to follow the method. I don’t know if it is stubbornness, or laziness, or unwillingness to get started, or a combination of all three. However, I have been using Org Mode as a tool to replace my kanban board that I was using before the pandemic, and the system I have put together has been helping me to get things done, so I think it is worth passing on to others.

For people not familiar with Org Mode within the Emacs text editor, one of its features is an outliner. It supports having multiple levels of outlines and ability to easily move outline elements. Another feature is support for managing to-do lists, including color-coded keywords for TODO and DONE. With these two features of Org Mode, I have been able to keep an electronic worklog since March 2020 (I was using a spiral notebook before for this task), and manage my task list electronically instead of using a kanban board with sticky notes.

To better describe the system, here is a screenshot of part of my day log outline and my task list:

There are two outlines shown here, which I call Log and Tasks. This is my personal file, but my work file is similar. The Log outline is organized by year, then month, then day. In the above view, I am showing the full outline of entries for December 2021, but have the entries for the previous months collapsed. Different levels of the outline are displayed in different colors, which helps make sub-outline entries more visible. Typically, my day log entries are for individual tasks that I completed. However, there are times when I want to add some additional information, so I add this as a sub-heading of the entry in the log. In this example, I included a link to a YouTube video for one outline item, and also described a next step for the item I completed on another outline item. These additional sub-headings can be collapsed so that they are hidden from view. In Org Mode, if a heading in an outline has three dots/periods at the end of the line, that indicates there are additional sub-headings below that heading.

The second outline is the Tasks outline. When I add a task, I use the TODO keyword, which is displayed in red. When I complete a task, I change the keyword to DONE (displayed in green) using a keystroke. My typical workflow is to begin the day by reviewing DONE items, making sure I added notes for them in the daylog, then deleting the DONE headlines in the outline. Next, I re-order the items based on priority. This represents a combination of the ToDo column and the In Process column of my previous 3-column kanban board (To-Do, In Process, Done). In ordering the items, I try to focus on the top two items in the list (my In-Process items). If something comes up that changes the priority of tasks, I move items in the outline. During the day, I move the DONE items to the top of the list. At the end of the day, I review the items in the Tasks outline to see if I made progress or completed anything else, and add that to the Log outline. In addition, I review the Log outline to see if I captured all of the items I completed during the day, or conversations with co-workers, or anything else of note. Finally, during the day, if I get an email or IM request for some information or to do some task for someone, I try to add it to my Tasks outline as soon as possible and manage it there. In this way, I keep it in one place, and avoid using my email inbox as another place to manage tasks.

The advantages of this method are that it is simple and quick. The disadvantages are that I am not keeping track of tasks within a “project” as defined in GTD. Maybe in 2022 I can make more progress on implementing “all” of GTD….

If you are interested in learning more about Org Mode, I have created a series of screencasts which shows how to install Emacs on Windows, and learning about working with outlines. You can check it out at Org Mode for Beginners (https://orgmodeforbeginners.com/).

Bookmarked Org-Kasten (github.com)

This is a small set of elisp functions I use to implement my own version of a Zettelkasten, something that HN is currently infatuated with.