Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chrisbarrett/nursery

Programs and libs that I haven't gotten around to formally packaging
https://github.com/chrisbarrett/nursery

Last synced: about 1 month ago
JSON representation

Programs and libs that I haven't gotten around to formally packaging

Awesome Lists containing this project

README

        

#+title: nursery
#+author: Chris Barrett
#+todo: SPIKE(s) INCUBATING(i) | STABLE(t) PUBLISHED(p)

This is a repository for Emacs Lisp packages that I think could be useful for
friends and coworkers. It's an experimental, low-pressure space for me just to
hack on Lisp with the garage door open.

If something reaches a stable state I may publish it if there's interest.

* Curiosities On Show
This repository contains a mix of end-user libraries and supporting libraries.
The interesting stuff is listed below.

** INCUBATING [[file:lisp/org-roam-review.el][org-roam-review]] /(incubating)/
Implements a system for managing [[https://maggieappleton.com/evergreens][Evergreen Notes]] on top of org-roam. Provides a
spaced-repetition system that prompts you to review notes or revisit stubs and
help them grow to maturity.

#+attr_org: :width 650px
[[file:./images/org-roam-review.png]]

** INCUBATING [[file:lisp/org-roam-dblocks.el][org-roam-dblocks]] /(incubating)/
Add org dynamic blocks that implement "canned searches" for org-roam. You can
search for notes or list backlinks, then do additional filtering based on title
or tags.

#+attr_org: :width 650px
[[file:images/org-roam-dblocks.gif]]

** INCUBATING [[file:lisp/org-roam-search.el][org-roam-search]] /(incubating)/
Search your org-roam files for a string and display a buffer of results. Results
are shown with collapsible previews, like in the org-roam buffer.

#+attr_org: :width 650px
[[file:images/org-roam-search.gif]]

** INCUBATING [[file:lisp/org-roam-links.el][org-roam-links]] /(incubating)/
Display a tree of backlinks /and/ forward links up to a configurable depth. Useful
for looking for unexpected connections without busting open a full-fledged graph
UI. Contrasts with the normal org-roam buffer, which only shows backlinks.

#+attr_org: :width 650px
[[file:images/org-roam-links.png]]

** INCUBATING [[file:lisp/org-roam-consult.el][org-roam-consult]] /(incubating)/
A version of =consult-ripgrep= that shows node titles instead of filenames so you
don't have to guess anymore.

** INCUBATING [[file:lisp/org-roam-slipbox.el][org-roam-slipbox]] (/incubating/)
Automatically tag nodes according to the name of the directory they're in, and
easily refile between these directories.

** SPIKE [[file:lisp/org-roam-gc.el][org-roam-gc]] /(spike)/
Automatically delete empty dailies files so they don't build up forever.

** SPIKE [[file:lisp/org-roam-rewrite.el][org-roam-rewrite]] /(spike)/
Commands for renaming nodes, rewriting links and deleting nodes with redirection
so you can refactor notes without leaving broken links.

** SPIKE [[file:lisp/timekeep.el][timekeep]] /(spike)/
Provides a structured way to use org-roam for representing multiple
clients/employers. It provides a simple clocking interface built on org-clock
and provides integrations with org-capture.

** SPIKE [[file:lisp/org-roam-refill-previews.el][org-roam-refill-previews]] /(spike)/
Refill previews in the backlinks buffer so they fit the window.

** SPIKE [[file:lisp/org-roam-lazy-previews.el][org-roam-lazy-previews]] /(spike)/
Compute previews lazily for much better performance in buffers with many
backlinks or reflinks.

** SPIKE [[file:lisp/org-format.el][org-format]] (/spike/)
Formatter for org-mode files to ensure consistency.

** SPIKE [[file:lisp/ert-bdd.el][ert-bdd]] (/spike/)
BDD-style test syntax for ERT.

* Installation
Most packages should be manually installable via =package.el=, assuming you have
[[https://melpa.org/#/getting-started][MELPA]] set up. But honestly, you're better off just cloning this repo and putting
its lisp directory in your load path, then installing anything missing. 🀷

- Clone the repo:
#+begin_src sh
$ git clone [email protected]:chrisbarrett/nursery.git
#+end_src

- Add to load path:
#+begin_src emacs-lisp
(add-to-list 'load-path "/lisp")
#+end_src

- load desired features in your =~/.config/emacs/init.el=, e.g.:
#+begin_src emacs-lisp
(use-package org-roam-review
:commands (org-roam-review
org-roam-review-list-by-maturity
org-roam-review-list-recently-added)

;; ;; Optional - tag all newly-created notes as seedlings.
;; :hook (org-roam-capture-new-node . org-roam-review-set-seedling)

;; ;; Optional - keybindings for applying Evergreen note properties.
;; :general
;; (:keymaps 'org-mode-map
;; "C-c r r" '(org-roam-review-accept :wk "accept")
;; "C-c r u" '(org-roam-review-bury :wk "bury")
;; "C-c r x" '(org-roam-review-set-excluded :wk "set excluded")
;; "C-c r b" '(org-roam-review-set-budding :wk "set budding")
;; "C-c r s" '(org-roam-review-set-seedling :wk "set seedling")
;; "C-c r e" '(org-roam-review-set-evergreen :wk "set evergreen"))

;; ;; Optional - bindings for evil-mode compatability.
;; :general
;; (:states '(normal) :keymaps 'org-roam-review-mode-map
;; "TAB" 'magit-section-cycle
;; "g r" 'org-roam-review-refresh)
)

(use-package org-roam-search
:commands (org-roam-search))

(use-package org-roam-links
:commands (org-roam-links))

(use-package org-roam-dblocks
:hook (org-mode . org-roam-dblocks-autoupdate-mode))

(use-package org-roam-rewrite
:commands (org-roam-rewrite-rename
org-roam-rewrite-remove
org-roam-rewrite-inline
org-roam-rewrite-extract))

(use-package org-roam-slipbox
:after org-roam
:demand t
:config
(org-roam-slipbox-buffer-identification-mode +1)
(org-roam-slipbox-tag-mode +1))
#+end_src