9 Commits
v0.2 ... v0.6

Author SHA1 Message Date
Igor Shymko
25f1de2839 untabify 2016-08-30 12:19:08 +03:00
Igor Shymko
639f76437c fix #10 - listen on 127.0.0.1 by default 2016-08-30 12:04:59 +03:00
Igor Shymko
8d48d92324 preview file cleanup 2016-08-29 23:58:12 +03:00
Igor Shymko
60cc2646b8 version bump 2016-08-29 19:33:19 +03:00
Igor Shymko
96bf3b708b Merge pull request #13 from jeanbaptistelab/master
Allow using relative links from the file to preview, references  #11
2016-08-23 17:49:56 +03:00
Jean-Baptiste Lab
90b964e27d Allow using relative links from the file to preview, references issue #11
Change the implementation of "markdown-preview--open-browser-preview" to
copy "preview.html" into the directory of the Markdown file to be
previewed and browse-url that file instead.
2016-08-23 09:48:37 +02:00
Igor Shymko
625c041efd Remove kill buffer hook; version bump 2016-06-04 18:59:54 +03:00
Igor Shymko
ff75e31a57 minor edit 2016-02-15 21:36:07 +02:00
Igor Shymko
b9d815f6b9 Fix sending server frame to all the clients 2016-02-15 18:49:40 +02:00
2 changed files with 26 additions and 12 deletions

View File

@@ -4,8 +4,6 @@ Markdown preview mode
[![MELPA Stable](http://stable.melpa.org/packages/markdown-preview-mode-badge.svg)](http://stable.melpa.org/#/markdown-preview-mode)
[![MELPA](http://melpa.org/packages/markdown-preview-mode-badge.svg)](http://melpa.org/#/markdown-preview-mode)
> **Markdown realtime preview minor mode**
## Description
Opens a preview in a browser, updated upon buffer save.

View File

@@ -5,8 +5,8 @@
;; Author: Igor Shymko <igor.shimko@gmail.com>
;; URL: https://github.com/ancane/markdown-preview-mode
;; Keywords: markdown, preview
;; Version: 0.2
;; Package-Requires: ((websocket "1.5") (markdown-mode "2.1") (cl-lib "0.5"))
;; Version: 0.6
;; Package-Requires: ((websocket "1.6") (markdown-mode "2.1") (cl-lib "0.5"))
;; This file is not part of GNU Emacs.
@@ -40,6 +40,11 @@
:prefix "markdown-preview-"
:link '(url-link "https://github.com/ancane/markdown-preview-mode"))
(defcustom markdown-preview-host "127.0.0.1"
"Markdown preview websocket server address."
:group 'markdown-preview
:type 'string)
(defcustom markdown-preview-port 7379
"Markdown preview websocket server port."
:group 'markdown-preview
@@ -51,6 +56,11 @@
:group 'markdown-preview
:type 'string)
(defcustom markdown-preview-file-name ".markdown-preview.html"
"Markdown preview file name."
:group 'markdown-preview
:type 'string)
(defvar markdown-preview--websocket-server nil
"`markdown-preview' Websocket server.")
@@ -74,7 +84,11 @@
(defun markdown-preview--open-browser-preview ()
"Open the markdown preview in the browser."
(browse-url markdown-preview--preview-url))
(let* ((dir-of-buffer-to-preview (file-name-directory (buffer-file-name)))
(preview-file (concat dir-of-buffer-to-preview markdown-preview-file-name)))
(if (not (file-exists-p preview-file))
(copy-file markdown-preview--preview-url preview-file))
(browse-url preview-file)))
(defun markdown-preview--stop-websocket-server ()
"Stop the `markdown-preview' websocket server."
@@ -96,10 +110,9 @@
(setq markdown-preview--websocket-server
(websocket-server
markdown-preview-port
:host markdown-preview-host
:on-message (lambda (websocket frame)
(mapc (lambda (ws)
(websocket-send-text ws
(websocket-frame-payload frame)))
(mapc (lambda (ws) (websocket-send ws frame))
markdown-preview--remote-clients))
:on-open (lambda (websocket)
(push websocket markdown-preview--remote-clients)
@@ -156,14 +169,17 @@
(markdown-preview--start-websocket-server)
(markdown-preview--start-local-client)
(setq markdown-preview--idle-timer
(run-with-idle-timer 2 t 'markdown-preview--send-preview))
(add-hook 'after-save-hook 'markdown-preview--send-preview nil t)
(add-hook 'kill-buffer-hook 'markdown-preview--stop))
(run-with-idle-timer 2 t (lambda () (markdown-preview--send-preview))))
(add-hook 'after-save-hook 'markdown-preview--send-preview nil t))
(defun markdown-preview--stop ()
"Stop `markdown-preview' mode."
(remove-hook 'after-save-hook 'markdown-preview--send-preview t)
(markdown-preview--stop-idle-timer))
(markdown-preview--stop-idle-timer)
(let ((preview-file (concat (file-name-directory (buffer-file-name)) markdown-preview-file-name)))
(if (file-exists-p preview-file)
(delete-file preview-file)))
)
;;;###autoload
(defun markdown-preview-open-browser ()