The goal of this package is to reduce the gap between your notes and Twitter; to reduce the friction between spontaneous musings and public tweets. To this end, org-twitter provides a number of functions that transform org-mode notes into tweets, threads, and (soon) even hierarchies of threads on Twitter.
This package is not yet available on MELPA. However, using straight.el to install this package is fairly straightforward:
(straight-use-package org-twitter
:straight (:host github :repo "ketan0/org-twitter"))
Alternatively, you can manually install the dependencies for this project (listed above,) clone this repo, and drop it in your load path like so:
(add-to-list 'load-path "/path/to/org-twitter")
(require 'org-twitter)
With the cursor on an org-mode headline, interactively call org-twitter-tweet-this-headline
to tweet its contents:
[TODO]
With the cursor on an org-mode parent headline, interactively call org-twitter-tweet-subheadlines-as-thread
to tweet the content of the child headlines as a thread:
[TODO]
With some text selected, call org-twitter-tweet-selection
:
[TODO]
Of course, you can always bind these commands to keys if you want.
To write tweets with org-capture, add something like this to your init file:
(with-eval-after-load 'org-capture
(add-to-list 'org-capture-templates
`("S" "tweet" entry ;; for use with org-twitter
(file ,(concat org-directory "20200406054034-twitter.org"))
"* %?"))
(defun ketan0/org-twitter-finalize ()
(let ((key (plist-get org-capture-plist :key)))
(when (and (string= key "S") (not org-note-abort))
(aio-wait-for (call-interactively 'org-twitter-tweet-this-headline)))))
(add-hook 'org-capture-prepare-finalize-hook 'ketan0/org-twitter-finalize))