refactor: enhance hyperlink handling in markdown shortcuts (#4238)

This commit is contained in:
Chris Curry 2024-12-30 17:46:24 +08:00 committed by GitHub
parent 82b5c8ab07
commit bc0bac94ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 5 deletions

View File

@ -19,13 +19,22 @@ export const hyperlinkHighlightedText = (editor: EditorRefActions, url?: string)
const cursorPosition = editor.getCursorPosition();
const selectedContent = editor.getSelectedContent();
const blankURL = "url";
url = url ?? blankURL;
editor.insertText(`[${selectedContent}](${url})`);
// If the selected content looks like a URL and no URL is provided,
// create a link with empty text and the URL
const urlRegex = /^(https?:\/\/[^\s]+)$/;
if (!url && urlRegex.test(selectedContent.trim())) {
editor.insertText(`[](${selectedContent})`);
editor.setCursorPosition(cursorPosition + 1, cursorPosition + 1);
} else {
url = url ?? blankURL;
if (url === blankURL) {
const newCursorStart = cursorPosition + selectedContent.length + 3;
editor.setCursorPosition(newCursorStart, newCursorStart + url.length);
editor.insertText(`[${selectedContent}](${url})`);
if (url === blankURL) {
const newCursorStart = cursorPosition + selectedContent.length + 3;
editor.setCursorPosition(newCursorStart, newCursorStart + url.length);
}
}
};