You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
6.0 KiB

function onRead() {
easyMDE.codemirror.doc.setValue(Android.getValue())
easyMDE.codemirror.doc.markClean()
easyMDE.codemirror.focus()
console.log(Android.getCursor())
easyMDE.codemirror.doc.setCursor(JSON.parse(Android.getCursor()))
pasteText()
}
function saveAs() {
Android.triggerNewBuffer(easyMDE.value())
}
function saveFile() {
if (!easyMDE.codemirror.doc.isClean()) Android.triggerSaveFile(easyMDE.value())
easyMDE.codemirror.doc.markClean()
}
function blankBuffer() {
Android.triggerNewBuffer("")
}
function openFile() {
saveFile()
Android.triggerOpenFile()
onRead()
easyMDE.codemirror.doc.markClean()
}
function dispatchCut() {
console.log("dispatch cut")
easyMDE.codemirror.getTextArea().dispatchEvent(new Event("cut"))
}
function getValue() {
return easyMDE.value()
}
function myPreview() {
saveFile()
easyMDE.togglePreview()
}
function refresh() {
Android.refresh()
onRead()
}
function displayName() {
if (typeof Android !== 'undefined') return Android.triggerDisplayName()
else return "NONdroid"
}
function shareText() {
saveFile()
Android.triggerShare(easyMDE.markdown(easyMDE.codemirror.doc.getValue()))
}
function shareGhostText() {
saveFile()
if (confirm('Are you sure you want to publish this?')) {
Android.triggerGhost(easyMDE.markdown(easyMDE.codemirror.doc.getValue()))
}
}
function getHtml() {
return encodeURIComponent(easyMDE.markdown(easyMDE.codemirror.doc.getValue()))
}
function appendText() {
if ((appendix = Android.getMdToAppend()) !== "") {
cursor = easyMDE.codemirror.doc.getCursor()
easyMDE.codemirror.doc.setValue(easyMDE.codemirror.doc.getValue() + appendix)
easyMDE.codemirror.doc.setCursor(cursor)
}
}
function pasteText() {
data = new DataTransfer()
data.setData("text/plain", Android.getMdToAppend())
event = new Event("paste")
event.clipboardData = data
easyMDE.codemirror.focus()
document.getElementsByClassName("CodeMirror-scroll")[0].dispatchEvent(event);
saveFile()
}
const easyMDE = new EasyMDE({
spellChecker: false,
nativeSpellcheck: false,
maxHeight: String(window.innerHeight-120)+"px",
inputStyle: "textarea",
autoDownloadFontAwesome: false,
theme: "solarized",
status: [
{
className: "editor-statusbar-left",
onUpdate: (el) => {
el.innerHTML = "<i class=\"fa fa-circle\"></i>"
}
},
{
className: "displayName",
defaultValue: "None",
onUpdate: (el) => {
el.innerHTML = `${displayName()}`
},
}, "lines", "words", "cursor",
{
className: "editor-statusbar-right",
onUpdate: (el) => {
el.innerHTML = "<i class=\"fa fa-square\"></i>"
}
}
],
toolbar: [
{
name: "more",
className: "fa-solid fa-angles-down",
title: "more",
children: [
{
name: "saveAs",
action: saveAs,
className: "fa fa-star",
title: "saveAs"
},
{
name: "new",
action: blankBuffer,
className: "fa fa-file",
title: "New"
},
/* {
name: "refresh",
action: refresh,
className: "fa fa-refresh",
title: "Refresh"
},*/
{
name: "day",
action: () => easyMDE.codemirror.setOption("theme","solarized"),
className: "fa fa-sun",
title: "Day Theme"
},
{
name: "night",
action: () => easyMDE.codemirror.setOption("theme","3024-night"),
className: "fa fa-moon",
title: "Night Theme"
},
"guide"
]
},
{
name: "save",
action: saveFile,
className: "fa fa-save",
title: "Save"
},
{
name: "open",
action: openFile,
className: "fa-regular fa-folder-open",
title: "Open"
},
{
name: "share",
action: shareText,
className: "fa fa-share-nodes",
title: "Share"
},
{
name: "shareGhost",
action: shareGhostText,
className: "fa fa-ghost",
title: "Share Ghost"
}, "undo",
{
name: "preview",
action: myPreview,
className: "fa fa-eye",
title: "Preview",
noDisable: true
},"redo",
"bold", "italic","link","code"
]
});
onRead();