From d1809e56adef1693ad023d38f8f57d6ed5d27c7b Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Fri, 20 Dec 2024 18:01:28 +0100 Subject: [PATCH 01/19] feat: replace prismjs by highlightjs --- package-lock.json | 88 ++++++++--------------- package.json | 6 +- src/components/syntax-highlighter.ts | 103 +++++++-------------------- 3 files changed, 58 insertions(+), 139 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e9f1a61..c0ac9561 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,9 @@ "license": "Apache License 2.0", "dependencies": { "escape-html": "^1.0.3", + "highlight.js": "^11.11.0", "just-clone": "^6.2.0", "marked": "^14.1.0", - "prismjs": "1.29.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -26,7 +26,6 @@ "@types/jest": "^29.5.5", "@types/json-schema": "7.0.7", "@types/node": "17.0.29", - "@types/prismjs": "^1.26.2", "@types/sanitize-html": "^2.11.0", "@typescript-eslint/eslint-plugin": "^5.34.0", "@typescript-eslint/parser": "^5.62.0", @@ -63,7 +62,6 @@ "escape-html": "^1.0.3", "just-clone": "^6.2.0", "marked": "^12.0.2", - "prismjs": "1.29.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" } @@ -1754,12 +1752,6 @@ "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==", "dev": true }, - "node_modules/@types/prismjs": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", - "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==", - "dev": true - }, "node_modules/@types/sanitize-html": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.11.0.tgz", @@ -3263,26 +3255,11 @@ "webpack": "^5.0.0" } }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -3290,12 +3267,6 @@ "node": ">=10" } }, - "node_modules/css-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -5165,6 +5136,14 @@ "node": ">= 0.4" } }, + "node_modules/highlight.js": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.0.tgz", + "integrity": "sha512-6ErL7JlGu2CNFHyRQEuDogOyGPNiqcuWdt4iSSFUPyferNTGlNTPFqeV36Y/XwA4V/TJ8l0sxp6FTnxud/mf8g==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -7799,10 +7778,9 @@ } }, "node_modules/marked": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.3.tgz", - "integrity": "sha512-ZibJqTULGlt9g5k4VMARAktMAjXoVnnr+Y3aCqW1oDftcV4BA3UmrBifzXoZyenHRk75csiPu9iwsTj4VNBT0g==", - "license": "MIT", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.4.tgz", + "integrity": "sha512-vkVZ8ONmUdPnjCKc5uTRvmkRbx4EAi2OkTOXmfTDhZz3OFqMNBM1oTTWwTr4HY4uAEojhzPf+Fy8F1DWa3Sndg==", "bin": { "marked": "bin/marked.js" }, @@ -8430,9 +8408,9 @@ } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -8442,13 +8420,13 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -8459,12 +8437,12 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", - "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -8489,9 +8467,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -8569,14 +8547,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", diff --git a/package.json b/package.json index 27567a0f..8f05ccd9 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ }, "dependencies": { "escape-html": "^1.0.3", + "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^14.1.0", - "prismjs": "1.29.0", + "marked": "^12.0.2", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -46,7 +46,6 @@ "escape-html": "^1.0.3", "just-clone": "^6.2.0", "marked": "^12.0.2", - "prismjs": "1.29.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -59,7 +58,6 @@ "@types/jest": "^29.5.5", "@types/json-schema": "7.0.7", "@types/node": "17.0.29", - "@types/prismjs": "^1.26.2", "@types/sanitize-html": "^2.11.0", "@typescript-eslint/eslint-plugin": "^5.34.0", "@typescript-eslint/parser": "^5.62.0", diff --git a/src/components/syntax-highlighter.ts b/src/components/syntax-highlighter.ts index b71e9829..d583ed56 100644 --- a/src/components/syntax-highlighter.ts +++ b/src/components/syntax-highlighter.ts @@ -4,38 +4,6 @@ */ import { DomBuilder, ExtendedHTMLElement } from '../helper/dom'; -import { highlightElement } from 'prismjs'; - -import 'prismjs/components/prism-markup.min'; -import 'prismjs/components/prism-xml-doc.min'; -import 'prismjs/components/prism-css.min'; -import 'prismjs/components/prism-clike.min'; -import 'prismjs/components/prism-javascript.min'; -import 'prismjs/components/prism-typescript.min'; -import 'prismjs/components/prism-jsx.min'; -import 'prismjs/components/prism-diff.min'; -import 'prismjs/components/prism-tsx.min'; -import 'prismjs/components/prism-lua.min'; -import 'prismjs/components/prism-java.min'; -import 'prismjs/components/prism-json.min'; -import 'prismjs/components/prism-markdown.min'; -import 'prismjs/components/prism-mongodb.min'; -import 'prismjs/components/prism-c.min'; -import 'prismjs/components/prism-bash.min'; -import 'prismjs/components/prism-go.min'; -import 'prismjs/components/prism-csharp.min'; -import 'prismjs/components/prism-objectivec.min'; -import 'prismjs/components/prism-python.min'; -import 'prismjs/components/prism-regex.min'; -import 'prismjs/components/prism-swift.min'; -import 'prismjs/components/prism-scala.min'; -import 'prismjs/components/prism-scss.min'; -import 'prismjs/components/prism-less.min'; -import 'prismjs/components/prism-ruby.min'; -import 'prismjs/components/prism-rust.min'; -import 'prismjs/plugins/line-numbers/prism-line-numbers.js'; -import 'prismjs/plugins/keep-markup/prism-keep-markup.js'; -import 'prismjs/plugins/diff-highlight/prism-diff-highlight.min'; import { CodeBlockActions, @@ -47,43 +15,13 @@ import { Icon } from './icon'; import { cancelEvent } from '../helper/events'; import { highlightersWithTooltip } from './card/card-body'; import escapeHTML from 'escape-html'; -import '../styles/components/_syntax-highlighter.scss'; import { copyToClipboard } from '../helper/chat-item'; import testIds from '../helper/test-ids'; import unescapeHTML from 'unescape-html'; - -const langs = [ - 'markup', - 'xml', - 'css', - 'clike', - 'diff', - 'javascript', - 'typescript', - 'jsx', - 'tsx', - 'lua', - 'java', - 'json', - 'go', - 'markdown', - 'mongodb', - 'c', - 'bash', - 'csharp', - 'objectivec', - 'python', - 'regex', - 'swift', - 'scala', - 'scss', - 'less', - 'ruby', - 'rust', -]; - -const IMPORTED_LANGS = [ ...langs, ...(langs.map(lang => `diff-${lang}`)) ]; -const DEFAULT_LANG = 'clike'; +import hljs from 'highlight.js'; +import '../styles/components/syntax/_syntax-highlighter.scss'; +import '../styles/components/syntax/_syntax-theme.scss'; +import { mergeHTMLPlugin } from '../helper/merge-html-plugin'; export interface SyntaxHighlighterProps { codeStringWithMarkup: string; @@ -105,6 +43,9 @@ export class SyntaxHighlighter { constructor (props: SyntaxHighlighterProps) { this.props = props; + hljs.addPlugin(mergeHTMLPlugin); + hljs.configure({ ignoreUnescapedHTML: true }); + // To ensure we are not leaving anything unescaped before escaping i.e to prevent double escaping let escapedCodeBlock = escapeHTML(unescapeHTML(props.codeStringWithMarkup)); @@ -114,19 +55,30 @@ export class SyntaxHighlighter { .replace(new RegExp(escapeHTML(highlightersWithTooltip.start.markupEnd), 'g'), highlightersWithTooltip.start.markupEnd) .replace(new RegExp(escapeHTML(highlightersWithTooltip.end.markup), 'g'), highlightersWithTooltip.end.markup); + const codeElement = DomBuilder.getInstance().build({ + type: 'code', + classNames: [ + ...(props.language !== undefined ? [ `language-${props.language.replace('diff-', '')}` ] : [ (props.block ?? false) ? '' : 'language-plaintext' ]), + ...(props.showLineNumbers === true ? [ 'line-numbers' ] : []), + ], + innerHTML: escapedCodeBlock + }); + hljs.highlightElement(codeElement); + + // Overlay another code element for diffs, as highlight.js doesn't allow multiple language styles + const diffOverlay = DomBuilder.getInstance().build({ + type: 'code', + classNames: [ 'diff', 'language-diff' ], + innerHTML: escapedCodeBlock + }); + hljs.highlightElement(diffOverlay); + const preElement = DomBuilder.getInstance().build({ type: 'pre', testId: testIds.chatItem.syntaxHighlighter.codeBlock, - classNames: [ 'keep-markup', - `language-${props.language !== undefined && IMPORTED_LANGS.includes(props.language) ? props.language : DEFAULT_LANG}`, - ...(((props.language?.match('diff')) != null) ? [ 'diff-highlight' ] : []), - ...(props.showLineNumbers === true ? [ 'line-numbers' ] : []), - ], children: [ - { - type: 'code', - innerHTML: escapedCodeBlock, - } + codeElement, + ((props.language?.match('diff')) != null) ? diffOverlay : '' ], events: { copy: (e) => { @@ -140,7 +92,6 @@ export class SyntaxHighlighter { } } }); - highlightElement(preElement); if (props.codeBlockActions != null) { Object.keys(props.codeBlockActions).forEach((actionId: string) => { From b8bc20b970069cf9ffa86b86646930c078e011e1 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Fri, 20 Dec 2024 18:02:00 +0100 Subject: [PATCH 02/19] fix: code block tooltip highlights no longer hidden --- src/helper/merge-html-plugin.ts | 162 ++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 src/helper/merge-html-plugin.ts diff --git a/src/helper/merge-html-plugin.ts b/src/helper/merge-html-plugin.ts new file mode 100644 index 00000000..96eb5ce5 --- /dev/null +++ b/src/helper/merge-html-plugin.ts @@ -0,0 +1,162 @@ +/* + Highlight.js does not support unescaped HTML by default to prevent XSS. + This plugin allows this, so that we can implement highlights with tooltips. + + Taken from: https://github.com/highlightjs/highlight.js/issues/2889 +*/ + +import { HighlightResult, HLJSPlugin } from 'highlight.js'; + +export const mergeHTMLPlugin = (function () { + let originalStream: Event[]; + + function escapeHTML (value: string): string { + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + + /* plugin itself */ + + const mergeHTMLPlugin: HLJSPlugin = { + // preserve the original HTML token stream + 'before:highlightElement': ({ el }: {el: Node}) => { + originalStream = nodeStream(el); + }, + // merge it afterwards with the highlighted token stream + 'after:highlightElement': ({ el, result, text }: {el: Element; result: HighlightResult; text: string}) => { + if (originalStream.length === 0) return; + + const resultNode = document.createElement('div'); + resultNode.innerHTML = result.value; + result.value = mergeStreams(originalStream, nodeStream(resultNode), text); + el.innerHTML = result.value; + } + }; + + /* Stream merging support functions */ + + interface Event { + event: 'start' | 'stop'; + offset: number; + node: Node; + } + + function tag (node: Node): string { + return node.nodeName.toLowerCase(); + } + + function nodeStream (node: Node): Event[] { + const result: Event[] = []; + (function _nodeStream (node, offset) { + for (let child = node.firstChild; child != null; child = child.nextSibling) { + if (child.nodeType === 3) { + offset += child.nodeValue?.length ?? 0; + } else if (child.nodeType === 1) { + result.push({ + event: 'start', + offset, + node: child + }); + offset = _nodeStream(child, offset); + // Prevent void elements from having an end tag that would actually + // double them in the output. There are more void elements in HTML + // but we list only those realistically expected in code display. + if (tag(child).match(/br|hr|img|input/) == null) { + result.push({ + event: 'stop', + offset, + node: child + }); + } + } + } + return offset; + })(node, 0); + return result; + } + + function mergeStreams (original: Event[], highlighted: Event[], value: string): string { + let processed = 0; + let result = ''; + const nodeStack = []; + + function selectStream (): Event[] { + if ((original.length === 0) || (highlighted.length === 0)) { + return (original.length > 0) ? original : highlighted; + } + if (original[0].offset !== highlighted[0].offset) { + return (original[0].offset < highlighted[0].offset) ? original : highlighted; + } + + /* + To avoid starting the stream just before it should stop the order is + ensured that original always starts first and closes last: + + if (event1 == 'start' && event2 == 'start') + return original; + if (event1 == 'start' && event2 == 'stop') + return highlighted; + if (event1 == 'stop' && event2 == 'start') + return original; + if (event1 == 'stop' && event2 == 'stop') + return highlighted; + + ... which is collapsed to: + */ + return highlighted[0].event === 'start' ? original : highlighted; + } + + /** + * @param {Node} node + */ + function open (node: Node): void { + function attributeString (attr: Attr): string { + return ' ' + attr.nodeName + '="' + escapeHTML(attr.value) + '"'; + } + // @ts-expect-error + result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>'; + } + + function close (node: Node): void { + result += ''; + } + + function render (event: Event): void { + (event.event === 'start' ? open : close)(event.node); + } + + while ((original.length > 0) || (highlighted.length > 0)) { + let stream = selectStream(); + result += escapeHTML(value.substring(processed, stream[0].offset)); + processed = stream[0].offset; + if (stream === original) { + /* + On any opening or closing tag of the original markup we first close + the entire highlighted node stack, then render the original tag along + with all the following original tags at the same offset and then + reopen all the tags on the highlighted stack. + */ + nodeStack.reverse().forEach(close); + do { + render(stream.splice(0, 1)[0]); + stream = selectStream(); + } while (stream === original && (stream.length > 0) && stream[0].offset === processed); + nodeStack.reverse().forEach(open); + } else { + if (stream[0].event === 'start') { + nodeStack.push(stream[0].node); + } else { + nodeStack.pop(); + } + render(stream.splice(0, 1)[0]); + } + } + return result + escapeHTML(value.substr(processed)); + } + + return mergeHTMLPlugin; +}()); From f18b98be5d50c1213549e8bd6728f985578d3939 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Fri, 20 Dec 2024 18:02:15 +0100 Subject: [PATCH 03/19] feat: updated styles for new syntax highlighting --- src/styles/_variables.scss | 83 ++++++++------ .../{ => syntax}/_syntax-highlighter.scss | 99 +--------------- .../components/syntax/_syntax-theme.scss | 108 ++++++++++++++++++ 3 files changed, 160 insertions(+), 130 deletions(-) rename src/styles/components/{ => syntax}/_syntax-highlighter.scss (72%) create mode 100644 src/styles/components/syntax/_syntax-theme.scss diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss index 0cf2e766..095ae741 100644 --- a/src/styles/_variables.scss +++ b/src/styles/_variables.scss @@ -30,39 +30,56 @@ --mynah-color-toggle-reverse: rgba(0, 0, 0, 0.5); --mynah-color-syntax-bg: var(--vscode-terminal-dropBackground); - --mynah-color-syntax-variable: var( - --vscode-gitDecoration-modifiedResourceForeground, - var(--vscode-debugTokenExpression-name) - ); - --mynah-color-syntax-function: var( - --vscode-debugTokenExpression-boolean, - var(--vscode-gitDecoration-modifiedResourceForeground) - ); - --mynah-color-syntax-operator: var( - --vscode-terminal-foreground, - var(--vscode-debugTokenExpression-name, var(--mynah-color-text-default)) - ); - --mynah-color-syntax-property: var(--vscode-terminal-ansiCyan, var(--mynah-bg-gradient-mid)); - --mynah-color-syntax-comment: var(--vscode-debugConsole-sourceForeground, var(--mynah-color-text-weak)); - --mynah-color-syntax-code: var(--vscode-editor-foreground, var(--mynah-color-text-default)); - --mynah-color-syntax-keyword: var(--vscode-debugTokenExpression-name, var(--mynah-color-status-info)); - --mynah-color-syntax-string: var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)); - --mynah-color-syntax-boolean: var( - --vscode-debugTokenExpression-boolean, - var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - ); - --mynah-color-syntax-number: var( - --vscode-debugTokenExpression-number, - var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - ); - --mynah-color-syntax-regex: var( - --vscode-terminal-ansiMagenta, - var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - ); - --mynah-color-syntax-class-name: var( - --vscode-gitDecoration-modifiedResourceForeground, - var(--mynah-bg-gradient-mid) - ); + + // TODO: replace + + // --mynah-color-syntax-variable: var( + // --vscode-gitDecoration-modifiedResourceForeground, + // var(--vscode-debugTokenExpression-name) + // ); + // --mynah-color-syntax-function: var( + // --vscode-debugTokenExpression-boolean, + // var(--vscode-gitDecoration-modifiedResourceForeground) + // ); + // --mynah-color-syntax-operator: var( + // --vscode-terminal-foreground, + // var(--vscode-debugTokenExpression-name, var(--mynah-color-text-default)) + // ); + // --mynah-color-syntax-property: var(--vscode-terminal-ansiCyan, var(--mynah-bg-gradient-mid)); + // --mynah-color-syntax-comment: var(--vscode-debugConsole-sourceForeground, var(--mynah-color-text-weak)); + // --mynah-color-syntax-code: var(--vscode-editor-foreground, var(--mynah-color-text-default)); + // --mynah-color-syntax-keyword: var(--vscode-debugTokenExpression-name, var(--mynah-color-status-info)); + // --mynah-color-syntax-string: var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)); + // --mynah-color-syntax-boolean: var( + // --vscode-debugTokenExpression-boolean, + // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) + // ); + // --mynah-color-syntax-number: var( + // --vscode-debugTokenExpression-number, + // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) + // ); + // --mynah-color-syntax-regex: var( + // --vscode-terminal-ansiMagenta, + // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) + // ); + // --mynah-color-syntax-class-name: var( + // --vscode-gitDecoration-modifiedResourceForeground, + // var(--mynah-bg-gradient-mid) + // ); + + --mynah-color-syntax-new-main: #383a42; + --mynah-color-syntax-new-deletion: rgba(255, 0, 0, 0.1); + --mynah-color-syntax-new-addition: rgba(0, 255, 128, 0.1); + --mynah-color-syntax-new-keyword: #a626a4; + --mynah-color-syntax-new-comment: #a0a1a7; + --mynah-color-syntax-new-section: #e45649; + --mynah-color-syntax-new-literal: #0184bb; + --mynah-color-syntax-new-string: #50a14f; + --mynah-color-syntax-new-variable: #986801; + --mynah-color-syntax-new-class: #c18401; + --mynah-color-syntax-new-symbol: #4078f2; + + // END TODO --mynah-color-status-info: #0971d3; --mynah-color-status-success: #037f03; diff --git a/src/styles/components/_syntax-highlighter.scss b/src/styles/components/syntax/_syntax-highlighter.scss similarity index 72% rename from src/styles/components/_syntax-highlighter.scss rename to src/styles/components/syntax/_syntax-highlighter.scss index 9ab04f35..535c56cc 100644 --- a/src/styles/components/_syntax-highlighter.scss +++ b/src/styles/components/syntax/_syntax-highlighter.scss @@ -1,17 +1,4 @@ -@import '../scss-variables'; - -pre.diff-highlight > code .token.deleted:not(.prefix), -pre > code.diff-highlight .token.deleted:not(.prefix) { - background-color: rgba(255, 0, 0, 0.1); - color: inherit; - display: block; -} -pre.diff-highlight > code .token.inserted:not(.prefix), -pre > code.diff-highlight .token.inserted:not(.prefix) { - background-color: rgba(0, 255, 128, 0.1); - color: inherit; - display: block; -} +@import '../../scss-variables'; .mynah-syntax-highlighter { display: flex; @@ -182,89 +169,6 @@ pre > code.diff-highlight .token.inserted:not(.prefix) { background: #b3d4fc; } - .token { - &.comment, - &.prolog, - &.doctype, - &.cdata { - color: var(--mynah-color-syntax-comment); - font-style: italic; - } - - &.keyword { - color: var(--mynah-color-syntax-keyword); - font-style: italic; - } - - &.string, - &.char, - &.attr-value, - &.builtin, - &.deleted, - &.inserted, - &.tag, - &.symbol { - color: var(--mynah-color-syntax-string); - } - - &.number, - &.integer, - &.float { - color: var(--mynah-color-syntax-number); - } - - &.namespace { - opacity: 0.7; - } - - &.boolean { - color: var(--mynah-color-syntax-boolean); - } - - &.function { - color: var(--mynah-color-syntax-function); - } - - &.class-name { - color: var(--mynah-color-syntax-class-name); - } - - &.operator, - &.punctuation, - &.url { - color: var(--mynah-color-syntax-operator); - } - - &.important, - &.variable, - &.parameter { - color: var(--mynah-color-syntax-variable); - } - - &.constant, - &.property { - color: var(--mynah-color-syntax-property); - } - - &.regex { - color: var(--mynah-color-syntax-regex); - } - - &.important, - &.bold { - font-weight: bold; - } - - &.italic { - font-style: italic; - } - } - - .language-css .token.string, - .style .token.string { - color: var(--mynah-color-syntax-operator); - } - &.line-numbers { position: relative; padding-left: 3.8em; @@ -306,6 +210,7 @@ pre > code.diff-highlight .token.inserted:not(.prefix) { border-radius: var(--mynah-card-radius); border: var(--mynah-border-width) solid var(--mynah-color-border-default); padding: var(--mynah-sizing-5); + .mynah-card-body { > p:first-child:last-of-type, > p p:first-child { diff --git a/src/styles/components/syntax/_syntax-theme.scss b/src/styles/components/syntax/_syntax-theme.scss new file mode 100644 index 00000000..e9ee2468 --- /dev/null +++ b/src/styles/components/syntax/_syntax-theme.scss @@ -0,0 +1,108 @@ +/* + +Atom One Light by Daniel Gamage +Original One Light Syntax theme from https://github.com/atom/one-light-syntax-new + +base: #fafafa +mono-1: #383a42 +mono-2: #686b77 +mono-3: #a0a1a7 +hue-1: #0184bb +hue-2: #4078f2 +hue-3: #a626a4 +hue-4: #50a14f +hue-5: #e45649 +hue-5-2: #c91243 +hue-6: #986801 +hue-6-2: #c18401 + +*/ + +.diff { + position: absolute; + top: 0; + left: 0; + padding: var(--mynah-sizing-2); + background-color: transparent; + color: transparent !important; + + .hljs-deletion { + background-color: var(--mynah-color-syntax-new-deletion); + } + + .hljs-addition { + background-color: var(--mynah-color-syntax-new-addition); + } +} + +.hljs { + color: var(--mynah-color-syntax-new-main); +} + +.hljs-comment, +.hljs-quote { + color: var(--mynah-color-syntax-new-comment); + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: var(--mynah-color-syntax-new-keyword); +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-subst { + color: var(--mynah-color-syntax-new-section); +} + +.hljs-literal { + color: var(--mynah-color-syntax-new-literal); +} + +.hljs-string, +.hljs-regexp, +.hljs-attribute, +.hljs-meta .hljs-string { + color: var(--mynah-color-syntax-new-string); +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: var(--mynah-color-syntax-new-variable); +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: var(--mynah-color-syntax-new-symbol); +} + +.hljs-built_in, +.hljs-title.class_, +.hljs-class .hljs-title { + color: var(--mynah-color-syntax-new-class); +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} From 5a103766ce43b0ae217dea81c32c205d5602ddfd Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Fri, 20 Dec 2024 18:05:14 +0100 Subject: [PATCH 04/19] chore: ran formatter --- src/styles/components/syntax/_syntax-highlighter.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/components/syntax/_syntax-highlighter.scss b/src/styles/components/syntax/_syntax-highlighter.scss index 535c56cc..0002a6a9 100644 --- a/src/styles/components/syntax/_syntax-highlighter.scss +++ b/src/styles/components/syntax/_syntax-highlighter.scss @@ -210,7 +210,7 @@ border-radius: var(--mynah-card-radius); border: var(--mynah-border-width) solid var(--mynah-color-border-default); padding: var(--mynah-sizing-5); - + .mynah-card-body { > p:first-child:last-of-type, > p p:first-child { From 77b6cd855442521440103aaada120969816b4ba2 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 11:47:37 +0100 Subject: [PATCH 05/19] chore: updated marked version to comply with highlightjs and fixed listitem fix --- package-lock.json | 8 ++++---- src/main.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0ac9561..154631eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "escape-html": "^1.0.3", "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^14.1.0", + "marked": "^12.0.2", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -7778,9 +7778,9 @@ } }, "node_modules/marked": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.4.tgz", - "integrity": "sha512-vkVZ8ONmUdPnjCKc5uTRvmkRbx4EAi2OkTOXmfTDhZz3OFqMNBM1oTTWwTr4HY4uAEojhzPf+Fy8F1DWa3Sndg==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "bin": { "marked": "bin/marked.js" }, diff --git a/src/main.ts b/src/main.ts index 77a6fdbb..0df64718 100644 --- a/src/main.ts +++ b/src/main.ts @@ -268,10 +268,10 @@ export class MynahUI { // Apply global fix for marked listitem content is not getting parsed. marked.use({ renderer: { - listitem: (item: Tokens.ListItem) => ` + listitem: (text: string, task: boolean, checked: boolean) => `
  • -${item.task ? `` : ''} -${(item.task ? marked.parseInline : marked.parse)(item.text, { breaks: false }) as string} +${task ? `` : ''} +${(task ? marked.parseInline : marked.parse)(text, { breaks: false }) as string}
  • ` }, }); From b8ecdb27e90494b470bc00b6814c9ec13fae86a3 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 11:53:00 +0100 Subject: [PATCH 06/19] chore: linting fixes --- src/main.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index 0df64718..d7ac0482 100644 --- a/src/main.ts +++ b/src/main.ts @@ -33,7 +33,7 @@ import { ChatWrapper } from './components/chat-item/chat-wrapper'; import { FeedbackForm } from './components/feedback-form/feedback-form'; import { MynahUITabsStore } from './helper/tabs-store'; import { Config } from './helper/config'; -import { marked, Tokens } from 'marked'; +import { marked } from 'marked'; import './styles/styles.scss'; import { generateUID } from './helper/guid'; import { NoTabs } from './components/no-tabs'; @@ -270,7 +270,7 @@ export class MynahUI { renderer: { listitem: (text: string, task: boolean, checked: boolean) => `
  • -${task ? `` : ''} +${task ? `` : ''} ${(task ? marked.parseInline : marked.parse)(text, { breaks: false }) as string}
  • ` }, From d6c51a64767771b60b2e64b0b3cd077258836264 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 12:10:55 +0100 Subject: [PATCH 07/19] fix: updated syntax higlighter unit test for new library --- src/components/__test__/syntax-highlighter.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/__test__/syntax-highlighter.spec.ts b/src/components/__test__/syntax-highlighter.spec.ts index 68ef8834..c8fa0842 100644 --- a/src/components/__test__/syntax-highlighter.spec.ts +++ b/src/components/__test__/syntax-highlighter.spec.ts @@ -9,7 +9,7 @@ describe('syntax-highlighter', () => { }); expect(testSyntaxHighlighter.render.outerHTML.replace('\n', '')).toBe( - '
    alert("hello");
    ' + '
    alert("hello");
    ' ); }); From 2fd53e49d6f87ea839510f7b97a78257b29cd35f Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 13:30:42 +0100 Subject: [PATCH 08/19] chore: update third party licenses --- THIRD-PARTY-LICENSES | 47 +++++++++++++++++++++++++------------------- package-lock.json | 1 + package.json | 1 + 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/THIRD-PARTY-LICENSES b/THIRD-PARTY-LICENSES index 63b0959b..02b902d0 100644 --- a/THIRD-PARTY-LICENSES +++ b/THIRD-PARTY-LICENSES @@ -1,27 +1,34 @@ -** prismjs; version 1.29.0 -- https://github.com/PrismJS/prism/ -Copyright (c) 2012 Lea Verou +** highlight.js; version 11.11.0 -- https://github.com/highlightjs/highlight.js/ -MIT LICENSE +BSD 3-Clause License -Copyright (c) 2012 Lea Verou +Copyright (c) 2006, Ivan Sagalaev. +All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------ @@ -68,7 +75,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------ -** unescape-html; version 1.1.0 -- https://github.com/ForbesLindesay/ +** unescape-html; version 1.1.0 -- https://github.com/ForbesLindesay/unescape-html MIT LICENSE diff --git a/package-lock.json b/package-lock.json index 154631eb..87e461e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,6 +60,7 @@ }, "peerDependencies": { "escape-html": "^1.0.3", + "highlight.js": "^11.11.0", "just-clone": "^6.2.0", "marked": "^12.0.2", "sanitize-html": "^2.12.1", diff --git a/package.json b/package.json index 8f05ccd9..86f6dd18 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ }, "peerDependencies": { "escape-html": "^1.0.3", + "highlight.js": "^11.11.0", "just-clone": "^6.2.0", "marked": "^12.0.2", "sanitize-html": "^2.12.1", From 62cbce980a90dda1deedb48bb916efed351ab147 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 17:05:25 +0100 Subject: [PATCH 09/19] chore: updated test images --- ...-mynah-ui-should-parse-markdown-1-snap.png | Bin 49723 -> 49640 bytes ...-mynah-ui-should-parse-markdown-1-snap.png | Bin 66577 -> 66247 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ui-tests/__test__/__image_snapshots__/chromium/main-spec-ts-open-mynah-ui-should-parse-markdown-1-snap.png b/ui-tests/__test__/__image_snapshots__/chromium/main-spec-ts-open-mynah-ui-should-parse-markdown-1-snap.png index 5ad52a5b54ac77c9cee2b15acec552aa9b4d15bf..b4c6941ecad76ade590c0bc31d9bac7dc4e0716e 100644 GIT binary patch delta 42932 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�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 a`@*Bs?_bLXQc#D$O;_9SX1=CF$bSI>-^R@V delta 39256 zcmce8Wl&u~(}vcMC2-f?O`{4#8ax?g4^3!QI^guZ5 zSK%546)oKgD*}R97r55P%qWGL^fC|`Y(OXnB# zm_8?q@T^I6NkA!uCSbEF96!pvm^?%~m{Ppx;kAqnWr*=%UU>%OhNjVS&Ip zc&A*LF3Icqd}t6Z$xH8dGZ6GWSm9hhN9|Gm$k@!3yP0>x?a8;y@N9ee-WbtTK!t9p z9R|Z0{A$9iW5MVB;YfYohY!AAzQBACgt;5Jv!majdd0ADt5u!s+2jyg zMq?zJ>xa&APrl8L_~mGtNnR`*1K!KFk&QjK^fFb$UJ7k z5%)CKJvXCsdRWhQ*6FYkUa&qC=y9#;YGP}9x0Okd%mtSF?&_ajA87Bu|lmC095*$6F`sMNR6)E%x=1&us zT2nC7%OgMv4Zysm1K$6)-~4~`BJkf??Ef{Tx5UWQV7A`mBwMAyA?3TNw!Gh?E189b zg$5&Od%!BmN!N&Jhd@QVIa4VoGhr7`UC(z4wHW`3MqsR*#YA?>2(XQ7Y`KB*u_i$13cD^Psf+!8O4Ms2tmdnO*s@ILeCVm+6rDd%TC_$i0Cc%Q_* zR95Q_7{yB{6EYdk{eIQpun(GTaw@Bh;6x^8 zr_^xSLL4hqF6`# z{d~Zq3W0E5$8&5pRB*k*WiEHoS&x$RNctseJgdWM8J$g`1>uY(i}m1~gq zCPmjKPnOaa+!L$5xHwXyLTgRUYY#<2Jm0&qxidB=k}r}4(t4K{H)ne6enJdH_F7obutZ?w=U=j)PUgf=A07*%O zY;12!J37`{z8A>RL5JBR=<>+yHLrkX_1+fY! zL{6EN_Jg+ZIMaw1qlJ73DFsJu@jedy`1^IexL4*TvAWs|JV9exCqRh~=>B9Cf05(E z3NZxy-7HKK|GwF-3o~SNsgvWnezGSsUlUKqzJ=04cR1AT>}zYUlnvOMsoZM_2ey&? zdpqs@i#3kFtD0O7+maX=em6Hhdg`1_z`)(|nN+<$Ids};zM$m@wv449KYv2&mCHW1 zvGo0vDazWfFE5k-Aw+Q2s(uq9wejjQU9`}&n!c&{{tF++(*u%Yn& zp!?r#aeztF4)TT{M%`Z?@3ooCwX8JUCI;RymDe%Q$9$Jx5+jsSd*)sl>dxm`(s<~T ziIY>`wf|G*+0$D5)0Oun_EAEu#=YD&LP-?CZq+-#Vubg}{_ z!90H##0xzV3Mx%Px|;?zY z(%<&4!^A_7cVFrh;qM}$VA4p4AFk^BVMaD{B3dV(?6-`=Na*6zJ)2p#hPpvWbj?p& zYeR`mhNFAm@k5G^-NeM-TaHC-<}^KT%x}N`I|wTb;BHqT8G1I6O;xLY-&Iob%b!S`*ch|))xE=CD2Q~M zL)|Z)F*u~yqsmsN|)&IN#l2?MYs0Ke4LN^Bi(Q44I4=y4*3i(@BtPk~J$vJ^y_Dn8crdfBN!c1= z>-#b{{^$1dO#hq(?I&J2oU#Is-PJowo*G5vZSG*p_ZE}?t#Sav)O6?Vmm9MFn7tJ$+0F}(3NV7<1y*! z46(7XwOgbXpFVw(A~iquuap_|efgyzOey9c(Sh?$Us=VK&yc8R0+`0vpjV#WM#7hVh;vJc#l zUrwtBUH<1%gYnbkR^IyWHow5ZM>Q=gvZ;UWvi-$93U{FVS2O;f69WHVX7t7(SKGgO z`}={;r4`G3uxDi7_5({s$7}kU1b4lv&d-*PlcuyBycipF1cion+&kjQt z&(hx!&7jtDxp>m101${=T(NrPu{xC&0|sxCpEWGcXefkJDmdk#orrRo1X~! z?mLrcwJ*jC)12HJ73KxD+s-!#l$~Dx+j}bv>o3*Rg=QP#Y`E2W#uN=I1jLsEoD1BLFr^`C(k#r?2?0uvsLBWs*~ci$F$FLfUS zZZJ@y`czW?g|{w|(c?Naai-x3dNBvm4b{6cqFd?>jrQ<>p0xvpTDh$I5GZir|_iza^jk zz6(&APp*Y|+{@Ga+c57q!S+)wI)t}E8cKdwvuz%kSMRXi(JRY;!0x#+qeC3UVAe#z zeNRo!1q!g2{c$N}fIdfKC50Bugwg7Lo1<)-i%+akO{d*h8y=m6|HGRo>LOc;P~T(T z^z^I3*A}@dVEtZt(_fq2ymt&M%Wwq9!t&Uy{~OwW_~VYiNw0>{|B4w&44|T={o*2$ zy6Nkms8FJ`Upbn(XV78uEU%$OK~?0EA1J%ekgma^5VfAU5phfxyAbt8dyElrFwoaY z<{-;OYbHD_U&hxpPMH{wctH~!-uX9_6NDkAT-iC%`MB*eyEA+?dA0~JTPnwC@K%qt{YV>9;8==9r>utY6xb>9tUvfb`lVqTq{ojW1h zs-`Dd6y?{ftZFR=a(j={Cd7w9MX&-|&5BqZb^%5bT9P@YYGVHaac5saFi2~(^&-a4 zS0UL(Za43K4}?C2)<;*Tonkjv_(eQneu z?AGl1Gr!CxYUd^v7MA|N1!gVGYqQ^%FS#yG9e#?sRX?*hPbPv5Wr&-tVjS2u(qN=b zp>F#$P+4RrJU=qH^#W;%EvCs3m%Flp2{C%ox5mw^(`Od+o*v$`3vp#c%Q2d?R00CM z%z&jZnxMtETWA05E>SZ|Bg;9O<&xn_wz{I98bx*VNsYj^ zjdbIB59@WnoXUZ@v;(EXD3$^&$v|SIhS9e^CY~-%$i7j2SV=IMRN1xy9h_3kMryt{ zcf`HDN}U5YW(m61$;903sEyt^ZW1Q~f7(h)Zi#mhD~}t-DIj_-ZCspZ*<<9$h=(Ja zs-PIRsg$~3RkadsW4m+`eo3)z1HrO*M2Kz3dA5D#US^ZIce9`4F1f?~#6Z(ltT622 zlIC6zFy#3>^?tUsPU&v(xC$iLzkuYRIAdVpW1UB((0mVI9*cl>yB#re;Sb-cMSl408RWWr z-vTtV87DI=0s5Q6LWwsAw32Oy1YDc9vu6W$b2N7gYj0dml557aZFZfvl^T>?er(20 zs$IoTly5I;7e}3IB{G=SxzqLXUlv&m(fvTuN-dk^()KXIj=K+GuDo%*{r2v(PYz%4 zr1iW?S&chod?=)axZGoMKJ-HKws*T|!yicJn5{*`+&6?%@0DT;<2f5mHwZrqyY$kX zJ(ZhE!x}z(r(E}~@Ns^bN%`pB?0ec59%FX^J))LR`E)!m@JC+V=n&hJz|t*ZuY91;EZa^kW$Jg@OBCC&OuzAbBl=osyV)q

    LOS{3`# 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

    k*nc@rMo0%QbJj0NE5}R9 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 Y Date: Mon, 23 Dec 2024 17:05:41 +0100 Subject: [PATCH 10/19] fix: changed default syntax highlighter language to 'c' --- src/components/syntax-highlighter.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/syntax-highlighter.ts b/src/components/syntax-highlighter.ts index d583ed56..b3af24f3 100644 --- a/src/components/syntax-highlighter.ts +++ b/src/components/syntax-highlighter.ts @@ -35,6 +35,8 @@ export interface SyntaxHighlighterProps { onCodeBlockAction?: OnCodeBlockActionFunction; } +const DEFAULT_LANGUAGE = 'c'; + export class SyntaxHighlighter { private readonly props?: SyntaxHighlighterProps; private readonly codeBlockButtons: ExtendedHTMLElement[] = []; @@ -58,7 +60,7 @@ export class SyntaxHighlighter { const codeElement = DomBuilder.getInstance().build({ type: 'code', classNames: [ - ...(props.language !== undefined ? [ `language-${props.language.replace('diff-', '')}` ] : [ (props.block ?? false) ? '' : 'language-plaintext' ]), + ...(props.language !== undefined ? [ `language-${props.language.replace('diff-', '')}` ] : [ (props.block ?? false) ? DEFAULT_LANGUAGE : 'language-plaintext' ]), ...(props.showLineNumbers === true ? [ 'line-numbers' ] : []), ], innerHTML: escapedCodeBlock From 7147cfd4e5ade8ac423c5f076934f91982408e83 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 17:05:51 +0100 Subject: [PATCH 11/19] fix: task checkboxes appearing twice --- src/main.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index d7ac0482..98462395 100644 --- a/src/main.ts +++ b/src/main.ts @@ -270,7 +270,6 @@ export class MynahUI { renderer: { listitem: (text: string, task: boolean, checked: boolean) => `
  • -${task ? `` : ''} ${(task ? marked.parseInline : marked.parse)(text, { breaks: false }) as string}
  • ` }, From f43bed22f9b353b205c5ddcee4144c95ee56c4b7 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Mon, 23 Dec 2024 17:06:20 +0100 Subject: [PATCH 12/19] feat: link new token theming to current css vairables --- src/styles/_variables.scss | 63 ++++--------------- .../components/syntax/_syntax-theme.scss | 42 ++++--------- 2 files changed, 23 insertions(+), 82 deletions(-) diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss index 095ae741..11a10c9b 100644 --- a/src/styles/_variables.scss +++ b/src/styles/_variables.scss @@ -29,57 +29,18 @@ --mynah-color-toggle: var(--vscode-sideBar-background); --mynah-color-toggle-reverse: rgba(0, 0, 0, 0.5); - --mynah-color-syntax-bg: var(--vscode-terminal-dropBackground); - - // TODO: replace - - // --mynah-color-syntax-variable: var( - // --vscode-gitDecoration-modifiedResourceForeground, - // var(--vscode-debugTokenExpression-name) - // ); - // --mynah-color-syntax-function: var( - // --vscode-debugTokenExpression-boolean, - // var(--vscode-gitDecoration-modifiedResourceForeground) - // ); - // --mynah-color-syntax-operator: var( - // --vscode-terminal-foreground, - // var(--vscode-debugTokenExpression-name, var(--mynah-color-text-default)) - // ); - // --mynah-color-syntax-property: var(--vscode-terminal-ansiCyan, var(--mynah-bg-gradient-mid)); - // --mynah-color-syntax-comment: var(--vscode-debugConsole-sourceForeground, var(--mynah-color-text-weak)); - // --mynah-color-syntax-code: var(--vscode-editor-foreground, var(--mynah-color-text-default)); - // --mynah-color-syntax-keyword: var(--vscode-debugTokenExpression-name, var(--mynah-color-status-info)); - // --mynah-color-syntax-string: var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)); - // --mynah-color-syntax-boolean: var( - // --vscode-debugTokenExpression-boolean, - // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - // ); - // --mynah-color-syntax-number: var( - // --vscode-debugTokenExpression-number, - // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - // ); - // --mynah-color-syntax-regex: var( - // --vscode-terminal-ansiMagenta, - // var(--vscode-debugTokenExpression-string, var(--mynah-bg-gradient-next)) - // ); - // --mynah-color-syntax-class-name: var( - // --vscode-gitDecoration-modifiedResourceForeground, - // var(--mynah-bg-gradient-mid) - // ); - - --mynah-color-syntax-new-main: #383a42; - --mynah-color-syntax-new-deletion: rgba(255, 0, 0, 0.1); - --mynah-color-syntax-new-addition: rgba(0, 255, 128, 0.1); - --mynah-color-syntax-new-keyword: #a626a4; - --mynah-color-syntax-new-comment: #a0a1a7; - --mynah-color-syntax-new-section: #e45649; - --mynah-color-syntax-new-literal: #0184bb; - --mynah-color-syntax-new-string: #50a14f; - --mynah-color-syntax-new-variable: #986801; - --mynah-color-syntax-new-class: #c18401; - --mynah-color-syntax-new-symbol: #4078f2; - - // END TODO + --mynah-color-syntax-bg: var(--vscode-terminal-dropBackground, #fafafa); + --mynah-color-syntax-variable: var(--vscode-debugTokenExpression-number, #986801); + --mynah-color-syntax-function: var(--vscode-debugTokenExpression-boolean, #e45649); + --mynah-color-syntax-property: var(--vscode-terminal-ansiCyan, #0184bb); + --mynah-color-syntax-operator: var(--vscode-terminal-foreground, #4078f2); + --mynah-color-syntax-comment: var(--vscode-debugConsole-sourceForeground, #a0a1a7); + --mynah-color-syntax-code: var(--vscode-editor-foreground, var(--mynah-color-text-default, #383a42)); + --mynah-color-syntax-keyword: var(--vscode-debugTokenExpression-name, #a626a4); + --mynah-color-syntax-string: var(--vscode-debugTokenExpression-string, #50a14f); + --mynah-color-syntax-class-name: var(--vscode-gitDecoration-modifiedResourceForeground, #c18401); + --mynah-color-syntax-deletion: rgba(255, 0, 0, 0.1); + --mynah-color-syntax-addition: rgba(0, 255, 128, 0.1); --mynah-color-status-info: #0971d3; --mynah-color-status-success: #037f03; diff --git a/src/styles/components/syntax/_syntax-theme.scss b/src/styles/components/syntax/_syntax-theme.scss index e9ee2468..45fe62fa 100644 --- a/src/styles/components/syntax/_syntax-theme.scss +++ b/src/styles/components/syntax/_syntax-theme.scss @@ -1,23 +1,3 @@ -/* - -Atom One Light by Daniel Gamage -Original One Light Syntax theme from https://github.com/atom/one-light-syntax-new - -base: #fafafa -mono-1: #383a42 -mono-2: #686b77 -mono-3: #a0a1a7 -hue-1: #0184bb -hue-2: #4078f2 -hue-3: #a626a4 -hue-4: #50a14f -hue-5: #e45649 -hue-5-2: #c91243 -hue-6: #986801 -hue-6-2: #c18401 - -*/ - .diff { position: absolute; top: 0; @@ -27,46 +7,46 @@ hue-6-2: #c18401 color: transparent !important; .hljs-deletion { - background-color: var(--mynah-color-syntax-new-deletion); + background-color: var(--mynah-color-syntax-deletion); } .hljs-addition { - background-color: var(--mynah-color-syntax-new-addition); + background-color: var(--mynah-color-syntax-addition); } } .hljs { - color: var(--mynah-color-syntax-new-main); + color: var(--mynah-color-syntax-code); } .hljs-comment, .hljs-quote { - color: var(--mynah-color-syntax-new-comment); + color: var(--mynah-color-syntax-comment); font-style: italic; } .hljs-doctag, .hljs-keyword, .hljs-formula { - color: var(--mynah-color-syntax-new-keyword); + color: var(--mynah-color-syntax-keyword); } .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-subst { - color: var(--mynah-color-syntax-new-section); + color: var(--mynah-color-syntax-function); } .hljs-literal { - color: var(--mynah-color-syntax-new-literal); + color: var(--mynah-color-syntax-property); } .hljs-string, .hljs-regexp, .hljs-attribute, .hljs-meta .hljs-string { - color: var(--mynah-color-syntax-new-string); + color: var(--mynah-color-syntax-string); } .hljs-attr, @@ -77,7 +57,7 @@ hue-6-2: #c18401 .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { - color: var(--mynah-color-syntax-new-variable); + color: var(--mynah-color-syntax-variable); } .hljs-symbol, @@ -86,13 +66,13 @@ hue-6-2: #c18401 .hljs-meta, .hljs-selector-id, .hljs-title { - color: var(--mynah-color-syntax-new-symbol); + color: var(--mynah-color-syntax-operator); } .hljs-built_in, .hljs-title.class_, .hljs-class .hljs-title { - color: var(--mynah-color-syntax-new-class); + color: var(--mynah-color-syntax-class-name); } .hljs-emphasis { From 19baa6c2255e9a7147e70f481854a7a427a141b9 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:00:27 +0100 Subject: [PATCH 13/19] chore: merge syntax highlighter styles into one file --- src/components/syntax-highlighter.ts | 3 +- .../{syntax => }/_syntax-highlighter.scss | 91 ++++++++++++++++++- .../components/syntax/_syntax-theme.scss | 88 ------------------ 3 files changed, 91 insertions(+), 91 deletions(-) rename src/styles/components/{syntax => }/_syntax-highlighter.scss (70%) delete mode 100644 src/styles/components/syntax/_syntax-theme.scss diff --git a/src/components/syntax-highlighter.ts b/src/components/syntax-highlighter.ts index b3af24f3..80deacbf 100644 --- a/src/components/syntax-highlighter.ts +++ b/src/components/syntax-highlighter.ts @@ -19,8 +19,7 @@ import { copyToClipboard } from '../helper/chat-item'; import testIds from '../helper/test-ids'; import unescapeHTML from 'unescape-html'; import hljs from 'highlight.js'; -import '../styles/components/syntax/_syntax-highlighter.scss'; -import '../styles/components/syntax/_syntax-theme.scss'; +import '../styles/components/_syntax-highlighter.scss'; import { mergeHTMLPlugin } from '../helper/merge-html-plugin'; export interface SyntaxHighlighterProps { diff --git a/src/styles/components/syntax/_syntax-highlighter.scss b/src/styles/components/_syntax-highlighter.scss similarity index 70% rename from src/styles/components/syntax/_syntax-highlighter.scss rename to src/styles/components/_syntax-highlighter.scss index 0002a6a9..28e6211e 100644 --- a/src/styles/components/syntax/_syntax-highlighter.scss +++ b/src/styles/components/_syntax-highlighter.scss @@ -1,4 +1,4 @@ -@import '../../scss-variables'; +@import '../scss-variables'; .mynah-syntax-highlighter { display: flex; @@ -145,6 +145,95 @@ @media (max-width: $mynah-code-blocks-wrap-under) { white-space: pre-wrap; } + + .diff { + position: absolute; + top: 0; + left: 0; + padding: var(--mynah-sizing-2); + background-color: transparent; + color: transparent !important; + + .hljs-deletion { + background-color: var(--mynah-color-syntax-deletion); + } + + .hljs-addition { + background-color: var(--mynah-color-syntax-addition); + } + } + + .hljs { + color: var(--mynah-color-syntax-code); + } + + .hljs-comment, + .hljs-quote { + color: var(--mynah-color-syntax-comment); + font-style: italic; + } + + .hljs-doctag, + .hljs-keyword, + .hljs-formula { + color: var(--mynah-color-syntax-keyword); + } + + .hljs-section, + .hljs-name, + .hljs-selector-tag, + .hljs-subst { + color: var(--mynah-color-syntax-function); + } + + .hljs-literal { + color: var(--mynah-color-syntax-property); + } + + .hljs-string, + .hljs-regexp, + .hljs-attribute, + .hljs-meta .hljs-string { + color: var(--mynah-color-syntax-string); + } + + .hljs-attr, + .hljs-variable, + .hljs-template-variable, + .hljs-type, + .hljs-selector-class, + .hljs-selector-attr, + .hljs-selector-pseudo, + .hljs-number { + color: var(--mynah-color-syntax-variable); + } + + .hljs-symbol, + .hljs-bullet, + .hljs-link, + .hljs-meta, + .hljs-selector-id, + .hljs-title { + color: var(--mynah-color-syntax-operator); + } + + .hljs-built_in, + .hljs-title.class_, + .hljs-class .hljs-title { + color: var(--mynah-color-syntax-class-name); + } + + .hljs-emphasis { + font-style: italic; + } + + .hljs-strong { + font-weight: bold; + } + + .hljs-link { + text-decoration: underline; + } } > code, diff --git a/src/styles/components/syntax/_syntax-theme.scss b/src/styles/components/syntax/_syntax-theme.scss deleted file mode 100644 index 45fe62fa..00000000 --- a/src/styles/components/syntax/_syntax-theme.scss +++ /dev/null @@ -1,88 +0,0 @@ -.diff { - position: absolute; - top: 0; - left: 0; - padding: var(--mynah-sizing-2); - background-color: transparent; - color: transparent !important; - - .hljs-deletion { - background-color: var(--mynah-color-syntax-deletion); - } - - .hljs-addition { - background-color: var(--mynah-color-syntax-addition); - } -} - -.hljs { - color: var(--mynah-color-syntax-code); -} - -.hljs-comment, -.hljs-quote { - color: var(--mynah-color-syntax-comment); - font-style: italic; -} - -.hljs-doctag, -.hljs-keyword, -.hljs-formula { - color: var(--mynah-color-syntax-keyword); -} - -.hljs-section, -.hljs-name, -.hljs-selector-tag, -.hljs-subst { - color: var(--mynah-color-syntax-function); -} - -.hljs-literal { - color: var(--mynah-color-syntax-property); -} - -.hljs-string, -.hljs-regexp, -.hljs-attribute, -.hljs-meta .hljs-string { - color: var(--mynah-color-syntax-string); -} - -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-type, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-number { - color: var(--mynah-color-syntax-variable); -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-meta, -.hljs-selector-id, -.hljs-title { - color: var(--mynah-color-syntax-operator); -} - -.hljs-built_in, -.hljs-title.class_, -.hljs-class .hljs-title { - color: var(--mynah-color-syntax-class-name); -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} From e48d8f380b83ed3f41565daed7a3ea82845650c5 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:06:48 +0100 Subject: [PATCH 14/19] chore: bumped marked back up to 14.1.0 --- package-lock.json | 10 +++++----- package.json | 4 ++-- src/main.ts | 7 ++++--- ui-tests/__test__/main.spec.ts | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 87e461e3..85819314 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "escape-html": "^1.0.3", "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^12.0.2", + "marked": "^14.1.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -62,7 +62,7 @@ "escape-html": "^1.0.3", "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^12.0.2", + "marked": "^14.1.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" } @@ -7779,9 +7779,9 @@ } }, "node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.4.tgz", + "integrity": "sha512-vkVZ8ONmUdPnjCKc5uTRvmkRbx4EAi2OkTOXmfTDhZz3OFqMNBM1oTTWwTr4HY4uAEojhzPf+Fy8F1DWa3Sndg==", "bin": { "marked": "bin/marked.js" }, diff --git a/package.json b/package.json index 86f6dd18..d37b5496 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "escape-html": "^1.0.3", "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^12.0.2", + "marked": "^14.1.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, @@ -46,7 +46,7 @@ "escape-html": "^1.0.3", "highlight.js": "^11.11.0", "just-clone": "^6.2.0", - "marked": "^12.0.2", + "marked": "^14.1.0", "sanitize-html": "^2.12.1", "unescape-html": "^1.1.0" }, diff --git a/src/main.ts b/src/main.ts index 98462395..77a6fdbb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -33,7 +33,7 @@ import { ChatWrapper } from './components/chat-item/chat-wrapper'; import { FeedbackForm } from './components/feedback-form/feedback-form'; import { MynahUITabsStore } from './helper/tabs-store'; import { Config } from './helper/config'; -import { marked } from 'marked'; +import { marked, Tokens } from 'marked'; import './styles/styles.scss'; import { generateUID } from './helper/guid'; import { NoTabs } from './components/no-tabs'; @@ -268,9 +268,10 @@ export class MynahUI { // Apply global fix for marked listitem content is not getting parsed. marked.use({ renderer: { - listitem: (text: string, task: boolean, checked: boolean) => ` + listitem: (item: Tokens.ListItem) => `
  • -${(task ? marked.parseInline : marked.parse)(text, { breaks: false }) as string} +${item.task ? `` : ''} +${(item.task ? marked.parseInline : marked.parse)(item.text, { breaks: false }) as string}
  • ` }, }); diff --git a/ui-tests/__test__/main.spec.ts b/ui-tests/__test__/main.spec.ts index ba5c807e..9720e4ad 100644 --- a/ui-tests/__test__/main.spec.ts +++ b/ui-tests/__test__/main.spec.ts @@ -218,7 +218,7 @@ describe('Open MynahUI', () => { await checkContentInsideWindowBoundaries(page); }); - it('should parse markdown', async () => { + it.only('should parse markdown', async () => { await parseMarkdown(page); }); From 500760cf7248dcdde5928ca7872eb3bf3103044a Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:08:03 +0100 Subject: [PATCH 15/19] chore: ran formatter --- .../components/_syntax-highlighter.scss | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/styles/components/_syntax-highlighter.scss b/src/styles/components/_syntax-highlighter.scss index 28e6211e..42bccadb 100644 --- a/src/styles/components/_syntax-highlighter.scss +++ b/src/styles/components/_syntax-highlighter.scss @@ -153,50 +153,50 @@ padding: var(--mynah-sizing-2); background-color: transparent; color: transparent !important; - + .hljs-deletion { background-color: var(--mynah-color-syntax-deletion); } - + .hljs-addition { background-color: var(--mynah-color-syntax-addition); } } - + .hljs { color: var(--mynah-color-syntax-code); } - + .hljs-comment, .hljs-quote { color: var(--mynah-color-syntax-comment); font-style: italic; } - + .hljs-doctag, .hljs-keyword, .hljs-formula { color: var(--mynah-color-syntax-keyword); } - + .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-subst { color: var(--mynah-color-syntax-function); } - + .hljs-literal { color: var(--mynah-color-syntax-property); } - + .hljs-string, .hljs-regexp, .hljs-attribute, .hljs-meta .hljs-string { color: var(--mynah-color-syntax-string); } - + .hljs-attr, .hljs-variable, .hljs-template-variable, @@ -207,7 +207,7 @@ .hljs-number { color: var(--mynah-color-syntax-variable); } - + .hljs-symbol, .hljs-bullet, .hljs-link, @@ -216,21 +216,21 @@ .hljs-title { color: var(--mynah-color-syntax-operator); } - + .hljs-built_in, .hljs-title.class_, .hljs-class .hljs-title { color: var(--mynah-color-syntax-class-name); } - + .hljs-emphasis { font-style: italic; } - + .hljs-strong { font-weight: bold; } - + .hljs-link { text-decoration: underline; } From cdb9c0a0e1ee76f5bf0a43c7691e4a2909776625 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:16:36 +0100 Subject: [PATCH 16/19] test: enable all tests again, update markdown test snapshot --- ...-mynah-ui-should-parse-markdown-1-snap.png | Bin 49640 -> 52920 bytes ui-tests/__test__/main.spec.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-tests/__test__/__image_snapshots__/chromium/main-spec-ts-open-mynah-ui-should-parse-markdown-1-snap.png b/ui-tests/__test__/__image_snapshots__/chromium/main-spec-ts-open-mynah-ui-should-parse-markdown-1-snap.png index b4c6941ecad76ade590c0bc31d9bac7dc4e0716e..4c7246122d1e2cc825bcb1572f7fb0e06e334e9d 100644 GIT binary patch literal 52920 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 literal 49640 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 z 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
    cpVNz!RDe&4%+ptmIPXx#V` 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 S;wlS(e-a|H!j(e$0sjj#1|(Jh diff --git a/ui-tests/__test__/main.spec.ts b/ui-tests/__test__/main.spec.ts index 9720e4ad..ba5c807e 100644 --- a/ui-tests/__test__/main.spec.ts +++ b/ui-tests/__test__/main.spec.ts @@ -218,7 +218,7 @@ describe('Open MynahUI', () => { await checkContentInsideWindowBoundaries(page); }); - it.only('should parse markdown', async () => { + it('should parse markdown', async () => { await parseMarkdown(page); }); From 6031f4205bb1a993141d61d92296073c535b0965 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:47:59 +0100 Subject: [PATCH 17/19] style: improved token highlighting for functions --- .../components/_syntax-highlighter.scss | 87 ++++++++++--------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/src/styles/components/_syntax-highlighter.scss b/src/styles/components/_syntax-highlighter.scss index 42bccadb..6f087ed8 100644 --- a/src/styles/components/_syntax-highlighter.scss +++ b/src/styles/components/_syntax-highlighter.scss @@ -145,58 +145,75 @@ @media (max-width: $mynah-code-blocks-wrap-under) { white-space: pre-wrap; } + } + + > code, + & { + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + tab-size: 4; + hyphens: none; - .diff { - position: absolute; - top: 0; - left: 0; - padding: var(--mynah-sizing-2); - background-color: transparent; - color: transparent !important; + @media (max-width: $mynah-code-blocks-wrap-under) { + white-space: pre-wrap; + word-wrap: break-word; + } + } - .hljs-deletion { - background-color: var(--mynah-color-syntax-deletion); - } + .diff { + position: absolute; + top: 0; + left: 0; + padding: var(--mynah-sizing-2); + background-color: transparent; + color: transparent !important; - .hljs-addition { - background-color: var(--mynah-color-syntax-addition); - } + .hljs-deletion { + background-color: var(--mynah-color-syntax-deletion); } - .hljs { - color: var(--mynah-color-syntax-code); + .hljs-addition { + background-color: var(--mynah-color-syntax-addition); } + } + + .hljs { + color: var(--mynah-color-syntax-code); .hljs-comment, .hljs-quote { color: var(--mynah-color-syntax-comment); font-style: italic; } - + .hljs-doctag, .hljs-keyword, .hljs-formula { color: var(--mynah-color-syntax-keyword); } - + .hljs-section, .hljs-name, .hljs-selector-tag, - .hljs-subst { + .hljs-subst, + .hljs-title.function_ { color: var(--mynah-color-syntax-function); } - - .hljs-literal { + + .hljs-literal, .hljs-property { color: var(--mynah-color-syntax-property); } - + .hljs-string, .hljs-regexp, .hljs-attribute, .hljs-meta .hljs-string { color: var(--mynah-color-syntax-string); } - + .hljs-attr, .hljs-variable, .hljs-template-variable, @@ -207,7 +224,7 @@ .hljs-number { color: var(--mynah-color-syntax-variable); } - + .hljs-symbol, .hljs-bullet, .hljs-link, @@ -216,42 +233,26 @@ .hljs-title { color: var(--mynah-color-syntax-operator); } - + .hljs-built_in, .hljs-title.class_, .hljs-class .hljs-title { color: var(--mynah-color-syntax-class-name); } - + .hljs-emphasis { font-style: italic; } - + .hljs-strong { font-weight: bold; } - + .hljs-link { text-decoration: underline; } } - > code, - & { - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - tab-size: 4; - hyphens: none; - - @media (max-width: $mynah-code-blocks-wrap-under) { - white-space: pre-wrap; - word-wrap: break-word; - } - } - > code::selection, &::selection { text-shadow: none; From bbc08c05e1dee625c6c5188d5a1ffbdd67a933d0 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 14:48:48 +0100 Subject: [PATCH 18/19] chore: ran formatter --- .../components/_syntax-highlighter.scss | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/styles/components/_syntax-highlighter.scss b/src/styles/components/_syntax-highlighter.scss index 6f087ed8..f904f823 100644 --- a/src/styles/components/_syntax-highlighter.scss +++ b/src/styles/components/_syntax-highlighter.scss @@ -188,13 +188,13 @@ color: var(--mynah-color-syntax-comment); font-style: italic; } - + .hljs-doctag, .hljs-keyword, .hljs-formula { color: var(--mynah-color-syntax-keyword); } - + .hljs-section, .hljs-name, .hljs-selector-tag, @@ -202,18 +202,19 @@ .hljs-title.function_ { color: var(--mynah-color-syntax-function); } - - .hljs-literal, .hljs-property { + + .hljs-literal, + .hljs-property { color: var(--mynah-color-syntax-property); } - + .hljs-string, .hljs-regexp, .hljs-attribute, .hljs-meta .hljs-string { color: var(--mynah-color-syntax-string); } - + .hljs-attr, .hljs-variable, .hljs-template-variable, @@ -224,7 +225,7 @@ .hljs-number { color: var(--mynah-color-syntax-variable); } - + .hljs-symbol, .hljs-bullet, .hljs-link, @@ -233,21 +234,21 @@ .hljs-title { color: var(--mynah-color-syntax-operator); } - + .hljs-built_in, .hljs-title.class_, .hljs-class .hljs-title { color: var(--mynah-color-syntax-class-name); } - + .hljs-emphasis { font-style: italic; } - + .hljs-strong { font-weight: bold; } - + .hljs-link { text-decoration: underline; } From 1ef3324e65700593a3bd36b9067182375c8f6763 Mon Sep 17 00:00:00 2001 From: Jurre de Ruiter Date: Tue, 24 Dec 2024 15:27:30 +0100 Subject: [PATCH 19/19] chore: removed unnecessary comments --- src/helper/merge-html-plugin.ts | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/src/helper/merge-html-plugin.ts b/src/helper/merge-html-plugin.ts index 96eb5ce5..3ca2fe3f 100644 --- a/src/helper/merge-html-plugin.ts +++ b/src/helper/merge-html-plugin.ts @@ -19,14 +19,10 @@ export const mergeHTMLPlugin = (function () { .replace(/'/g, '''); } - /* plugin itself */ - const mergeHTMLPlugin: HLJSPlugin = { - // preserve the original HTML token stream 'before:highlightElement': ({ el }: {el: Node}) => { originalStream = nodeStream(el); }, - // merge it afterwards with the highlighted token stream 'after:highlightElement': ({ el, result, text }: {el: Element; result: HighlightResult; text: string}) => { if (originalStream.length === 0) return; @@ -37,8 +33,6 @@ export const mergeHTMLPlugin = (function () { } }; - /* Stream merging support functions */ - interface Event { event: 'start' | 'stop'; offset: number; @@ -62,9 +56,6 @@ export const mergeHTMLPlugin = (function () { node: child }); offset = _nodeStream(child, offset); - // Prevent void elements from having an end tag that would actually - // double them in the output. There are more void elements in HTML - // but we list only those realistically expected in code display. if (tag(child).match(/br|hr|img|input/) == null) { result.push({ event: 'stop', @@ -92,27 +83,9 @@ export const mergeHTMLPlugin = (function () { return (original[0].offset < highlighted[0].offset) ? original : highlighted; } - /* - To avoid starting the stream just before it should stop the order is - ensured that original always starts first and closes last: - - if (event1 == 'start' && event2 == 'start') - return original; - if (event1 == 'start' && event2 == 'stop') - return highlighted; - if (event1 == 'stop' && event2 == 'start') - return original; - if (event1 == 'stop' && event2 == 'stop') - return highlighted; - - ... which is collapsed to: - */ return highlighted[0].event === 'start' ? original : highlighted; } - /** - * @param {Node} node - */ function open (node: Node): void { function attributeString (attr: Attr): string { return ' ' + attr.nodeName + '="' + escapeHTML(attr.value) + '"'; @@ -134,12 +107,6 @@ export const mergeHTMLPlugin = (function () { result += escapeHTML(value.substring(processed, stream[0].offset)); processed = stream[0].offset; if (stream === original) { - /* - On any opening or closing tag of the original markup we first close - the entire highlighted node stack, then render the original tag along - with all the following original tags at the same offset and then - reopen all the tags on the highlighted stack. - */ nodeStack.reverse().forEach(close); do { render(stream.splice(0, 1)[0]);