doomemacs/modules/lang/org
Henrik Lissner af90333bcd Bump *
Alexander-Miller/treemacs@6857816 -> Alexander-Miller/treemacs@9eaef27
DarwinAwardWinner/amx@b991497 -> DarwinAwardWinner/amx@37f9c7a
Dewdrops/evil-exchange@3030e21 -> Dewdrops/evil-exchange@ac50f21
JuliaEditorSupport/julia-emacs@8ea90c7 -> JuliaEditorSupport/julia-emacs@fe6f6f7
OmniSharp/omnisharp-emacs@8ec5929 -> OmniSharp/omnisharp-emacs@5fad683
ProofGeneral/PG@bdb6782 -> ProofGeneral/PG@f0f0476
Sarcasm/irony-mode@76fd37f -> Sarcasm/irony-mode@ec6dce7
Silex/docker.el@0ca910b -> Silex/docker.el@ed0cdf0
Wilfred/helpful@584ecc8 -> Wilfred/helpful@7e4b1f0
abo-abo/swiper@1deef76 -> abo-abo/swiper@bb7965a
agda/agda@9d08edb -> agda/agda@ecb9323
akermu/emacs-libvterm@a3fadd2 -> akermu/emacs-libvterm@1bc4516
akreisher/eshell-syntax-highlighting@172c9fb -> akreisher/eshell-syntax-highlighting@eeace52
alexmurray/flycheck-posframe@24fd9b3 -> alexmurray/flycheck-posframe@8f60c9b
amake/flutter.el@696228a -> amake/flutter.el@960b635
ananthakumaran/tide@7f7334b -> ananthakumaran/tide@ad6fa78
asok/projectile-rails@8d6b373 -> asok/projectile-rails@f1fe6e8
bastibe/org-journal@f4b1549 -> bastibe/org-journal@043bb9e
bbatsov/projectile@fd59947 -> bbatsov/projectile@1528ed4
bradyt/dart-mode@04fcd64 -> bradyt/dart-mode@43975c9
brotzeit/rustic@61d600e -> brotzeit/rustic@d97ec86
charignon/github-review@d0c8234 -> charignon/github-review@341b7a1
clojure-emacs/cider@815204f -> clojure-emacs/cider@4278d7c
clojure-emacs/clj-refactor.el@b24ce76 -> clojure-emacs/clj-refactor.el@9f3e735
clojure-emacs/clojure-mode@f26379b -> clojure-emacs/clojure-mode@a14671e
codesuki/add-node-modules-path@f31e69c -> codesuki/add-node-modules-path@7d9be65
company-mode/company-mode@88001d7 -> company-mode/company-mode@7207cb1
cpitclaudel/company-coq@4da7b41 -> cpitclaudel/company-coq@7423ee2
cython/cython@9a761a6 -> cython/cython@9decfca
dgutov/diff-hl@4c46b3b -> dgutov/diff-hl@1af31fe
dgutov/robe@3ef165c -> dgutov/robe@126650a
domtronn/all-the-icons.el@2f5ea72 -> domtronn/all-the-icons.el@a8c8417
editorconfig/editorconfig-emacs@048c553 -> editorconfig/editorconfig-emacs@9da2dab
elixir-editors/emacs-elixir@9de08c1 -> elixir-editors/emacs-elixir@0212b06
ema2159/centaur-tabs@50fd573 -> ema2159/centaur-tabs@df97209
emacs-csharp/csharp-mode@09b4d57 -> emacs-csharp/csharp-mode@f977800
emacs-ess/ESS@5169b0d -> emacs-ess/ESS@126d344
emacs-evil/evil-collection@334670e -> emacs-evil/evil-collection@b45ec5b
emacs-evil/evil@cc9d688 -> emacs-evil/evil@7eace67
emacs-helm/helm-org@b7a18df -> emacs-helm/helm-org@d67186d
emacs-helm/helm@dbdec63 -> emacs-helm/helm@98af298
emacs-jp/migemo@f42832c -> emacs-jp/migemo@f756cba
emacs-lsp/dap-mode@aa15b9c -> emacs-lsp/dap-mode@ae395aa
emacs-lsp/helm-lsp@e934fea -> emacs-lsp/helm-lsp@74a02f8
emacs-lsp/lsp-dart@71902ca -> emacs-lsp/lsp-dart@f3b70ec
emacs-lsp/lsp-ivy@c70ee8b -> emacs-lsp/lsp-ivy@515e597
emacs-lsp/lsp-java@5f6d357 -> emacs-lsp/lsp-java@542aaf1
emacs-lsp/lsp-metals@c76eeb6 -> emacs-lsp/lsp-metals@51a89c1
emacs-lsp/lsp-mode@c3cbadc -> emacs-lsp/lsp-mode@eda51c2
emacs-lsp/lsp-ui@0ac3e12 -> emacs-lsp/lsp-ui@1dbea9f
emacs-php/php-mode@8cdc727 -> emacs-php/php-mode@a2bca9b
emacs-php/phpactor.el@62d2372 -> emacs-php/phpactor.el@80788a8
emacs-straight/auctex@384c4b9 -> emacs-straight/auctex@0f3639a
emacs-straight/dired-git-info@b47f2b0 -> emacs-straight/dired-git-info@9461476
emacs-straight/org-mode@0b117f7 -> emacs-straight/org-mode@7a62a4d
emacs-straight/project@2e7afbe -> emacs-straight/project@388ffdf
emacs-straight/xclip@2951c6b -> emacs-straight/xclip@ef2ad92
emacsattic/nose@f852829 -> emacsattic/nose@f852829
emacsorphanage/quickrun@8008780 -> emacsorphanage/quickrun@57db985
erlang/otp@af06b43 -> erlang/otp@94c9738
factor/factor@1928e60 -> factor/factor@5bfeab6
flycheck/flycheck@01396a5 -> flycheck/flycheck@f8c679f
greghendershott/racket-mode@75ea8f6 -> greghendershott/racket-mode@5115c47
hakimel/reveal.js@0582f57 -> hakimel/reveal.js@cf8e64b
haskell/haskell-mode@3a019e6 -> haskell/haskell-mode@1baa12a
hlissner/doom-snippets@aa5587b -> hlissner/doom-snippets@afe549b
hlissner/emacs-counsel-css@6427dfc -> hlissner/emacs-counsel-css@f7647b4
hlissner/emacs-doom-themes@55f01ed -> hlissner/emacs-doom-themes@4199e74
hlissner/emacs-solaire-mode@a8fe09d -> hlissner/emacs-solaire-mode@9d143db
hvesalai/emacs-sbt-mode@7b121fc -> hvesalai/emacs-sbt-mode@0bdc36b
hvesalai/emacs-scala-mode@402d6df -> hvesalai/emacs-scala-mode@1ab5f64
ideasman42/emacs-spell-fu@a7db587 -> ideasman42/emacs-spell-fu@30c5eea
iqbalansari/emacs-emojify@cfa0086 -> iqbalansari/emacs-emojify@1b72641
jacktasia/dumb-jump@f6a1165 -> jacktasia/dumb-jump@8bc1950
jaor/geiser@26dd2f4 -> jaor/geiser@8e61c27
jcollard/elm-mode@188b9c7 -> jcollard/elm-mode@e9fcf9c
jkitchin/ox-clip@38b83ac -> jkitchin/ox-clip@2095537
joaotavora/eglot@a2d1fc9 -> joaotavora/eglot@2fbcab2
joaotavora/sly@fb84318 -> joaotavora/sly@5966d68
jorgenschaefer/circe@265f36c -> jorgenschaefer/circe@e67e2d1
js-emacs/js2-refactor.el@d4c40b5 -> js-emacs/js2-refactor.el@a0977c4
js-emacs/xref-js2@6f1ed5d -> js-emacs/xref-js2@fd6b723
jscheid/dtrt-indent@4a30d8e -> jscheid/dtrt-indent@37529fc
justbur/emacs-which-key@c0608e8 -> justbur/emacs-which-key@c632dbf
justinbarclay/parinfer-rust-mode@c825606 -> justinbarclay/parinfer-rust-mode@f130fa0
jyp/dante@7b1ab64 -> jyp/dante@8741419
kaushalmodi/ox-hugo@a05667e -> kaushalmodi/ox-hugo@02140a2
kidd/org-gcal.el@0a6f9a7 -> kidd/org-gcal.el@d38acda
leanprover/lean-mode@15bee87 -> leanprover/lean-mode@5c50338
ledger/ledger-mode@3495d12 -> ledger/ledger-mode@32fef09
magit/forge@8382fd3 -> magit/forge@f4c95dd
magit/magit@4735b92 -> magit/magit@577f16d
magit/orgit@ac9b1a4 -> magit/orgit@609fd0c
magnars/expand-region.el@ea6b4cb -> magnars/expand-region.el@4b83227
magnars/multiple-cursors.el@a9d7764 -> magnars/multiple-cursors.el@7b13b03
mhayashi1120/Emacs-wgrep@f0ef9bf -> mhayashi1120/Emacs-wgrep@f9687c2
millejoh/emacs-ipython-notebook@4ff76e5 -> millejoh/emacs-ipython-notebook@142ff50
non-Jedi/lsp-julia@c523c25 -> non-Jedi/lsp-julia@c487ed7
nonsequitur/inf-ruby@1fc972e -> nonsequitur/inf-ruby@c6990a6
ocaml-ppx/ocamlformat@7db8d13 -> ocaml-ppx/ocamlformat@448ac7c
ocaml/dune@f839fc1 -> ocaml/dune@a88ce5b
ocaml/merlin@36d0aef -> ocaml/merlin@cc17ed6
ocaml/tuareg@ccde45b -> ocaml/tuareg@37a6730
org-roam/org-roam@b0fd126 -> org-roam/org-roam@8ad57b1
purcell/diredfl@cd052df -> purcell/diredfl@4ca3265
purcell/envrc@a7c6ca8 -> purcell/envrc@110a221
purescript-emacs/purescript-mode@8410baf -> purescript-emacs/purescript-mode@0acd1af
racer-rust/emacs-racer@f17f9d7 -> racer-rust/emacs-racer@1e63e98
raxod502/prescient.el@9631db7 -> raxod502/prescient.el@8573df9
redguardtoo/evil-nerd-commenter@2730820 -> redguardtoo/evil-nerd-commenter@b8ac35f
rolandwalker/flyspell-lazy@d57382c -> rolandwalker/flyspell-lazy@0fc5996
rubocop/rubocop-emacs@1372ee3 -> rubocop/rubocop-emacs@f5fd18a
seagle0128/doom-modeline@5fe7fd6 -> seagle0128/doom-modeline@00bc89b
seagle0128/grip-mode@1aebf9c -> seagle0128/grip-mode@98d566d
skeeto/elfeed@362bbe5 -> skeeto/elfeed@e29c8b9
skk-dev/ddskk@275a831 -> skk-dev/ddskk@cec9936
snosov1/toc-org@aef220c -> snosov1/toc-org@c4c61c5
spotify/dockerfile-mode@ed1d04c -> spotify/dockerfile-mode@3b13745
takaxp/org-tree-slide@c9487e5 -> takaxp/org-tree-slide@9d2ba1d
technomancy/fennel-mode@bebc9dd -> technomancy/fennel-mode@ba14a7d
travisbhartwell/nix-emacs@977b9a5 -> travisbhartwell/nix-emacs@053a2d5
tumashu/posframe@3454a4c -> tumashu/posframe@fff21cc
tumashu/pyim@e54153f -> tumashu/pyim@f48c3ed
widefox/flycheck-raku@046f35a -> widefox/flycheck-raku@b1acccd
wyuenho/all-the-icons-dired@fc2dfa1 -> wyuenho/all-the-icons-dired@f401fe2
xuchunyang/elisp-demos@ed9578d -> xuchunyang/elisp-demos@924b07d
xuchunyang/osx-dictionary.el@1b79ff6 -> xuchunyang/osx-dictionary.el@4d4cc19
yqrashawn/fd-dired@9fb966d -> yqrashawn/fd-dired@7d18938
yyoncho/helm-icons@5a668ef -> yyoncho/helm-icons@e4a2cd1

Closes #4786
Closes #4801
Closes #4803

Skipped bumping straight.el because of raxod502/straight.el#714. Will
adapt soon.
2021-03-27 18:27:02 -04:00
..
autoload Refactor ox-clip advice to omit before/after props 2021-03-22 21:11:22 -04:00
contrib Fix #4446: activate org-fancy-priorities-mode in org-agenda 2020-12-18 16:05:31 -05:00
test lang/org: fix tests to reflect f70f788df 2019-11-12 16:15:42 -05:00
config.el Fix org-capture popup rules for partials & non-org files 2021-03-27 18:27:02 -04:00
doctor.el Add checks for executables needed by org-download 2020-12-23 17:34:04 +01:00
packages.el Bump * 2021-03-27 18:27:02 -04:00
README.org lang/org: disable ob-async on export or :session 2021-03-01 22:27:17 -05:00

lang/org

Description

This module adds org-mode support to Doom Emacs, along with a number of adjustments, extensions and reasonable defaults to make it more performant and intuitive out of the box:

  • A custom, centralized attachment system that stores files in one place, rather than in the same directory as the input file(s) (only applies to attachments from files in/under org-directory).
  • Executable code blocks with support for a variety of languages and tools (depending on what :lang modules are enabled).
  • Supports an external org-capture workflow through the bin/org-capture shell script and +org-capture/open-frame.
  • A configuration for using org-mode for slide-show presentations or exporting org files to reveal.js slideshows.
  • Drag-and-drop support for images (with inline preview) and media files (drops a file icon and a short link) (requires +dragndrop flag).
  • Integration with pandoc, ipython, jupyter, reveal.js, beamer, and others (requires flags).
  • Export-to-clipboard functionality, for copying text into formatted html, markdown or rich text to the clipboard (see +org/export-to-clipboard and +org/export-to-clipboard-as-rich-text).

Org is a system for writing plain text notes with syntax highlighting, code execution, task scheduling, agenda management, and many more. The whole idea is that you can write notes and mix them with references to things like articles, images, and example code combined with the output of that code after it is executed.

https://www.mfoot.com/blog/2015/11/22/literate-emacs-configuration-with-org-mode/

Module Flags

  • +brain Enables org-brain integration.
  • +dragndrop Enables drag-and-drop support for images and files; inserts inline previews for images and an icon+link for other media types.
  • +gnuplot Installs gnuplot & gnuplot-mode, which enables rendering images from gnuplot src blocks or plotting tables with org-plot/gnuplot (bound to SPC m b p, by default).
  • +hugo Enables integration with hugo to export from Emacs well-formed (blackfriday) markdown.
  • +ipython (DEPRECATED) Enables ipython integration for babel.
  • +journal Enables org-journal integration.
  • +jupyter Enables Jupyter integration for babel.
  • +noter Enables org-noter integration. Keeps notes in sync with a document. Requires pdf-tools (:tools pdf) or DocView or nov.el to be enabled.
  • +pandoc Enables pandoc integration into the Org exporter.
  • +pomodoro Enables a pomodoro timer for clocking time on tasks.
  • +present Enables integration with reveal.js, beamer and org-tree-slide, so Emacs can be used for presentations. It automatically downloads reveal.js.
  • +pretty Enables pretty unicode symbols for bullets and priorities, and better syntax highlighting for latex. Keep in mind: this can be expensive. If org becomes too slow, it'd be wise to disable this flag.
  • +roam Enables org-roam integration. This requires sqlite3 to be installed on your system.

Plugins

Hacks

  • Adds support for a :sync parameter for org src blocks. This overrides :async.
  • Gracefully degrades :async babel blocks to :sync when ob-async would cause errors or issues (such as with a :session parameter, which ob-async does not support, or when exporting org documents).
  • The window is recentered when following links.
  • The breadcrumbs displayed in eldoc when hovering over an org headline has been reworked to strip out link syntax and normalize font-size disparities.
  • If :ui workspaces is enabled, persp-mode won't register org agenda buffers that are temporarily opened in the background.
  • Temporary org agenda files aren't added to recentf.
  • file: links are highlighted with the error face if they are broken.
  • TAB was changed to toggle only the visibility state of the current subtree, rather than cycle through it recursively. This can be reversed with:

    (after! evil-org
      (remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
  • (Evil users) Nearby tables are formatted when exiting insert or replace mode (see +org-enable-auto-reformat-tables-h).
  • Statistics cookies are updated when saving the buffer of exiting insert mode (see +org-enable-auto-update-cookies-h).
  • Org-protocol has been lazy loaded (see +org-init-protocol-lazy-loader-h); loaded when the server receives a request for an org-protocol:// url.
  • Babel and babel plugins are now lazy loaded (see +org-init-babel-lazy-loader-h); loaded when a src block is executed. No need to use org-babel-do-load-languages in your config, just install your babel packages to extend language support (and ensure its org-babel-execute:* function is autoloaded).
  • If a variable is used as a file path in org-capture-template, it will be resolved relative to org-directory, instead of default-directory (see +org-capture-expand-variable-file-a).

Prerequisites

Org has a few soft dependencies that you will need to make use of Org's more esoteric features:

  • For inline LaTeX previews, latex and dvipng is needed.
  • To render GNUPlot images (with +gnuplot flag) the gnuplot program is needed.
  • To execute babel code blocks, you need whatever dependencies those languages need. It is recommended you enable the associated :lang module and ensure its dependencies are met, e.g. install the ruby executable for ruby support. To use jupyter kernels you need the +jupyter flag, the associated kernel as well as the jupyter program.
  • org-roam (with the +roam flag) requires sqlite3 to be installed.

MacOS

brew cask install mactex
brew install gnuplot

Arch Linux

pacman -S texlive-core texlive-bin texlive-science
pacman -S gnuplot
pacman -S jupyter # required by +jupyter

NixOS

environment.systemPackages = with pkgs; [
  # any less than medium isn't guaranteed to work
  texlive.combined.scheme-medium
  # required by +jupyter
  (python38.withPackages(ps: with ps; [jupyter]))
];

TODO Windows

Features

Invoking the org-capture frame from outside Emacs

The simplest way to use the org-capture frame is through the bin/org-capture script. I'd recommend binding a shortcut key to it. If Emacs isn't running, it will spawn a temporary daemon for you.

Alternatively, you can call +org-capture/open-frame directly, e.g.

emacsclient --eval '(+org-capture/open-frame INTIAL-INPUT KEY)'

Built-in custom link types

This module defines a number of custom link types in +org-init-custom-links-h. They are (with examples):

  • doom-docs:news/2.1.0 (~/.emacs.d/docs/%s)
  • doom-modules:editor/evil/README.org (~/.emacs.d/modules/%s)
  • doom-repo:issues (https://github.com/hlissner/doom-emacs/%s)
  • doom:core/core.el (~/.emacs.d/%s)
  • duckduckgo:search terms
  • gimages:search terms (Google Images)
  • github:hlissner/doom-emacs
  • gmap:Toronto, Ontario (Google Maps)
  • google:search terms
  • org:todo.org ({org-directory}/%s)
  • wolfram:sin(x^3)
  • wikipedia:Emacs
  • youtube:P196hEuA_Xc (link only)
  • yt:P196hEuA_Xc (like youtube, but includes an inline preview of the video)

Configuration

Changing org-directory

To modify org-directory it must be set before org has loaded:

;; ~/.doom.d/config.el
(setq org-directory "~/new/org/location/")

Changing org-noter-notes-search-path

To modify org-noter-notes-search-path set:

;; ~/.doom.d/config.el
(setq org-noter-notes-search-path '("~/notes/path/"))