From 2c382a58d30ffe031dee25b3597e4a5aaa3fd87c Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 2 Apr 2025 11:10:37 +0200 Subject: [PATCH] Greatly speed up search index load --- src/renderer/html_handlebars/search.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/renderer/html_handlebars/search.rs b/src/renderer/html_handlebars/search.rs index ffa104b3..fe2edd5b 100644 --- a/src/renderer/html_handlebars/search.rs +++ b/src/renderer/html_handlebars/search.rs @@ -66,7 +66,13 @@ pub fn create_files( if search_config.copy_js { static_files.add_builtin( "searchindex.js", - format!("Object.assign(window.search, {});", index).as_bytes(), + // To reduce the size of the generated JSON by preventing all `"` characters to be + // escaped, we instead surround the string with much less common `'` character. + format!( + "window.search = JSON.parse('{}');", + index.replace("\\", "\\\\").replace("'", "\\'") + ) + .as_bytes(), ); static_files.add_builtin("searcher.js", searcher::JS); static_files.add_builtin("mark.min.js", searcher::MARK_JS);