Skip to content

Commit 5d643ec

Browse files
committed
docs:
1 parent 0a3a236 commit 5d643ec

File tree

4 files changed

+156
-162
lines changed

4 files changed

+156
-162
lines changed

README.org

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
#+TITLE: org-node
21
#+AUTHOR: Martin Edström
32
#+EMAIL: meedstrom91@gmail.com
43
#+STARTUP: content
5-
* What's all this
4+
* org-node
65
#+HTML: <a href="https://repology.org/project/emacs%3Aorg-node/versions"> <img src="https://repology.org/badge/vertical-allrepos/emacs%3Aorg-node.svg" alt="Packaging status" align="right"> </a>
76

87
I like [[https://github.com/org-roam/org-roam][org-roam]] but found it too slow, so I made [[https://github.com/meedstrom/quickroam][quickroam]]. And that idea spun off into this package, a standalone thing. It may also be easier to pick up than org-roam.
@@ -82,8 +81,8 @@ A comparison of three systems that all permit relying on org-id and don't lock y
8281

8382
Go to the manual and close this tab.
8483

85-
- in Emacs: [[info:org-node]]
8684
- in a web browser: [[https://github.com/meedstrom/org-node/blob/main/org-node.org]]
85+
- or in Emacs after installation: [[info:org-node]]
8786

8887
* Advice: Start with a paper Zettelkasten
8988

@@ -102,4 +101,4 @@ If you are currently in the EU, you can order the pictured paper slips and box h
102101

103102
Once these products arrive, take them and a pen with you to the local cafe, if it's a quiet noontime hour (otherwise a library, better in the afternoon).
104103

105-
Have a warm coffee, lean back, and read https://zettelkasten.de/introduction/.
104+
Then have a warm coffee, lean back, and read https://zettelkasten.de/introduction/.

TODO.org

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,31 @@
1212

1313
* Other
1414

15+
- https://github.com/meedstrom/org-node/issues/172
16+
17+
- https://github.com/meedstrom/org-node/issues/171
18+
19+
- https://github.com/meedstrom/org-node/issues/168
20+
21+
- https://github.com/meedstrom/org-node/issues/161
22+
23+
- https://github.com/meedstrom/org-node/issues/151
24+
25+
- https://github.com/meedstrom/org-node/issues/143
26+
27+
- https://github.com/meedstrom/org-node/issues/130
28+
29+
- https://github.com/meedstrom/org-node/issues/62
30+
1531
- A workflow to allow *untitled nodes*
1632

1733
- [X] Create node without needing to type a title
1834
- [X] =org-node-grep=
1935
- [ ] Let =org-node-grep= create new nodes
2036
- [ ] (Rewrite =org-node-grep= so it does not need Consult)
2137
- [ ] Subroutine for *identifying a node by a grep result*, which could be used to insert/extract/capture/refile while only ever completing against grep results
22-
- [ ] See that issue about untitled notes https://github.com/meedstrom/org-node/issues XXX
38+
- [ ] See that issue about untitled notes https://github.com/meedstrom/org-node/issues/112
39+
2340
Figure out the helper commands you'd want for embedding human-generated IDs in headings/titles.
2441

2542
- Let =org-node-grep= obey =org-node-filter-fn=

org-node.org

Lines changed: 73 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
This is the manual for org-node. The [[https://github.com/meedstrom/org-node][README]] is separate, but you should not need it anymore.
1010

11-
* Installation
11+
** Installation
1212

1313
Assuming your package manager gets recipes from [[https://melpa.org/#/getting-started][MELPA]], add the following initfile snippet.
1414

@@ -52,12 +52,12 @@ If you're coming here from *org-roam*, try this instead:
5252
(setq org-node-file-timestamp-format "%Y%m%d%H%M%S-"))
5353
#+end_src
5454

55-
** An update broke things?
55+
*** An update broke things?
5656

5757
See at the end of this readme: [[#appendix-ii-how-to-rollback][How to rollback]]
5858

5959

60-
* Quick start
60+
** Quick start
6161

6262
If you're new to these concepts, fear not. The main things for day-to-day operation are two commands:
6363

@@ -72,108 +72,113 @@ To see a list of all commands, enter an Org buffer and type ~M-o n <f1>~.
7272

7373
To browse config options, type ~M-x customize-group RET org-node RET~ (or ~M-o n x o~).
7474

75-
* Backlinks
75+
** Backlinks
7676

7777
Backlinks are the butter on the bread that is your notes. If you've ever seen a "What links here" section on some webpage, that's exactly what it is.
7878

7979
You do not have to create backlinks yourself, they are autogenerated. The following sections outline two basic ways this can work.
8080

81-
** Backlink solution 1: displayed in a separate window
82-
*** Option 1A: Reuse the org-roam buffer
81+
*** Backlink solution 1: displayed in a separate window
82+
- Solution 1A: Reuse the org-roam buffer ::
8383

84-
You can use the org-roam buffer without the rest of org-roam! Enable the following mode, then to learn how to invoke the buffer, see [[info:org-roam#The Org-roam Buffer]] or [[https://www.orgroam.com/manual.html#The-Org_002droam-Buffer][online website]].
84+
You can use the org-roam buffer without the rest of org-roam! Enable the following mode.
8585

86-
#+begin_src elisp
87-
(org-node-roam-accelerator-mode)
88-
#+end_src
86+
Then to learn how to invoke the buffer, see their documentation at [[info:org-roam#The Org-roam Buffer]] or [[https://www.orgroam.com/manual.html#The-Org_002droam-Buffer][online website]].
8987

90-
*** Option 1B: Use the org-node-context buffer
88+
#+begin_src elisp
89+
(org-node-roam-accelerator-mode)
90+
#+end_src
9191

92-
Org-node ships a rewrite of the org-roam buffer, in the included extension org-node-context.el.
9392

94-
Try the command =org-node-context-dwim= (~M-o n b~).
93+
- Solution 1B: Use the org-node-context buffer ::
9594

96-
If you like it, consider binding it to an easily typed key, such as =M-o M-b=. Or you can let it keep itself updated, reflecting where point is at all times, by enabling this mode:
95+
Org-node ships a rewrite of the org-roam buffer, in the included extension org-node-context.el.
96+
97+
Try the command =org-node-context-dwim= (~M-o n b~).
98+
99+
If you like it, consider binding it to an easily typed key, such as =M-o M-b=. Or you can let it keep itself updated, reflecting where point is at all times, by enabling this mode:
100+
101+
#+begin_src elisp
102+
;; Tip: if you're like org-node's author and constantly lose your window
103+
;; configuration, the Emacs 30 command `toggle-window-dedicated' (C-x w d)
104+
;; can help, or simply invoking `org-node-context-dwim' a lot.
105+
;; The latter strategy tends to make this mode superfluous.
106+
(org-node-context-follow-mode)
107+
#+end_src
97108

98-
#+begin_src elisp
99-
;; Tip: if you're like org-node's author and constantly lose your window
100-
;; configuration, the Emacs 30 command `toggle-window-dedicated' (C-x w d)
101-
;; can help, or simply invoking `org-node-context-dwim' a lot.
102-
;; The latter strategy tends to make this mode superfluous.
103-
(org-node-context-follow-mode)
104-
#+end_src
105109

106-
** Backlink solution 2: Print inside the file
110+
*** Backlink solution 2: Print inside the file
107111
I rarely have the screen space to display a backlink buffer. Because it needs my active involvement to keep visible, I go long periods seeing no backlinks.
108112

109113
A complementary solution, which can also stand alone, is to have the backlinks /written into/ the file, on an Org property line or in a drawer.
110114

111-
The included extension org-node-backlink.el helps you with that.
115+
To be clear, this solution never generates new IDs (and neither would Solution 1). That's your own business. This only adds/edits =:BACKLINKS:= properties or drawers.
112116

113-
NOTE: To be clear, this global minor mode never generates new IDs (and neither would Option 1). That's your own business. This only adds/edits =:BACKLINKS:= properties or drawers, and only gives it backlinks corresponding to links where the original site already has or inherits some ID.
117+
#+BEGIN_QUOTE
118+
[!NOTE]
119+
A difference between org-node-context (solution 1) and org-node-backlink-mode (solution 2) is that the latter only shows backlinks corresponding to links where the original site /already has or inherits some ID/. The former additionally shows backlinks to places that have no ID at all (since v3.14).
120+
#+END_QUOTE
114121

115-
Contrast with org-node-context buffers, which since v3.14 additionally show backlinks to places where the origin has no ID at all. That is not possible for org-node-backlink-mode.
122+
- Solution 2A: Automatic =:BACKLINKS:= property line ::
116123

117-
*** Option 2A: Automatic =:BACKLINKS:= property line
124+
Add to initfiles:
118125

119-
Add to initfiles:
126+
#+begin_src elisp
127+
(setq org-node-backlink-do-drawers nil)
128+
(org-node-backlink-mode)
129+
#+end_src
120130

121-
#+begin_src elisp
122-
(setq org-node-backlink-do-drawers nil)
123-
(org-node-backlink-mode)
124-
#+end_src
131+
For a first-time run, type ~M-x org-node-backlink-mass-update-props~. (Don't worry if you change your mind; undo with ~M-x org-node-backlink-mass-delete-props~.)
125132

126-
For a first-time run, type ~M-x org-node-backlink-mass-update-props~. (Don't worry if you change your mind; undo with ~M-x org-node-backlink-mass-delete-props~.)
127133

128-
*** Option 2B: Automatic =:BACKLINKS:...:END:= drawer
134+
- Solution 2B: Automatic =:BACKLINKS:...:END:= drawer ::
129135

130-
Same as Option 2A, but uses a multiline drawer.
136+
Same as Solution 2A, but uses a multiline drawer.
131137

132-
Add to initfiles:
138+
Add to initfiles:
133139

134-
#+begin_src elisp
135-
(setq org-node-backlink-do-drawers t)
136-
(org-node-backlink-mode)
137-
#+end_src
140+
#+begin_src elisp
141+
(setq org-node-backlink-do-drawers t)
142+
(org-node-backlink-mode)
143+
#+end_src
138144

139-
For a first-time run, type ~M-x org-node-backlink-mass-update-drawers~. (Don't worry if you change your mind; undo with ~M-x org-node-mass-delete-drawers~.)
145+
For a first-time run, type ~M-x org-node-backlink-mass-update-drawers~. (Don't worry if you change your mind; undo with ~M-x org-node-mass-delete-drawers~.)
140146

141147

142-
*** Option 2C: Semi-automatic =:BACKLINKS:...:END:= drawer
148+
- Solution 2C: Semi-automatic =:BACKLINKS:...:END:= drawer ::
143149

144-
If you were previously using [[https://github.com/toshism/org-super-links][org-super-links]], you can continue letting it manage its drawers, and leave org-node out of the matter.
150+
If you were previously using [[https://github.com/toshism/org-super-links][org-super-links]], you can continue letting it manage its drawers, and leave org-node out of the matter.
145151

146-
Do not enable `org-node-backlink-mode` at all, just add to initfiles:
152+
Do not enable `org-node-backlink-mode` at all, just add to initfiles:
147153

148-
#+begin_src elisp
149-
(add-hook 'org-node-insert-link-hook
150-
#'org-super-links-convert-link-to-super)
151-
#+end_src
154+
#+begin_src elisp
155+
(add-hook 'org-node-insert-link-hook
156+
#'org-super-links-convert-link-to-super)
157+
#+end_src
152158

153-
You may find these tools useful:
159+
You may find these tools useful:
154160

155-
- 1. You can list any dead forward-links to fix them manually:
161+
- 1. You can list any dead forward-links to fix them manually:
156162

157-
~M-x org-node-list-dead-links~
163+
~M-x org-node-list-dead-links~
158164

159-
- 2. You can add all missing backlinks in bulk:
165+
- 2. You can add all missing backlinks in bulk:
160166

161-
~M-x org-node-backlink-mass-update-drawers~
167+
~M-x org-node-backlink-mass-update-drawers~
162168

163-
The second command may be useful as a starting point if you're new to org-super-links, pre-populating the notes you already have.
169+
The second command may be useful as a starting point if you're new to org-super-links, pre-populating the notes you already have.
164170

165-
However, when you have pre-existing drawers... *make a full backup* before trying it!
171+
However, when you have pre-existing drawers... *make a full backup* before trying it!
166172

167-
Org-node has a different usage in mind than org-super-links. You may be accustomed to having old manually formatted and sorted drawers.
173+
Org-node has a different usage in mind than org-super-links. You may be accustomed to having old manually formatted and sorted drawers.
168174

169-
Running aforementioned command *may re-sort your backlinks and re-format their appearance into something you don't want*; double-check the following options:
175+
Running aforementioned command *may re-sort your backlinks and re-format their appearance into something you don't want*; double-check the following options:
170176

171-
- =org-node-backlink-drawer-sorter=
172-
- =org-node-backlink-drawer-formatter=
177+
- =org-node-backlink-drawer-sorter=
178+
- =org-node-backlink-drawer-formatter=
173179

174-
Finally, lines that contain no Org link such as =[[id:1234][Title]]= are *deleted*, which would mean *destroying any other info within.* Same if a backlink is stale and no longer valid.
180+
Finally, lines that contain no Org link such as =[[id:1234][Title]]= are *deleted*, which would mean *destroying any other info within.* Same if a backlink is stale and no longer valid.
175181

176-
* Misc
177182
** Org-capture
178183

179184
You may have heard that org-roam has a set of meta-capture templates: the =org-roam-capture-templates=.
@@ -461,8 +466,8 @@ You don't need software for that basic idea, only to make it extra convenient to
461466

462467
Thus, fundamentally, any "journal" or "dailies" software are just operating on a sorted series to navigate through. A node sequence. You could have sequences for, let's say, historical events, Star Trek episodes, your school curriculum...
463468

464-
* Appendix
465-
** Appendix I: Rosetta stone
469+
** Appendix
470+
*** Appendix I: Rosetta stone
466471

467472
API cheatsheet between org-roam and org-node.
468473

@@ -498,7 +503,7 @@ API cheatsheet between org-roam and org-node.
498503
| Get =ROAM_EXCLUDE= | | =(org-mem-entry-property "ROAM_EXCLUDE" NODE)= |
499504
| Ensure fresh data | =(org-roam-db-sync)= | =(org-node-cache-ensure t t)= |
500505

501-
** Appendix II: How to rollback
506+
*** Appendix II: How to rollback
502507
:PROPERTIES:
503508
:CUSTOM_ID: appendix-ii-how-to-rollback
504509
:END:
@@ -549,15 +554,15 @@ With [[https://github.com/radian-software/straight.el][Straight]]:
549554
:straight (org-node :type git :host github :repo "meedstrom/org-node"
550555
:branch "v1.6"))
551556
#+end_src
552-
** Appendix III: Random tips
553-
557+
*** Appendix III: Random tips
558+
**** Fix export to HTML
554559
Org-roam shipped the optional =(require 'org-roam-export)=, a patch to fix =id:= links in HTML export.
555560

556561
Good news, upstream fixed the root of the issue in 5e9953fa0! Update Org to 9.7+ (comes with Emacs 30), then set this.
557562

558563
: (setq org-html-prefer-user-labels t)
559564

560-
** Appendix IV: What are =ROAM_REFS=?
565+
*** Appendix IV: What are =ROAM_REFS=?
561566
:PROPERTIES:
562567
:CUSTOM_ID: appendix-iv-what-are-roam_refs
563568
:END:
@@ -587,10 +592,10 @@ For performance reasons, not just any string of text is accepted -- it must have
587592

588593
Org-roam calls such backlinks /reflinks/. In my view, adding a new word for such a similar concept just increases the air of mystery. That's why in org-node's context buffer, they're just called "ref backlinks" -- as opposed to "ID backlinks".
589594

590-
*** What's it actually used for?
595+
**** What's it actually used for?
591596

592597
People often use it to write notes about a specific web-page or PDF file, and call it a ref-node for that resource.
593598

594-
*** Citations
599+
**** Citations
595600

596601
As a special case, citation keys such as "@ioannidis2005" also work in =ROAM_REFS=, corresponding to Org citations like =[cite:@ioannidis2005]=.

0 commit comments

Comments
 (0)