mirror of
https://github.com/marktext/marktext.git
synced 2025-05-03 16:49:15 +08:00
Allow pasting text into the code block language text-box (#598)
This commit is contained in:
parent
7ebb04d48e
commit
a77b9ab6f1
17
.github/CHANGELOG.md
vendored
17
.github/CHANGELOG.md
vendored
@ -1,3 +1,20 @@
|
|||||||
|
### [unreleased]
|
||||||
|
|
||||||
|
**:cactus:Feature**
|
||||||
|
|
||||||
|
- Added an error handler
|
||||||
|
|
||||||
|
**:butterfly:Optimization**
|
||||||
|
|
||||||
|
**:beetle:Bug fix**
|
||||||
|
|
||||||
|
- Fix dark preview box background color (#587)
|
||||||
|
- Use white PDF background color (#583)
|
||||||
|
- Fix document printing
|
||||||
|
- Restore default Mark Text style after exporting/printing
|
||||||
|
- Prevent enter key as language identifier (#569)
|
||||||
|
- Allow pasting text into the code block language text-box (#553)
|
||||||
|
|
||||||
### 0.13.65
|
### 0.13.65
|
||||||
|
|
||||||
**:butterfly:Optimization**
|
**:butterfly:Optimization**
|
||||||
|
@ -12,7 +12,8 @@ const clickCtrl = ContentState => {
|
|||||||
start.key === end.key &&
|
start.key === end.key &&
|
||||||
start.offset !== end.offset &&
|
start.offset !== end.offset &&
|
||||||
HAS_TEXT_BLOCK_REG.test(block.type) &&
|
HAS_TEXT_BLOCK_REG.test(block.type) &&
|
||||||
block.functionType !== 'codeLine'
|
block.functionType !== 'codeLine' &&
|
||||||
|
block.functionType !== 'languageInput'
|
||||||
) {
|
) {
|
||||||
const reference = this.getPositionReference()
|
const reference = this.getPositionReference()
|
||||||
const { formats } = this.selectionFormats()
|
const { formats } = this.selectionFormats()
|
||||||
|
@ -91,6 +91,39 @@ const pasteCtrl = ContentState => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extract the first line from the language identifier (GH#553)
|
||||||
|
if (startBlock.type === 'span' && startBlock.functionType === 'languageInput') {
|
||||||
|
let language = text.trim().match(/^.*$/m)[0] || ''
|
||||||
|
const oldLanguageLength = startBlock.text.length
|
||||||
|
let offset = 0
|
||||||
|
if (start.offset !== 0 || end.offset !== oldLanguageLength) {
|
||||||
|
const prePartText = startBlock.text.substring(0, start.offset)
|
||||||
|
const postPartText = startBlock.text.substring(end.offset)
|
||||||
|
|
||||||
|
// Expect that the language doesn't contain new lines
|
||||||
|
language = prePartText + language + postPartText
|
||||||
|
offset = prePartText.length + language.length
|
||||||
|
} else {
|
||||||
|
offset = language.length
|
||||||
|
}
|
||||||
|
|
||||||
|
startBlock.text = language
|
||||||
|
|
||||||
|
const key = startBlock.key
|
||||||
|
this.cursor = {
|
||||||
|
start: { key, offset },
|
||||||
|
end: { key, offset }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hide code picker float box
|
||||||
|
const { eventCenter } = this.muya
|
||||||
|
eventCenter.dispatch('muya-code-picker', { reference: null })
|
||||||
|
|
||||||
|
// Update code block language and render
|
||||||
|
this.updateCodeLanguage(startBlock, language)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (startBlock.type === 'span' && startBlock.functionType === 'codeLine') {
|
if (startBlock.type === 'span' && startBlock.functionType === 'codeLine') {
|
||||||
let referenceBlock = startBlock
|
let referenceBlock = startBlock
|
||||||
const blockText = startBlock.text
|
const blockText = startBlock.text
|
||||||
|
Loading…
Reference in New Issue
Block a user