diff options
| author | Guillaume Gomez <guillaume.gomez@huawei.com> | 2021-07-31 16:23:51 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume.gomez@huawei.com> | 2021-08-03 20:03:07 +0200 |
| commit | 6fe09722ea0762405558b6ea5eb5f765a24af9df (patch) | |
| tree | 5384259adb469fda05d7846367bd1e7354487df8 /src/librustdoc/html/render/write_shared.rs | |
| parent | 64c99036600735ef2d92fcbd7e9911617b064624 (diff) | |
| download | rust-6fe09722ea0762405558b6ea5eb5f765a24af9df.tar.gz rust-6fe09722ea0762405558b6ea5eb5f765a24af9df.zip | |
Simplify usage of CSS background-image
Diffstat (limited to 'src/librustdoc/html/render/write_shared.rs')
| -rw-r--r-- | src/librustdoc/html/render/write_shared.rs | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs index f529b2f2bfc..4411b7771ed 100644 --- a/src/librustdoc/html/render/write_shared.rs +++ b/src/librustdoc/html/render/write_shared.rs @@ -126,16 +126,13 @@ impl Context<'_> { emit: &[EmitType], ) -> Result<(), Error> { let tmp; - let contents = - contents.replace("data-url(minus-17x17.png)", static_files::MINUS_PNG_DATAURL); - let contents = contents.replace("data-url(plus-17x17.png)", static_files::PLUS_PNG_DATAURL); let contents = if minify { tmp = if resource.extension() == Some(&OsStr::new("css")) { - minifier::css::minify(&contents).map_err(|e| { + minifier::css::minify(contents).map_err(|e| { Error::new(format!("failed to minify CSS file: {}", e), resource.path(self)) })? } else { - minifier::js::minify(&contents) + minifier::js::minify(contents) }; tmp.as_bytes() } else { @@ -178,9 +175,45 @@ pub(super) fn write_shared( cx.write_shared(SharedResource::InvocationSpecific { basename: p }, content, &options.emit) }; + fn add_background_image_to_css( + cx: &Context<'_>, + css: &mut String, + rule: &str, + file: &'static str, + ) { + css.push_str(&format!( + "{} {{ background-image: url({}); }}", + rule, + SharedResource::ToolchainSpecific { basename: file } + .path(cx) + .file_name() + .unwrap() + .to_str() + .unwrap() + )) + } + + // Add all the static files. These may already exist, but we just + // overwrite them anyway to make sure that they're fresh and up-to-date. + let mut rustdoc_css = static_files::RUSTDOC_CSS.to_owned(); + add_background_image_to_css( + cx, + &mut rustdoc_css, + "details.undocumented[open] > summary::before, \ + details.rustdoc-toggle[open] > summary::before, \ + details.rustdoc-toggle[open] > summary.hideme::before", + "toggle-minus.svg", + ); + add_background_image_to_css( + cx, + &mut rustdoc_css, + "details.undocumented > summary::before, details.rustdoc-toggle > summary::before", + "toggle-plus.svg", + ); + write_minify("rustdoc.css", &rustdoc_css)?; + // Add all the static files. These may already exist, but we just // overwrite them anyway to make sure that they're fresh and up-to-date. - write_minify("rustdoc.css", static_files::RUSTDOC_CSS)?; write_minify("settings.css", static_files::SETTINGS_CSS)?; write_minify("noscript.css", static_files::NOSCRIPT_CSS)?; @@ -220,6 +253,8 @@ pub(super) fn write_shared( write_toolchain("wheel.svg", static_files::WHEEL_SVG)?; write_toolchain("clipboard.svg", static_files::CLIPBOARD_SVG)?; write_toolchain("down-arrow.svg", static_files::DOWN_ARROW_SVG)?; + write_toolchain("toggle-minus.svg", static_files::TOGGLE_MINUS_PNG)?; + write_toolchain("toggle-plus.svg", static_files::TOGGLE_PLUS_PNG)?; let mut themes: Vec<&String> = themes.iter().collect(); themes.sort(); |
