mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
md-editor jump to src line by clicking in preview
This commit is contained in:
parent
28e3178ac5
commit
5dcefab183
|
@ -18,7 +18,7 @@ var dom_md = document.getElementById('mt');
|
||||||
dom_nav.innerHTML = nav.join('');
|
dom_nav.innerHTML = nav.join('');
|
||||||
})();
|
})();
|
||||||
|
|
||||||
(function () {
|
var mde = (function () {
|
||||||
var tbar = [
|
var tbar = [
|
||||||
{
|
{
|
||||||
name: "light",
|
name: "light",
|
||||||
|
@ -53,7 +53,8 @@ var dom_md = document.getElementById('mt');
|
||||||
insertTexts: ["[](", ")"],
|
insertTexts: ["[](", ")"],
|
||||||
tabSize: 4,
|
tabSize: 4,
|
||||||
toolbar: tbar,
|
toolbar: tbar,
|
||||||
previewClass: 'mdo'
|
previewClass: 'mdo',
|
||||||
|
onToggleFullScreen: set_jumpto,
|
||||||
});
|
});
|
||||||
md_changed(mde, true);
|
md_changed(mde, true);
|
||||||
mde.codemirror.on("change", function () {
|
mde.codemirror.on("change", function () {
|
||||||
|
@ -61,8 +62,28 @@ var dom_md = document.getElementById('mt');
|
||||||
});
|
});
|
||||||
var loader = document.getElementById('ml');
|
var loader = document.getElementById('ml');
|
||||||
loader.parentNode.removeChild(loader);
|
loader.parentNode.removeChild(loader);
|
||||||
|
return mde;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
function set_jumpto() {
|
||||||
|
document.querySelector('.editor-preview-side').onclick = jumpto;
|
||||||
|
}
|
||||||
|
|
||||||
|
function jumpto(ev) {
|
||||||
|
var tgt = ev.target || ev.srcElement;
|
||||||
|
var ln = null;
|
||||||
|
while (tgt && !ln) {
|
||||||
|
ln = tgt.getAttribute('data-ln');
|
||||||
|
tgt = tgt.parentElement;
|
||||||
|
}
|
||||||
|
var ln = parseInt(ln);
|
||||||
|
console.log(ln);
|
||||||
|
var cm = mde.codemirror;
|
||||||
|
var y = cm.heightAtLine(ln - 1, 'local');
|
||||||
|
var y2 = cm.heightAtLine(ln, 'local');
|
||||||
|
cm.scrollTo(null, y + (y2 - y) - cm.getScrollInfo().clientHeight / 2);
|
||||||
|
}
|
||||||
|
|
||||||
function md_changed(mde, on_srv) {
|
function md_changed(mde, on_srv) {
|
||||||
if (on_srv)
|
if (on_srv)
|
||||||
window.md_saved = mde.value();
|
window.md_saved = mde.value();
|
||||||
|
@ -74,6 +95,8 @@ function md_changed(mde, on_srv) {
|
||||||
save_btn.classList.add('disabled');
|
save_btn.classList.add('disabled');
|
||||||
else
|
else
|
||||||
save_btn.classList.remove('disabled');
|
save_btn.classList.remove('disabled');
|
||||||
|
|
||||||
|
set_jumpto();
|
||||||
}
|
}
|
||||||
|
|
||||||
function save(mde) {
|
function save(mde) {
|
||||||
|
@ -169,8 +192,8 @@ function save_chk() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var doc1 = this.txt.replace(/\r/g, "");
|
var doc1 = this.txt.replace(/\r\n/g, "\n");
|
||||||
var doc2 = this.responseText.replace(/\r/g, "");
|
var doc2 = this.responseText.replace(/\r\n/g, "\n");
|
||||||
if (doc1 != doc2) {
|
if (doc1 != doc2) {
|
||||||
alert(
|
alert(
|
||||||
'Error! The document on the server does not appear to have saved correctly (your editor contents and the server copy is not identical). Place the document on your clipboard for now and check the server logs for hints\n\n' +
|
'Error! The document on the server does not appear to have saved correctly (your editor contents and the server copy is not identical). Place the document on your clipboard for now and check the server logs for hints\n\n' +
|
||||||
|
|
Loading…
Reference in a new issue