aboutsummaryrefslogtreecommitdiff
path: root/package_abridge.js
diff options
context:
space:
mode:
authorJieiku2026-08-15 11:29:36 -0700
committerJieiku2026-08-15 11:29:36 -0700
commit9ebaff82f0bbdb3409eb9910a4353a8a66422ff1 (patch)
tree3df37f3c6904291d6811e6daf4e4d3ffcecfeeb5 /package_abridge.js
parentb6e10040f5e8fffe10ec0a01a12196d56337707f (diff)
downloadabridge-9ebaff82f0bbdb3409eb9910a4353a8a66422ff1.tar.gz
abridge-9ebaff82f0bbdb3409eb9910a4353a8a66422ff1.tar.bz2
abridge-9ebaff82f0bbdb3409eb9910a4353a8a66422ff1.zip
Update for Elasticlunr
Diffstat (limited to 'package_abridge.js')
-rw-r--r--package_abridge.js25
1 files changed, 20 insertions, 5 deletions
diff --git a/package_abridge.js b/package_abridge.js
index 30a55e5..879c050 100644
--- a/package_abridge.js
+++ b/package_abridge.js
@@ -225,7 +225,7 @@ async function abridge() {
minify(['static/js/theme_light.js']);
// Something went wrong with minifying katexbundle, so commenting this out for now
// minify(['static/js/katex.min.js','static/js/mathtex-script-type.min.js','static/js/katex-auto-render.min.js','static/js/katexoptions.js'],'static/js/katexbundle.min.js');
- minify(['static/js/elasticlunr.min.js', 'static/js/elasticlunr_bridge.js', 'static/js/search.js'], 'static/js/search_elasticlunr.min.js');
+ minify(['static/js/elasticlunr_scope_begin.js', 'static/js/elasticlunr.min.js', 'static/js/elasticlunr_bridge.js', 'static/js/search.js', 'static/js/elasticlunr_scope_end.js'], 'static/js/search_elasticlunr.min.js');
minify(['static/js/tinysearch.js'], 'static/js/search_tinysearch.min.js');
minify(['static/js/prestyle.js', 'static/js/theme_button.js', 'static/js/email.js', 'static/js/codecopy.js', 'static/js/sw_load.js'], 'static/js/abridge_nosearch.min.js');
minify(['static/js/prestyle.js', 'static/js/theme_button.js', 'static/js/email.js', 'static/js/codecopy.js'], 'static/js/abridge_nosearch_nopwa.min.js');
@@ -328,18 +328,24 @@ function bundle(bpath, js_prestyle, js_switcher, js_email_encode, js_copycode, s
if (search_library) {
if ((search_library === 'offline' || (search_library === 'elasticlunrjava' && uglyurls === true))) {
minify_files.push('public/search_index.en.js');
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_begin.js'));
minify_files.push(path.join(bpath, 'static/js/elasticlunr.min.js'));
- minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));// capture elasticlunr, drop window globals
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));
minify_files.push(path.join(bpath, 'static/js/searchjavaugly.js'));
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_end.js'));
} else if (search_library === 'elasticlunrjava') {
minify_files.push('public/search_index.en.js');
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_begin.js'));
minify_files.push(path.join(bpath, 'static/js/elasticlunr.min.js'));
- minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));// capture elasticlunr, drop window globals
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));
minify_files.push(path.join(bpath, 'static/js/searchjava.js'));
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_end.js'));
} else if (search_library === 'elasticlunr') {//abridge default
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_begin.js'));
minify_files.push(path.join(bpath, 'static/js/elasticlunr.min.js'));
- minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));// capture elasticlunr, drop window globals
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_bridge.js'));
minify_files.push(path.join(bpath, 'static/js/search.js'));
+ minify_files.push(path.join(bpath, 'static/js/elasticlunr_scope_end.js'));
} else if (search_library === 'pagefind') {
minify_files.push(path.join(__dirname, 'static/js/pagefind_search.js'));
} else if (search_library === 'tinysearch') {
@@ -378,7 +384,16 @@ function minify(fileA, outfile) {
return fs.readFileSync(file, 'utf8');
});
- result = UglifyJS.minify(filesContents, options);
+ // Join into one source unit. Uglify parses each array entry as a separate file, so an
+ // IIFE split across elasticlunr_scope_begin.js / … / elasticlunr_scope_end.js would fail.
+ var combined = filesContents.join('\n');
+ result = UglifyJS.minify(combined, options);
+ if (result.error) {
+ throw new Error('UglifyJS failed for ' + outfile + ': ' + result.error);
+ }
+ if (typeof result.code !== 'string') {
+ throw new Error('UglifyJS produced no code for ' + outfile);
+ }
fs.writeFileSync(outfile, result.code);
}