75
.emacs.d/plugins/livedown.el
Normal file
75
.emacs.d/plugins/livedown.el
Normal file
@ -0,0 +1,75 @@
|
||||
;;; livedown.el --- Realtime Markdown previews for Emacs.
|
||||
|
||||
;; Copyright (C) 2014-2016 Hrvoje Simic
|
||||
|
||||
;; Author: Hrvoje Simic <hrvoje@twobucks.co>
|
||||
;; Version: 1.0.0
|
||||
;; Keywords: markdown, preview, live
|
||||
;; URL: https://github.com/shime/emacs-livedown
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Realtime Markdown previews for Emacs.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup livedown nil
|
||||
"Realtime Markdown previews"
|
||||
:group 'livedown
|
||||
:prefix "livedown-")
|
||||
|
||||
(defcustom livedown-port 1337
|
||||
"Port on which livedown server will run."
|
||||
:type 'integer
|
||||
:group 'livedown)
|
||||
|
||||
(defcustom livedown-open t
|
||||
"Open browser automatically."
|
||||
:type 'boolean
|
||||
:group 'livedown)
|
||||
|
||||
(defcustom livedown-browser nil
|
||||
"Open alternative browser."
|
||||
:type 'string
|
||||
:group 'livedown)
|
||||
|
||||
(defcustom livedown-autostart nil
|
||||
"Auto-open previews when opening markdown files."
|
||||
:type 'boolean
|
||||
:group 'livedown)
|
||||
|
||||
;;;###autoload
|
||||
(defun livedown-preview ()
|
||||
"Preview the current file in livedown."
|
||||
(interactive)
|
||||
|
||||
(call-process-shell-command
|
||||
(format "livedown stop --port %s &"
|
||||
livedown-port))
|
||||
|
||||
(start-process-shell-command
|
||||
(format "emacs-livedown")
|
||||
(format "emacs-livedown-buffer")
|
||||
(format "livedown start %s --port %s %s %s "
|
||||
buffer-file-name
|
||||
livedown-port
|
||||
(if livedown-browser (concat "--browser " livedown-browser) "")
|
||||
(if livedown-open "--open" "")))
|
||||
(print (format "%s rendered @ %s" buffer-file-name livedown-port) (get-buffer "emacs-livedown-buffer")))
|
||||
|
||||
;;;###autoload
|
||||
(defun livedown-kill (&optional async)
|
||||
"Stops the livedown process."
|
||||
(interactive)
|
||||
(let ((stop-livedown (if async 'async-shell-command 'call-process-shell-command)))
|
||||
(funcall stop-livedown
|
||||
(format "livedown stop --port %s &"
|
||||
livedown-port))))
|
||||
|
||||
(if livedown-autostart
|
||||
(eval-after-load 'markdown-mode '(livedown-preview)))
|
||||
|
||||
(add-hook 'kill-emacs-query-functions (lambda () (livedown-kill t)))
|
||||
|
||||
(provide 'livedown)
|
||||
;;; livedown.el ends here
|
Reference in New Issue
Block a user