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:
@@ -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(`
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user