diff options
author | silverwind <me@silverwind.io> | 2021-11-16 09:16:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 16:16:05 +0800 |
commit | 23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4 (patch) | |
tree | 38fafd772b6341daa87cb256ee10dfdcf5a87a48 /web_src/less | |
parent | d789670894d09d7db96f4cd2dc3d57d2424eb753 (diff) | |
download | gitea-23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4.tar.gz gitea-23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4.zip |
Add copy button to markdown code blocks (#17638)
* Add copy button to markdown code blocks
Done mostly in JS because I think it's better not to try getting buttons
past the markup sanitizer.
* add svg module tests
* fix sanitizer regexp
* remove outdated comment
* vertically center button in issue comments as well
* add comment to css
* fix undefined on view file line copy
* combine animation less files
* Update modules/markup/markdown/markdown.go
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
* add test for different sizes
* add cloneNode and add tests for it
* use deep clone
* remove useless optional chaining
* remove the svg node cache
* unify clipboard copy string and i18n
* remove unused var
* remove unused localization
* minor css tweaks to the button
* comment tweak
* remove useless attribute
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'web_src/less')
-rw-r--r-- | web_src/less/animations.less (renamed from web_src/less/features/animations.less) | 18 | ||||
-rw-r--r-- | web_src/less/index.less | 3 | ||||
-rw-r--r-- | web_src/less/markup/codecopy.less | 32 |
3 files changed, 52 insertions, 1 deletions
diff --git a/web_src/less/features/animations.less b/web_src/less/animations.less index f3491155cd..cdb10236fb 100644 --- a/web_src/less/features/animations.less +++ b/web_src/less/animations.less @@ -32,3 +32,21 @@ .editor-loading.is-loading { height: 12rem; } + +@keyframes fadein { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes fadeout { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} diff --git a/web_src/less/index.less b/web_src/less/index.less index d96fe3df82..0aa4a2f8f8 100644 --- a/web_src/less/index.less +++ b/web_src/less/index.less @@ -1,8 +1,8 @@ @import "font-awesome/css/font-awesome.css"; @import "./variables.less"; +@import "./animations.less"; @import "./shared/issuelist.less"; -@import "./features/animations.less"; @import "./features/dropzone.less"; @import "./features/gitgraph.less"; @import "./features/heatmap.less"; @@ -11,6 +11,7 @@ @import "./features/projects.less"; @import "./markup/content.less"; @import "./markup/mermaid.less"; +@import "./markup/codecopy.less"; @import "./code/linebutton.less"; @import "./chroma/base.less"; diff --git a/web_src/less/markup/codecopy.less b/web_src/less/markup/codecopy.less new file mode 100644 index 0000000000..b2ce77aaa1 --- /dev/null +++ b/web_src/less/markup/codecopy.less @@ -0,0 +1,32 @@ +.markup .code-block { + position: relative; +} + +.markup .code-copy { + position: absolute; + top: 8px; + right: 6px; + padding: 9px; + visibility: hidden; + animation: fadeout .2s both; +} + +/* adjustments for comment content having only 14px font size */ +.repository.view.issue .comment-list .comment .markup .code-copy { + right: 5px; + padding: 8px; +} + +/* can not use regular transparent button colors for hover and active states because + we need opaque colors here as code can appear behind the button */ +.markup .code-copy:hover { + background: var(--color-secondary) !important; +} +.markup .code-copy:active { + background: var(--color-secondary-dark-1) !important; +} + +.markup .code-block:hover .code-copy { + visibility: visible; + animation: fadein .2s both; +} |