From b9ca108fcae2b738ca3f0c88c84ae5dc5a6f843f Mon Sep 17 00:00:00 2001 From: Tim Ryan Date: Mon, 14 May 2018 06:22:21 -0400 Subject: [PATCH] Support reproducible builds by forcing window.search to use stable key ordering. (#692) See --- src/vendor/mdbook/src/renderer/html_handlebars/search.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vendor/mdbook/src/renderer/html_handlebars/search.rs b/src/vendor/mdbook/src/renderer/html_handlebars/search.rs index d49772f8b..1ee66a511 100644 --- a/src/vendor/mdbook/src/renderer/html_handlebars/search.rs +++ b/src/vendor/mdbook/src/renderer/html_handlebars/search.rs @@ -205,6 +205,10 @@ fn write_to_js(index: Index, search_config: &Search) -> Result { searchoptions, index, }; + + // By converting to serde_json::Value as an intermediary, we use a + // BTreeMap internally and can force a stable ordering of map keys. + let json_contents = serde_json::to_value(&json_contents)?; let json_contents = serde_json::to_string(&json_contents)?; Ok(format!("window.search = {};", json_contents))