mirror of
https://github.com/org-roam/org-roam
synced 2025-08-03 12:27:23 -05:00
Deploying to gh-pages from @ bb08be4740
🚀
This commit is contained in:
696
manual.html
696
manual.html
File diff suppressed because it is too large
Load Diff
81
org-roam.org
81
org-roam.org
@ -268,40 +268,6 @@ file:
|
||||
install-info /path/to/my/info/files/org-roam.info /path/to/my/info/files/dir
|
||||
#+end_src
|
||||
|
||||
** Installation Troubleshooting
|
||||
*** C Compiler
|
||||
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.
|
||||
|
||||
**** C Compiler for Windows
|
||||
|
||||
One of the easiest ways to install a C compiler in Windows is to use [[https://www.msys2.org/][MSYS2]] as at the time of this writing:
|
||||
|
||||
1. Download and use the installer in the official MSYS2 website
|
||||
2. Run MSYS2 and in its terminal, type the following and answer "Y" to
|
||||
proceed -- this will install ~gcc~ in your PC:
|
||||
|
||||
#+BEGIN_SRC bash
|
||||
pacman -S gcc
|
||||
#+END_SRC
|
||||
|
||||
4. On Windows, add ~C:\msys64\usr\bin~ (command =where gcc= in MSYS2 terminal
|
||||
can tell you the correct path) to ~PATH~ in your environmental variables
|
||||
|
||||
5. Launch Emacs and call ~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~
|
||||
|
||||
* Getting Started
|
||||
** The Org-roam Node
|
||||
|
||||
@ -459,18 +425,18 @@ can set ~org-roam-node-display-template~ as such:
|
||||
** How to cache
|
||||
|
||||
Org-roam uses a sqlite database to perform caching, but there are multiple Emacs
|
||||
libraries that can be used. The default used by Org-roam is ~emacs-sqlite~.
|
||||
Below the pros and cons of each package is used:
|
||||
libraries that can be used. The default used by Org-roam is
|
||||
[[https://github.com/magit/emacsql/blob/main/emacsql-sqlite-builtin.el][~emacs-sqlite-builtin~]]. Below the pros and cons of each package is used:
|
||||
|
||||
[[https://github.com/skeeto/emacsql][**emacs-sqlite**]]
|
||||
[[https://melpa.org/#/emacsql-sqlite-builtin][**emacsql-sqlite-builtin**]]
|
||||
|
||||
The default option used by Org-roam. This library is the most mature and
|
||||
well-supported and is imported by default in Org-roam.
|
||||
~emacsql-sqlite-builtin~ uses the in-built SQLite support for Emacs 29 and
|
||||
later. This is the default option if you are using a version of Emacs that
|
||||
supports it.
|
||||
|
||||
One downside of using ~emacs-sqlite~ is that using it requires compilation and
|
||||
can cause issues in some environments (especially Windows). If you have issues
|
||||
producing the customized binary required by ~emacs-sqlite~, consider using
|
||||
~emacs-sqlite3~.
|
||||
#+begin_src emacs-lisp
|
||||
(setq org-roam-database-connector 'sqlite-builtin)
|
||||
#+end_src
|
||||
|
||||
[[https://github.com/cireu/emacsql-sqlite3][**emacs-sqlite3**]]
|
||||
|
||||
@ -489,24 +455,12 @@ To use ~emacsql-sqlite3~, ensure that the package is installed, and set:
|
||||
[[https://melpa.org/#/emacsql-sqlite-module][**emacssql-sqlite-module**]] (previously emacsql-libsqlite3)
|
||||
|
||||
~emacs-sqlite-module~ is a relatively young package which uses an Emacs module that
|
||||
exposes parts of the SQLite C API to Emacs Lisp, instead of using subprocess as
|
||||
~emacsql-sqlite~ does. It is expected to be a more performant drop-in
|
||||
replacement for ~emacs-sqlite~.
|
||||
exposes parts of the SQLite C API to Emacs Lisp.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(setq org-roam-database-connector 'sqlite-module)
|
||||
#+end_src
|
||||
|
||||
[[https://melpa.org/#/emacsql-sqlite-builtin][**emacsql-sqlite-builtin**]]
|
||||
|
||||
~emacsql-sqlite-builtin~ uses the in-built SQLite support for Emacs 29 and
|
||||
later. This is the recommended option if you are using a version of Emacs that
|
||||
supports it.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(setq org-roam-database-connector 'sqlite-builtin)
|
||||
#+end_src
|
||||
|
||||
** What to cache
|
||||
|
||||
By default, all nodes (any headline or file with an ID) are cached by Org-roam.
|
||||
@ -1672,21 +1626,6 @@ to the publishing directory. Example code follows:
|
||||
(kill-buffer (file-name-nondirectory svg))
|
||||
(setq my-publish-time 0)))))
|
||||
#+end_src
|
||||
** I'm seeing this "Selecting deleted buffer" error. What do I do?
|
||||
|
||||
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 [[https://github.com/org-roam/org-roam/issues?q=is%3Aissue+selecting+deleted][here]].
|
||||
|
||||
To fix this, you can try the following:
|
||||
|
||||
1. If on Windows, try replacing your system binary with [[https://github.com/nobiot/emacsql-sqlite.exe][this one]] that has been proven
|
||||
to work
|
||||
2. Use the ~emacsql-sqlite3~ option rather than compiling your own emacsql
|
||||
binary (see [[*How to cache][How to cache]]).
|
||||
|
||||
* Developer's Guide to Org-roam
|
||||
** Org-roam's Design Principle
|
||||
|
||||
|
492
org-roam.texi
492
org-roam.texi
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user