diff --git a/dark-theme.css b/dark-theme.css index c86b3d23c3..c1011da11d 100644 --- a/dark-theme.css +++ b/dark-theme.css @@ -133,7 +133,8 @@ cd-el { .token.atrule, .token.url .token.content, .token.url-reference .token.variable, -.language-markdown .token.code-block .token.punctuation { +.language-markdown .token.code-block .token.punctuation, +.language-markdown .token.tag .token.punctuation { color: #a6c3d4; } @@ -240,6 +241,10 @@ cd-el { text-decoration: underline; } +.token.strike .token.content { + text-decoration: line-through; +} + .token.brace.brace-active { position: relative; diff --git a/full.css b/full.css index a19afffb3d..1f2bcee944 100644 --- a/full.css +++ b/full.css @@ -76,10 +76,12 @@ body.notransition .bottom-wrapper { } .bottom-wrapper.hidden { + pointer-events: none; transform: translateY(calc(100% + env(safe-area-inset-bottom, 0px))); } .bottom-wrapper.expanded { + pointer-events: auto; transform: translateY(calc(-1 * var(--window-height, 100vh) + 44px + env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px))); height: 44px; } @@ -1665,10 +1667,14 @@ body:not(.mobile) .menu::-webkit-scrollbar-thumb { background-color: rgb(130 134 137 / 50%); } -body:not(.mobile) .menu::-webkit-scrollbar-thumb:not(:active):hover { +body:not(.mobile) .menu::-webkit-scrollbar-thumb:hover { background-color: rgb(130 134 137 / 65%); } +body:not(.mobile) .menu::-webkit-scrollbar-thumb:active { + background-color: rgb(130 134 137 / 50%); +} + .menu .icon { padding: 10px 15px; padding: 8px 13px; diff --git a/lib/plugins/codeit-autolinker.js b/lib/plugins/codeit-autolinker.js index e81cc00096..cc212137de 100644 --- a/lib/plugins/codeit-autolinker.js +++ b/lib/plugins/codeit-autolinker.js @@ -4,7 +4,7 @@ return; } - var url = /\b([a-z]{3,7}:\/\/|tel:)[\w\-+%~/.:=&@]+(?:\?[\w\-+%~/.:=?&!$'()*,;@]*)?(?:#[\w\-+%~/.:#=?&!$'()*,;@]*)?/; + var url = /\b([a-z]{3,7}:\/\/|tel:)[\w\-+%~/.:=&!$'()*,;@]+(?:\?[\w\-+%~/.:=?&!$'()*,;@]*)?(?:#[\w\-+%~/.:#=?&!$'()*,;@]*)?/; var email = /\b\S+@[\w.]+[a-z]{2}/; var linkMd = /\[([^\]]+)\]\(([^)]+)\)/; @@ -13,7 +13,7 @@ Prism.plugins.autolinker = { processGrammar: function (grammar) { - // Abort if grammar has already been processed + // abort if grammar has already been processed if (!grammar || grammar['url-link']) { return; } @@ -26,7 +26,7 @@ } def.inside = def.inside || {}; - + if (type == 'comment') { def.inside['md-link'] = linkMd; } @@ -45,40 +45,60 @@ }; Prism.hooks.add('before-tokenize', function (env) { - if (env.language !== 'markdown') { - Prism.plugins.autolinker.processGrammar(env.grammar); - } + if (env.language === 'markdown') return; + Prism.plugins.autolinker.processGrammar(env.grammar); }); + + + const onClickEvent = 'if ((event.ctrlKey || event.metaKey) && event.shiftKey) { event.preventDefault(); window.open(this.href, \'_blank\') }'; + + const isMac = navigator.platform.indexOf('Mac') > -1; + + const linkTitle = isMac ? '⌘ + ⇧ + click to open link' : 'Ctrl + Shift + click to open link'; + + Prism.hooks.add('wrap', function (env) { + + if (env.language === 'markdown') return; + + if (env.language === 'markdown' && + env.type === 'url-reference') { + + let matches = env.content.match(url); + + if (matches && matches[0]) { + + matches[0] = matches[0].replaceAll('\'','').replaceAll('"','').replaceAll('`',''); + + env.content = env.content.replace(matches[0], '' + matches[0] + ''); + + } + + } + + if (/-link$/.test(env.type)) { + env.tag = 'a'; + + var href = env.content; + + if (env.type == 'email-link' && href.indexOf('mailto:') != 0) { + href = 'mailto:' + href; + } else if (env.type == 'md-link') { + // markdown + var match = env.content.match(linkMd); + + href = match[2]; + env.content = match[1]; + } + + env.attributes.href = href.replaceAll('\'','').replaceAll('"','').replaceAll('`',''); - Prism.hooks.add('wrap', function (env) { - if (env.language !== 'markdown') { - if (/-link$/.test(env.type)) { - env.tag = 'a'; - - var href = env.content; - - if (env.type == 'email-link' && href.indexOf('mailto:') != 0) { - href = 'mailto:' + href; - } else if (env.type == 'md-link') { - // Markdown - var match = env.content.match(linkMd); - - href = match[2]; - env.content = match[1]; - } - - var isMac = navigator.platform.indexOf('Mac') > -1; - - env.attributes.href = href.replaceAll('\'','').replaceAll('"','').replaceAll('`',''); - - env.attributes.onclick = 'if ((event.ctrlKey || event.metaKey) && event.shiftKey) { event.preventDefault(); window.open(this.href, "_blank") }'; - env.attributes.title = isMac ? '⌘ + ⇧ + click to open link' : 'Ctrl + Shift + click to open link'; + env.attributes.onclick = onClickEvent; + env.attributes.title = linkTitle; - // silently catch any error thrown by decodeURIComponent - try { - env.content = decodeURIComponent(env.content); - } catch (e) {} - } + // silently catch any error thrown by decodeURIComponent + try { + env.content = decodeURIComponent(env.content); + } catch (e) {} } }); diff --git a/lib/plugins/codeit-match-braces.js b/lib/plugins/codeit-match-braces.js index 013a4a6e77..c46632ad5d 100644 --- a/lib/plugins/codeit-match-braces.js +++ b/lib/plugins/codeit-match-braces.js @@ -155,7 +155,7 @@ } Prism.hooks.add('complete', function (env) { - + var code = env.element; rematch(code); diff --git a/live-view/extensions/markdown-dark.css b/live-view/extensions/markdown-dark.css index 8f5d910c3a..b44aa0f7c0 100644 --- a/live-view/extensions/markdown-dark.css +++ b/live-view/extensions/markdown-dark.css @@ -207,10 +207,10 @@ body table { -webkit-appearance: none; } -body table::-webkit-scrollbar-track { +body:not(.mobile) table::-webkit-scrollbar-track { border-radius: 0 0 10px 10px; background-color: var(--color-canvas-default) !important; - box-shadow: inset 0px 1px 0 0 var(--color-border-default) !important; + box-shadow: inset 0 1px 0 0 var(--table-border-color); } body thead { @@ -286,7 +286,7 @@ body cd-el { cursor: unset; } -body cd-el::-webkit-scrollbar-track { +body:not(.mobile) cd-el::-webkit-scrollbar-track { border-radius: 0 0 10px 10px; } diff --git a/worker/client-channel.js b/worker/client-channel.js index ca64eda387..5b6b9138cf 100644 --- a/worker/client-channel.js +++ b/worker/client-channel.js @@ -4,7 +4,7 @@ // update worker name when updating worker -const WORKER_NAME = 'codeit-worker-v625'; +const WORKER_NAME = 'codeit-worker-v627'; // internal paths