diff --git a/markdown-preview-mode.el b/markdown-preview-mode.el index f2f36bc..869619d 100644 --- a/markdown-preview-mode.el +++ b/markdown-preview-mode.el @@ -54,7 +54,12 @@ :on-open (lambda (websocket) (push websocket mdpm:websocket-clients)) :on-close (lambda (websocket) - (delete websocket mdpm:websocket-clients)))))) + (delete websocket mdpm:websocket-clients))))) + (add-hook 'kill-emacs-hook 'mdpm:stop-websocket-server) + (mdpm:open-browser)) + +(defun mdpm:open-browser () + (browse-url (concat mdpm:directory "preview.html"))) (defun mdpm:stop-websocket-server () (when mdpm:websocket-server @@ -65,27 +70,27 @@ (defun mdpm:send ()) (defun mdpm:start () - (message "MDP: Start") (mdpm:start-websocket-server) - (browse-url (concat mdpm:directory "preview.html")) - (add-hook 'kill-emacs-hook 'mdpm:stop-websocket-server) (add-hook 'after-save-hook 'mdpm:send nil t)) (defun mdpm:stop () - (message "MDP: Stop") - (mdpm:stop-websocket-server) - (remove-hook 'kill-emacs-hook 'mdpm:stop-websocket-server) (remove-hook 'after-save-hook 'mdpm:send)) +(defun markdown-preview-open-browser () + (interactive) + (mdpm:open-browser)) + +(defun markdown-preview-kill-websocket-server () + (interactive) + (mdpm:stop-websocket-server)) + (define-minor-mode markdown-preview-mode "Markdown preview mode" :group 'markdown-preview-mode :init-value nil - (when (not (equal major-mode 'markdown-mode)) (markdown-mode)) - - (if (not markdown-preview-mode) + (if markdown-preview-mode (mdpm:start) (mdpm:stop)))