Browse files

Added proper readme/docs and a screenshot

  • Loading branch information...
1 parent 9af5e19 commit e2f4576aaf0517795fe272dab9e9406fc7228339 @nibrahim committed Dec 27, 2010
Showing with 103 additions and 0 deletions.
  1. +103 −0
  2. BIN Screenshot.png
@@ -0,0 +1,103 @@
+Hyde is an Emacs major mode to help create blogs with the excellent
+[Jekyll]( blogging system. It comes with a front
+end (`hyde.el`), a version control backend (`hyde-git.el`) and an
+slightly modified version of the stock markdown editing mode that
+gives you a few bells and whistles while writing posts
+Download the all the `hyde-*.el` files and put them somewhere. Once
+you do that, add the directory where you put it to your load path like
+so and `require` it.
+ (add-to-list 'load-path "/path/to/hyde*.el")
+ (require 'hyde)
+This mode is a simply a wrapped for a number of shell commands that
+are used to create and deploy the site. It doesn't maintain any local
+state (in the form of status files etc.) so if you change your
+repository manually outside it, just refreshing the buffer will bring
+it upto date.
+It's tailored to the way I work. I keep my posts in a `git` repository
+(although I do have a crude DVCS abstraction layer if you're using
+`hg` or any other such system). I make changes, commit them and push
+the repository to `github` (you can, for example, see this files
+source at
+After that, I make the site using `jekyll` manually and then copy it
+over to my webspace using `rsync`. I don't use any of the git hooks
+The variables that you might care to customise are
+* Location parameters
+ * `hyde-home` : The root directory of your blog
+ * `hyde-deploy-dir` : The directory where `jekyll` will generate the site for you to deploy
+ * `hyde-posts-dir` : The directory that will contain the actual posts
+ (this is relative to `hyde-home` and is `_posts` by default).
+ * `hyde-drafts-dir` : The directory that will contain the post
+ drafts (this is relative to `hyde-home` and is `_drafts` by
+ default. You might want to _ignore_ this directory in
+ `_config.yml` ).
+ * `hyde/deploy-command` : The command used to deploy the site. `scp`,
+ `rsync` or whatever else you might please.
+* VC parameters
+ * `hyde/vc-uncommittedp` : Predicate to check whether the file is uncommitted
+ * `hyde/vc-unpushedp` : Predicate to check whether the file is not yet pushed
+ * `hyde/vc-pushedp` : Predicate to check if the file has been pushed (inverse of the above)
+ * `hyde/vc-add` : Command to add the file
+ * `hyde/vc-commit` : Command to commit a file
+ * `hyde/vc-push` : Command to push the local changes to the remote end.
+ * `hyde/vc-rename` : Command used to rename a file.
+The main interface looks like the following screenshot
+![Hyde screenshot](Screenshot.png)
+The list of posts are presented on top along with a key of what the
+letters before the post names mean. The post names are also colourised
+The keys you can use at this time are
+* `n` : Create a new draft.
+* `c` : Commit the current post
+* `P` : Push all pending commits (this is only a VC push. Not
+ deployment).
+* `j` : Run jekyll and create the new version of the site
+* `d` : Deploy the site.
+* `g` : Refresh posts (useful if you've done something by hand
+ earlier)
+* `p` : Promote a post from a draft to a a published post
+* `q` : Quit hyde.
+* `RET` : Open the current post for editing.
+The markdown mode in which the buffers open up for editing is slightly
+modified. It has a few extra covenience bindings
+* `C-c C-c` : Save file and finish editing
+* `C-c C-v` : Preview file (this is a markdown preview so extra
+ `liquid` tags will not work).
+To Do
+* Proper previews using a local Jekyll server
+* Keep state of deployment so that we know what posts have been
+ deployed and what not.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e2f4576

Please sign in to comment.