This small library allows you to publish and update your Org-mode files as posts to any instance of the federated blogging platform write freely. No account nor registration is required for anonymous posts in the platform.
View it in action:
An example post generated with this library can be found here. The source org file can be found under example-post.org in the root of this repository.
This project is available on Melpa. To use it:
(use-package writefreely
:after org
:ensure t
;; Authentification token, if wanted.
;; Alternatively (setq writefreely-auth-token "00000000-0000-0000-0000-000000000000")
:config (load-library "writefreely-auth-token.el.gpg"))
This package now depends on ox-hugo to get the code export done properly.
Rudimentary image support exists for users who have access to the snap.as API. Images will be automatically uploaded if they do not exist, and links will be converted upon export. Note that images are cached based on filenames, so images with the same filename will not be reuploaded as of now.
In order to enable images, set writefreely-upload-images
to t
, i.e., add the following to your config: (setq writefreely-upload-images t)
. The default is nil
.
- Write an Org file. You may want to set the following options, to tweak ox-gfm’s export:
toc:nil -:nil \n:t
. - Call
writefreely-publish-or-update
to push the post to write.as. Here writefreely.el will store the post-id and post-access-token as local variables directly in your org document. This allows you to visit your post online, or update it later. - Call
writefreely-visit-post
to visit your post online.
To configure your writefreely instance, simply customise the variables writefreely-instance-url
and, most importanly, writefreely-instance-api-endpoint
. Per default they point to write.as.
All posts will be created anonymously, unless you set the variable writefreely-auth-token
is set to a valid user access token.
For more information about generating access tokens visit https://developers.write.as/docs/api/#authentication.
When authenticated, you may choose to submit posts anonymously or to one of your collections.
If using the write.as, instance, for example, copy and paste the following into your shell, changing the username and password to those of your account:
curl "https://write.as/api/auth/login" \
-H "Content-Type: application/json" \
-X POST \
-d '{"alias": "user", "pass": "12345"}'