|
|
|
@ -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))) |
|
|
|
|
|
|
|
|
|