summary refs log tree commit diff
path: root/config/init-writing.el
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-05-26 14:00:34 -0700
committerFranck Cuny <franck@fcuny.net>2024-05-26 14:00:34 -0700
commit38593df6bb457fc3940fcef1d93976cd56b0a2d0 (patch)
tree58fbc11815b2fe7619d1234388877ebc0763afa6 /config/init-writing.el
parenti want the eglot buffer to debug stuff (diff)
downloademacs.d-38593df6bb457fc3940fcef1d93976cd56b0a2d0.tar.gz
massive cleanup
Diffstat (limited to 'config/init-writing.el')
-rw-r--r--config/init-writing.el98
1 files changed, 93 insertions, 5 deletions
diff --git a/config/init-writing.el b/config/init-writing.el
index 9cd3370..e54d605 100644
--- a/config/init-writing.el
+++ b/config/init-writing.el
@@ -7,14 +7,12 @@
 
 ;;; Code:
 
-(require 'init-markdown)
-
 (use-package flyspell
   :defer
-  :hook ((text-mode . flyspell-mode)
-	 (org-mode . flyspell-mode)
+  :hook ((text-mode       . flyspell-mode)
+	 (org-mode        . flyspell-mode)
 	 (git-commit-mode . flyspell-mode)
-	 (prog-mode . flyspell-prog-mode))
+	 (prog-mode       . flyspell-prog-mode))
   :diminish flyspell-mode
   :custom
   (ispell-program-name "aspell")
@@ -22,6 +20,96 @@
   (ispell-local-dictionary "en_US")
   (ispell-extra-args '("--camel-case")))
 
+(use-package markdown-mode
+  :ensure t
+  :mode (("\\`README\\.md\\'" . gfm-mode)
+         ("\\.md\\'"          . markdown-mode)
+         ("\\.markdown\\'"    . markdown-mode))
+  :custom
+  (markdown-command "pandoc -f markdown_github+smart")
+  (markdown-command-needs-filename t)
+  (markdown-enable-math t)
+  (markdown-open-command "marked")
+  :init
+  (setq markdown-command "multimarkdown"))
+
+(use-package org
+  :hook
+  (org-mode . turn-on-flyspell)
+  (org-mode . visual-line-mode)
+  (org-mode . org-indent-mode)
+  :custom
+    ;;; general settings
+  (org-startup-folded t)
+  (org-startup-indented t)
+  (org-hide-emphasis-markers t)
+  (org-hide-leading-stars t)
+  (org-pretty-entities t)
+  (org-return-follows-link t)
+  (org-startup-with-inline-images t)
+  (org-export-backends '(html md))
+  (org-imenu-depth 4)
+  (org-insert-heading-respect-content t)
+  (org-outline-path-complete-in-steps nil)
+  (org-src-fontify-natively t)
+  (org-src-preserve-indentation t)
+  (org-src-tab-acts-natively t)
+  (org-src-window-setup 'current-window)
+  (org-yank-adjusted-subtrees t)
+  (org-structure-template-alist
+   '(("s" . "src")
+     ("E" . "src emacs-lisp")
+     ("p" . "src python")
+     ("e" . "example")
+     ("q" . "quote")
+     ("V" . "verbatim")))
+  :config
+  (font-lock-add-keywords 'org-mode
+                          '(("^ *\\(-\\) "
+                             (0 (ignore (compose-region (match-beginning 1) (match-end 1) "•")))))))
+
+(use-package org-bullets
+  :ensure t
+  :hook (org-mode . org-bullets-mode))
+
+(use-package org-auto-tangle
+  :ensure t
+  :hook (org-mode . org-auto-tangle-mode))
+
+(use-package org-babel
+  :no-require t
+  :after (org)
+  :config
+  (org-babel-do-load-languages
+   'org-babel-load-languages
+   '((python     . t)
+     (emacs-lisp . t)
+     (calc       . t)
+     (shell      . t)
+     (sql        . t)
+     (dot        . t)))
+
+  (remove-hook 'kill-emacs-hook 'org-babel-remove-temporary-directory)
+
+  (advice-add 'org-babel-edit-prep:emacs-lisp :after
+              #'(lambda (_info) (run-hooks 'emacs-lisp-mode-hook))))
+
+(use-package ox-gfm
+  :ensure t
+  :after org)
+
+(use-package ox-md
+  :after org)
+
+(use-package ox-pandoc
+  :ensure t
+  :after org
+  :preface
+  (defun markdown-to-org-region (start end)
+    "Convert region from markdown to org, replacing selection"
+    (interactive "r")
+    (shell-command-on-region start end "pandoc -f markdown -t org" t t)))
+
 (provide 'init-writing)
 
 ;;; init-writing.el ends here