9 ms·
Howm: Personal Wiki for Emacs
- shrubble 2y agoI use this and it is fantastic for my use case as well; I use Syncthing to sync it (just a directory with other directories and files) across multiple systems so I always have the latest notes/todos wherever I am.
- dustfinger 2y agoHow does Howm compare to org brain? especially in terms of scalability.
- setopt 2y agoI haven’t really stress-tested it, but I would imagine that it scales well since (I) it can be configured to use Ripgrep to resolve searches and “goto links”, and (II) the “comefrom links” are cached on save. I haven’t used org-brain though, so it’s hard to compare :)
- ta988 2y agoOne thing I learned about PKMs is that it is not how many feature it has that dictates its usefulness, it is about how many features you are not encumbered by. Simplify so it doesn't get in your way. If your organization is too rigid (decimal system, complex organization) it will add a tax everytime you want to do something, and you will end up just maintaining the system not its content. Most of those pseudo experts that sell books, trainings, videos and what not are just luring you with a complex system and selling you extras because you just "don't get it yet" or just feed your FOMO with useless perks. Simplify!
- teddyh 2y agoAvoid the temptation to add new fields to the bug database. Every month or so, somebody will come up with a great idea for a new field to put in the database. You get all kinds of clever ideas, for example, keeping track of the file where the bug was found; keeping track of what % of the time the bug is reproducible; keeping track of how many times the bug occurred; keeping track of which exact versions of which DLLs were installed on the machine where the bug happened. It’s very important not to give in to these ideas. If you do, your new bug entry screen will end up with a thousand fields that you need to supply, and nobody will want to input bug reports any more. For the bug database to work, everybody needs to use it, and if entering bugs “formally” is too much work, people will go around the bug database. — Joel Spolsky, Painless Bug Tracking, 2000: <https://www.joelonsoftware.com/2000/11/08/painless-bug-tracking/ https://www.joelonsoftware.com/2000/11/08/painless-bug-track...>
- setopt 2y agoThat is indeed the principle around which Howm is designed. To quote its author: > If you don’t organize notes, it’s wearisome to read them. > If you try to organize notes, it’s wearisome to write them. > The need of trade-off is worrisome. “Wearisome” is an important keyword. There is a big difference between “I can do it” and “I can do it easily.” > The point of compromise may vary from person to person, but I prioritize the ease of writing. I have designed a memo tool to create an environment where one can freely jot down notes without feeling pressure to “organize” them and still maintain coherence.
- fhd2 2y agoDang, I thought this could cover my use case. At my (small but slowly growing) company, we use a git repository with a bunch of org files as our wiki. It works OK, but I can't see that grow very much. Also not particularly excited about moving to another tool though, org-mode is neat. If anyone figured out a better way to collaborate on a bunch of org files in a team, I'd love to hear about it!
- SoftTalker 2y agoGit (or a verson control system) actually sounds pretty ideal. That is their main use case: collaborating on a bunch of files in a team. What about it isn't working? Git scales to huge numbers of contributors easily.
- fhd2 2y agoWell, for one, it's a bit of a hassle. Constantly thinking of commit messages and stuff, but maybe I'm overly dramatic there. On top of that, it would be nice to at least navigate the contents read-only without Emacs. We use GitLab, it does render org files, but not even links to other files work.
- setopt 2y agoFor read-only access, I’ve heard that Hugo can be used with Org. It’s perhaps more used for blogs than wikis, but it should give you a clean and lightweight website of linked HTML files generated from the Org files, which might be sufficient. Presumably, this can be integrated with Gitlab CI to regenerate the website on push. I guess one question though is how this will scale as the company grows, assuming that more non-Emacs users might join the team after a while?
- fhd2 2y agoYeah exactly, it's a bit like chasing a local maximum. The sibling suggestion, gollum, looks very promising for this, a git backed web based wiki with org support.
- typester 2y agoWow, it's been a while since I've seen the word "howm" — brings back memories! I used to use howm all the time before switching over to org-mode, which was over 10 years ago. For a while after moving to org, I was still managing my org files with howm. Back then, howm wasn't really being maintained, and it was a bit of a hassle because it sometime broke when I updated Emacs. So, I'm surprised and happy to see it's being maintained again these days!
- _huayra_ 2y agoDoes anyone have a "lab notebook" style of PKM in Emacs? I used to use Org-Roam in Emacs, but fell in love with Logseq [0], primarily because 1. it has a "daily journal" default workflow (though individual pages are supported) 2. the support of datalog queries 3. templates This basically allows me to make templates for things I need (e.g. meeting notes, etc) and to write a few key queries (that are also templated for reuse) to do things like get the most overdue tasks, upcoming, things I promised to others, things I'm waiting on, etc. I can even drill down and get that stuff for an individual "page", e.g. "Emacs" or "C++". The lack of a "lab journal" format + flexible queries makes going back to other solutions not as enticing, as the "perfect artifact" of wiki-esque editing (and not being able to easily see backlinks) is not as easy. I can open my Logseq folder, make a "meeting" template, then #tag the people and topics discussed, and be able to go back later and make a query to see when I discussed #topic with #person. I would love to move this back into Emacs, as I hate having a separate tool for PKM, so if anyone has a similar workflow (or at least flexible queries on "tags" and task status, backlinks, etc, even without the daily journal thing), I'd be grateful for any tips. [0] https://logseq.com/ https://logseq.com/
- evertedsphere 2y agoorg-roam has a daily journal feature, which i use extensively: https://www.orgroam.com/manual.html#org_002droam_002ddailies https://www.orgroam.com/manual.html#org_002droam_002ddailies for querying: https://github.com/alphapapa/org-ql https://github.com/alphapapa/org-ql for templates, see org-roam-capture and its templating system (https://www.orgroam.com/manual.html#The-Templating-System https://www.orgroam.com/manual.html#The-Templating-System), which extends the capture templating system of vanilla org. for nicer capture templates, see https://github.com/progfolio/doct https://github.com/progfolio/doct
- setopt 2y agoI also used Logseq for a couple of years during my PostDoc and it is an excellent product. I also got into the habit of writing everything in the daily journal (with things like [[emacs]] in each top-level bullet so that I could read it under the Emacs page). I tried replicating this workflow in other system, including Obsidian and Org Roam and Denote which all support back links and journals – it works but it wasn’t as smooth as Logseq’s transclusion. Currently, I’m using Howm, and am quite happy with that. Its motto is “write fragmentarily and read collectively”, which summarizes well what I liked about Logseq. It’s however a slightly different workflow: I launch “howm-list-all” (I bind it to F12) to see a list of all notes, which I use similarly to Logseq’s journal. To read recent entries, use arrow keys or n/p to move between recent notes (which I use like top-level bullets in the Logseq journal), which are instantly previewed in a pane below. Or press “c” (create) to create a new note, which is automatically date stamped. Whenever I in Logseq would create a new top-level journal bullet, I in Howm create a new datestamped Org file. For sub-bullets I use Org outlining. But it largely has the same feel to me as Logseq’s journal system although it maps to different files on disk. Instead of Logseq hashtags, I use Howm’s comefrom links. So say I am working on a project called “Foo Bar”. In Logseq, I’d type [[Foo Bar]] in my journal every time I think about that project. In Howm, I’d make a new note that contains a Howm link of the form “<<< Foo Bar”. Now, whenever I write the exact phrase “Foo Bar” (without any link syntax!) in another note, it automatically becomes a clickable link pointing to my Foo Bar page! I find this more efficient actually than Logseq’s approach since “typing the backlink instead of the link” feels like less cognitive overhead and less work. (Logseq has “unlinked mentions” but it somehow felt less reliable.) Note that Howm supports any text format (it’s a minor mode), and thus doesn’t mind if you import your existing Logseq Markdown files but write new content in Org-mode, for example. It also supports searching multiple folders, so that you can link from new Howm notes to old Logseq notes without “importing” them. I hope this helps, and would encourage you to give Howm a try. It doesn’t help with templates and queries, but as the sibling post touched upon you could try using org-capture for templates and either org-ql or org-super-agenda for queries. Howm and Org work well together, so there’s no reason you can’t use different packages to replace different parts of Logseq in Emacs. (Logseq itself is a great product, but I prefer Org-mode for the keybindings and export.)
- wiz21c 2y agoDear Lazyweb, what I miss the most is the ability to drag/drop pictures into my notes. Is that possible ?
- setopt 2y agoYes. If you use Org-mode or Markdown-mode in GUI Emacs, I believe this works by default in the development version (since “yank-media” was introduced). If you use other versions of Emacs, or just want more control over where the files go and how they are linked, you can use this package: https://github.com/abo-abo/org-download https://github.com/abo-abo/org-download I don’t think the TUI supports drag-and-drop, but you can still copy-and-paste using org-download (bound to a separate keybinding). Unfortunately, last I checked the built-in yank-media function doesn’t work in the TUI, although I don’t see a technical reason why it couldn’t be implemented.
- CurrentB 2y agoI know this probably isn't the best place for a bug report/help request, but this seems cool, and the alternative to asking here, now, realistically is that I just forget about this I'm trying howm on emacs 29.4 I try (with my config and also with emacs -Q) (use-package howm) I enter `C-c , ,` I see the howm-memu pop up, but it's all plaintext with no font highlighting/decoration/"links" or anything, and I get in the Messages log: font-lock-fontify-keywords-region: Symbol’s function definition is void: nil Error during redisplay: (jit-lock-function 5328) signaled (void-function nil) Is this familiar to anyone?
- skulk 2y agoThis happened for me too. I don't know why but after I tried it a few times it started working.
- setopt 2y agoStrange. I'm using it on Emacs 30.0.90 (nightly builds), and haven't had that issue. Personally I don't use its main menu though (which C-c , , runs), but rather "M-x howm-create" to capture new notes and then afterwards "M-x howm-list-all" as a keyboard-driven interface to read/browse/search existing notes. Perhaps those commands work even if that menu doesn't?
- evanjrowley 2y agoRecently I've become interesting in Texinfo, the official documentation format of the GNU project[0]. Is Howm meant to be used alongside or as an alternative to Texinfo? [0] https://www.gnu.org/software/texinfo/ https://www.gnu.org/software/texinfo/
- setopt 2y agoHowm is a minor mode, and can be used with any text format that Emacs supports. Whether it’s useful to combine them is another question, I guess it depends on whether you use TeXinfo for notes or documents? I thought TeXinfo is mostly used for documentation, in which case I’d find it more natural to bundle it with the software project it documents.
- nyc111 2y agoThanks for posting this. I downloaded and was playing with it. But I'm puzzled about new note creation. When I type in the title next to the equal sign, I need to move the cursor below the date line to compose the note. Shouldn't the date line be on top?
- setopt 2y agoWhat I personally do is to first type the title, then press either M-> or END to jump to the end of the buffer, and then just keep typing from there. You can however place the date above the title if you want: (setq howm-view-title-header "*") (setq howm-template "%date %file\n* %title%cursor") By adjusting the new file template, you can type the title and then just press enter and keep typing the content from there. Howm still understands where the title of the note is, since it looks for the first title header. (If you like the default equal signs, you can skip the first setq above and replace "*" with "=" in the template.)
- nyc111 2y agoThanks, this was helpful.
- artsi0m 2y agoDate line could be put everywhere you want or entirely deleted. You are absolutely free in this aspect of usage of howm.
- flakiness 2y agoI used this like 20 years ago. Kind of shocked, but glad that it is still a thing. I was looking for something similar in VS code but none has been satisfying.
- setopt 2y agoI recently discovered “Howm” [1] (the “Handy Own Wiki Mode”), which is a personal wiki system for Emacs. Surprisingly, it is slightly older than Org-mode – although it now works great with Org files – and is still actively maintained by the author. After giving it a try, I now feel that I prefer it’s simplicity over newer systems like Org Roam and Denote, while having some similarities to e.g. Deft (like fulltext as-you-type search). It also offers some unique features of its own, like “comefrom links” as opposed to conventional “goto links”, and that most Howm links are actually just syntactic sugar for searches. The submitted link [2] is to a third-party documentation of the project, which I found more useful than the official documentation to get started :) [1]: https://kaorahi.github.io/howm/ https://kaorahi.github.io/howm/ [2]: https://github.com/Emacs101/howm-manual https://github.com/Emacs101/howm-manual
- o11c 2y ago> links are actually just syntactic sugar for searches. I don't emacs, but the usual problem with that is that searches are very fragile and hard to analyze. How does this deal with searches that, over time, can change to return 0 or 2+ results?
- setopt 2y agoHowm has a simple solution for this: Links like “>>> this thing” searches for “this thing” and opens a search buffer. The top hit is already marked, shown in a preview window below, and can be opened by clicking enter. But if you want a different result, you just navigate that search buffer to find the hit you want. The search triggered by a link is sorted such that it shows first “comefrom links” (if any file has said explicitly said that “these keywords should lead here”), then headline results (files where your phrase is in the note title), then siblings (other notes that link to the same keywords), then fulltext search matches (any file that just contains those words). So if you have 0 results with those keywords in the title after renaming a note, you might still find the note again via full-text search hits below. If you have 2+ results, just navigate between them with the arrow keys while previewing their contents, and open the one you want. This design is intentional: The author advocates to “write fragmentarily, read collectively”; so instead of refinding an old note and adding to it, you can make a new note with a similar title where you capture new info, and then links will point to both notes from now on. (In most cases, if their titles are similar, the contents are likely relevant in the same situations as well.) With that said, Howm supports exact links as well: You can link to a file path instead of a title. Since Howm defaults to putting just the creation datetime in the note filename, the filename is by default like an immutable-ish UUID, and such links should remain exact as long as you don’t manually move or remove a file. By default, Howm creates such links in one context: If you create a note (C-c , c) while inside another note, it saves an exact back link to where you came from so you can remember your “inspiration”. But you are of course free to use such links everywhere instead of the “fuzzy links” above if you prefer.
- k_bx 2y agoThe best similar thing for Emacs I've ever used was Deft inside my Dropbox (or whatever is your server of choice). Simple, Markdown, has link navigation.
- natrys 2y agoSimilar feeling here. I found that simple full-text search goes a long way to scale without needing to impose structures (and things like backlinks). It will probably not be enough for prolific note takers but I think it's enough for people with say <1000 files. (although I use Xeft[1] which is spiritually the same but I find the UI cleaner and snappier because it uses Xapian rather than elisp for full-text search). [1] https://github.com/casouri/xeft https://github.com/casouri/xeft
- setopt 2y agoI actually switched from Deft -> Xeft -> Howm as my main UI for searching and creating notes :). Xeft is indeed great, and I still keep it around for more involved searches (like “+key1 -key2” and “key1 NEAR key2”). But most of my searches now go through Howm, which supports fulltext as-you-type searching (can be invoked by pressing “g” for “grep” from its note list), and it can shell out to Ripgrep to speed it up.