Skip to contentSkip to conversation

rust: docs: fix logo replacement

PATCH Applied Miguel Ojeda 4 participants 5 messages Oct 18, 2023 – Oct 19, 2023

Subsystems (4)
lore
Share & tools
lore

Miguel Ojeda

author maintainer
#0 lore raw

PATCH 1/1 rust: docs: fix logo replacement

The static files placement by rustdoc changed in Rust 1.67.0 [1], but the custom code we have to replace the logo in the generated HTML files did not get updated.

Thus update it to have the Linux logo again in the output.

Hopefully rustdoc will eventually support a custom logo from a local file [2], so that we do not need to maintain this hack on our side.

---
 rust/Makefile | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
rust/Makefile +7 -8
index 87958e864be0..08af1f869f0c 100644
@@ -93,15 +93,14 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
 # and then retouch the generated files.
 rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
     rustdoc-alloc rustdoc-kernel
-	$(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)
-	$(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)
+	$(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/
+	$(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/
 	$(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \
-		-e 's:rust-logo\.svg:logo.svg:g' \
-		-e 's:rust-logo\.png:logo.svg:g' \
-		-e 's:favicon\.svg:logo.svg:g' \
-		-e 's:<link rel="alternate icon" type="image/png" href="[./]*favicon-(16x16|32x32)\.png">::g'
-	$(Q)echo '.logo-container > img { object-fit: contain; }' \
-		>> $(rustdoc_output)/rustdoc.css
+		-e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \
+		-e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \
+		-e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g'
+	$(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \
+		echo ".logo-container > img { object-fit: contain; }" >> $$f; done
 
 rustdoc-macros: private rustdoc_host = yes
 rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \
Signature · 1 line
2.42.0
#1 lore raw
Quoted 2 lines · Miguel Ojeda

Thus update it to have the Linux logo again in the output.

Cc'ing docs and kbuild, by the way, in case they want to take a look.

Cheers,
Miguel

Tested-by on v1 1/1
#2 lore raw
In reply to Miguel Ojeda
Quoted 10 lines · Miguel Ojeda

The static files placement by rustdoc changed in Rust 1.67.0 [1], but the custom code we have to replace the logo in the generated HTML files did not get updated.

Thus update it to have the Linux logo again in the output.

Hopefully rustdoc will eventually support a custom logo from a local file [2], so that we do not need to maintain this hack on our side.

Quoted 5 lines

Works for me.

Signature · 2 lines
Cheers,
Benno
Applied
#3 lore raw
In reply to Miguel Ojeda
Quoted 11 lines · Miguel Ojeda

The static files placement by rustdoc changed in Rust 1.67.0 [1], but the custom code we have to replace the logo in the generated HTML files did not get updated.

Thus update it to have the Linux logo again in the output.

Hopefully rustdoc will eventually support a custom logo from a local file [2], so that we do not need to maintain this hack on our side.

Quoted 5 lines

Applied to rust-fixes early to start getting some time in linux-next -- please feel free to send more reviews, thanks!

Cheers,
Miguel

Reviewed-by on v1 1/1
#4 lore raw
In reply to Miguel Ojeda
Quoted 10 lines · Miguel Ojeda

The static files placement by rustdoc changed in Rust 1.67.0 [1], but the custom code we have to replace the logo in the generated HTML files did not get updated.

Thus update it to have the Linux logo again in the output.

Hopefully rustdoc will eventually support a custom logo from a local file [2], so that we do not need to maintain this hack on our side.

Quoted 5 lines
Quoted 31 lines
---
 rust/Makefile | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
rust/Makefile +7 -8
index 87958e864be0..08af1f869f0c 100644
@@ -93,15 +93,14 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
 # and then retouch the generated files.
 rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
     rustdoc-alloc rustdoc-kernel
-	$(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)
-	$(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)
+	$(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/
+	$(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/
 	$(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \
-		-e 's:rust-logo\.svg:logo.svg:g' \
-		-e 's:rust-logo\.png:logo.svg:g' \
-		-e 's:favicon\.svg:logo.svg:g' \
-		-e 's:<link rel="alternate icon" type="image/png" href="[./]*favicon-(16x16|32x32)\.png">::g'
-	$(Q)echo '.logo-container > img { object-fit: contain; }' \
-		>> $(rustdoc_output)/rustdoc.css
+		-e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \
+		-e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \
+		-e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g'
+	$(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \
+		echo ".logo-container > img { object-fit: contain; }" >> $$f; done
 
 rustdoc-macros: private rustdoc_host = yes
 rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \