mirror of
https://github.com/marktext/marktext.git
synced 2025-05-02 15:09:10 +08:00

* feat: image setting * opti: inline image * add imageSelectAction * remove axios from muya * update image selector * finish image selector ui * add load success style * delete image by click delete icon * opti structure of image html * handle arrow key * enter to edit * image preview by press space * handle backspace when the previous element is image wrapper * update codes for change another PC * emable select all in input * handle arrow and backspace key * create a new paragraph after the last paragraph if its not empty * handle backspace when the previous element is image wrapper * handle enter event in image selector * rewrite auto show image selector * modify image folder * copy file to folder * select image * handle paste image * picgo * guess image path from clipboard * drag and drop image to Mark Text * add github uploader * remove unused codes * remove unused codes * rewrite image path auto complete * support `path` imageInsertAction * doc: add image uploader doc * remove debug codes * set init value in image uploader page * fix typo * remove unused codes * drag web image to Mark Text * add save notification * opti uploading process * fix did not close image selector bug * check image content type when drag web link image * fix: unable to preview relative path image. * emit change event after paste/drop image * add url map in image selector * feat: screenshot and auto insert the screenshot image * update error handler * feat: use the native screencapture command line on macOs system * opti: drop image * fix: handle enter error when cursor is after a image * fix: hasOwnProperty error * remove debug codes * fix: backspace when the previous ele is image * fix: CI error and optimize some codes * use hash of file path to generate the copied filename * change default imageInsertAction to `path` * fix: typo * remove some unused codes and opti get image file name * fix some bugs and opti codes * update image edit icon * romove screen capture on Linux and Windows * fix: conflict * fix error that can not insert image after the existed image or before existed image
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
import path from 'path'
|
|
import { ipcMain, BrowserWindow } from 'electron'
|
|
import log from 'electron-log'
|
|
import { updateLineEndingMenu } from '../../menu'
|
|
import { searchFilesAndDir } from '../../utils/imagePathAutoComplement'
|
|
|
|
ipcMain.on('mt::ask-for-image-auto-path', (e, { pathname, src, id }) => {
|
|
const win = BrowserWindow.fromWebContents(e.sender)
|
|
if (src.endsWith('/') || src.endsWith('\\') || src.endsWith('.')) {
|
|
return win.webContents.send(`mt::response-of-image-path-${id}`, [])
|
|
}
|
|
const fullPath = path.isAbsolute(src) ? src : path.join(path.dirname(pathname), src)
|
|
const dir = path.dirname(fullPath)
|
|
const searchKey = path.basename(fullPath)
|
|
searchFilesAndDir(dir, searchKey)
|
|
.then(files => {
|
|
return win.webContents.send(`mt::response-of-image-path-${id}`, files)
|
|
})
|
|
.catch(err => {
|
|
log.error(err)
|
|
return win.webContents.send(`mt::response-of-image-path-${id}`, [])
|
|
})
|
|
})
|
|
|
|
ipcMain.on('AGANI::update-line-ending-menu', (e, lineEnding) => {
|
|
updateLineEndingMenu(lineEnding)
|
|
})
|
|
|
|
export const edit = (win, type) => {
|
|
win.webContents.send('AGANI::edit', { type })
|
|
}
|
|
|
|
export const screenshot = (win, type) => {
|
|
ipcMain.emit('screen-capture', win)
|
|
}
|
|
|
|
export const lineEnding = (win, lineEnding) => {
|
|
win.webContents.send('AGANI::set-line-ending', { lineEnding, ignoreSaveStatus: false })
|
|
}
|