Misterhyde is a back-office meant to provide non-technical editors with a convenient way to work on Jekyll-generated sites.
Since it's Node, it should later be able to run on Windows and edit Jekyll sites remotely via FTP.
This is the repository for the backend API that allows direct modifications on the Jekyll site files. An early version of the frontend should be open-sourced soon.
Here's a list of planned (and already implemented) basic functions.
- Edit a post
- Create a new post
- Delete a post
- Edit settings
- Manage drafts
- Allow Git versioning
- Add editable fields to Pages
- Manage custom types
- ...
For now all API actions are irreversible, including modification and deletion of a post on disk. Confirmation should be required on the frontend part.
Get a list of all existing posts, including all the metadata but without actual text content.
- /posts
- GET
- Returns :
- 200 :
array of posts
- 500 : error
- 200 :
Get a single post, including its text content.
- /posts/postkey
- where postkey is the Jekyll name of the file containing the post, ie
2014-01-01-post-name
- GET
- Returns :
- 200 :
post
- 404 : no post with this postkey
- 500 : error
- 200 :
Edit a post
- /posts/postkey
- POST
- Send only edited fields in JSON
- Returns
- 200 :
edited post
- 404 : no post with this postkey
- 500 : error
- 200 :
Delete a post
- /posts/postkey
- DELETE
- Returns
- 200 : post deleted
- 404 : no post with this postkey
- 500 : error
Create a new post
- /posts/
- POST
- Send any field you need.
post.meta.slug
,post.meta.date
andpost.meta.title
are necessary to correctly create the post. Other necessities depend on the way the Jekyll install is tuned. - Returns :
- 200 :
post
- 400 : Missing
post.meta.slug
,post.meta.date
orpost.meta.title
- 500 : error
- 200 :
Get full list of meta entries. This is useful for smart tagging forms and the like.
- /meta/type
- where type is any part of
post.meta
: it can betags
,category
, etc. - GET
- Returns :
- 200 :
array of strings
- 500 : error
- 200 :
Get a settings object with the contents of _config.yml
- /settings/
- GET
- Returns :
- 200 :
settings object
- very raw for now - 500 : error
- 200 :