Add ‘pelican-make-github’ (`C-c = g`) to run `make github`
[pelican-mode.git] / pelican-mode.el
index ada4eb5..2cfa3be 100644 (file)
@@ -1,9 +1,9 @@
 ;;; pelican-mode.el --- Minor mode for editing Pelican sites -*- lexical-binding: t -*-
 ;;
-;; Copyright 2013-2017 Joe Wreschnig
+;; Copyright 2013-2018 Joe Wreschnig
 ;;
 ;; Author: Joe Wreschnig <joe.wreschnig@gmail.com>
-;; Package-Version: 20170808
+;; Package-Version: 20180605.1
 ;; Package-Requires: ((emacs "25"))
 ;; URL: https://git.korewanetadesu.com/pelican-mode.git
 ;; Keywords: convenience, editing
@@ -51,7 +51,7 @@
 ;; Or with ‘use-package’ and deferred loading:
 ;;
 ;;     (use-package pelican-mode
-;;       :after (:any org rst markdown-mode adoc-mode)
+;;       :demand :after (:any org rst markdown-mode adoc-mode)
 ;;       :config
 ;;       (pelican-global-mode))
 ;;
@@ -73,7 +73,7 @@
 For more information about Pelican see URL https://blog.getpelican.com/."
   :group 'convenience)
 
-(defcustom pelican-mode-keymap-prefix (kbd "C-c P")
+(defcustom pelican-mode-keymap-prefix (kbd "C-c =")
   "Pelican mode keymap prefix."
   :group 'pelican
   :type 'string)
@@ -120,6 +120,7 @@ arguments, field and value strings."
     (define-key map (kbd "n") #'pelican-mode-insert-header)
     (define-key map (kbd "p") #'pelican-mode-publish)
     (define-key map (kbd "u") #'pelican-make-rsync-upload)
+    (define-key map (kbd "g") #'pelican-make-github)
     map)
   "Keymap for Pelican commands after ‘pelican-mode-keymap-prefix’.")
 (fset 'pelican-mode-command-map pelican-mode-command-map)
@@ -269,10 +270,11 @@ has no status."
 (defun pelican-make (target)
   "Execute TARGET in a Makefile at the root of the site."
   (interactive "sMake Pelican target: ")
-  (if-let (default-directory (pelican-mode-find-root))
-      (compilation-start (format "make %s" target)
-                         nil (lambda (_) "*pelican*"))
-    (user-error "No Pelican site root could be found")))
+  (let ((default-directory (pelican-mode-find-root)))
+    (if default-directory
+        (compilation-start (format "make %s" target)
+                           nil (lambda (_) "*pelican*"))
+      (user-error "No Pelican site root could be found"))))
 
 (defun pelican-make-html ()
   "Generate HTML via a Makefile at the root of the site."
@@ -284,6 +286,11 @@ has no status."
   (interactive)
   (pelican-make "rsync_upload"))
 
+(defun pelican-make-github ()
+  "Upload to GitHub Pages via a Makefile at the root of the site."
+  (interactive)
+  (pelican-make "github"))
+
 \f
 
 (defun pelican-mode-set-fields (&rest fields)
@@ -380,9 +387,3 @@ has no status."
 
 (provide 'pelican-mode)
 ;;; pelican-mode.el ends here
-
-\f
-
-;; Local Variables:
-;; sentence-end-double-space: t
-;; End: