|
1 | 1 | module PageFind |
2 | | -using NodeJS_22_jll: npx, npm |
| 2 | +using NodeJS_22_jll: npx, npm, node |
3 | 3 | using HypertextLiteral: @htl |
4 | 4 |
|
5 | 5 | function inject_script!(custom_scripts, rootpath) |
@@ -29,16 +29,22 @@ function render() |
29 | 29 | end |
30 | 30 |
|
31 | 31 | function build_search_index(root, docs, config, rootpath) |
32 | | - if !success(Cmd(`$(npx) pagefind -V`; dir = root)) |
33 | | - @info "Installing pagefind into $root." |
34 | | - if !success(Cmd(`$(npm) install pagefind`; dir = root)) |
35 | | - error("Could not install pagefind.") |
| 32 | + # npx and npm are distributed as FileProducts, |
| 33 | + # so the JLL does not bundle environment information into them. |
| 34 | + # To fix this, we wrap all uses of npx and npm inside `node() do ...` |
| 35 | + # which will automatically adjust the necessary environment variables. |
| 36 | + node() do |
| 37 | + if !success(Cmd(`$(npx) pagefind -V`; dir = root)) |
| 38 | + @info "Installing pagefind into $root." |
| 39 | + if !success(Cmd(`$(npm) install pagefind`; dir = root)) |
| 40 | + error("Could not install pagefind.") |
| 41 | + end |
36 | 42 | end |
| 43 | + |
| 44 | + pattern = "*/{$(join(config.index_versions, ","))}/**/*.{html}" |
| 45 | + |
| 46 | + run(`$(npx) pagefind --site $(root) --glob $(pattern) --root-selector article`) |
37 | 47 | end |
38 | | - |
39 | | - pattern = "*/{$(join(config.index_versions, ","))}/**/*.{html}" |
40 | | - |
41 | | - run(`$(npx) pagefind --site $(root) --glob $(pattern) --root-selector article`) |
42 | 48 | return nothing |
43 | 49 | end |
44 | 50 |
|
|
0 commit comments