doomemacs/modules/lang/markdown
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.el Fix #4407: regression in +markdown-flyspell-word-p 2020-12-13 00:21:10 -05:00
config.el Markdown: add keymap for insert commands 2021-01-03 18:48:33 -06:00
doctor.el Add grip-mode for live GF markdown previews 2019-10-19 10:16:33 +13:00
packages.el Bump * 2021-03-27 18:27:02 -04:00
README.org Update list of markdown-compile-* in markdown doc 2020-05-24 08:22:01 +02:00

lang/markdown

Description

This module provides Markdown support for Emacs.

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

Thus, “Markdown” is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML. See the Syntax page for details pertaining to Markdowns formatting syntax. You can try it out, right now, using the online Dingus.

The overriding design goal for Markdowns formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like its been marked up with tags or formatting instructions. While Markdowns syntax has been influenced by several existing text-to-HTML filters, the single biggest source of inspiration for Markdowns syntax is the format of plain text email. John Gruber

Module Flags

  • +grip Enables grip support (on <localleader> p), to provide live github-style previews of your markdown (or org) files.

Plugins

  • markdown-mode
  • markdown-toc

Hacks

  • Flyspell has been configured not to spell check in code blocks, links, HTML tags or references.

Prerequisites

This module has two soft dependencies: a linter and a compiler (for previewing markdown).

Linters

Out of the box, flycheck recognizes these checkers for markdown-mode and gfm-mode:

  • Markdown-specific

  • General (natural language)

    • proselint

      • pip install proselint
      • Or through your OS package manager

        • MacOS: brew install proselint
        • Arch Linux: pacman -S proselint
    • textlint (npm install textlint)

Markdown preview

This module requires a markdown compiler in order for markdown-preview to work. It will recognize and use one of the following executables, in this order (you only need one):

  • markedjs: a markdown compiler "built for speed"
  • pandoc: the universal markup transpiler
  • markdown: there are various flavors of this compiler. This module will look for these two:

  • multimarkdown: a compiler for a language that is a superset of Markdown, with additional output formats and features.

MarkedJS

Not to be confused with the Marked 2 app, marked is an npm package:

npm install -g marked

Pandoc

Pandoc is the universal markup transpiler. It should be available through your system package manager. For example:

  • MacOS: brew install pandoc
  • Arch Linux: pacman -S pandoc

Markdown

The C implementation of Markdown.pl, called discount, is available through your OS's package manager:

  • MacOS: brew install discount
  • Arch Linux: pacman -S discount

The original perl script that discount is inspired from can be found on John Gruber's website.

MultiMarkdown

See its documentation for details on what MultiMarkdown is. The compiler can be installed through your OS's package manager:

  • MacOS: brew install multimarkdown
  • Arch Linux: multimarkdown is available on the AUR

Features

Markdown preview

markdown-preview is bound to <localleader> p. This will open a preview of your compiled markdown document in your browser.

Alternatively, you can use grip-mode through +grip.

Configuration

Changing how markdown is compiled

When markdown-preview is invoked (<localleader> p) it consults markdown-command. Its default value (#'+markdown-compile) will consult +markdown-compile-functions: a list of functions that take three arguments: the start and end point in the current buffer to use as input, and an output buffer to insert the result in.

By default, the value of +markdown-compile-functions is:

'(+markdown-compile-marked
  +markdown-compile-pandoc
  +markdown-compile-markdown
  +markdown-compile-multimarkdown)

These functions will attempt to use the marked, pandoc and markdown executables, if available. Changing this variable will control how markdown is compiled.

;; Add a new one
(add-hook '+markdown-compile-functions #'my-compile-function)

;; Or remove an existing one
(remove-hook '+markdown-compile-functions #'+markdown-compile-markdown)

Otherwise, you can change markdown-command directly:

(setq markdown-command "markdown | smartypants")