From 91a2200a11dd3bd34eabbfcdbe95688d6d5764f1 Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Fri, 12 Jan 2024 12:14:18 +0100 Subject: [PATCH] fix: dockerfile tooltips should match only keywords Before this change, the Dockerfile tooltip script marked all occurences of keywords, as defined by the lexer, as Dockerfile instructions in a `dockerfile` code block. This meant some tokens parsed from heredocs would be included. The matched keyword token is now compared against a hard-coded list of actual Dockerfile instructions before they're annotated. Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> --- assets/js/src/tooltip.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/assets/js/src/tooltip.js b/assets/js/src/tooltip.js index 50707cda64..6e66dc6f4e 100644 --- a/assets/js/src/tooltip.js +++ b/assets/js/src/tooltip.js @@ -1,4 +1,25 @@ -const cmds = document.querySelectorAll(".language-dockerfile span.k"); +const keywords = [ + "ADD", + "ARG", + "CMD", + "COPY", + "ENTRYPOINT", + "ENV", + "EXPOSE", + "FROM", + "HEALTHCHECK", + "LABEL", + // "MAINTAINER", + "ONBUILD", + "RUN", + "SHELL", + "STOPSIGNAL", + "USER", + "VOLUME", + "WORKDIR", +] +const cmds = Array.from(document.querySelectorAll(".language-dockerfile span.k")) + .filter((el) => keywords.some(kwd => el.textContent.includes(kwd))); for (const cmd of cmds) { const name = cmd.textContent;