Obsidian plugin

Hello to everyone. Even though I don’t post much on my blog, something that will hopefully change, I’m always on the lookout for new stuff that might be useful. I’ve also found that I really enjoy using Obsidian, so writing a plugin to allow for write.as interaction directly from there seemed like a logical step.

It’s still very early, but you’re welcome to take a look at the repository over on GitHub. I’m not that familiar with TypeScript (I much prefer vanilla JS), so I welcome any feedback on the code as I go. A general roadmap follows, but please let me know if there’re any further features that would be helpful.

Planned Features

(Listed in no particular order, other than that I plan on doing those under “initially” before the “down the line” stuff.)

Initially

  • Authenticate the user, store the token in Obsidian’s settings (will be insecure/unencrypted at this stage)
  • Log out and delete the token
  • Store a list of the blogs associated with an account, and allow setting which to upload to in the plugin’s settings
  • Upload a given page in Obsidian to the selected blog
  • Upload a given page as an anonymous post (whether logged in or not)

Down the Line

  • More secure token storage
  • Allow associating a folder in an Obsidian vault with a specific blog, so any pages in there will upload to that blog automatically
  • Handle/translate some of Obsidian’s more proprietary markup
  • Allow for storage of the tokens associated with an anonymous post (for future editing)
  • Way to delete a post
  • Create a new document from a remote post
  • Auto-detect language settings
2 Likes

Hi fellow Obsidian user!

If you’re interested, I wrote a bidirectional synchronizer for Write.as, so you can just keep your blog posts in a flat directory and sync it to/from the website: Bidirectional synchronization for your posts

And Obsidian works perfectly with this setup.

What does NOT work right now are completely insane rate limits by the official Write.As installation. They are beyond insanely low.