From 8cd4f7a0927464a0c9709085d14c58c6a7d49524 Mon Sep 17 00:00:00 2001 From: Eric Schneider <37347760+eric-schneider@users.noreply.github.com> Date: Thu, 12 Nov 2026 10:37:17 -0600 Subject: [PATCH 1/2] Record which dependencies may run install scripts npm 12 skips dependencies' install scripts unless package.json allows them in an allowScripts field, and newer npm 11 releases, such as the 11.19 that the workflows use, warn about every install script the field doesn't cover. Without their scripts, gifsicle, jpegtran-bin and optipng-bin never download the programs that gulp-imagemin runs, so with npm 12, gulp bundle fails at the image step. The field, written with npm install-scripts approve and deny, allows those three packages' scripts, pinned to the installed versions, which are the newest that the imagemin plugins here accept. It denies the scripts of es5-ext, which only prints a message when it's installed in a Russian time zone, and of fsevents, which is installed only on macOS and which the build doesn't use: without it, gulp's file watcher falls back to Node's own. Older versions of npm ignore the field. Installed with npm 11.12, 11.19 and 12, the bundle comes out the same as before. --- package.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package.json b/package.json index 91af21fc..b2372827 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,12 @@ "tailwindcss": "^3.3.5", "vinyl-fs": "~3.0", "zooming": "^2.1.1" + }, + "allowScripts": { + "es5-ext": false, + "fsevents": false, + "gifsicle@4.0.1": true, + "jpegtran-bin@4.0.0": true, + "optipng-bin@6.0.0": true } } From 3a38d373bab2c144bdd09b6b2c8ba49b820fe47c Mon Sep 17 00:00:00 2001 From: Eric Schneider <37347760+eric-schneider@users.noreply.github.com> Date: Thu, 12 Nov 2026 16:19:51 -0600 Subject: [PATCH 2/2] End clipped search result titles with an ellipsis In the search dialog, a result title too long for its row was cut off mid-letter, which happens mostly on phones. DocSearch's styles set text-overflow on the row, but the title and the snippet under it are flex items, which that setting doesn't reach. The snippet already has its own overflow rules, and the title now gets the same ones, so it ends with an ellipsis instead. Nothing else changes. With the rule added to the dialog on docs.datastax.com, screenshots of a search on a desktop are identical, and on a phone only the ends of the long titles change. --- src/css/site-search.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/css/site-search.css b/src/css/site-search.css index 01afe109..69b16ed3 100644 --- a/src/css/site-search.css +++ b/src/css/site-search.css @@ -132,7 +132,10 @@ border-top-width: 1.5px; } -/* Page rows carry a one-line text snippet; end it with an ellipsis instead of a hard cut. */ +/* End a title or snippet that's too long for its row with an ellipsis instead of a hard cut. + DocSearch sets text-overflow on the row, but the title and snippet are flex items, so it + doesn't reach them. */ +.DocSearch .DocSearch-Hit-title, .DocSearch .DocSearch-Hit-path { overflow: hidden; text-overflow: ellipsis;