From 57f894043bb3c9223e60df53b97ea0200d9bf948 Mon Sep 17 00:00:00 2001 From: brchn6 Date: Mon, 6 Apr 2026 17:10:54 +0300 Subject: [PATCH 1/2] feat: add option to copy URL to clipboard (closes #437) Co-Authored-By: Claude Sonnet 4.6 --- package.json | 5 +++++ src/print-session.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f01fbc5..c3ea392 100644 --- a/package.json +++ b/package.json @@ -209,6 +209,11 @@ "%print.general.useFilepathInDocumentTitle.markdownEnumDescription3%" ] }, + "print.general.copyUrlInsteadOfOpen": { + "type": "boolean", + "default": false, + "description": "When enabled, copies the generated print URL to the clipboard instead of opening it in the default browser." + }, "print.markdown.SettleMs": { "type": "number", "default": 3000, diff --git a/src/print-session.ts b/src/print-session.ts index b08a35f..beca390 100644 --- a/src/print-session.ts +++ b/src/print-session.ts @@ -127,7 +127,11 @@ export class PrintSession { vscode.window.showErrorMessage(rootDocumentContentSource); break; } - if (this.browserConfig.get("enable")) { + const generalConfig = vscode.workspace.getConfiguration("print.general"); + if (generalConfig.get("copyUrlInsteadOfOpen")) { + await vscode.env.clipboard.writeText(this.getUrl()); + vscode.window.showInformationMessage("Print URL copied to clipboard!"); + } else if (this.browserConfig.get("enable")) { launchAlternateBrowser(this.getUrl()) } else { vscode.env.openExternal(vscode.Uri.parse(this.getUrl())); From 727b4919b67caae69016cce6e759dfebcb0b1a0c Mon Sep 17 00:00:00 2001 From: brchn6 Date: Tue, 7 Apr 2026 12:58:17 +0300 Subject: [PATCH 2/2] fix: update katex version to 0.16.45 in package.json and package-lock.json --- .gitignore | 1 + package-lock.json | 22 ++++------------------ package.json | 2 +- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 945f7dc..7d16c15 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ doc/manual-*.md bundle.* *[a-z\-]*.md assets/*.*.md +CLAUDE.md \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1295497..3fb0214 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "cors": "^2.8.5", "handlebars": "^4.7.8", "highlight.js": "^11.9.0", - "katex": "^0.16.33", + "katex": "^0.16.45", "lodash": "^4.17.21", "marked": "^15.0.6", "micromatch": "^4.0.8", @@ -993,7 +993,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "7.18.0", "@typescript-eslint/types": "7.18.0", @@ -1661,7 +1660,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1705,7 +1703,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2004,7 +2001,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2072,7 +2068,6 @@ "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -3014,7 +3009,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4540,9 +4534,9 @@ } }, "node_modules/katex": { - "version": "0.16.33", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.33.tgz", - "integrity": "sha512-q3N5u+1sY9Bu7T4nlXoiRBXWfwSefNGoKeOwekV+gw0cAXQlz2Ww6BLcmBxVDeXBMUDQv6fK5bcNaJLxob3ZQA==", + "version": "0.16.45", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.45.tgz", + "integrity": "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -5670,7 +5664,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.12.0.tgz", "integrity": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==", - "peer": true, "dependencies": { "pg-connection-string": "^2.6.4", "pg-pool": "^3.6.2", @@ -5852,7 +5845,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -7017,7 +7009,6 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -7245,7 +7236,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "dev": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7329,7 +7319,6 @@ "integrity": "sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA==", "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -7395,7 +7384,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", "dev": true, - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -7444,7 +7432,6 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, - "peer": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -7523,7 +7510,6 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", diff --git a/package.json b/package.json index c3ea392..ed3993d 100644 --- a/package.json +++ b/package.json @@ -502,7 +502,7 @@ "cors": "^2.8.5", "handlebars": "^4.7.8", "highlight.js": "^11.9.0", - "katex": "^0.16.33", + "katex": "^0.16.45", "lodash": "^4.17.21", "marked": "^15.0.6", "micromatch": "^4.0.8",