(docs): use ox-texinfo+ (#1250)

This generates texi documents with understanding of variables and
functions.
This commit is contained in:
Jethro Kuan
2020-11-11 13:00:49 +08:00
committed by GitHub
parent d913447939
commit aef71f1623
2 changed files with 169 additions and 152 deletions

View File

@ -5,6 +5,8 @@
#+date: 2020-2020 #+date: 2020-2020
#+language: en #+language: en
#+texinfo_deffn: t
#+texinfo_dir_category: Emacs #+texinfo_dir_category: Emacs
#+texinfo_dir_title: Org-roam: (org-roam). #+texinfo_dir_title: Org-roam: (org-roam).
#+texinfo_dir_desc: Rudimentary Roam Replica for Emacs. #+texinfo_dir_desc: Rudimentary Roam Replica for Emacs.
@ -14,6 +16,7 @@
#+property: header-args :eval never #+property: header-args :eval never
#+texinfo: @noindent #+texinfo: @noindent
#+texinfo: @noindent
This manual is for Org-roam version 1.2.2. This manual is for Org-roam version 1.2.2.
#+BEGIN_QUOTE #+BEGIN_QUOTE
@ -1444,6 +1447,7 @@ are the solutions:
# Local Variables: # Local Variables:
# eval: (require 'ol-info) # eval: (require 'ol-info)
# eval: (require 'ox-texinfo+ nil t)
# before-save-hook: org-make-toc # before-save-hook: org-make-toc
# after-save-hook: (lambda nil (progn (require 'ox-texinfo nil t) (org-texinfo-export-to-info))) # after-save-hook: (lambda nil (progn (require 'ox-texinfo nil t) (org-texinfo-export-to-info)))
# indent-tabs-mode: nil # indent-tabs-mode: nil

View File

@ -46,6 +46,7 @@ General Public License for more details.
@noindent @noindent
@noindent
This manual is for Org-roam version 1.2.2. This manual is for Org-roam version 1.2.2.
@quotation @quotation
@ -183,18 +184,22 @@ to further introduce features enabled by the Emacs ecosystem.
Org-roam provides several benefits over other tooling: Org-roam provides several benefits over other tooling:
@table @asis @itemize
@item Privacy and Security @item
Edit your personal wiki completely offline, entirely in your control. Encrypt your notes with GPG@. Privacy and SecurityEdit your personal wiki completely offline, entirely in your control. Encrypt your notes with GPG@.
@item Longevity of Plain Text
Unlike web solutions like Roam research, the notes are first and foremost plain Org-mode files -- Org-roam simply builds up an auxilliary database to give the personal wiki superpowers. Having your notes in plain-text is crucial for the longevity of your wiki. Never have to worry about proprietary web solutions being taken down. Edit your plain-text notes in notepad if all other editors cease to exist @item
@item Free and Open Source Longevity of Plain TextUnlike web solutions like Roam research, the notes are first and foremost plain Org-mode files -- Org-roam simply builds up an auxilliary database to give the personal wiki superpowers. Having your notes in plain-text is crucial for the longevity of your wiki. Never have to worry about proprietary web solutions being taken down. Edit your plain-text notes in notepad if all other editors cease to exist
Org-roam is free and open-source, which means that if you feel unhappy with any part of Org-roam, you may choose to extend Org-roam, or open a PR@.
@item Leverages the Org-mode ecosystem @item
Over the years, Emacs and Org-mode has developed into a mature system for plain-text organization. Building upon Org-mode already puts Org-roam light-years ahead of many other solutions. Free and Open SourceOrg-roam is free and open-source, which means that if you feel unhappy with any part of Org-roam, you may choose to extend Org-roam, or open a PR@.
@item Built on Emacs
Emacs is also a fantastic interface for editing text, and we can inherit many of the powerful text-navigation and editing packages available to Emacs. @item
@end table Leverages the Org-mode ecosystemOver the years, Emacs and Org-mode has developed into a mature system for plain-text organization. Building upon Org-mode already puts Org-roam light-years ahead of many other solutions.
@item
Built on EmacsEmacs is also a fantastic interface for editing text, and we can inherit many of the powerful text-navigation and editing packages available to Emacs.
@end itemize
@node Target Audience @node Target Audience
@chapter Target Audience @chapter Target Audience
@ -381,14 +386,19 @@ You now have Org-roam installed. However, you don't necessarily have the depende
@itemize @itemize
@item @item
dash dash
@item @item
f f
@item @item
s s
@item @item
org org
@item @item
emacsql emacsql
@item @item
emacsql-sqlite3 emacsql-sqlite3
@end itemize @end itemize
@ -416,8 +426,10 @@ You can also use one of the default locations, such as:
@itemize @itemize
@item @item
@emph{usr/local/share/info} @emph{usr/local/share/info}
@item @item
@emph{usr/share/info} @emph{usr/share/info}
@item @item
@emph{usr/local/share/info} @emph{usr/local/share/info}
@end itemize @end itemize
@ -547,15 +559,17 @@ Org-roam calls @code{org-roam--extract-titles} to extract titles. It uses the
variable @code{org-roam-title-sources}, to control how the titles are extracted. The variable @code{org-roam-title-sources}, to control how the titles are extracted. The
title extraction methods supported are: title extraction methods supported are:
@enumerate @itemize
@item @item
@code{'title}: This extracts the title using the file @code{#+title} property @code{'title}: This extracts the title using the file @code{#+title} property
@item @item
@code{'headline}: This extracts the title from the first headline in the Org file @code{'headline}: This extracts the title from the first headline in the Org file
@item @item
@code{'alias}: This extracts a list of titles using the @code{#+roam_alias} property. @code{'alias}: This extracts a list of titles using the @code{#+roam_alias} property.
The aliases are space-delimited, and can be multi-worded using quotes The aliases are space-delimited, and can be multi-worded using quotes
@end enumerate @end itemize
Take for example the following org file: Take for example the following org file:
@ -598,22 +612,25 @@ Org-roam calls @code{org-roam--extract-tags} to extract tags from files. It uses
variable @code{org-roam-tag-sources}, to control how tags are extracted. The tag variable @code{org-roam-tag-sources}, to control how tags are extracted. The tag
extraction methods supported are: extraction methods supported are:
@enumerate @itemize
@item @item
@code{'prop}: This extracts tags from the @code{#+roam_tags} property. Tags are space delimited, and can be multi-word using double quotes. @code{'prop}: This extracts tags from the @code{#+roam_tags} property. Tags are space delimited, and can be multi-word using double quotes.
@item @item
@code{'all-directories}: All sub-directories relative to @code{org-roam-directory} are @code{'all-directories}: All sub-directories relative to @code{org-roam-directory} are
extracted as tags. That is, if a file is located at relative path extracted as tags. That is, if a file is located at relative path
@code{foo/bar/file.org}, the file will have tags @code{foo} and @code{bar}. @code{foo/bar/file.org}, the file will have tags @code{foo} and @code{bar}.
@item @item
@code{'last-directory}: Extracts the last directory relative to @code{'last-directory}: Extracts the last directory relative to
@code{org-roam-directory} as the tag. That is, if a file is located at relative @code{org-roam-directory} as the tag. That is, if a file is located at relative
path @code{foo/bar/file.org}, the file will have tag @code{bar}. path @code{foo/bar/file.org}, the file will have tag @code{bar}.
@item @item
@code{'first-directory}: Extracts the first directory relative to @code{'first-directory}: Extracts the first directory relative to
@code{org-roam-directory} as the tag. That is, if a file is located at relative @code{org-roam-directory} as the tag. That is, if a file is located at relative
path @code{foo/bar/file.org}, the file will have tag @code{foo}. path @code{foo/bar/file.org}, the file will have tag @code{foo}.
@end enumerate @end itemize
By default, only the @code{'prop} extraction method is enabled. To enable the other By default, only the @code{'prop} extraction method is enabled. To enable the other
extraction methods, you may modify @code{org-roam-tag-sources}: extraction methods, you may modify @code{org-roam-tag-sources}:
@ -666,10 +683,13 @@ include:
@itemize @itemize
@item @item
Time of creation Time of creation
@item @item
File it was created from File it was created from
@item @item
Clipboard content Clipboard content
@item @item
Any other data you may want to input manually Any other data you may want to input manually
@end itemize @end itemize
@ -706,21 +726,26 @@ the default template, reproduced below.
:unnarrowed t) :unnarrowed t)
@end lisp @end lisp
@enumerate @itemize
@item @item
The template has short key @code{"d"}. If you have only one template, The template has short key @code{"d"}. If you have only one template,
org-roam automatically chooses this template for you. org-roam automatically chooses this template for you.
@item @item
The template is given a description of @code{"default"}. The template is given a description of @code{"default"}.
@item @item
@code{plain} text is inserted. Other options include Org headings via @code{plain} text is inserted. Other options include Org headings via
@code{entry}. @code{entry}.
@item @item
@code{(function org-roam--capture-get-point)} should not be changed. @code{(function org-roam--capture-get-point)} should not be changed.
@item @item
@code{"%?"} is the template inserted on each call to @code{org-roam-capture--capture}. @code{"%?"} is the template inserted on each call to @code{org-roam-capture--capture}.
This template means don't insert any content, but place the cursor This template means don't insert any content, but place the cursor
here. here.
@item @item
@code{:file-name} is the file-name template for a new note, if it doesn't yet @code{:file-name} is the file-name template for a new note, if it doesn't yet
exist. This creates a file at path that looks like exist. This creates a file at path that looks like
@ -728,14 +753,16 @@ exist. This creates a file at path that looks like
allows you to specify if you want the note to go into a subdirectory. For allows you to specify if you want the note to go into a subdirectory. For
example, the template @code{private/$@{slug@}} will create notes in example, the template @code{private/$@{slug@}} will create notes in
@code{/path/to/org-roam-directory/private}. @code{/path/to/org-roam-directory/private}.
@item @item
@code{:head} contains the initial template to be inserted (once only), at @code{:head} contains the initial template to be inserted (once only), at
the beginning of the file. Here, the title global attribute is the beginning of the file. Here, the title global attribute is
inserted. inserted.
@item @item
@code{:unnarrowed t} tells org-capture to show the contents for the whole @code{:unnarrowed t} tells org-capture to show the contents for the whole
file, rather than narrowing to just the entry. file, rather than narrowing to just the entry.
@end enumerate @end itemize
Other options you may want to learn about include @code{:immediate-finish}. Other options you may want to learn about include @code{:immediate-finish}.
@ -798,59 +825,55 @@ All of Org-roam's customization options can be viewed via
This section concerns the placement and creation of files. This section concerns the placement and creation of files.
@itemize @defvar org-roam-directory
@item
Variable: org-roam-directory
This is the default path to Org-roam files. All Org files, at any level of This is the default path to Org-roam files. All Org files, at any level of
nesting, are considered part of the Org-roam. nesting, are considered part of the Org-roam.
@end defvar
@item @defvar org-roam-db-location
Variable: org-roam-db-location
Location of the Org-roam database. If this is non-nil, the Org-roam sqlite Location of the Org-roam database. If this is non-nil, the Org-roam sqlite
database is saved here. database is saved here.
It is the users responsibility to set this correctly, especially when used It is the users responsibility to set this correctly, especially when used
with multiple Org-roam instances. with multiple Org-roam instances.
@end defvar
@item @defvar org-roam-file-exclude-regexp
Variable: org-roam-file-exclude-regexp
Files matching this regular expression are excluded from the Org-roam. Files matching this regular expression are excluded from the Org-roam.
@end itemize @end defvar
@node The Org-roam Buffer @node The Org-roam Buffer
@section The Org-roam Buffer @section The Org-roam Buffer
The Org-roam buffer displays backlinks for the currently active Org-roam note. The Org-roam buffer displays backlinks for the currently active Org-roam note.
@itemize @defopt org-roam-buffer
@item
User Option: org-roam-buffer
The name of the org-roam buffer. Defaults to @code{*org-roam*}. The name of the org-roam buffer. Defaults to @code{*org-roam*}.
@end defopt
@item @defopt org-roam-buffer-position
User Option: org-roam-buffer-position
The position of the Org-roam buffer side window. Valid values are @code{'left}, The position of the Org-roam buffer side window. Valid values are @code{'left},
@code{'right}, @code{'top}, @code{'bottom}. @code{'right}, @code{'top}, @code{'bottom}.
@end defopt
@item @defopt org-roam-buffer-width
User Option: org-roam-buffer-width
Width of @code{org-roam-buffer}. Has an effect only if @code{org-roam-buffer-position} is Width of @code{org-roam-buffer}. Has an effect only if @code{org-roam-buffer-position} is
@code{'left} or @code{'right}. @code{'left} or @code{'right}.
@end defopt
@item @defopt org-roam-buffer-height
User Option: org-roam-buffer-height
Height of @code{org-roam-buffer}. Has an effect only if @code{org-roam-buffer-position} is Height of @code{org-roam-buffer}. Has an effect only if @code{org-roam-buffer-position} is
@code{'top} or @code{'bottom}. @code{'top} or @code{'bottom}.
@end defopt
@item @defopt org-roam-buffer-window-parameters
User Option: org-roam-buffer-window-parameters
Additional window parameters for the org-roam-buffer side window. Additional window parameters for the org-roam-buffer side window.
@ -858,7 +881,7 @@ For example one can prevent the window from being deleted when calling
@code{delete-other-windows}, by setting it with the following: @code{delete-other-windows}, by setting it with the following:
@code{(setq org-roam-buffer-window-parameters '((no-delete-other-windows . t)))} @code{(setq org-roam-buffer-window-parameters '((no-delete-other-windows . t)))}
@end itemize @end defopt
@node Org-roam Files @node Org-roam Files
@section Org-roam Files @section Org-roam Files
@ -872,14 +895,12 @@ system. The templating system is customizable (see @ref{The Templating System}).
Org-roam introduces several faces to distinguish links within the same buffer. Org-roam introduces several faces to distinguish links within the same buffer.
These faces are enabled by default in Org-roam notes. These faces are enabled by default in Org-roam notes.
@itemize @defopt org-roam-link-use-custom-faces
@item
User Option: org-roam-link-use-custom-faces
When @code{t}, use custom faces only inside Org-roam notes. When @code{t}, use custom faces only inside Org-roam notes.
When @code{everywhere}, the custom face is applied additionally to non Org-roam notes. When @code{everywhere}, the custom face is applied additionally to non Org-roam notes.
When @code{nil}, do not use Org-roam's custom faces. When @code{nil}, do not use Org-roam's custom faces.
@end itemize @end defopt
The @code{org-roam-link} face is the face applied to links to other Org-roam files. The @code{org-roam-link} face is the face applied to links to other Org-roam files.
This distinguishes internal links from external links (e.g. external web links). This distinguishes internal links from external links (e.g. external web links).
@ -906,14 +927,16 @@ populate the Org-roam database. The link can then be inserted via
An alternative mode of insertion is using Org-roam's @code{roam} links. Org-roam An alternative mode of insertion is using Org-roam's @code{roam} links. Org-roam
registers this link type, and interprets the path as follows: registers this link type, and interprets the path as follows:
@table @asis @itemize
@item @code{[[roam:title]]} @item
links to an Org-roam file with title or alias ``title'' @code{[[roam:title]]}links to an Org-roam file with title or alias ``title''
@item @code{[[roam:*headline]]}
links to the headline ``headline'' in the current Org-roam file @item
@item @code{[[roam:title*headline]]} @code{[[roam:*headline]]}links to the headline ``headline'' in the current Org-roam file
links to the headline ``headline'' in the Org-roam file with title or alias ``title''
@end table @item
@code{[[roam:title*headline]]}links to the headline ``headline'' in the Org-roam file with title or alias ``title''
@end itemize
@code{roam} links support auto-completion via @code{completion-at-point}: simply call @code{roam} links support auto-completion via @code{completion-at-point}: simply call
@code{completion-at-point} within a roam link. Users of @code{company-mode} may want to @code{completion-at-point} within a roam link. Users of @code{company-mode} may want to
@ -931,31 +954,29 @@ To easily insert @code{roam} links, one may wish to use a package like @uref{htt
(backward-char 2)) (backward-char 2))
@end lisp @end lisp
@itemize @defopt org-roam-link-title-format
@item
User Option: org-roam-link-title-format
To distinguish between org-roam links and regular links, one may choose to use To distinguish between org-roam links and regular links, one may choose to use
special indicators for Org-roam links. Defaults to @code{"%s"}. special indicators for Org-roam links. Defaults to @code{"%s"}.
If your version of Org is at least @code{9.2}, consider styling the link differently, If your version of Org is at least @code{9.2}, consider styling the link differently,
by customizing the @code{org-roam-link}, and @code{org-roam-link-current} faces. by customizing the @code{org-roam-link}, and @code{org-roam-link-current} faces.
@end defopt
@item @defopt org-roam-completion-ignore-case
User Option: org-roam-completion-ignore-case
When non-nil, the @code{roam} link completions are ignore case. For example, When non-nil, the @code{roam} link completions are ignore case. For example,
calling @code{completion-at-point} within @code{[[roam:fo]]} will present a completion calling @code{completion-at-point} within @code{[[roam:fo]]} will present a completion
for a file with title ``Foo''. Defaults to @code{t}. for a file with title ``Foo''. Defaults to @code{t}.
@end defopt
@item @defopt org-roam-link-auto-replace
User Option: org-roam-link-auto-replace
When non-nil, @code{roam} links will be replaced with @code{file} or @code{id} links when When non-nil, @code{roam} links will be replaced with @code{file} or @code{id} links when
they are navigated to, and on file save, when a match is found. This is they are navigated to, and on file save, when a match is found. This is
desirable to maintain compatibility with vanilla Org, but resolved links are desirable to maintain compatibility with vanilla Org, but resolved links are
harder to edit. Defaults to @code{t}. harder to edit. Defaults to @code{t}.
@end itemize @end defopt
@node Navigating Around @node Navigating Around
@chapter Navigating Around @chapter Navigating Around
@ -973,9 +994,7 @@ to your main files.
In Org-roam, you can define the path to your index file by setting In Org-roam, you can define the path to your index file by setting
@code{org-roam-index-file}. @code{org-roam-index-file}.
@itemize @defvar org-roam-index-file
@item
Variable: org-roam-index-file
Path to the Org-roam index file. Path to the Org-roam index file.
@ -984,12 +1003,12 @@ path (absolute or relative to @code{org-roam-directory}) to the index file. If i
is is a function, the function should return the path to the index file. is is a function, the function should return the path to the index file.
Otherwise, the index is assumed to be a note in @code{org-roam-index} whose Otherwise, the index is assumed to be a note in @code{org-roam-index} whose
title is @code{"Index"}. title is @code{"Index"}.
@end defvar
@item @defun org-roam-find-index
Function: org-roam-find-index
Opens the Index file in the current @code{org-roam-directory}. Opens the Index file in the current @code{org-roam-directory}.
@end itemize @end defun
@node Encryption @node Encryption
@chapter Encryption @chapter Encryption
@ -1003,12 +1022,10 @@ Note that Emacs will prompt for a password for encrypted files during
cache updates if it requires reading the encrypted file. To reduce the cache updates if it requires reading the encrypted file. To reduce the
number of password prompts, you may wish to cache the password. number of password prompts, you may wish to cache the password.
@itemize @defvar org-roam-encrypt-files
@item
Variable: org-roam-encrypt-files
Whether to encrypt new files. If true, create files with .org.gpg extension. Whether to encrypt new files. If true, create files with .org.gpg extension.
@end itemize @end defvar
@node Graphing @node Graphing
@chapter Graphing @chapter Graphing
@ -1019,9 +1036,7 @@ notes. This is done by performing SQL queries and generating images using
The entry point to graph creation is @code{org-roam-graph}. The entry point to graph creation is @code{org-roam-graph}.
@itemize @defun org-roam-graph & optional arg file node-query
@item
Function: org-roam-graph & optional arg file node-query
Build and possibly display a graph for FILE from NODE-QUERY@. Build and possibly display a graph for FILE from NODE-QUERY@.
If FILE is nil, default to current buffers file name. If FILE is nil, default to current buffers file name.
@ -1030,37 +1045,43 @@ ARG may be any of the following values:
@itemize @itemize
@item @item
@code{nil} show the graph. @code{nil} show the graph.
@item @item
@code{C-u} show the graph for FILE@. @code{C-u} show the graph for FILE@.
@item @item
@code{C-u N} show the graph for FILE limiting nodes to N steps. @code{C-u N} show the graph for FILE limiting nodes to N steps.
@item @item
@code{C-u C-u} build the graph. @code{C-u C-u} build the graph.
@item @item
@code{C-u -} build the graph for FILE@. @code{C-u -} build the graph for FILE@.
@item @item
@code{C-u -N} build the graph for FILE limiting nodes to N steps. @code{C-u -N} build the graph for FILE limiting nodes to N steps.
@end itemize @end itemize
@end defun
@item @defopt org-roam-graph-executable
User Option: org-roam-graph-executable
Path to the graphing executable (in this case, Graphviz). Set this if Org-roam is unable to find the Graphviz executable on your system. 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 @code{neato} in place of @code{dot}, which generates a more You may also choose to use @code{neato} in place of @code{dot}, which generates a more
compact graph layout. compact graph layout.
@end defopt
@item @defopt org-roam-graph-viewer
User Option: org-roam-graph-viewer
Org-roam defaults to using Firefox (located on PATH) to view the SVG, but you may choose to set it to: Org-roam defaults to using Firefox (located on PATH) to view the SVG, but you may choose to set it to:
@enumerate @itemize
@item @item
A string, which is a path to the program used A string, which is a path to the program used
@item @item
a function accepting a single argument: the graph file path. a function accepting a single argument: the graph file path.
@end enumerate @end itemize
@code{nil} uses @code{view-file} to view the graph. @code{nil} uses @code{view-file} to view the graph.
@ -1072,7 +1093,7 @@ If you are using WSL2 and would like to open the graph in Windows, you can use t
(let ((org-roam-graph-viewer "/mnt/c/Program Files/Mozilla Firefox/firefox.exe")) (let ((org-roam-graph-viewer "/mnt/c/Program Files/Mozilla Firefox/firefox.exe"))
(org-roam-graph--open (concat "file://///wsl$/Ubuntu" file))))) (org-roam-graph--open (concat "file://///wsl$/Ubuntu" file)))))
@end lisp @end lisp
@end itemize @end defopt
@menu @menu
* Graph Options:: * Graph Options::
@ -1084,40 +1105,36 @@ If you are using WSL2 and would like to open the graph in Windows, you can use t
Graphviz provides many options for customizing the graph output, and Org-roam supports some of them. See @uref{https://graphviz.gitlab.io/_pages/doc/info/attrs.html} for customizable options. Graphviz provides many options for customizing the graph output, and Org-roam supports some of them. See @uref{https://graphviz.gitlab.io/_pages/doc/info/attrs.html} for customizable options.
@itemize @defopt org-roam-graph-extra-config
@item
User Option: org-roam-graph-extra-config
Extra options passed to graphviz for the digraph (The ``G'' attributes). Extra options passed to graphviz for the digraph (The ``G'' attributes).
Example: @code{'~(("rankdir" . "LR"))} Example: @code{'~(("rankdir" . "LR"))}
@end defopt
@item @defopt org-roam-graph-node-extra-config
User Option: org-roam-graph-node-extra-config
Extra options for nodes in the graphviz output (The ``N'' attributes). Extra options for nodes in the graphviz output (The ``N'' attributes).
Example: @code{'(("color" . "skyblue"))} Example: @code{'(("color" . "skyblue"))}
@end defopt
@item @defopt org-roam-graph-edge-extra-config
User Option: org-roam-graph-edge-extra-config
Extra options for edges in the graphviz output (The ``E'' attributes). Extra options for edges in the graphviz output (The ``E'' attributes).
Example: @code{'(("dir" . "back"))} Example: @code{'(("dir" . "back"))}
@end defopt
@item @defopt org-roam-graph-edge-cites-extra-config
User Option: org-roam-graph-edge-cites-extra-config
Extra options for citation edges in the graphviz output. Extra options for citation edges in the graphviz output.
Example: @code{'(("color" . "red"))} Example: @code{'(("color" . "red"))}
@end itemize @end defopt
@node Excluding Nodes and Edges @node Excluding Nodes and Edges
@section Excluding Nodes and Edges @section Excluding Nodes and Edges
One may want to exclude certain files to declutter the graph. One may want to exclude certain files to declutter the graph.
@itemize @defopt org-roam-graph-exclude-matcher
@item
User Option: org-roam-graph-exclude-matcher
Matcher for excluding nodes from the generated graph. Any nodes and links for Matcher for excluding nodes from the generated graph. Any nodes and links for
file paths matching this string is excluded from the graph. file paths matching this string is excluded from the graph.
@ -1126,7 +1143,7 @@ If value is a string, the string is the only matcher.
If value is a list, all file paths matching any of the strings If value is a list, all file paths matching any of the strings
are excluded. are excluded.
@end itemize @end defopt
@example @example
(setq org-roam-graph-exclude-matcher '("private" "dailies")) (setq org-roam-graph-exclude-matcher '("private" "dailies"))
@ -1229,29 +1246,29 @@ See @uref{https://www.chromium.org/administrators/linux-quick-start, here} for m
For MacOS, one solution is to use @uref{https://github.com/sveinbjornt/Platypus, Platypus}. Here are the instructions for For MacOS, one solution is to use @uref{https://github.com/sveinbjornt/Platypus, Platypus}. Here are the instructions for
setting up with Platypus and Chrome: setting up with Platypus and Chrome:
@enumerate @itemize
@item @item
Install and launch Platypus (with @uref{https://brew.sh/, Homebrew}): Install and launch Platypus (with @uref{https://brew.sh/, Homebrew}):
@end enumerate @end itemize
@example @example
brew cask install platypus brew cask install platypus
@end example @end example
@enumerate @itemize
@item @item
Create a script @code{launch_emacs.sh}: Create a script @code{launch_emacs.sh}:
@end enumerate @end itemize
@example @example
#!/usr/bin/env bash #!/usr/bin/env bash
/usr/local/bin/emacsclient --no-wait $1 /usr/local/bin/emacsclient --no-wait $1
@end example @end example
@enumerate @itemize
@item @item
Create a Platypus app with the following settings: Create a Platypus app with the following settings:
@end enumerate @end itemize
@example @example
| Setting | Value | | Setting | Value |
@ -1371,17 +1388,15 @@ Org-roam provides journaling capabilities akin to
For @code{org-roam-dailies} to work, you need to define two variables: For @code{org-roam-dailies} to work, you need to define two variables:
@itemize @defvar @code{org-roam-dailies-directory}
@item
Variable: @code{org-roam-dailies-directory}
Path to daily-notes. Path to daily-notes.
@end defvar
@item @defvar @code{org-roam-dailies-capture-templates}
Variable: @code{org-roam-dailies-capture-templates}
Capture templates for daily-notes in Org-roam. Capture templates for daily-notes in Org-roam.
@end itemize @end defvar
Here is a sane default configuration: Here is a sane default configuration:
@ -1429,41 +1444,35 @@ template @code{j} will put its notes under the heading Journal. When you
@node Capturing and finding daily-notes @node Capturing and finding daily-notes
@section Capturing and finding daily-notes @section Capturing and finding daily-notes
@itemize @defun @code{org-roam-dailies-capture-today} &optional goto
@item
Function: @code{org-roam-dailies-capture-today} &optional goto
Create an entry in the daily note for today. Create an entry in the daily note for today.
When @code{goto} is non-nil, go the note without creating an entry. When @code{goto} is non-nil, go the note without creating an entry.
@end defun
@item @defun @code{org-roam-dailies-find-today}
Function: @code{org-roam-dailies-find-today}
Find the daily note for today, creating it if necessary. Find the daily note for today, creating it if necessary.
@end itemize @end defun
There are variants of those commands for @code{-yesterday} and @code{-tomorrow}: There are variants of those commands for @code{-yesterday} and @code{-tomorrow}:
@itemize @defun @code{org-roam-dailies-capture-yesterday} n &optional goto
@item
Function: @code{org-roam-dailies-capture-yesterday} n &optional goto
Create an entry in the daily note for yesteday. Create an entry in the daily note for yesteday.
With numeric argument @code{n}, use the daily note @code{n} days in the past. With numeric argument @code{n}, use the daily note @code{n} days in the past.
@end defun
@item @defun @code{org-roam-dailies-find-yesterday}
Function: @code{org-roam-dailies-find-yesterday}
With numeric argument N, use the daily-note N days in the future. With numeric argument N, use the daily-note N days in the future.
@end itemize @end defun
There are also commands which allow you to use Emacss @code{calendar} to find the date There are also commands which allow you to use Emacss @code{calendar} to find the date
@itemize @defun @code{org-roam-dailies-capture-date}
@item
Function: @code{org-roam-dailies-capture-date}
Create an entry in the daily note for a date using the calendar. Create an entry in the daily note for a date using the calendar.
@ -1471,36 +1480,34 @@ Prefer past dates, unless @code{prefer-future} is non-nil.
With a 'C-u' prefix or when @code{goto} is non-nil, go the note without With a 'C-u' prefix or when @code{goto} is non-nil, go the note without
creating an entry. creating an entry.
@end defun
@item @defun @code{org-roam-dailies-find-date}
Function: @code{org-roam-dailies-find-date}
Find the daily note for a date using the calendar, creating it if necessary. Find the daily note for a date using the calendar, creating it if necessary.
Prefer past dates, unless @code{prefer-future} is non-nil. Prefer past dates, unless @code{prefer-future} is non-nil.
@end itemize @end defun
@node Navigation @node Navigation
@section Navigation @section Navigation
You can navigate between daily-notes: You can navigate between daily-notes:
@itemize @defun @code{org-roam-dailies-find-directory}
@item
Function: @code{org-roam-dailies-find-directory}
Find and open @code{org-roam-dailies-directory}. Find and open @code{org-roam-dailies-directory}.
@end defun
@item @defun @code{org-roam-dailies-find-previous-note}
Function: @code{org-roam-dailies-find-previous-note}
When in an daily-note, find the previous one. When in an daily-note, find the previous one.
@end defun
@item @defun @code{org-roam-dailies-find-next-note}
Function: @code{org-roam-dailies-find-next-note}
When in an daily-note, find the next one. When in an daily-note, find the next one.
@end itemize @end defun
@node Diagnosing and Repairing Files @node Diagnosing and Repairing Files
@chapter Diagnosing and Repairing Files @chapter Diagnosing and Repairing Files
@ -1510,13 +1517,11 @@ Org-roam provides a utility for diagnosing and repairing problematic files via
Org-roam file. To run the check only for the current file, run @code{C-u M-x Org-roam file. To run the check only for the current file, run @code{C-u M-x
org-roam-doctor}, but note that this may take some time. org-roam-doctor}, but note that this may take some time.
@itemize @defun org-roam-doctor &optional this-buffer
@item
Function: org-roam-doctor &optional this-buffer
Perform a check on Org-roam files to ensure cleanliness. If THIS-BUFFER, run Perform a check on Org-roam files to ensure cleanliness. If THIS-BUFFER, run
the check only for the current buffer. the check only for the current buffer.
@end itemize @end defun
The checks run are defined in @code{org-roam-doctor--checkers}. Each checker is an The checks run are defined in @code{org-roam-doctor--checkers}. Each checker is an
instance of @code{org-roam-doctor-checker}. To define a checker, use instance of @code{org-roam-doctor-checker}. To define a checker, use
@ -1597,36 +1602,43 @@ operations. To reduce the number of garbage collection processes, one may set
@node Note-taking Workflows @node Note-taking Workflows
@section Note-taking Workflows @section Note-taking Workflows
@table @asis
@item Books
@itemize @itemize
@item
Books@itemize
@item @item
@uref{https://www.goodreads.com/book/show/34507927-how-to-take-smart-notes, How To Take Smart Notes} @uref{https://www.goodreads.com/book/show/34507927-how-to-take-smart-notes, How To Take Smart Notes}
@end itemize @end itemize
@item Articles
@itemize @item
Articles@itemize
@item @item
@uref{https://www.lesswrong.com/posts/NfdHG6oHBJ8Qxc26s/the-zettelkasten-method-1, The Zettelkasten Method - LessWrong 2.0} @uref{https://www.lesswrong.com/posts/NfdHG6oHBJ8Qxc26s/the-zettelkasten-method-1, The Zettelkasten Method - LessWrong 2.0}
@item @item
@uref{https://reddit.com/r/RoamResearch/comments/eho7de/building_a_second_brain_in_roamand_why_you_might, Building a Second Brain in Roam@dots{}And Why You Might Want To : RoamResearch} @uref{https://reddit.com/r/RoamResearch/comments/eho7de/building_a_second_brain_in_roamand_why_you_might, Building a Second Brain in Roam@dots{}And Why You Might Want To : RoamResearch}
@item @item
@uref{https://www.nateliason.com/blog/roam, Roam Research: Why I Love It and How I Use It - Nat Eliason} @uref{https://www.nateliason.com/blog/roam, Roam Research: Why I Love It and How I Use It - Nat Eliason}
@item @item
@uref{https://twitter.com/adam_keesling/status/1196864424725774336?s=20, Adam Keesling's Twitter Thread} @uref{https://twitter.com/adam_keesling/status/1196864424725774336?s=20, Adam Keesling's Twitter Thread}
@item @item
@uref{https://blog.jethro.dev/posts/how_to_take_smart_notes_org/, How To Take Smart Notes With Org-mode · Jethro Kuan} @uref{https://blog.jethro.dev/posts/how_to_take_smart_notes_org/, How To Take Smart Notes With Org-mode · Jethro Kuan}
@end itemize @end itemize
@item Threads
@itemize @item
Threads@itemize
@item @item
@uref{https://news.ycombinator.com/item?id=22473209, Ask HN: How to Take Good Notes} @uref{https://news.ycombinator.com/item?id=22473209, Ask HN: How to Take Good Notes}
@end itemize @end itemize
@item Videos
@itemize @item
Videos@itemize
@item @item
@uref{https://www.youtube.com/watch?v=RvWic15iXjk, How to Use Roam to Outline a New Article in Under 20 Minutes} @uref{https://www.youtube.com/watch?v=RvWic15iXjk, How to Use Roam to Outline a New Article in Under 20 Minutes}
@end itemize @end itemize
@end table @end itemize
@node Ecosystem @node Ecosystem
@section Ecosystem @section Ecosystem
@ -1855,12 +1867,13 @@ This situation arises when, for example, one would like to create a note titled
The solution is dependent on the mini-buffer completion framework in use. Here The solution is dependent on the mini-buffer completion framework in use. Here
are the solutions: are the solutions:
@table @asis @itemize
@item Ivy @item
call @code{ivy-immediate-done}, typically bound to @code{C-M-j}. Alternatively, set @code{ivy-use-selectable-prompt} to @code{t}, so that ``bar'' is now selectable. Ivycall @code{ivy-immediate-done}, typically bound to @code{C-M-j}. Alternatively, set @code{ivy-use-selectable-prompt} to @code{t}, so that ``bar'' is now selectable.
@item Helm
Org-roam should provide a selectable ``[?] bar'' candidate at the top of the candidate list.
@end table
Emacs 27.1.50 (Org mode 9.4) @item
HelmOrg-roam should provide a selectable ``[?] bar'' candidate at the top of the candidate list.
@end itemize
Emacs 28.0.50 (Org mode 9.4)
@bye @bye