|
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