mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-29 10:13:54 +00:00
rustdoc: Switch from FxHash to sha256 for static file hashing.
This commit is contained in:
parent
b0c2d2e5b0
commit
3cf8a61a7a
@ -4608,6 +4608,7 @@ dependencies = [
|
|||||||
"rustdoc-json-types",
|
"rustdoc-json-types",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
"sha2",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"threadpool",
|
"threadpool",
|
||||||
|
@ -24,6 +24,7 @@ tracing = "0.1"
|
|||||||
tracing-tree = "0.3.0"
|
tracing-tree = "0.3.0"
|
||||||
threadpool = "1.8.1"
|
threadpool = "1.8.1"
|
||||||
unicode-segmentation = "1.9"
|
unicode-segmentation = "1.9"
|
||||||
|
sha2 = "0.10.8"
|
||||||
|
|
||||||
[dependencies.tracing-subscriber]
|
[dependencies.tracing-subscriber]
|
||||||
version = "0.3.3"
|
version = "0.3.3"
|
||||||
|
@ -44,7 +44,7 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: local('Fira Sans'),
|
src: local('Fira Sans'),
|
||||||
url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");
|
url("FiraSans-Regular-0fe48ade.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -52,7 +52,7 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
src: local('Fira Sans Medium'),
|
src: local('Fira Sans Medium'),
|
||||||
url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");
|
url("FiraSans-Medium-e1aa3f0a.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: local('Source Serif 4'),
|
src: local('Source Serif 4'),
|
||||||
url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");
|
url("SourceSerif4-Regular-6b053e98.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -70,7 +70,7 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: local('Source Serif 4 Italic'),
|
src: local('Source Serif 4 Italic'),
|
||||||
url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");
|
url("SourceSerif4-It-ca3b17ed.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -78,7 +78,7 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
src: local('Source Serif 4 Bold'),
|
src: local('Source Serif 4 Bold'),
|
||||||
url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");
|
url("SourceSerif4-Bold-6d4fd4c0.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,28 +89,28 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
/* Avoid using locally installed font because bad versions are in circulation:
|
/* Avoid using locally installed font because bad versions are in circulation:
|
||||||
* see https://github.com/rust-lang/rust/issues/24355 */
|
* see https://github.com/rust-lang/rust/issues/24355 */
|
||||||
src: url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");
|
src: url("SourceCodePro-Regular-8badfe75.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Source Code Pro';
|
font-family: 'Source Code Pro';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");
|
src: url("SourceCodePro-It-fc8b9304.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Source Code Pro';
|
font-family: 'Source Code Pro';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
src: url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");
|
src: url("SourceCodePro-Semibold-aa29a496.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Avoid using legacy CJK serif fonts in Windows like Batang. */
|
/* Avoid using legacy CJK serif fonts in Windows like Batang. */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'NanumBarunGothic';
|
font-family: 'NanumBarunGothic';
|
||||||
src: url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");
|
src: url("NanumBarunGothic-13b3dcba.ttf.woff2") format("woff2");
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
unicode-range: U+AC00-D7AF, U+1100-11FF, U+3130-318F, U+A960-A97F, U+D7B0-D7FF;
|
unicode-range: U+AC00-D7AF, U+1100-11FF, U+3130-318F, U+A960-A97F, U+D7B0-D7FF;
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,9 @@
|
|||||||
//! All the static files are included here for centralized access in case anything other than the
|
//! All the static files are included here for centralized access in case anything other than the
|
||||||
//! HTML rendering code (say, the theme checker) needs to access one of these files.
|
//! HTML rendering code (say, the theme checker) needs to access one of these files.
|
||||||
|
|
||||||
use std::hash::Hasher;
|
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::{fmt, str};
|
use std::{fmt, str};
|
||||||
|
|
||||||
use rustc_data_structures::fx::FxHasher;
|
|
||||||
|
|
||||||
pub(crate) struct StaticFile {
|
pub(crate) struct StaticFile {
|
||||||
pub(crate) filename: PathBuf,
|
pub(crate) filename: PathBuf,
|
||||||
pub(crate) bytes: &'static [u8],
|
pub(crate) bytes: &'static [u8],
|
||||||
@ -64,9 +61,11 @@ pub(crate) fn static_filename(filename: &str, contents: &[u8]) -> PathBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn static_suffix(bytes: &[u8]) -> String {
|
fn static_suffix(bytes: &[u8]) -> String {
|
||||||
let mut hasher = FxHasher::default();
|
use sha2::Digest;
|
||||||
hasher.write(bytes);
|
let bytes = sha2::Sha256::digest(bytes);
|
||||||
format!("-{:016x}", hasher.finish())
|
let mut digest = format!("-{bytes:x}");
|
||||||
|
digest.truncate(9);
|
||||||
|
digest
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! static_files {
|
macro_rules! static_files {
|
||||||
|
Loading…
Reference in New Issue
Block a user