preview window is scrolling according to cursor position in markdown buffer
This commit is contained in:
parent
a9e85581f8
commit
0c53ded3dc
@ -95,20 +95,31 @@
|
|||||||
(mdpm:sent-preview-to mdpm:local-client))
|
(mdpm:sent-preview-to mdpm:local-client))
|
||||||
|
|
||||||
(defun mdpm:sent-preview-to (websocket)
|
(defun mdpm:sent-preview-to (websocket)
|
||||||
(when markdown-preview-mode
|
(let ((mark-position-percent
|
||||||
(markdown markdown-output-buffer-name))
|
(number-to-string
|
||||||
(with-current-buffer (get-buffer markdown-output-buffer-name)
|
(truncate
|
||||||
(websocket-send-text websocket
|
(* 100
|
||||||
(concat
|
(/
|
||||||
"<div>"
|
(float (line-number-at-pos))
|
||||||
"<span id='style'>"
|
(count-lines (point-min) (point-max))))))))
|
||||||
markdown-preview-style
|
|
||||||
"</span>"
|
(when markdown-preview-mode
|
||||||
"<div id='content'>"
|
(markdown markdown-output-buffer-name))
|
||||||
(buffer-substring-no-properties (point-min) (point-max))
|
(with-current-buffer (get-buffer markdown-output-buffer-name)
|
||||||
"</div>"
|
(websocket-send-text websocket
|
||||||
"</div>")
|
(concat
|
||||||
)))
|
"<div>"
|
||||||
|
"<span id='style'>"
|
||||||
|
markdown-preview-style
|
||||||
|
"</span>"
|
||||||
|
"<span id='position-percentage'>"
|
||||||
|
mark-position-percent
|
||||||
|
"</span>"
|
||||||
|
"<div id='content'>"
|
||||||
|
(buffer-substring-no-properties (point-min) (point-max))
|
||||||
|
"</div>"
|
||||||
|
"</div>")
|
||||||
|
))))
|
||||||
|
|
||||||
(defun mdpm:start ()
|
(defun mdpm:start ()
|
||||||
(mdpm:start-websocket-server)
|
(mdpm:start-websocket-server)
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui">
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui">
|
||||||
<title>Markdown preview</title>
|
<title>Markdown preview</title>
|
||||||
<link href="http://thomasf.github.io/solarized-css/solarized-dark.min.css" rel="stylesheet"></link>
|
<link href="http://thomasf.github.io/solarized-css/solarized-dark.min.css" rel="stylesheet"></link>
|
||||||
|
<style>
|
||||||
|
code, kbd, pre, samp {
|
||||||
|
line-height: 1.2em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
|
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
(function($, undefined) {
|
(function($, undefined) {
|
||||||
@ -23,6 +28,8 @@
|
|||||||
socket.onmessage = function(event) {
|
socket.onmessage = function(event) {
|
||||||
loadCSS($(event.data).find("#style").text());
|
loadCSS($(event.data).find("#style").text());
|
||||||
$("#markdown-body").html($(event.data).find("#content").html());
|
$("#markdown-body").html($(event.data).find("#content").html());
|
||||||
|
var scroll = $(document).height() * ($(event.data).find("#position-percentage").html() / 100);
|
||||||
|
$("html, body").animate({ scrollTop: scroll }, 600);
|
||||||
};
|
};
|
||||||
socket.onerror = function(error) {
|
socket.onerror = function(error) {
|
||||||
alert("Error: " + error.message);
|
alert("Error: " + error.message);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user