Orbit is a MetaWeblog API server for blogs powered by Hugo. It was written so that I could write and publish to my blog from MarsEdit. It supports draft posts (not a MetaWeblog standard) and MarsEdit's drag & drop image insertion. It also has built-in token verification so you can safely expose it on your server.
Jump to: Basic Usage | Post Types | Update Command | Authentication | Draft Posts| All Options
cd
into the folder and run:
$ ruby app/orbit.rb -s /YOUR/HUGO/SITE/PATH
If your blog, like mine, has multiple post types (e.g. link posts, regular
posts, and microposts), you can still use Orbit. When starting Orbit, the -c
flag allows you to you can specify the folder within content
the post will be
saved in.
Example: The following will save posts sent to port 4041 in the link
folder.
$ ruby app/orbit.rb -s /YOUR/HUGO/SITE/PATH -c link -p 4041
If you don't want to have hugo server
constantly running to watch for changes
(for example if you're running Orbit on your server), you can regenerate your
site with a command passed to the -u
flag.
Example:
$ ruby app/orbit.rb -s /YOUR/HUGO/SITE/PATH -u "cd /YOUR/HUGO/SITE/PATH && hugo"
Tip for Micro.Blog users: You can use the -u
flag to ping Micro.Blog whenever you publish a new micropost
$ ruby app/orbit.rb -s /YOUR/HUGO/SITE/PATH -u "curl -d 'url=https://YOURSITE.com/microposts.json' -X POST http://micro.blog/ping"
If you want to expose Orbit on your server (which is how I use Orbit), you'll
want to take advantage of the built-in token verification. When starting Orbit,
pass some secret token to the -t
flag and update the API Endpoint URL
in
MarsEdit with a token
parameter.
Example:
$ ruby app/orbit.rb -s /YOUR/HUGO/SITE/PATH -t MYSECRETTOKEN
Then in MarsEdit, if your endpoint was, for example,
https://hugo.elliotekj.com/xmlrpc
you'd update it to
https://hugo.elliotekj.com/xmlrpc?token=MYSECRETTOKEN
.
Draft posts aren't a MetaWeblog standard. Orbit works around this by adding
a [Orbit - Draft]
category to the category list. If you use that category
then when saving your post, draft
will be set to true in the post's
frontmatter.
-s PATH
--src-path PATH
: Path to your Hugo site (required)-c FOLDER_NAME
--content-folder FOLDER_NAME
: Name of the folder in /content
you want Orbit to serve (default: 'post')-p PORT
--port PORT
: Port to run Orbit on (default: 4040)-t TOKEN
--token TOKEN
: Token used for authenticating yourself (optional)-u COMMAND
--update-command COMMAND
: Command run when your site is updated (optional)Orbit is released under the MIT LICENSE
.
This crate was written by Elliot Jackson.