diff --git a/manual.html b/manual.html index 583eb4a..9a4121d 100644 --- a/manual.html +++ b/manual.html @@ -30,14 +30,8 @@ General Public License for more details. @@ -76,6 +70,7 @@ General Public License for more details. +
- usr/local/share/info
-
- usr/share/info
-
- usr/local/share/info
@@ -410,76 +392,6 @@ file:
Org-roam relies on an Emacs package called emacsql
and emacsql-sqlite
to
-work with the sqlite
database. Both of them should be installed automatically
-in your Emacs environment as a prerequisite for Org-roam when you install it.
-
emacsql-sqlite
requires a C compiler (e.g. gcc
or clang
) to be present in
-your computer. How to install a C compiler depends on the OS that you use.
-
One of the easiest ways to install a C compiler in Windows is to use MSYS2 as at the time of this writing: -
-gcc
in your PC:
-
-pacman -S gcc -
C:\msys64\usr\bin
(command ‘where gcc’ in MSYS2 terminal
-can tell you the correct path) to PATH
in your environmental variables
-
-
-M-x org-roam-db-autosync-mode
(launch Emacs after
-defining the path, so that Emacs can recognize it)
-This will automatically start compiling emacsql-sqlite
; you should see a
-message in minibuffer. It may take a while until compilation completes. Once
-complete, you should see a new file emacsql-sqlite.exe
created in a subfolder
-named sqlite
under emacsql-sqlite
installation folder. It’s typically in
-your Emacs configuration folder like this:
-/.config/emacs/elpa/emacsql-sqlite-20190727.1710/sqlite
-
org-roam-db-extra-links-elements
to specify which additional Org AST element
types to consider.
-The list of Org element types to include for parsing by Org-roam.
By default, when parsing Org’s AST, links within keywords and property drawers are not parsed as links. Sometimes however, it is desirable to parse and cache these links (e.g. hiding links in a property drawer). -
Additionally, one may want to ignore certain keys from being excluded within
property drawers. For example, we would not want ROAM_REFS
links to be
self-referential. Hence, to exclude specific keys, we use
org-roam-db-extra-links-exclude-keys
.
Keys to ignore when mapping over links.
The car of the association list is the Org element type (e.g. keyword). The cdr is a list of case-insensitive strings to exclude from being treated as links. -
org-roam-db-update-on-save
to nil
.
-If t, update the Org-roam database upon saving the file. Disable this if your files are large and updating the database is slow. @@ -874,7 +771,6 @@ two main commands to use here:
org-roam-buffer-toggle
: Launch an Org-roam buffer that tracks the node
currently at point. This means that the content of the buffer changes as the
point is moved, if necessary.
-
org-roam-buffer-display-dedicated
: Launch an Org-roam buffer for a specific
node without visiting its file. Unlike org-roam-buffer-toggle
you can have
multiple such buffers and their content won’t be automatically replaced with a
@@ -884,20 +780,20 @@ new node at point.
To bring up a buffer that tracks the current node at point, call M-x
org-roam-buffer-toggle
.
Toggle display of the org-roam-buffer
.
-
To bring up a buffer that’s dedicated for a specific node, call M-x
org-roam-buffer-display-dedicated
.
Launch node dedicated Org-roam buffer without visiting the node itself. -
M-{N}
: magit-section-show-level-{N}-all
-
n
: magit-section-forward
-
<TAB>
: magit-section-toggle
-
<RET>
: org-roam-buffer-visit-thing
View (preview of) nodes that link to this node +
Nodes that reference this node (see Refs) +
View nodes that contain text that match the nodes title/alias but are not linked -
To configure what sections are displayed in the buffer, set ~org-roam-mode-sections. +
To configure what sections are displayed in the buffer, set org-roam-mode-sections
.
(setq org-roam-mode-sections
@@ -972,6 +869,19 @@ rendering reference links), set org-roam-mode-sections
org-roam-reflinks-section))
The backlinks section org-roam-backlinks-section
also supports a
+predicate to filter backlinks, :show-backlink-p
. This can be used
+as follows:
+
(defun my-org-roam-show-backlink-p (backlink) + (not (member "daily" (org-roam-node-tags (org-roam-backlink-source-node backlink))))) + +(setq org-roam-mode-sections + '((org-roam-backlinks-section :unique t :show-backlink-p my-org-roam-show-backlink-p) + org-roam-reflinks-section)) +
RET
navigates to thing-at-point in the current window, replacing the
Org-roam buffer.
-
C-u RET
navigates to thing-at-point in the other window.
Alternatively, Org-roam provides some functions to add or remove aliases.
-Add ALIAS to the node at point. When called interactively, prompt for the alias to add. -
Remove an alias from the node at point. -
Org-roam also provides some functions to add or remove refs.
-Add REF to the node at point. When called interactively, prompt for the ref to add. -
Remove a ref from the node at point. -
t
:
(setq org-roam-completion-everywhere t)-
When non-nil, provide link completion matching outside of Org links.
@@ -1385,32 +1284,26 @@ of the template are similar toorg-capture
templates.
:unnarrowed t))
-"d"
. If you have only one template, org-roam
+"d"
. If you have only one template, org-roam
automatically chooses this template for you.
-
-"default"
.
-
-plain
text is inserted. Other options include Org headings via
+"default"
.
+plain
text is inserted. Other options include Org headings via
entry
.
-
-target
that’s usually in Org-capture templates is missing
+target
that’s usually in Org-capture templates is missing
here.
-
-"%?"
is the template inserted on each call to org-roam-capture-
.
+"%?"
is the template inserted on each call to org-roam-capture-
.
This template means don’t insert any content, but place the cursor here.
-
-:target
is a compulsory specification in the Org-roam capture template. The
+:target
is a compulsory specification in the Org-roam capture template. The
first element of the list indicates the type of the target, the second
element indicates the location of the captured node, and the rest of the
elements indicate prefilled template that will be inserted and the position
of the point will be adjusted for. The latter behavior varies from type to
type of the capture target.
-
-:unnarrowed t
tells org-capture to show the contents for the whole file,
+:unnarrowed t
tells org-capture to show the contents for the whole file,
rather than narrowing to just the entry. This is part of the Org-capture
templates.
-See the org-roam-capture-templates
documentation for more details and
customization options.
@@ -1431,24 +1324,21 @@ Walkthrough.
Org-roam provides the ${foo}
syntax for substituting variables with known
strings. ${foo}
’s substitution is performed as follows:
foo
is a function, foo
is called with the current node as its
+foo
is a function, foo
is called with the current node as its
argument.
-
-org-roam-node-foo
is a function, foo
is called with the current node
+org-roam-node-foo
is a function, foo
is called with the current node
as its argument. The org-roam-node-
prefix defines many of Org-roam’s node
accessors such as org-roam-node-title
and org-roam-node-level
.
-
-org-roam-capture--info
for foo
. This is an internal variable
+org-roam-capture--info
for foo
. This is an internal variable
that is set before the capture process begins.
-
-completing-read
.
-${foo=default_val}
syntax, where if a default
+completing-read
.
+${foo=default_val}
syntax, where if a default
value is provided, will be the initial value for the foo
key during
minibuffer completion.
-One can check the list of available keys for nodes by inspecting the
org-roam-node
struct. At the time of writing, it is:
@@ -1521,11 +1411,10 @@ file:
org-protocol
intercepts these and runs custom actions based on the protocols
registered. Hence, to use org-protocol
, once must:
emacsclient
process
-
-org-protocol://
as a valid scheme-handler
-emacsclient
process
+org-protocol://
as a valid scheme-handler
+The instructions for the latter for each operating system is detailed below.
@@ -1594,28 +1483,26 @@ Next: Windows, Previous: For Mac OS, we need to create our own application. -emacsclient
:
-emacsclient
:
+on open location this_URL set EC to "/usr/local/bin/emacsclient --no-wait " set filePath to quoted form of this_URL - do shell script EC & filePath + do shell script EC & filePath & " &> /dev/null &" tell application "Emacs" to activate end open location
/Applications/OrgProtocolClient.app
, changing the script type to
+/Applications/OrgProtocolClient.app
, changing the script type to
“Application”, rather than “Script”.
-
-/Applications/OrgProtocolClient.app/Contents/Info.plist
, adding the
+/Applications/OrgProtocolClient.app/Contents/Info.plist
, adding the
following before the last </dict>
tag:
-<key>CFBundleURLTypes</key>
@@ -1631,9 +1518,9 @@ following before the last </dict>
tag:
</array>
OrgProtocolClient.app
to register the protocol.
-OrgProtocolClient.app
to register the protocol.
+To disable the “confirm” prompt in Chrome, you can also make Chrome
show a checkbox to tick, so that the OrgProtocol
app will be used
@@ -1654,6 +1541,25 @@ the default handler instead, run:
Then restart your computer.
+If you’re using the Emacs Homebrew formula, you may need one of the following additional configurations: +
+on open location this_URL + set EC to "/usr/local/bin/emacsclient -c --no-wait " + set filePath to quoted form of this_URL + do shell script EC & filePath & " &> /dev/null &" + tell application "Emacs" to activate +end open location +
The entry point to graph creation is org-roam-graph
.
Build and display a graph for NODE. ARG may be any of the following values:
nil
show the full graph.
-
integer
an integer argument N
will show the graph for the connected
components to node up to N
steps away.
Path to the graphing executable (in this case, Graphviz). Set this if Org-roam is unable to find the Graphviz executable on your system.
You may also choose to use neato
in place of dot
, which generates a more
compact graph layout.
-
Org-roam defaults to using Firefox (located on PATH) to view the SVG, but you may choose to set it to:
-nil
uses view-file
to view the graph.
The file type to generate for graphs. This defaults to "svg"
.
-
The file type to generate for graphs. This defaults to "svg"
.
+
Extra options passed to graphviz for the digraph (The “G” attributes).
Example: '~(("rankdir" . "LR"))
-
An alist of options to style the nodes.
The car of the alist node type such as "id"
, or "http"
. The cdr of the
list is another alist of Graphviz node options (the “N” attributes).
-
Extra options for edges in the graphviz output (The “E” attributes).
Example: '(("dir" . "back"))
-
org-roam-dailies-directory
¶Path to daily-notes. This path is relative to org-roam-directory
.
-
org-roam-dailies-directory
+
+Path to daily-notes. This path is relative to org-roam-directory
.
+
org-roam-dailies-capture-templates
-org-roam-dailies-capture-templates
¶Capture templates for daily-notes in Org-roam. -
Here is a sane default configuration:
@@ -1936,74 +1831,62 @@ Previous: Configuration, Uorg-roam-dailies
provides these interactive functions:
org-roam-dailies-capture-today
&optional goto ¶org-roam-dailies-capture-today
&optional goto
+
Create an entry in the daily note for today.
When goto
is non-nil, go to the note without creating an entry.
-
org-roam-dailies-goto-today
-org-roam-dailies-goto-today
¶Find the daily note for today, creating it if necessary. -
There are variants of those commands for -yesterday
and -tomorrow
:
org-roam-dailies-capture-yesterday
n &optional goto ¶org-roam-dailies-capture-yesterday
n &optional goto
+
Create an entry in the daily note for yesterday.
With numeric argument n
, use the daily note n
days in the past.
-
org-roam-dailies-goto-yesterday
-org-roam-dailies-goto-yesterday
¶With numeric argument N, use the daily-note N days in the future. -
There are also commands which allow you to use Emacs’s calendar
to find the date
org-roam-dailies-capture-date
¶org-roam-dailies-capture-date
+
Create an entry in the daily note for a date using the calendar.
Prefer past dates, unless prefer-future
is non-nil.
With a ’C-u’ prefix or when goto
is non-nil, go the note without
creating an entry.
-
org-roam-dailies-goto-date
-org-roam-dailies-goto-date
¶Find the daily note for a date using the calendar, creating it if necessary.
Prefer past dates, unless prefer-future
is non-nil.
-
org-roam-dailies-find-directory
-org-roam-dailies-find-directory
¶Find and open org-roam-dailies-directory
.
-
org-roam-dailies-goto-previous-note
-org-roam-dailies-goto-previous-note
¶When in an daily-note, find the previous one. -
org-roam-dailies-goto-next-note
-org-roam-dailies-goto-next-note
¶When in an daily-note, find the next one. -
Essentially, to migrate notes from v1 to v2, one must:
-#+ROAM_KEY
into the ROAM_REFS
property
-
-#+ROAM_ALIAS
into the ROAM_ALIASES
property
-
-#+ROAM_TAGS
into the #+FILETAGS
property for file-level nodes,
+#+ROAM_KEY
into the ROAM_REFS
property
+#+ROAM_ALIAS
into the ROAM_ALIASES
property
+#+ROAM_TAGS
into the #+FILETAGS
property for file-level nodes,
and the ROAM_TAGS
property for headline nodes
-
-The example code below is used to publish to a local directory where a
separate shell script copies the files to the remote site.
@@ -2460,13 +2338,11 @@ Next: 16.6.1 Configure org-mode for publishing ¶
This has two steps:
-
-
+
This will require code like the following:
The “selecting deleted buffer” error usually occurs when you don’t have a
-working emacsql-sqlite
executable. Org-roam relies on this executable to
-function properly, and doesn’t catch this error. This issue is most commonly
-seen on Windows setups. You can browse through the various GitHub issues posted
-about this here.
-
To fix this, you can try the following: -
-emacsql-sqlite3
option rather than compiling your own emacsql
-binary (see How to cache).
-Emacs 29.0.50 (Org mode 9.6) +
Emacs 29.4 (Org mode 9.7.19)