1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2025-12-10 10:28:08 +00:00

More actions on toolbar, correct cursor position

This commit is contained in:
DanInSpace
2021-03-20 22:48:23 +05:00
committed by wikimind
parent 107b525eba
commit 52d7e0f87e
4 changed files with 275 additions and 72 deletions

View File

@@ -422,15 +422,84 @@ func StreamToolbarJS(qw422016 *qt422016.Writer) {
//line assets/assets.qtpl:14
qw422016.N().S(`const editTextarea = document.getElementsByClassName('edit-form__textarea')[0]
function insertTextAtCursor(text, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd];
el.setRangeText(text, start, end, 'select');
function placeCursor(position, el = editTextarea) {
el.selectionEnd = position
el.selectionStart = el.selectionEnd
}
function getSelectedText(el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
const text = el.value
return text.substring(start, end)
}
function insertTextAtCursor(text, cursorPosition = null, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
el.setRangeText(text, start, end, 'select')
el.focus()
if (cursorPosition == null) {
placeCursor(end + text.length)
} else {
placeCursor(end + cursorPosition)
}
}
function wrapSelection(prefix, postfix = null, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
if (postfix == null) {
postfix = prefix
}
text = getSelectedText(el)
result = prefix + text + postfix
el.setRangeText(result, start, end, 'select')
el.focus()
placeCursor(end + (prefix + postfix).length)
}
function insertDate() {
let date = new Date().toISOString().split('T')[0]
insertTextAtCursor(date)
}
function wrapBold() {
wrapSelection('**')
}
function wrapItalic() {
wrapSelection('//')
}
function wrapMonospace() {
wrapSelection('`)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(`')
}
function wrapHighlighted() {
wrapSelection('!!')
}
function wrapLifted() {
wrapSelection('^')
}
function wrapLowered() {
wrapSelection(',,')
}
function wrapStroked() {
wrapSelection('~~')
}
function insertHorizontalBar() {
insertTextAtCursor('----\n')
}
function insertImgBlock() {
insertTextAtCursor('img {\n\t\n}\n', 7)
}
`)
//line assets/assets.qtpl:14
qw422016.N().S(`

View File

@@ -1,11 +1,76 @@
const editTextarea = document.getElementsByClassName('edit-form__textarea')[0]
function insertTextAtCursor(text, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd];
el.setRangeText(text, start, end, 'select');
function placeCursor(position, el = editTextarea) {
el.selectionEnd = position
el.selectionStart = el.selectionEnd
}
function getSelectedText(el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
const text = el.value
return text.substring(start, end)
}
function insertTextAtCursor(text, cursorPosition = null, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
el.setRangeText(text, start, end, 'select')
el.focus()
if (cursorPosition == null) {
placeCursor(end + text.length)
} else {
placeCursor(end + cursorPosition)
}
}
function wrapSelection(prefix, postfix = null, el = editTextarea) {
const [start, end] = [el.selectionStart, el.selectionEnd]
if (postfix == null) {
postfix = prefix
}
text = getSelectedText(el)
result = prefix + text + postfix
el.setRangeText(result, start, end, 'select')
el.focus()
placeCursor(end + (prefix + postfix).length)
}
function insertDate() {
let date = new Date().toISOString().split('T')[0]
insertTextAtCursor(date)
}
function wrapBold() {
wrapSelection('**')
}
function wrapItalic() {
wrapSelection('//')
}
function wrapMonospace() {
wrapSelection('`')
}
function wrapHighlighted() {
wrapSelection('!!')
}
function wrapLifted() {
wrapSelection('^')
}
function wrapLowered() {
wrapSelection(',,')
}
function wrapStroked() {
wrapSelection('~~')
}
function insertHorizontalBar() {
insertTextAtCursor('----\n')
}
function insertImgBlock() {
insertTextAtCursor('img {\n\t\n}\n', 7)
}