Markdown editor (#92)

* Markdown editor

* use nocookie YT iframes

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>

* Fix line prefix-related Markdown editor bugs and add auto-lists

* Fix a couple codeblock issues

* address SearchFilter composition

* standardize code and patternize editor

* make editor typesafe

* adjust imports

* simplify key press handler

* Codemirror markdown implementation (#106)

* demo

* custom newline logic

* basic editor styling and buttons

* propogate styles

* validate and command structure for modals

* mobile safari event fix

* remove url field causing remount

* browser & mobile fix for link insertion

* override event passthrough to fix mobile

* fix modal state & disallow invalid url submission

* override paste behavior

* remove block flag in favor of newline insert

* cleanup before pr

* emit value from editor

* remove "a"

---------

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>
Co-authored-by: Carter <safe@fea.st>
This commit is contained in:
Prospector
2023-10-20 16:55:38 -07:00
committed by GitHub
parent 97cb5bc12c
commit c296597427
23 changed files with 1283 additions and 9 deletions

View File

@@ -12,6 +12,7 @@ export { default as DropArea } from './base/DropArea.vue'
export { default as DropdownSelect } from './base/DropdownSelect.vue'
export { default as EnvironmentIndicator } from './base/EnvironmentIndicator.vue'
export { default as FileInput } from './base/FileInput.vue'
export { default as MarkdownEditor } from './base/MarkdownEditor.vue'
export { default as Notifications } from './base/Notifications.vue'
export { default as OverflowMenu } from './base/OverflowMenu.vue'
export { default as Page } from './base/Page.vue'
@@ -69,6 +70,7 @@ export { default as PayPalIcon } from '@/assets/external/paypal.svg?component'
export { default as RedditIcon } from '@/assets/external/reddit.svg?component'
export { default as TwitterIcon } from '@/assets/external/twitter.svg?component'
export { default as WindowsIcon } from '@/assets/external/windows.svg?component'
export { default as YouTubeIcon } from '@/assets/icons/youtube.svg?component'
// Icons
export { default as AlignLeftIcon } from '@/assets/icons/align-left.svg?component'
@@ -170,6 +172,7 @@ export { default as TerminalSquareIcon } from '@/assets/icons/terminal-square.sv
export { default as TransferIcon } from '@/assets/icons/transfer.svg?component'
export { default as TrashIcon } from '@/assets/icons/trash.svg?component'
export { default as UndoIcon } from '@/assets/icons/undo.svg?component'
export { default as RedoIcon } from '@/assets/icons/redo.svg?component'
export { default as UnknownIcon } from '@/assets/icons/unknown.svg?component'
export { default as UnknownDonationIcon } from '@/assets/icons/unknown-donation.svg?component'
export { default as UpdatedIcon } from '@/assets/icons/updated.svg?component'
@@ -182,3 +185,15 @@ export { default as VersionIcon } from '@/assets/icons/version.svg?component'
export { default as WikiIcon } from '@/assets/icons/wiki.svg?component'
export { default as XIcon } from '@/assets/icons/x.svg?component'
export { default as XCircleIcon } from '@/assets/icons/x-circle.svg?component'
// Editor Icons
export { default as BoldIcon } from '@/assets/icons/bold.svg?component'
export { default as ItalicIcon } from '@/assets/icons/italic.svg?component'
export { default as UnderlineIcon } from '@/assets/icons/underline.svg?component'
export { default as StrikethroughIcon } from '@/assets/icons/strikethrough.svg?component'
export { default as ListBulletedIcon } from '@/assets/icons/list-bulleted.svg?component'
export { default as ListOrderedIcon } from '@/assets/icons/list-ordered.svg?component'
export { default as TextQuoteIcon } from '@/assets/icons/text-quote.svg?component'
export { default as Heading1Icon } from '@/assets/icons/heading-1.svg?component'
export { default as Heading2Icon } from '@/assets/icons/heading-2.svg?component'
export { default as Heading3Icon } from '@/assets/icons/heading-3.svg?component'