mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Fine tune markdown editor toolbar (#24046)
1. Remove unnecessary `btn-link` `muted` classes
* Link is link, button is button, I can't see a real requirement to make
a button like a link.
* If anyone insists, please help to show me real example from modern
frameworks / websites, how and why they do so.
    * No need to duplicate a lot of class names on similar elements
* Declare styles clearly, for example, `markdown-toolbar` itself should
have `display: flex`, but not use `gt-df` to overwrite the `display:
block`.
2. Remove unnecessary `role` attribute
    * https://github.com/github/markdown-toolbar-element/issues/70
* The `markdown-toolbar-element` does want to add `role=button`, but
there is a bug.
* So we do the similar thing as upstream does (add the role by JS),
until they fix their bugs.
3. Indent `markdown-switch-easymde` (before it doesn't have a proper
indent)
Screenshot:

			
			
This commit is contained in:
		| @@ -19,28 +19,28 @@ Template Attributes: | |||||||
| 	</div> | 	</div> | ||||||
| 	{{end}} | 	{{end}} | ||||||
| 	<div class="ui tab active" data-tab-panel="markdown-writer"> | 	<div class="ui tab active" data-tab-panel="markdown-writer"> | ||||||
| 		<markdown-toolbar class="gt-df gt-ac gt-gap-3"> | 		<markdown-toolbar class="gt-gap-3"> | ||||||
| 			<div class="markdown-toolbar-group"> | 			<div class="markdown-toolbar-group"> | ||||||
| 				<md-header role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.heading.tooltip"}}">{{svg "octicon-heading"}}</md-header> | 				<md-header class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.heading.tooltip"}}">{{svg "octicon-heading"}}</md-header> | ||||||
| 				<md-bold role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.bold.tooltip"}}">{{svg "octicon-bold"}}</md-bold> | 				<md-bold class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.bold.tooltip"}}">{{svg "octicon-bold"}}</md-bold> | ||||||
| 				<md-italic role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.italic.tooltip"}}">{{svg "octicon-italic"}}</md-italic> | 				<md-italic class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.italic.tooltip"}}">{{svg "octicon-italic"}}</md-italic> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="markdown-toolbar-group"> | 			<div class="markdown-toolbar-group"> | ||||||
| 				<md-quote role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.quote.tooltip"}}">{{svg "octicon-quote"}}</md-quote> | 				<md-quote class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.quote.tooltip"}}">{{svg "octicon-quote"}}</md-quote> | ||||||
| 				<md-code role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.code.tooltip"}}">{{svg "octicon-code"}}</md-code> | 				<md-code class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.code.tooltip"}}">{{svg "octicon-code"}}</md-code> | ||||||
| 				<md-link role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.link.tooltip"}}">{{svg "octicon-link"}}</md-link> | 				<md-link class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.link.tooltip"}}">{{svg "octicon-link"}}</md-link> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="markdown-toolbar-group"> | 			<div class="markdown-toolbar-group"> | ||||||
| 				<md-unordered-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.unordered.tooltip"}}">{{svg "octicon-list-unordered"}}</md-unordered-list> | 				<md-unordered-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.unordered.tooltip"}}">{{svg "octicon-list-unordered"}}</md-unordered-list> | ||||||
| 				<md-ordered-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.ordered.tooltip"}}">{{svg "octicon-list-ordered"}}</md-ordered-list> | 				<md-ordered-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.ordered.tooltip"}}">{{svg "octicon-list-ordered"}}</md-ordered-list> | ||||||
| 				<md-task-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.task.tooltip"}}">{{svg "octicon-tasklist"}}</md-task-list> | 				<md-task-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.task.tooltip"}}">{{svg "octicon-tasklist"}}</md-task-list> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="markdown-toolbar-group"> | 			<div class="markdown-toolbar-group"> | ||||||
| 				<md-mention role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.mention.tooltip"}}">{{svg "octicon-mention"}}</md-mention> | 				<md-mention class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.mention.tooltip"}}">{{svg "octicon-mention"}}</md-mention> | ||||||
| 				<md-ref role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.ref.tooltip"}}">{{svg "octicon-cross-reference"}}</md-ref> | 				<md-ref class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.ref.tooltip"}}">{{svg "octicon-cross-reference"}}</md-ref> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="markdown-toolbar-group gt-f1 gt-je"> | 			<div class="markdown-toolbar-group"> | ||||||
| 			<button class="markdown-toolbar-button markdown-switch-easymde btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.switch_to_legacy.tooltip"}}">{{svg "octicon-arrow-switch"}}</button> | 				<button class="markdown-toolbar-button markdown-switch-easymde" data-tooltip-content="{{.locale.Tr "editor.buttons.switch_to_legacy.tooltip"}}">{{svg "octicon-arrow-switch"}}</button> | ||||||
| 			</div> | 			</div> | ||||||
| 		</markdown-toolbar> | 		</markdown-toolbar> | ||||||
| 		<text-expander keys=": @"> | 		<text-expander keys=": @"> | ||||||
|   | |||||||
| @@ -328,27 +328,14 @@ progress::-moz-progress-bar { | |||||||
|   user-select: none; |   user-select: none; | ||||||
| } | } | ||||||
|  |  | ||||||
| .btn-link { |  | ||||||
|   background: none; |  | ||||||
|   border: none; |  | ||||||
|   color: var(--color-primary); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| a:hover, |  | ||||||
| .btn-link:hover { |  | ||||||
|   text-decoration: underline; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| a, | a, | ||||||
| .ui.breadcrumb a, | .ui.breadcrumb a { | ||||||
| .btn-link { |  | ||||||
|   color: var(--color-primary); |   color: var(--color-primary); | ||||||
|   cursor: pointer; |   cursor: pointer; | ||||||
|   text-decoration-skip-ink: all; |   text-decoration-skip-ink: all; | ||||||
| } | } | ||||||
|  |  | ||||||
| a.muted, | a.muted, | ||||||
| .btn-link.muted, |  | ||||||
| .muted-links a { | .muted-links a { | ||||||
|   color: inherit; |   color: inherit; | ||||||
| } | } | ||||||
| @@ -356,7 +343,6 @@ a.muted, | |||||||
| a:hover, | a:hover, | ||||||
| a.muted:hover, | a.muted:hover, | ||||||
| a.muted:hover [class*="color-text"], | a.muted:hover [class*="color-text"], | ||||||
| .btn-link.muted:hover, |  | ||||||
| .muted-links a:hover, | .muted-links a:hover, | ||||||
| .ui.breadcrumb a:hover { | .ui.breadcrumb a:hover { | ||||||
|   color: var(--color-primary); |   color: var(--color-primary); | ||||||
|   | |||||||
| @@ -4,7 +4,8 @@ | |||||||
|  |  | ||||||
| .combo-markdown-editor markdown-toolbar { | .combo-markdown-editor markdown-toolbar { | ||||||
|   cursor: default; |   cursor: default; | ||||||
|   display: block; |   display: flex; | ||||||
|  |   align-items: center; | ||||||
|   padding-bottom: 10px; |   padding-bottom: 10px; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -12,9 +13,21 @@ | |||||||
|   display: flex; |   display: flex; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .combo-markdown-editor .markdown-toolbar-group:last-child { | ||||||
|  |   flex: 1; | ||||||
|  |   justify-content: flex-end; | ||||||
|  | } | ||||||
|  |  | ||||||
| .combo-markdown-editor .markdown-toolbar-button { | .combo-markdown-editor .markdown-toolbar-button { | ||||||
|  |   border: none; | ||||||
|  |   background: none; | ||||||
|   user-select: none; |   user-select: none; | ||||||
|   padding: 5px; |   padding: 5px; | ||||||
|  |   cursor: pointer; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .combo-markdown-editor .markdown-toolbar-button:hover { | ||||||
|  |   color: var(--color-primary); | ||||||
| } | } | ||||||
|  |  | ||||||
| .ui.form .combo-markdown-editor textarea.markdown-text-editor, | .ui.form .combo-markdown-editor textarea.markdown-text-editor, | ||||||
|   | |||||||
| @@ -70,7 +70,10 @@ class ComboMarkdownEditor { | |||||||
|  |  | ||||||
|     this.textareaMarkdownToolbar = this.container.querySelector('markdown-toolbar'); |     this.textareaMarkdownToolbar = this.container.querySelector('markdown-toolbar'); | ||||||
|     this.textareaMarkdownToolbar.setAttribute('for', this.textarea.id); |     this.textareaMarkdownToolbar.setAttribute('for', this.textarea.id); | ||||||
|  |     for (const el of this.textareaMarkdownToolbar.querySelectorAll('.markdown-toolbar-button')) { | ||||||
|  |       // upstream bug: The role code is never executed in base MarkdownButtonElement https://github.com/github/markdown-toolbar-element/issues/70 | ||||||
|  |       el.setAttribute('role', 'button'); | ||||||
|  |     } | ||||||
|     this.switchToEasyMDEButton = this.container.querySelector('.markdown-switch-easymde'); |     this.switchToEasyMDEButton = this.container.querySelector('.markdown-switch-easymde'); | ||||||
|     this.switchToEasyMDEButton?.addEventListener('click', async (e) => { |     this.switchToEasyMDEButton?.addEventListener('click', async (e) => { | ||||||
|       e.preventDefault(); |       e.preventDefault(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 wxiaoguang
					wxiaoguang