From e99bf3b9616ba34ba15c46c32cc72573dfbf3484 Mon Sep 17 00:00:00 2001 From: dish Date: Sat, 8 Nov 2025 16:01:07 -0500 Subject: [PATCH] katex: migrate from nodePackages --- pkgs/by-name/ka/katex/package.nix | 67 +++++++++++++++++++ pkgs/development/node-packages/aliases.nix | 1 + .../node-packages/node-packages.json | 1 - .../node-packages/node-packages.nix | 21 ------ 4 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 pkgs/by-name/ka/katex/package.nix diff --git a/pkgs/by-name/ka/katex/package.nix b/pkgs/by-name/ka/katex/package.nix new file mode 100644 index 000000000000..3c01de945680 --- /dev/null +++ b/pkgs/by-name/ka/katex/package.nix @@ -0,0 +1,67 @@ +{ + lib, + stdenv, + fetchFromGitHub, + yarn-berry, + nodejs, + makeBinaryWrapper, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "katex"; + version = "0.16.25"; + + src = fetchFromGitHub { + owner = "katex"; + repo = "katex"; + rev = "v${finalAttrs.version}"; + hash = "sha256-XwKjoXkn96YNxrBv2qcUSqKMtHxz9+levevc4Rz1SYw="; + }; + + offlineCache = yarn-berry.fetchYarnBerryDeps { + inherit (finalAttrs) src; + hash = "sha256-vPYzt+ZBbi1sR7T1I08f/syTnN8hnUTqH4fKCBiFIM0="; + }; + + nativeBuildInputs = [ + yarn-berry.yarnBerryConfigHook + yarn-berry + nodejs + makeBinaryWrapper + ]; + + buildPhase = '' + runHook preBuild + + yarn build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + yarn config set nodeLinker "node-modules" + yarn install --mode=skip-build --inline-builds + mkdir -p $out/lib/node_modules/katex/ + mkdir $out/bin + mv * $out/lib/node_modules/katex/ + makeWrapper ${lib.getExe nodejs} $out/bin/katex \ + --add-flags "$out/lib/node_modules/katex/cli.js" \ + --set NODE_PATH "$out/lib/node_modules/katex/node_modules" + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + changelog = "https://github.com/KaTeX/KaTeX/releases/tag/v${finalAttrs.version}"; + description = "Render TeX to HTML"; + homepage = "https://katex.org/"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.pyrox0 ]; + mainProgram = "katex"; + }; +}) diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix index dc1d6b7986f5..f05a7ab63cd5 100644 --- a/pkgs/development/node-packages/aliases.nix +++ b/pkgs/development/node-packages/aliases.nix @@ -203,6 +203,7 @@ mapAliases { joplin = pkgs.joplin-cli; # Added 2025-11-02 inherit (pkgs) kaput-cli; # added 2024-12-03 karma = pkgs.karma-runner; # added 2023-07-29 + inherit (pkgs) katex; # Added 2025-11-08 keyoxide = pkgs.keyoxide-cli; # Added 2025-10-20 leetcode-cli = self.vsc-leetcode-cli; # added 2023-08-31 inherit (pkgs) lerna; # added 2025-02-12 diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index 23004c2d7a22..c3283adf1511 100644 --- a/pkgs/development/node-packages/node-packages.json +++ b/pkgs/development/node-packages/node-packages.json @@ -39,7 +39,6 @@ , "json" , "json-refs" , "jsonlint" -, "katex" , "lcov-result-merger" , "live-server" , "livedown" diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix index 82a019701046..8639481e8a11 100644 --- a/pkgs/development/node-packages/node-packages.nix +++ b/pkgs/development/node-packages/node-packages.nix @@ -34589,27 +34589,6 @@ in bypassCache = true; reconstructLock = true; }; - katex = nodeEnv.buildNodePackage { - name = "katex"; - packageName = "katex"; - version = "0.16.21"; - src = fetchurl { - url = "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz"; - sha512 = "XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A=="; - }; - dependencies = [ - sources."commander-8.3.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Fast math typesetting for the web"; - homepage = "https://katex.org"; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; lcov-result-merger = nodeEnv.buildNodePackage { name = "lcov-result-merger"; packageName = "lcov-result-merger";