mirror of
https://github.com/org-roam/org-roam
synced 2025-08-03 12:27:23 -05:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
c1ab5ea693 | |||
bd5aec066b | |||
a53ccbf485 | |||
07135ad2e4 | |||
3f3bb79554 | |||
a6d210b80a |
31
.github/workflows/docs.yml
vendored
31
.github/workflows/docs.yml
vendored
@ -1,6 +1,7 @@
|
||||
---
|
||||
# * docs.yml --- Build the documentation and publish to Github Pages
|
||||
|
||||
name: "Docs"
|
||||
name: Docs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@ -9,23 +10,19 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
sudo apt-get install texinfo
|
||||
- name: Install deps
|
||||
run: sudo apt install texinfo
|
||||
|
||||
- name: Build docs
|
||||
continue-on-error: false
|
||||
run: make html
|
||||
- name: Build docs
|
||||
run: make html
|
||||
|
||||
- name: Deploy 🚀
|
||||
uses: JamesIves/github-pages-deploy-action@releases/v3
|
||||
with:
|
||||
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
|
||||
BRANCH: gh-pages # The branch the action should deploy to.
|
||||
FOLDER: doc # The folder the action should deploy.
|
||||
CLEAN: true
|
||||
- name: Deploy 🚀
|
||||
uses: JamesIves/github-pages-deploy-action@releases/v4
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
branch: gh-pages # The branch the action should deploy to.
|
||||
folder: doc
|
||||
clean: true
|
||||
|
35
.github/workflows/test.yml
vendored
35
.github/workflows/test.yml
vendored
@ -1,7 +1,4 @@
|
||||
# * test.yml --- Test Emacs packages using makem.sh on GitHub Actions
|
||||
|
||||
# https://github.com/alphapapa/makem.sh
|
||||
|
||||
---
|
||||
# Based on Steve Purcell's examples at
|
||||
# <https://github.com/purcell/setup-emacs/blob/master/.github/workflows/test.yml>,
|
||||
# <https://github.com/purcell/package-lint/blob/master/.github/workflows/test.yml>.
|
||||
@ -23,7 +20,7 @@
|
||||
|
||||
# * Code:
|
||||
|
||||
name: "CI"
|
||||
name: CI
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
@ -47,10 +44,10 @@ jobs:
|
||||
with:
|
||||
version: ${{ matrix.emacs_version }}
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Eldev
|
||||
run: curl -fsSL https://raw.github.com/org-roam/org-roam/master/github-eldev | sh
|
||||
uses: emacs-eldev/setup-eldev@v1
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: make prepare
|
||||
@ -60,6 +57,28 @@ jobs:
|
||||
|
||||
- name: Test
|
||||
run: make test
|
||||
|
||||
docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install deps
|
||||
run: sudo apt install texinfo
|
||||
|
||||
- name: Build docs
|
||||
run: make html
|
||||
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Docs
|
||||
if-no-files-found: error
|
||||
# TODO: optimize images
|
||||
path: |
|
||||
doc/
|
||||
!doc/images/
|
||||
|
||||
# Local Variables:
|
||||
# eval: (outline-minor-mode)
|
||||
# End:
|
||||
|
16
Makefile
16
Makefile
@ -1,6 +1,7 @@
|
||||
.PHONY: clean
|
||||
clean:
|
||||
eldev clean all
|
||||
$(MAKE) -C doc clean
|
||||
|
||||
.PHONY: prepare
|
||||
prepare:
|
||||
@ -14,16 +15,17 @@ lint:
|
||||
test:
|
||||
eldev -C --unstable -T test
|
||||
|
||||
.PHONY: docs
|
||||
docs:
|
||||
make -C doc all
|
||||
$(MAKE) -C doc
|
||||
|
||||
.PHONY: html
|
||||
html:
|
||||
make -C doc html-dir
|
||||
$(MAKE) -C doc html
|
||||
|
||||
.PHONY: install
|
||||
install: install-docs
|
||||
|
||||
install-docs: docs
|
||||
make -C doc install-docs
|
||||
|
||||
install-info: info
|
||||
make -C doc install-info
|
||||
.PHONY: install-docs
|
||||
install-docs:
|
||||
$(MAKE) -C doc install
|
||||
|
@ -151,12 +151,9 @@ In both of the cases you will need to ensure that you have all the required
|
||||
dependencies. These include:
|
||||
|
||||
- dash
|
||||
- f
|
||||
- s
|
||||
- org (9.6 is the minimum required version!)
|
||||
- emacsql
|
||||
- magit-section
|
||||
- filenotify-recursive
|
||||
|
||||
After installing the package, you will need to properly setup `load-path` to the
|
||||
package:
|
||||
|
107
default.mk
107
default.mk
@ -1,107 +0,0 @@
|
||||
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
|
||||
## User options ######################################################
|
||||
#
|
||||
# You can override these settings in "config.mk" or on the command
|
||||
# line.
|
||||
#
|
||||
# You might also want to set LOAD_PATH. If you do, then it must
|
||||
# contain "-L .".
|
||||
#
|
||||
# If you don't do so, then the default is set in the "Load-Path"
|
||||
# section below. The default assumes that all dependencies are
|
||||
# installed either at "../<DEPENDENCY>", or when using package.el
|
||||
# at "ELPA_DIR/<DEPENDENCY>-<HIGHEST-VERSION>".
|
||||
|
||||
sharedir ?= $(HOME)/.local/share
|
||||
lispdir ?= $(sharedir)/emacs/site-lisp/org-roam
|
||||
infodir ?= $(sharedir)/info
|
||||
docdir ?= $(sharedir)/doc/org-roam
|
||||
statsdir ?= $(TOP)/doc/stats
|
||||
|
||||
CP ?= install -p -m 644
|
||||
MKDIR ?= install -p -m 755 -d
|
||||
RMDIR ?= rm -rf
|
||||
TAR ?= tar
|
||||
SED ?= sed
|
||||
|
||||
EMACSBIN ?= emacs
|
||||
BATCH = $(EMACSBIN) -Q --batch $(LOAD_PATH)
|
||||
|
||||
INSTALL_INFO ?= $(shell command -v ginstall-info || printf install-info)
|
||||
MAKEINFO ?= makeinfo
|
||||
MANUAL_HTML_ARGS ?= --css-ref /assets/page.css
|
||||
|
||||
## Files #############################################################
|
||||
|
||||
PKG = org-roam
|
||||
PACKAGES = org-roam
|
||||
|
||||
TEXIPAGES = $(addsuffix .texi,$(PACKAGES))
|
||||
INFOPAGES = $(addsuffix .info,$(PACKAGES))
|
||||
HTMLFILES = $(addsuffix .html,$(PACKAGES))
|
||||
HTMLDIRS = $(PACKAGES)
|
||||
PDFFILES = $(addsuffix .pdf,$(PACKAGES))
|
||||
EPUBFILES = $(addsuffix .epub,$(PACKAGES))
|
||||
|
||||
ELS = org-roam.el
|
||||
ELS += org-roam-capture.el
|
||||
ELS += org-roam-compat.el
|
||||
ELS += org-roam-db.el
|
||||
ELS += org-roam-mode.el
|
||||
ELS += org-roam-node.el
|
||||
ELS += org-roam-utils.el
|
||||
ELS += extensions/org-roam-dailies.el
|
||||
ELS += extensions/org-roam-graph.el
|
||||
ELS += extensions/org-roam-overlay.el
|
||||
ELS += extensions/org-roam-protocol.el
|
||||
ELCS = $(ELS:.el=.elc)
|
||||
ELMS = org-roam.el $(filter-out $(addsuffix .el,$(PACKAGES)),$(ELS))
|
||||
ELGS = org-roam-autoloads.el org-roam-version.el
|
||||
|
||||
## Versions ##########################################################
|
||||
|
||||
VERSION ?= $(shell test -e $(TOP).git && git describe --tags --abbrev=0 | cut -c2-)
|
||||
|
||||
EMACS_VERSION = 26.1
|
||||
|
||||
EMACSOLD := $(shell $(BATCH) --eval \
|
||||
"(and (version< emacs-version \"$(EMACS_VERSION)\") (princ \"true\"))")
|
||||
ifeq "$(EMACSOLD)" "true"
|
||||
$(error At least version $(EMACS_VERSION) of Emacs is required)
|
||||
endif
|
||||
|
||||
## Load-Path #########################################################
|
||||
|
||||
ifndef LOAD_PATH
|
||||
|
||||
ELPA_DIR ?= $(HOME)/.emacs.d/elpa
|
||||
|
||||
SYSTYPE := $(shell $(EMACSBIN) -Q --batch --eval "(princ system-type)")
|
||||
ifeq ($(SYSTYPE), windows-nt)
|
||||
CYGPATH := $(shell cygpath --version 2>/dev/null)
|
||||
endif
|
||||
|
||||
LOAD_PATH = -L $(TOP)
|
||||
|
||||
# When making changes here, then don't forget to adjust "Makefile",
|
||||
# ".travis.yml", ".github/ISSUE_TEMPLATE/bug_report.md",
|
||||
# `magit-emacs-Q-command' and the "Installing from the Git Repository"
|
||||
# info node accordingly. Also don't forget to "rgrep \b<pkg>\b".
|
||||
|
||||
endif # ifndef LOAD_PATH
|
||||
|
||||
ifndef ORG_LOAD_PATH
|
||||
ORG_LOAD_PATH = $(LOAD_PATH)
|
||||
ORG_LOAD_PATH += -L $(TOP)../ox-texinfo-plus
|
||||
ORG_LOAD_PATH += -L $(TOP)../org-mode/contrib/lisp
|
||||
ORG_LOAD_PATH += -L $(TOP)../org-mode/lisp
|
||||
endif
|
||||
|
||||
## Publish ###########################################################
|
||||
|
||||
PUBLISH_TARGETS ?= html html-dir pdf epub
|
||||
|
||||
DOCBOOK_XSL ?= /usr/share/xml/docbook/stylesheet/docbook-xsl/epub/docbook.xsl
|
||||
|
||||
EPUBTRASH = epub.xml META-INF OEBPS
|
@ -1,37 +0,0 @@
|
||||
Authors
|
||||
=======
|
||||
|
||||
The following people have contributed to Org-Roam.
|
||||
|
||||
Names below are sorted alphabetically.
|
||||
|
||||
Author
|
||||
------
|
||||
|
||||
- Jethro Kuan <jethrokuan95@gmail.com>
|
||||
|
||||
Maintainers
|
||||
----------
|
||||
|
||||
- Jethro Kuan <jethrokuan95@gmail.com>
|
||||
- Leo Vivier <leo.vivier+dev@gmail.com>
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
- Alexey Shmalko <rasen.dubi@gmail.com>
|
||||
- James Ravn <james@r-vn.org>
|
||||
- Jethro Kuan <jethrokuan95@gmail.com>
|
||||
- Johann Klähn <johann@jklaehn.de>
|
||||
- Josh English <josh@joshenglish.com>
|
||||
- Jürgen Hötzel <juergen@archlinux.org>
|
||||
- Langston Barrett <langston.barrett@gmail.com>
|
||||
- Leo Vivier <leo.vivier+dev@gmail.com>
|
||||
- Michael Glaesemann <grzm@seespotcode.net>
|
||||
- Michael Herold <github@michaeljherold.com>
|
||||
- Noboru <noboru.ota@gmail.com>
|
||||
- N V <44036031+progfolio@users.noreply.github.com>
|
||||
- Rafael Accácio Nogueira <raccacio@poli.ufrj.br>
|
||||
- Roland Coeurjoly <rolandcoeurjoly@gmail.com>
|
||||
- Sayan <dit7ya@users.noreply.github.com>
|
||||
- Tim Quelch <tim@tquelch.com>
|
165
doc/Makefile
165
doc/Makefile
@ -1,127 +1,94 @@
|
||||
-include ../config.mk
|
||||
include ../default.mk
|
||||
|
||||
###################################################################
|
||||
MANUAL_HTML_ARGS = --css-ref assets/page.css
|
||||
## User options ######################################################
|
||||
#
|
||||
# You can override these settings in "config.mk" or on the command
|
||||
# line.
|
||||
|
||||
.PHONY: texi install clean AUTHORS.md stats
|
||||
sharedir ?= $(HOME)/.local/share
|
||||
infodir ?= $(sharedir)/info
|
||||
|
||||
all: info
|
||||
EMACS ?= emacs
|
||||
BATCH = $(EMACS) -Q --batch
|
||||
|
||||
INSTALL_INFO ?= $(shell command -v ginstall-info || printf install-info)
|
||||
MAKEINFO ?= makeinfo
|
||||
MANUAL_HTML_ARGS ?= --css-ref assets/page.css
|
||||
|
||||
## Files #############################################################
|
||||
|
||||
PKG = org-roam
|
||||
PACKAGES = org-roam
|
||||
|
||||
INFOPAGES = $(addsuffix .info,$(PACKAGES))
|
||||
HTMLFILES = $(addsuffix .html,$(PACKAGES))
|
||||
|
||||
## Versions ##########################################################
|
||||
|
||||
EMACS_VERSION = 26.1
|
||||
|
||||
EMACSOLD := $(shell $(BATCH) --eval \
|
||||
"(and (version< emacs-version \"$(EMACS_VERSION)\") (princ \"true\"))")
|
||||
ifeq "$(EMACSOLD)" "true"
|
||||
$(error At least version $(EMACS_VERSION) of Emacs is required)
|
||||
endif
|
||||
|
||||
######################################################################
|
||||
|
||||
.PHONY: default
|
||||
default: info
|
||||
|
||||
## Build #############################################################
|
||||
|
||||
info: $(INFOPAGES) dir
|
||||
html: $(HTMLFILES)
|
||||
pdf: $(PDFFILES)
|
||||
epub: $(EPUBFILES)
|
||||
.PHONY: info
|
||||
info: dir
|
||||
|
||||
dir: $(INFOPAGES)
|
||||
@printf "Generating dir\n"
|
||||
@echo $^ | xargs -n 1 $(INSTALL_INFO) --dir=$@
|
||||
|
||||
%.info: %.texi
|
||||
@printf "Generating $@\n"
|
||||
@$(MAKEINFO) --no-split $< -o $@
|
||||
|
||||
dir: org-roam.info
|
||||
@printf "Generating dir\n"
|
||||
@echo $^ | xargs -n 1 $(INSTALL_INFO) --dir=$@
|
||||
.PHONY: html
|
||||
html: $(HTMLFILES)
|
||||
mv $(PKG).html manual.html
|
||||
|
||||
%.html: %.texi
|
||||
@printf "Generating $@\n"
|
||||
@$(MAKEINFO) --html --no-split $(MANUAL_HTML_ARGS) $<
|
||||
|
||||
html-dir:
|
||||
@$(MAKEINFO) --html --no-split $(MANUAL_HTML_ARGS) org-roam.texi
|
||||
mv org-roam.html manual.html
|
||||
|
||||
%.pdf: %.texi
|
||||
@printf "Generating $@\n"
|
||||
@texi2pdf --clean $< > /dev/null
|
||||
|
||||
%.epub: %.texi
|
||||
@printf "Generating $@\n"
|
||||
@$(MAKEINFO) --docbook $< -o epub.xml
|
||||
@xsltproc $(DOCBOOK_XSL) epub.xml 2> /dev/null
|
||||
@echo "application/epub+zip" > mimetype
|
||||
@zip -X --quiet --recurse-paths -0 $@ mimetype
|
||||
@zip -X --quiet --recurse-paths -9 --no-dir-entries $@ META-INF OEBPS
|
||||
@$(RMDIR) $(EPUBTRASH)
|
||||
|
||||
## Install ###########################################################
|
||||
|
||||
install: install-info install-docs
|
||||
|
||||
install-docs: install-info
|
||||
@$(MKDIR) $(DESTDIR)$(docdir)
|
||||
$(CP) AUTHORS.md $(DESTDIR)$(docdir)
|
||||
|
||||
install-info: info
|
||||
@$(MKDIR) $(DESTDIR)$(infodir)
|
||||
$(CP) $(INFOPAGES) $(DESTDIR)$(infodir)
|
||||
|
||||
## Clean #############################################################
|
||||
|
||||
clean:
|
||||
@printf "Cleaning doc/*...\n"
|
||||
@$(RMDIR) dir $(INFOPAGES) $(HTMLFILES) $(HTMLDIRS) $(PDFFILES)
|
||||
@$(RMDIR) $(EPUBFILES) $(EPUBTRASH)
|
||||
|
||||
## Release management ################################################
|
||||
|
||||
ORG_ARGS = --batch -Q $(ORG_LOAD_PATH)
|
||||
ORG_ARGS += -l ox-extra -l ox-texinfo+
|
||||
ORG_ARGS += --eval "(or (require 'org-man nil t) (require 'ol-man))"
|
||||
ORG_EVAL = --eval "(ox-extras-activate '(ignore-headlines))"
|
||||
ORG_EVAL += --eval "(setq indent-tabs-mode nil)"
|
||||
ORG_EVAL += --eval "(setq org-src-preserve-indentation nil)"
|
||||
ORG_EVAL += --funcall org-texinfo-export-to-texinfo
|
||||
|
||||
# This target first bumps version strings in the Org source. The
|
||||
# necessary tools might be missing so other targets do not depend
|
||||
# on this target and it has to be run explicitly when appropriate.
|
||||
#
|
||||
# AMEND=t make texi Update manual to be amended to HEAD.
|
||||
# VERSION=N make texi Update manual for release.
|
||||
#
|
||||
texi:
|
||||
@$(EMACSBIN) $(ORG_ARGS) $(PKG).org $(ORG_EVAL)
|
||||
@printf "\n" >> $(PKG).texi
|
||||
@rm -f $(PKG).texi~
|
||||
# NOTE: %.org is not a prerequisite since package archives can’t generate texi
|
||||
# from org. texi is generated on org save and committed to repo
|
||||
%.texi:
|
||||
@echo "Generating $@"
|
||||
@$(BATCH) $*.org $(ORG_EVAL)
|
||||
|
||||
stats:
|
||||
@printf "Generating statistics\n"
|
||||
@gitstats -c style=/assets/stats.css -c max_authors=999 $(TOP) $(statsdir)
|
||||
## Install ###########################################################
|
||||
|
||||
authors: AUTHORS.md
|
||||
.PHONY: install
|
||||
install: install-info
|
||||
|
||||
AUTHORS.md:
|
||||
@printf "Generating AUTHORS.md..."
|
||||
@test -e $(TOP).git \
|
||||
&& (printf "$$AUTHORS_HEADER\n" > $@ \
|
||||
&& git log --pretty=format:'- %aN <%aE>' | sort -u >> $@ \
|
||||
&& printf "done\n" ; ) \
|
||||
|| printf "FAILED (non-fatal)\n"
|
||||
.PHONY: install-info
|
||||
install-info: info
|
||||
install -p -m 755 -d $(DESTDIR)$(infodir)
|
||||
install -p -m 644 $(INFOPAGES) $(DESTDIR)$(infodir)
|
||||
|
||||
# Templates ##########################################################
|
||||
## Clean #############################################################
|
||||
|
||||
define AUTHORS_HEADER
|
||||
Authors
|
||||
=======
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Cleaning doc/*..."
|
||||
@rm -rf dir $(INFOPAGES) $(HTMLFILES)
|
||||
|
||||
The following people have contributed to Org-Roam.
|
||||
## Release management ################################################
|
||||
|
||||
Names below are sorted alphabetically.
|
||||
|
||||
Author
|
||||
------
|
||||
|
||||
- Jethro Kuan <jethrokuan95@gmail.com>
|
||||
|
||||
Maintainers
|
||||
----------
|
||||
|
||||
- Jethro Kuan <jethrokuan95@gmail.com>
|
||||
- Leo Vivier <leo.vivier+dev@gmail.com>
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
endef
|
||||
export AUTHORS_HEADER
|
||||
# Run VERSION=N make -C doc release-texi to explicitly set version when releasing
|
||||
.PHONY: release-texi
|
||||
release-texi:
|
||||
VERSION=$(VERSION) $(MAKE) -B $(PKG).texi
|
||||
|
@ -1,23 +1,25 @@
|
||||
#+title: Org-roam User Manual
|
||||
#+author: Jethro Kuan
|
||||
#+email: jethrokuan95@gmail.com
|
||||
#+date: 2020-2025
|
||||
#+date: 2020-{{{year}}}
|
||||
#+language: en
|
||||
|
||||
#+texinfo_deffn: t
|
||||
#+texinfo_dir_category: Emacs
|
||||
#+texinfo_dir_title: Org-roam: (org-roam).
|
||||
#+texinfo_dir_name: Org-roam: (org-roam).
|
||||
#+texinfo_dir_desc: Roam Research for Emacs.
|
||||
#+subtitle: for version 2.3.1
|
||||
#+subtitle: for {{{version}}}
|
||||
|
||||
#+options: H:4 num:3 toc:nil creator:t ':t
|
||||
#+property: header-args :eval never
|
||||
#+macro: version (eval (concat "version " (or (getenv "VERSION") (if-let* ((tag (ignore-errors (car (process-lines "git" "describe" "--tags" "--dirty=-devel" "--abbrev=0"))))) (replace-regexp-in-string "^v" "" tag) "<unknown>"))))
|
||||
#+macro: year (eval (format-time-string "%Y"))
|
||||
#+texinfo: @noindent
|
||||
|
||||
This manual is for Org-roam version 2.3.1.
|
||||
This manual is for Org-roam {{{version}}}.
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@gmail.com>
|
||||
Copyright (C) 2020-{{{year}}} Jethro Kuan <jethrokuan95@gmail.com> and the
|
||||
Org-roam contributors
|
||||
|
||||
You can redistribute this document and/or modify it under the terms of the GNU
|
||||
General Public License as published by the Free Software Foundation, either
|
||||
@ -220,8 +222,6 @@ You now have Org-roam installed. However, you don't necessarily have the
|
||||
dependencies that it requires. These include:
|
||||
|
||||
- dash
|
||||
- f
|
||||
- s
|
||||
- org
|
||||
- emacsql
|
||||
- magit-section
|
||||
@ -378,7 +378,7 @@ Node selection is achieved via the ~completing-read~ interface, typically
|
||||
through ~org-roam-node-read~. The presentation of these nodes are governed by
|
||||
~org-roam-node-display-template~.
|
||||
|
||||
- Variable: org-roam-node-display-template
|
||||
- Variable: org-roam-node-display-template ::
|
||||
|
||||
Configures display formatting for Org-roam node.
|
||||
|
||||
@ -458,7 +458,7 @@ additionally trying to process these links. Use
|
||||
~org-roam-db-extra-links-elements~ to specify which additional Org AST element
|
||||
types to consider.
|
||||
|
||||
- Variable: org-roam-db-extra-links-elements
|
||||
- Variable: org-roam-db-extra-links-elements ::
|
||||
|
||||
The list of Org element types to include for parsing by Org-roam.
|
||||
|
||||
@ -472,7 +472,7 @@ 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~.
|
||||
|
||||
- Variable: org-roam-db-extra-links-exclude-keys
|
||||
- Variable: org-roam-db-extra-links-exclude-keys ::
|
||||
|
||||
Keys to ignore when mapping over links.
|
||||
|
||||
@ -491,7 +491,7 @@ However, depending on how large your Org files are, database updating can be a
|
||||
slow operation. You can disable the automatic updating of the database by
|
||||
setting ~org-roam-db-update-on-save~ to ~nil~.
|
||||
|
||||
- Variable: org-roam-db-update-on-save
|
||||
- Variable: org-roam-db-update-on-save ::
|
||||
|
||||
If t, update the Org-roam database upon saving the file. Disable this if your
|
||||
files are large and updating the database is slow.
|
||||
@ -513,14 +513,14 @@ two main commands to use here:
|
||||
To bring up a buffer that tracks the current node at point, call ~M-x
|
||||
org-roam-buffer-toggle~.
|
||||
|
||||
- Function: org-roam-buffer-toggle
|
||||
- Function: 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~.
|
||||
|
||||
- Function: org-roam-buffer-display-dedicated
|
||||
- Function: org-roam-buffer-display-dedicated ::
|
||||
|
||||
Launch node dedicated Org-roam buffer without visiting the node itself.
|
||||
|
||||
@ -649,12 +649,12 @@ To assign an alias to a node, add the "ROAM_ALIASES" property to the node:
|
||||
|
||||
Alternatively, Org-roam provides some functions to add or remove aliases.
|
||||
|
||||
- Function: org-roam-alias-add alias
|
||||
- Function: org-roam-alias-add alias ::
|
||||
|
||||
Add ALIAS to the node at point. When called interactively, prompt for the
|
||||
alias to add.
|
||||
|
||||
- Function: org-roam-alias-remove
|
||||
- Function: org-roam-alias-remove ::
|
||||
|
||||
Remove an alias from the node at point.
|
||||
|
||||
@ -696,12 +696,12 @@ key and a URL at the same time.
|
||||
|
||||
Org-roam also provides some functions to add or remove refs.
|
||||
|
||||
- Function: org-roam-ref-add ref
|
||||
- Function: org-roam-ref-add ref ::
|
||||
|
||||
Add REF to the node at point. When called interactively, prompt for the
|
||||
ref to add.
|
||||
|
||||
- Function: org-roam-ref-remove
|
||||
- Function: org-roam-ref-remove ::
|
||||
|
||||
Remove a ref from the node at point.
|
||||
|
||||
@ -798,7 +798,7 @@ to ~t~:
|
||||
(setq org-roam-completion-everywhere t)
|
||||
#+end_src
|
||||
|
||||
- Variable: org-roam-completion-everywhere
|
||||
- Variable: org-roam-completion-everywhere ::
|
||||
|
||||
When non-nil, provide link completion matching outside of Org links.
|
||||
|
||||
@ -1028,14 +1028,14 @@ If you're using the [[https://formulae.brew.sh/formula/emacs][Emacs Homebrew for
|
||||
|
||||
a) Add option `-c` to `emacsclient` in the script, and start emacs from command line with `emacs --daemon`
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
#+begin_src emacs-lisp
|
||||
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
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
b) Add `(server-start)` in .emacs (in this case you do not need option `-c` for `emacsclient` in the script, and you do not need to start emacs with `emacs --daemon`
|
||||
|
||||
@ -1129,7 +1129,7 @@ generating images using [[https://graphviz.org/][Graphviz]]. The graph can also
|
||||
|
||||
The entry point to graph creation is ~org-roam-graph~.
|
||||
|
||||
- Function: org-roam-graph & optional arg node
|
||||
- Function: org-roam-graph & optional arg node ::
|
||||
|
||||
Build and display a graph for NODE.
|
||||
ARG may be any of the following values:
|
||||
@ -1138,7 +1138,7 @@ ARG may be any of the following values:
|
||||
- ~integer~ an integer argument ~N~ will show the graph for the connected
|
||||
components to node up to ~N~ steps away.
|
||||
|
||||
- User Option: 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.
|
||||
@ -1146,7 +1146,7 @@ ARG may be any of the following values:
|
||||
You may also choose to use ~neato~ in place of ~dot~, which generates a more
|
||||
compact graph layout.
|
||||
|
||||
- User Option: 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:
|
||||
@ -1172,22 +1172,22 @@ Graphviz provides many options for customizing the graph output, and Org-roam
|
||||
supports some of them. See https://graphviz.gitlab.io/_pages/doc/info/attrs.html
|
||||
for customizable options.
|
||||
|
||||
- User Option: org-roam-graph-filetype
|
||||
- User Option: org-roam-graph-filetype ::
|
||||
|
||||
The file type to generate for graphs. This defaults to ~"svg"~.
|
||||
|
||||
- User Option: org-roam-graph-extra-config
|
||||
- User Option: org-roam-graph-extra-config ::
|
||||
|
||||
Extra options passed to graphviz for the digraph (The "G" attributes).
|
||||
Example: ~'~(("rankdir" . "LR"))~
|
||||
|
||||
- User Option: org-roam-graph-node-extra-config
|
||||
- User Option: org-roam-graph-node-extra-config ::
|
||||
|
||||
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).
|
||||
|
||||
- User Option: 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).
|
||||
Example: ~'(("dir" . "back"))~
|
||||
@ -1201,11 +1201,11 @@ Org-journal with ~org-roam-dailies~.
|
||||
|
||||
For ~org-roam-dailies~ to work, you need to define two variables:
|
||||
|
||||
- Variable: ~org-roam-dailies-directory~
|
||||
- Variable: org-roam-dailies-directory ::
|
||||
|
||||
Path to daily-notes. This path is relative to ~org-roam-directory~.
|
||||
|
||||
- Variable: ~org-roam-dailies-capture-templates~
|
||||
- Variable: org-roam-dailies-capture-templates ::
|
||||
|
||||
Capture templates for daily-notes in Org-roam.
|
||||
|
||||
@ -1227,31 +1227,31 @@ See [[*The Templating System][The Templating System]] for creating new templates
|
||||
|
||||
~org-roam-dailies~ provides these interactive functions:
|
||||
|
||||
- Function: ~org-roam-dailies-capture-today~ &optional goto
|
||||
- Function: 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.
|
||||
|
||||
- Function: ~org-roam-dailies-goto-today~
|
||||
- Function: 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~:
|
||||
|
||||
- Function: ~org-roam-dailies-capture-yesterday~ n &optional goto
|
||||
- Function: 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.
|
||||
|
||||
- Function: ~org-roam-dailies-goto-yesterday~
|
||||
- Function: 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
|
||||
|
||||
- Function: ~org-roam-dailies-capture-date~
|
||||
- Function: org-roam-dailies-capture-date ::
|
||||
|
||||
Create an entry in the daily note for a date using the calendar.
|
||||
|
||||
@ -1260,21 +1260,21 @@ There are also commands which allow you to use Emacs’s ~calendar~ to find the
|
||||
With a 'C-u' prefix or when ~goto~ is non-nil, go the note without
|
||||
creating an entry.
|
||||
|
||||
- Function: ~org-roam-dailies-goto-date~
|
||||
- Function: 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.
|
||||
|
||||
- Function: ~org-roam-dailies-find-directory~
|
||||
- Function: org-roam-dailies-find-directory ::
|
||||
|
||||
Find and open ~org-roam-dailies-directory~.
|
||||
|
||||
- Function: ~org-roam-dailies-goto-previous-note~
|
||||
- Function: org-roam-dailies-goto-previous-note ::
|
||||
|
||||
When in an daily-note, find the previous one.
|
||||
|
||||
- Function: ~org-roam-dailies-goto-next-note~
|
||||
- Function: org-roam-dailies-goto-next-note ::
|
||||
|
||||
When in an daily-note, find the next one.
|
||||
** org-roam-export
|
||||
@ -1664,13 +1664,12 @@ that extensions/customizations are robust to change, extensions should only use
|
||||
The node interface is cleanly defined using ~cl-defstruct~. The primary
|
||||
method to access nodes is ~org-roam-node-at-point~ and ~org-roam-node-read~:
|
||||
|
||||
- Function: org-roam-node-at-point &optional assert
|
||||
- Function: org-roam-node-at-point &optional assert ::
|
||||
|
||||
Return the node at point. If ASSERT, throw an error if there is no node at
|
||||
point.
|
||||
|
||||
- Function: org-roam-node-read &optional initial-input filter-fn sort-fn
|
||||
require-match
|
||||
- Function: org-roam-node-read &optional initial-input filter-fn sort-fn require-match ::
|
||||
|
||||
Read and return an `org-roam-node'.
|
||||
INITIAL-INPUT is the initial minibuffer prompt value. FILTER-FN
|
||||
@ -1705,7 +1704,7 @@ Org-roam applies some patching over Org's capture system to smooth out the user
|
||||
experience, and sometimes it is desirable to use Org-roam's capturing system
|
||||
instead. The exposed function to be used in extensions is ~org-roam-capture-~:
|
||||
|
||||
- Function: org-roam-capture- &key goto keys node info props templates
|
||||
- Function: org-roam-capture- &key goto keys node info props templates ::
|
||||
|
||||
Main entry point.
|
||||
GOTO and KEYS correspond to `org-capture' arguments.
|
||||
@ -1735,7 +1734,8 @@ When GOTO is non-nil, go the note without creating an entry."
|
||||
:END:
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@gmail.com>
|
||||
Copyright (C) 2020-{{{year}}} Jethro Kuan <jethrokuan95@gmail.com> and the
|
||||
Org-roam contributors
|
||||
|
||||
You can redistribute this document and/or modify it under the terms
|
||||
of the GNU General Public License as published by the Free Software
|
||||
@ -1796,9 +1796,9 @@ an Org file code block (like =#+BEGIN_SRC emacs-lisp=).
|
||||
|
||||
# Local Variables:
|
||||
# eval: (require 'ol-info)
|
||||
# eval: (require 'ox-texinfo+ nil t)
|
||||
# eval: (auto-fill-mode +1)
|
||||
# after-save-hook: (lambda nil (progn (require 'ox-texinfo nil t) (org-texinfo-export-to-info)))
|
||||
# after-save-hook: org-texinfo-export-to-info
|
||||
# indent-tabs-mode: nil
|
||||
# org-src-preserve-indentation: nil
|
||||
# org-list-allow-alphabetical: t
|
||||
# End:
|
||||
|
@ -8,7 +8,8 @@
|
||||
|
||||
@copying
|
||||
@quotation
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@@gmail.com>
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@@gmail.com> and the
|
||||
Org-roam contributors
|
||||
|
||||
You can redistribute this document and/or modify it under the terms
|
||||
of the GNU General Public License as published by the Free Software
|
||||
@ -31,7 +32,7 @@ General Public License for more details.
|
||||
@finalout
|
||||
@titlepage
|
||||
@title Org-roam User Manual
|
||||
@subtitle for version 2.3.1
|
||||
@subtitle for version 2.3.1-devel
|
||||
@author Jethro Kuan
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
@ -44,10 +45,11 @@ General Public License for more details.
|
||||
|
||||
@noindent
|
||||
|
||||
This manual is for Org-roam version 2.3.1.
|
||||
This manual is for Org-roam version 2.3.1-devel.
|
||||
|
||||
@quotation
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@@gmail.com>
|
||||
Copyright (C) 2020-2025 Jethro Kuan <jethrokuan95@@gmail.com> and the
|
||||
Org-roam contributors
|
||||
|
||||
You can redistribute this document and/or modify it under the terms of the GNU
|
||||
General Public License as published by the Free Software Foundation, either
|
||||
@ -433,10 +435,6 @@ dependencies that it requires. These include:
|
||||
@item
|
||||
dash
|
||||
@item
|
||||
f
|
||||
@item
|
||||
s
|
||||
@item
|
||||
org
|
||||
@item
|
||||
emacsql
|
||||
@ -626,10 +624,7 @@ Node selection is achieved via the @code{completing-read} interface, typically
|
||||
through @code{org-roam-node-read}. The presentation of these nodes are governed by
|
||||
@code{org-roam-node-display-template}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: org-roam-node-display-template
|
||||
|
||||
@defvar org-roam-node-display-template
|
||||
Configures display formatting for Org-roam node.
|
||||
|
||||
Patterns of form ``$@{field-name:length@}'' are interpolated based
|
||||
@ -658,7 +653,7 @@ as many characters as possible and will be aligned accordingly.
|
||||
A closure can also be assigned to this variable in which case the
|
||||
closure is evaluated and the return value is used as the
|
||||
template. The closure must evaluate to a valid template string.
|
||||
@end itemize
|
||||
@end defvar
|
||||
|
||||
If you're using a vertical completion framework, such as Ivy and Selectrum,
|
||||
Org-roam supports the generation of an aligned, tabular completion interface.
|
||||
@ -720,33 +715,27 @@ additionally trying to process these links. Use
|
||||
@code{org-roam-db-extra-links-elements} to specify which additional Org AST element
|
||||
types to consider.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: org-roam-db-extra-links-elements
|
||||
|
||||
@defvar org-roam-db-extra-links-elements
|
||||
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).
|
||||
@end itemize
|
||||
@end defvar
|
||||
|
||||
Additionally, one may want to ignore certain keys from being excluded within
|
||||
property drawers. For example, we would not want @code{ROAM_REFS} links to be
|
||||
self-referential. Hence, to exclude specific keys, we use
|
||||
@code{org-roam-db-extra-links-exclude-keys}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: org-roam-db-extra-links-exclude-keys
|
||||
|
||||
@defvar 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.
|
||||
@end itemize
|
||||
@end defvar
|
||||
|
||||
@node When to cache
|
||||
@section When to cache
|
||||
@ -760,11 +749,8 @@ However, depending on how large your Org files are, database updating can be a
|
||||
slow operation. You can disable the automatic updating of the database by
|
||||
setting @code{org-roam-db-update-on-save} to @code{nil}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: org-roam-db-update-on-save
|
||||
@end itemize
|
||||
|
||||
@defvar org-roam-db-update-on-save
|
||||
@end defvar
|
||||
If t, update the Org-roam database upon saving the file. Disable this if your
|
||||
files are large and updating the database is slow.
|
||||
|
||||
@ -790,22 +776,16 @@ new node at point.
|
||||
To bring up a buffer that tracks the current node at point, call @code{M-x
|
||||
org-roam-buffer-toggle}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-buffer-toggle
|
||||
|
||||
@defun org-roam-buffer-toggle
|
||||
Toggle display of the @code{org-roam-buffer}.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
To bring up a buffer that's dedicated for a specific node, call @code{M-x
|
||||
org-roam-buffer-display-dedicated}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-buffer-display-dedicated
|
||||
|
||||
@defun org-roam-buffer-display-dedicated
|
||||
Launch node dedicated Org-roam buffer without visiting the node itself.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
@menu
|
||||
* Navigating the Org-roam Buffer::
|
||||
@ -978,18 +958,14 @@ To assign an alias to a node, add the ``ROAM@math{_ALIASES}'' property to the no
|
||||
|
||||
Alternatively, Org-roam provides some functions to add or remove aliases.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-alias-add alias
|
||||
|
||||
@defun org-roam-alias-add alias
|
||||
Add ALIAS to the node at point. When called interactively, prompt for the
|
||||
alias to add.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: org-roam-alias-remove
|
||||
|
||||
@defun org-roam-alias-remove
|
||||
Remove an alias from the node at point.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
@node Tags
|
||||
@section Tags
|
||||
@ -1031,18 +1007,14 @@ key and a URL at the same time.
|
||||
|
||||
Org-roam also provides some functions to add or remove refs.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-ref-add ref
|
||||
|
||||
@defun org-roam-ref-add ref
|
||||
Add REF to the node at point. When called interactively, prompt for the
|
||||
ref to add.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: org-roam-ref-remove
|
||||
|
||||
@defun org-roam-ref-remove
|
||||
Remove a ref from the node at point.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
@node Citations
|
||||
@chapter Citations
|
||||
@ -1155,11 +1127,8 @@ to @code{t}:
|
||||
(setq org-roam-completion-everywhere t)
|
||||
@end lisp
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: org-roam-completion-everywhere
|
||||
@end itemize
|
||||
|
||||
@defvar org-roam-completion-everywhere
|
||||
@end defvar
|
||||
When non-nil, provide link completion matching outside of Org links.
|
||||
|
||||
@node Encryption
|
||||
@ -1458,7 +1427,6 @@ If you're using the @uref{https://formulae.brew.sh/formula/emacs, Emacs Homebrew
|
||||
@enumerate
|
||||
@item
|
||||
Add option `-c` to `emacsclient` in the script, and start emacs from command line with `emacs --daemon`
|
||||
@end enumerate
|
||||
|
||||
@lisp
|
||||
on open location this_URL
|
||||
@ -1469,7 +1437,6 @@ on open location this_URL
|
||||
end open location
|
||||
@end lisp
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
Add `(server-start)` in .emacs (in this case you do not need option `-c` for `emacsclient` in the script, and you do not need to start emacs with `emacs --daemon`
|
||||
@end enumerate
|
||||
@ -1574,11 +1541,8 @@ generating images using @uref{https://graphviz.org/, Graphviz}. The graph can al
|
||||
|
||||
The entry point to graph creation is @code{org-roam-graph}.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-graph & optional arg node
|
||||
@end itemize
|
||||
|
||||
@defun org-roam-graph & optional arg node
|
||||
@end defun
|
||||
Build and display a graph for NODE@.
|
||||
ARG may be any of the following values:
|
||||
|
||||
@ -1590,19 +1554,15 @@ ARG may be any of the following values:
|
||||
components to node up to @code{N} steps away.
|
||||
@end itemize
|
||||
|
||||
@itemize
|
||||
@item
|
||||
User Option: org-roam-graph-executable
|
||||
|
||||
@defopt 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.
|
||||
|
||||
You may also choose to use @code{neato} in place of @code{dot}, which generates a more
|
||||
compact graph layout.
|
||||
@end defopt
|
||||
|
||||
@item
|
||||
User Option: org-roam-graph-viewer
|
||||
|
||||
@defopt 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:
|
||||
|
||||
@ -1624,7 +1584,7 @@ the second option to set the browser and network file path:
|
||||
(let ((org-roam-graph-viewer "/mnt/c/Program Files/Mozilla Firefox/firefox.exe"))
|
||||
(org-roam-graph--open (concat "file://///wsl$/Ubuntu" file)))))
|
||||
@end lisp
|
||||
@end itemize
|
||||
@end defopt
|
||||
|
||||
@menu
|
||||
* Graph Options::
|
||||
@ -1637,31 +1597,25 @@ 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
|
||||
@item
|
||||
User Option: org-roam-graph-filetype
|
||||
|
||||
@defopt org-roam-graph-filetype
|
||||
The file type to generate for graphs. This defaults to @code{"svg"}.
|
||||
@end defopt
|
||||
|
||||
@item
|
||||
User Option: org-roam-graph-extra-config
|
||||
|
||||
@defopt org-roam-graph-extra-config
|
||||
Extra options passed to graphviz for the digraph (The ``G'' attributes).
|
||||
Example: @code{'~(("rankdir" . "LR"))}
|
||||
@end defopt
|
||||
|
||||
@item
|
||||
User Option: org-roam-graph-node-extra-config
|
||||
|
||||
@defopt org-roam-graph-node-extra-config
|
||||
An alist of options to style the nodes.
|
||||
The car of the alist node type such as @code{"id"}, or @code{"http"}. The cdr of the
|
||||
list is another alist of Graphviz node options (the ``N'' attributes).
|
||||
@end defopt
|
||||
|
||||
@item
|
||||
User Option: org-roam-graph-edge-extra-config
|
||||
|
||||
@defopt org-roam-graph-edge-extra-config
|
||||
Extra options for edges in the graphviz output (The ``E'' attributes).
|
||||
Example: @code{'(("dir" . "back"))}
|
||||
@end itemize
|
||||
@end defopt
|
||||
|
||||
@node org-roam-dailies
|
||||
@section org-roam-dailies
|
||||
@ -1679,17 +1633,13 @@ Org-journal with @code{org-roam-dailies}.
|
||||
|
||||
For @code{org-roam-dailies} to work, you need to define two variables:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Variable: @code{org-roam-dailies-directory}
|
||||
|
||||
@defvar org-roam-dailies-directory
|
||||
Path to daily-notes. This path is relative to @code{org-roam-directory}.
|
||||
@end defvar
|
||||
|
||||
@item
|
||||
Variable: @code{org-roam-dailies-capture-templates}
|
||||
|
||||
@defvar org-roam-dailies-capture-templates
|
||||
Capture templates for daily-notes in Org-roam.
|
||||
@end itemize
|
||||
@end defvar
|
||||
|
||||
Here is a sane default configuration:
|
||||
|
||||
@ -1710,71 +1660,56 @@ See @ref{The Templating System} for creating new templates.
|
||||
|
||||
@code{org-roam-dailies} provides these interactive functions:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: @code{org-roam-dailies-capture-today} &optional goto
|
||||
|
||||
@defun org-roam-dailies-capture-today &optional goto
|
||||
Create an entry in the daily note for today.
|
||||
|
||||
When @code{goto} is non-nil, go to the note without creating an entry.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-goto-today}
|
||||
|
||||
@defun org-roam-dailies-goto-today
|
||||
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}:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: @code{org-roam-dailies-capture-yesterday} n &optional goto
|
||||
|
||||
@defun org-roam-dailies-capture-yesterday n &optional goto
|
||||
Create an entry in the daily note for yesterday.
|
||||
|
||||
With numeric argument @code{n}, use the daily note @code{n} days in the past.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-goto-yesterday}
|
||||
|
||||
@defun org-roam-dailies-goto-yesterday
|
||||
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 Emacs’s @code{calendar} to find the date
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: @code{org-roam-dailies-capture-date}
|
||||
|
||||
@defun org-roam-dailies-capture-date
|
||||
Create an entry in the daily note for a date using the calendar.
|
||||
|
||||
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
|
||||
creating an entry.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-goto-date}
|
||||
|
||||
@defun org-roam-dailies-goto-date
|
||||
Find the daily note for a date using the calendar, creating it if necessary.
|
||||
|
||||
Prefer past dates, unless @code{prefer-future} is non-nil.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-find-directory}
|
||||
|
||||
@defun org-roam-dailies-find-directory
|
||||
Find and open @code{org-roam-dailies-directory}.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-goto-previous-note}
|
||||
|
||||
@defun org-roam-dailies-goto-previous-note
|
||||
When in an daily-note, find the previous one.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: @code{org-roam-dailies-goto-next-note}
|
||||
|
||||
@defun org-roam-dailies-goto-next-note
|
||||
When in an daily-note, find the next one.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
@node org-roam-export
|
||||
@section org-roam-export
|
||||
@ -2283,17 +2218,12 @@ that extensions/customizations are robust to change, extensions should only use
|
||||
The node interface is cleanly defined using @code{cl-defstruct}. The primary
|
||||
method to access nodes is @code{org-roam-node-at-point} and @code{org-roam-node-read}:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-node-at-point &optional assert
|
||||
|
||||
@defun org-roam-node-at-point &optional assert
|
||||
Return the node at point. If ASSERT, throw an error if there is no node at
|
||||
point.
|
||||
@end defun
|
||||
|
||||
@item
|
||||
Function: org-roam-node-read &optional initial-input filter-fn sort-fn
|
||||
require-match
|
||||
|
||||
@defun org-roam-node-read &optional initial-input filter-fn sort-fn require-match
|
||||
Read and return an `org-roam-node'.
|
||||
INITIAL-INPUT is the initial minibuffer prompt value. FILTER-FN
|
||||
is a function to filter out nodes: it takes a single argument (an
|
||||
@ -2302,7 +2232,7 @@ filtered out.
|
||||
SORT-FN is a function to sort nodes. See @code{org-roam-node-read-sort-by-file-mtime}
|
||||
for an example sort function.
|
||||
If REQUIRE-MATCH, the minibuffer prompt will require a match.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
Once you obtain the node, you can use the accessors for the node, e.g.
|
||||
@code{org-roam-node-id} or @code{org-roam-node-todo}.
|
||||
@ -2329,17 +2259,14 @@ Org-roam applies some patching over Org's capture system to smooth out the user
|
||||
experience, and sometimes it is desirable to use Org-roam's capturing system
|
||||
instead. The exposed function to be used in extensions is @code{org-roam-capture-}:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Function: org-roam-capture- &key goto keys node info props templates
|
||||
|
||||
@defun org-roam-capture- &key goto keys node info props templates
|
||||
Main entry point.
|
||||
GOTO and KEYS correspond to `org-capture' arguments.
|
||||
INFO is a plist for filling up Org-roam's capture templates.
|
||||
NODE is an `org-roam-node' construct containing information about the node.
|
||||
PROPS is a plist containing additional Org-roam properties for each template.
|
||||
TEMPLATES is a list of org-roam templates.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
An example of an extension using @code{org-roam-capture-} is @code{org-roam-dailies}
|
||||
itself:
|
||||
@ -2421,5 +2348,5 @@ When GOTO is non-nil, go the note without creating an entry."
|
||||
|
||||
@printindex vr
|
||||
|
||||
Emacs 30.1 (Org mode 9.7.29)
|
||||
Emacs 30.1.90 (Org mode 9.7.25)
|
||||
@bye
|
||||
|
11
github-eldev
11
github-eldev
@ -1,11 +0,0 @@
|
||||
#! /bin/sh
|
||||
set -e
|
||||
|
||||
ELDEV_BIN_DIR=~/.local/bin
|
||||
|
||||
# `$GITHUB_PATH' is a magic file which contents is translated to environment variable `$PATH'.
|
||||
echo "$ELDEV_BIN_DIR" >> $GITHUB_PATH
|
||||
|
||||
mkdir -p $ELDEV_BIN_DIR
|
||||
curl -fsSL https://raw.githubusercontent.com/doublep/eldev/f111d19cda305e5e8fcb70a5675b87173041cb68/bin/eldev > $ELDEV_BIN_DIR/eldev
|
||||
chmod a+x $ELDEV_BIN_DIR/eldev
|
@ -810,9 +810,10 @@ Assumes that the cursor was put where the link is."
|
||||
(defun org-roam-link-replace-all ()
|
||||
"Replace all \"roam:\" links in buffer with \"id:\" links."
|
||||
(interactive)
|
||||
(org-with-point-at 1
|
||||
(while (search-forward (concat "[[" org-roam-link-type ":") nil t)
|
||||
(org-roam-link-replace-at-point))))
|
||||
(let ((org-roam-link-prefix (concat "[[" org-roam-link-type ":")))
|
||||
(org-with-point-at 1
|
||||
(while (re-search-forward org-roam-link-prefix nil t)
|
||||
(org-roam-link-replace-at-point)))))
|
||||
|
||||
(add-hook 'org-roam-find-file-hook #'org-roam--replace-roam-links-on-save-h)
|
||||
(defun org-roam--replace-roam-links-on-save-h ()
|
||||
|
@ -1,56 +0,0 @@
|
||||
;;; test-org-roam-link-replace.el --- Tests for Org-roam link replacement -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2025
|
||||
|
||||
;; Package-Requires: ((buttercup))
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;; Tests for commits fc86387 and 89dfaef - link replacement optimization
|
||||
;;; Code:
|
||||
|
||||
(require 'buttercup)
|
||||
(require 'org-roam)
|
||||
(require 'org-roam-node)
|
||||
|
||||
(describe "org-roam-link-replace-all optimization"
|
||||
(before-all
|
||||
(setq org-roam-directory (expand-file-name "tests/roam-files")
|
||||
org-roam-db-location (expand-file-name "org-roam.db" temporary-file-directory))
|
||||
(org-roam-db-sync))
|
||||
|
||||
(after-all
|
||||
(org-roam-db--close)
|
||||
(delete-file org-roam-db-location))
|
||||
|
||||
(it "only processes roam: links, not other bracket links"
|
||||
(with-temp-buffer
|
||||
(org-mode)
|
||||
(insert "[[file:test.org][File]]\n[[roam:Foo]]\n[[https://example.com][Web]]")
|
||||
(let ((replace-count 0)
|
||||
(original-fn (symbol-function 'org-roam-link-replace-at-point)))
|
||||
;; Wrap the original function to count calls
|
||||
(cl-letf (((symbol-function 'org-roam-link-replace-at-point)
|
||||
(lambda ()
|
||||
(cl-incf replace-count)
|
||||
(funcall original-fn))))
|
||||
(org-roam-link-replace-all)
|
||||
;; Should only be called once, for the roam: link
|
||||
(expect replace-count :to-equal 1)
|
||||
(expect (buffer-string) :to-match "\\[\\[id:.*\\]\\[Foo\\]\\]"))))))
|
||||
|
||||
(provide 'test-org-roam-link-replace)
|
||||
|
||||
;;; test-org-roam-link-replace.el ends here
|
@ -73,16 +73,14 @@
|
||||
(expect (org-roam-node-title node) :to-equal "Bruce Wayne"))))
|
||||
|
||||
(describe "org-roam-demote-entire-buffer"
|
||||
(after-each
|
||||
(cd root-directory))
|
||||
|
||||
(it "demotes an entire org buffer"
|
||||
;; Use a temporary copy to avoid interfering with other tests
|
||||
(let ((temp-file (make-temp-file "test-demoteable-" nil ".org")))
|
||||
(copy-file "tests/roam-files/demoteable.org" temp-file t)
|
||||
(find-file temp-file)
|
||||
(org-roam-demote-entire-buffer)
|
||||
(expect (buffer-substring-no-properties (point) (point-max))
|
||||
:to-equal "* Demoteable\n:PROPERTIES:\n:ID: 97bf31cf-dfee-45d8-87a5-2ae0dabc4734\n:END:\n\n** Demoteable h1\n\n*** Demoteable child\n")
|
||||
(kill-buffer)
|
||||
(delete-file temp-file))))
|
||||
(find-file "tests/roam-files/demoteable.org" nil)
|
||||
(org-roam-demote-entire-buffer)
|
||||
(expect (buffer-substring-no-properties (point) (point-max))
|
||||
:to-equal "* Demoteable\n:PROPERTIES:\n:ID: 97bf31cf-dfee-45d8-87a5-2ae0dabc4734\n:END:\n\n** Demoteable h1\n\n*** Demoteable child\n")))
|
||||
|
||||
(describe "org-roam--h1-count"
|
||||
(after-each
|
||||
|
Reference in New Issue
Block a user