From: Debian Rust Maintainers Date: Sat, 2 Oct 2021 01:08:00 +0100 Subject: d-0002-mdbook-strip-embedded-libs Description: Use https://github.com/infinity0/mdBook/tree/debian to help you rebase the patch on top of a newer version. . Make sure the paths here match the ones in debian/rust-doc.links Forwarded: not-needed --- src/doc/rust-by-example/theme/index.hbs | 86 +---------------- src/tools/linkchecker/main.rs | 28 +++++- vendor/mdbook/src/book/init.rs | 19 ---- .../src/renderer/html_handlebars/hbs_renderer.rs | 104 ++++----------------- .../mdbook/src/renderer/html_handlebars/search.rs | 2 - vendor/mdbook/src/theme/index.hbs | 86 +---------------- vendor/mdbook/src/theme/mod.rs | 27 ------ vendor/mdbook/src/theme/searcher/mod.rs | 2 - 8 files changed, 51 insertions(+), 303 deletions(-) diff --git a/src/doc/rust-by-example/theme/index.hbs b/src/doc/rust-by-example/theme/index.hbs index 1ae579f..effac81 100644 --- a/src/doc/rust-by-example/theme/index.hbs +++ b/src/doc/rust-by-example/theme/index.hbs @@ -33,10 +33,7 @@ {{/if}} - - {{#if copy_fonts}} - - {{/if}} + @@ -50,7 +47,7 @@ {{#if mathjax_support}} - + {{/if}} @@ -61,35 +58,6 @@ var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}"; - - - - - - @@ -309,54 +277,8 @@ {{/if}} - {{#if google_analytics}} - - - {{/if}} - - {{#if playground_line_numbers}} - - {{/if}} - - {{#if playground_copyable}} - - {{/if}} - - {{#if playground_js}} - - - - - - {{/if}} - - {{#if search_js}} - - - - {{/if}} - - - - + + {{#each additional_js}} diff --git a/src/tools/linkchecker/main.rs b/src/tools/linkchecker/main.rs index 7f73cac..e4805cc 100644 --- a/src/tools/linkchecker/main.rs +++ b/src/tools/linkchecker/main.rs @@ -159,7 +159,17 @@ impl Checker { for entry in t!(dir.read_dir()).map(|e| t!(e)) { let path = entry.path(); // Goes through symlinks - let metadata = t!(fs::metadata(&path)); + let metadata = fs::metadata(&path); + if let Err(err) = metadata { + if let Ok(target) = fs::read_link(&path) { + if target.starts_with("/usr/share") { + // broken symlink to /usr/share, ok for our Debian build + return; + } + } + panic!("error at file {:?} while walking - {:?}", path, err) + } + let metadata = t!(metadata); if metadata.is_dir() { self.walk(&path, report); } else { @@ -172,7 +182,15 @@ impl Checker { fn check(&mut self, file: &Path, report: &mut Report) { let (pretty_path, entry) = self.load_file(file, report); let source = match entry { - FileEntry::Missing => panic!("missing file {:?} while walking", file), + FileEntry::Missing => { + if let Ok(target) = fs::read_link(&file) { + if target.starts_with("/usr/share") { + // broken symlink to /usr/share, ok for our Debian build + return; + } + } + panic!("missing file {:?} while walking", file) + } FileEntry::Dir => unreachable!("never with `check` path"), FileEntry::OtherFile => return, FileEntry::Redirect { .. } => return, @@ -238,6 +256,12 @@ impl Checker { let (target_pretty_path, target_entry) = self.load_file(&path, report); let (target_source, target_ids) = match target_entry { FileEntry::Missing => { + if let Ok(target) = fs::read_link(&path) { + if target.starts_with("/usr/share") { + // broken symlink to /usr/share, ok for our Debian build + return; + } + } if is_exception(file, &target_pretty_path) { report.links_ignored_exception += 1; } else { diff --git a/vendor/mdbook/src/book/init.rs b/vendor/mdbook/src/book/init.rs index faca1d0..c1a82a3 100644 --- a/vendor/mdbook/src/book/init.rs +++ b/vendor/mdbook/src/book/init.rs @@ -153,25 +153,6 @@ impl BookBuilder { let mut js = File::create(themedir.join("book.js"))?; js.write_all(theme::JS)?; - let mut highlight_css = File::create(themedir.join("highlight.css"))?; - highlight_css.write_all(theme::HIGHLIGHT_CSS)?; - - let mut highlight_js = File::create(themedir.join("highlight.js"))?; - highlight_js.write_all(theme::HIGHLIGHT_JS)?; - - write_file(&themedir.join("fonts"), "fonts.css", theme::fonts::CSS)?; - for (file_name, contents) in theme::fonts::LICENSES { - write_file(&themedir, file_name, contents)?; - } - for (file_name, contents) in theme::fonts::OPEN_SANS.iter() { - write_file(&themedir, file_name, contents)?; - } - write_file( - &themedir, - theme::fonts::SOURCE_CODE_PRO.0, - theme::fonts::SOURCE_CODE_PRO.1, - )?; - Ok(()) } diff --git a/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs b/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs index 8ea2f49..3cb1c9f 100644 --- a/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs +++ b/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs @@ -3,13 +3,14 @@ use crate::config::{BookConfig, Code, Config, HtmlConfig, Playground, RustEditio use crate::errors::*; use crate::renderer::html_handlebars::helpers; use crate::renderer::{RenderContext, Renderer}; -use crate::theme::{self, playground_editor, Theme}; +use crate::theme::{self, Theme}; use crate::utils; use std::borrow::Cow; use std::collections::BTreeMap; use std::collections::HashMap; use std::fs::{self, File}; +use std::os::unix::fs::symlink; use std::path::{Path, PathBuf}; use crate::utils::fs::get_404_output_file; @@ -250,99 +251,28 @@ impl HtmlHandlebars { if let Some(contents) = &theme.favicon_svg { write_file(destination, "favicon.svg", contents)?; } - write_file(destination, "highlight.css", &theme.highlight_css)?; write_file(destination, "tomorrow-night.css", &theme.tomorrow_night_css)?; write_file(destination, "ayu-highlight.css", &theme.ayu_highlight_css)?; - write_file(destination, "highlight.js", &theme.highlight_js)?; - write_file(destination, "clipboard.min.js", &theme.clipboard_js)?; - write_file( - destination, - "FontAwesome/css/font-awesome.css", - theme::FONT_AWESOME, - )?; - write_file( - destination, - "FontAwesome/fonts/fontawesome-webfont.eot", - theme::FONT_AWESOME_EOT, - )?; - write_file( - destination, - "FontAwesome/fonts/fontawesome-webfont.svg", - theme::FONT_AWESOME_SVG, + symlink( + "/usr/share/fonts-font-awesome/css/font-awesome.min.css", + destination.join("css/font-awesome.min.css"), )?; - write_file( - destination, - "FontAwesome/fonts/fontawesome-webfont.ttf", - theme::FONT_AWESOME_TTF, + symlink( + "/usr/share/fonts-font-awesome/fonts", + destination.join("fonts"), )?; - write_file( - destination, - "FontAwesome/fonts/fontawesome-webfont.woff", - theme::FONT_AWESOME_WOFF, + symlink( + "/usr/share/javascript/highlight.js/styles/atelier-dune-light.css", + destination.join("highlight.css"), )?; - write_file( - destination, - "FontAwesome/fonts/fontawesome-webfont.woff2", - theme::FONT_AWESOME_WOFF2, + symlink( + "/usr/share/javascript/highlight.js/highlight.js", + destination.join("highlight.js"), )?; - write_file( - destination, - "FontAwesome/fonts/FontAwesome.ttf", - theme::FONT_AWESOME_TTF, + symlink( + "/usr/share/javascript/mathjax/MathJax.js", + destination.join("MathJax.js"), )?; - // Don't copy the stock fonts if the user has specified their own fonts to use. - if html_config.copy_fonts && theme.fonts_css.is_none() { - write_file(destination, "fonts/fonts.css", theme::fonts::CSS)?; - for (file_name, contents) in theme::fonts::LICENSES.iter() { - write_file(destination, file_name, contents)?; - } - for (file_name, contents) in theme::fonts::OPEN_SANS.iter() { - write_file(destination, file_name, contents)?; - } - write_file( - destination, - theme::fonts::SOURCE_CODE_PRO.0, - theme::fonts::SOURCE_CODE_PRO.1, - )?; - } - if let Some(fonts_css) = &theme.fonts_css { - if !fonts_css.is_empty() { - write_file(destination, "fonts/fonts.css", fonts_css)?; - } - } - if !html_config.copy_fonts && theme.fonts_css.is_none() { - warn!( - "output.html.copy-fonts is deprecated.\n\ - This book appears to have copy-fonts=false in book.toml without a fonts.css file.\n\ - Add an empty `theme/fonts/fonts.css` file to squelch this warning." - ); - } - for font_file in &theme.font_files { - let contents = fs::read(font_file)?; - let filename = font_file.file_name().unwrap(); - let filename = Path::new("fonts").join(filename); - write_file(destination, filename, &contents)?; - } - - let playground_config = &html_config.playground; - - // Ace is a very large dependency, so only load it when requested - if playground_config.editable && playground_config.copy_js { - // Load the editor - write_file(destination, "editor.js", playground_editor::JS)?; - write_file(destination, "ace.js", playground_editor::ACE_JS)?; - write_file(destination, "mode-rust.js", playground_editor::MODE_RUST_JS)?; - write_file( - destination, - "theme-dawn.js", - playground_editor::THEME_DAWN_JS, - )?; - write_file( - destination, - "theme-tomorrow_night.js", - playground_editor::THEME_TOMORROW_NIGHT_JS, - )?; - } Ok(()) } diff --git a/vendor/mdbook/src/renderer/html_handlebars/search.rs b/vendor/mdbook/src/renderer/html_handlebars/search.rs index 24d62fd..849a48c 100644 --- a/vendor/mdbook/src/renderer/html_handlebars/search.rs +++ b/vendor/mdbook/src/renderer/html_handlebars/search.rs @@ -53,8 +53,6 @@ pub fn create_files(search_config: &Search, destination: &Path, book: &Book) -> format!("Object.assign(window.search, {});", index).as_bytes(), )?; utils::fs::write_file(destination, "searcher.js", searcher::JS)?; - utils::fs::write_file(destination, "mark.min.js", searcher::MARK_JS)?; - utils::fs::write_file(destination, "elasticlunr.min.js", searcher::ELASTICLUNR_JS)?; debug!("Copying search files ✓"); } diff --git a/vendor/mdbook/src/theme/index.hbs b/vendor/mdbook/src/theme/index.hbs index 080b785..f6064f6 100644 --- a/vendor/mdbook/src/theme/index.hbs +++ b/vendor/mdbook/src/theme/index.hbs @@ -33,10 +33,7 @@ {{/if}} - - {{#if copy_fonts}} - - {{/if}} + @@ -50,7 +47,7 @@ {{#if mathjax_support}} - + {{/if}} @@ -61,35 +58,6 @@ var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}"; - - - - - - @@ -269,54 +237,8 @@ {{/if}} - {{#if google_analytics}} - - - {{/if}} - - {{#if playground_line_numbers}} - - {{/if}} - - {{#if playground_copyable}} - - {{/if}} - - {{#if playground_js}} - - - - - - {{/if}} - - {{#if search_js}} - - - - {{/if}} - - - - + + {{#each additional_js}} diff --git a/vendor/mdbook/src/theme/mod.rs b/vendor/mdbook/src/theme/mod.rs index 6e6b509..ef8886b 100644 --- a/vendor/mdbook/src/theme/mod.rs +++ b/vendor/mdbook/src/theme/mod.rs @@ -1,9 +1,5 @@ #![allow(missing_docs)] -pub mod playground_editor; - -pub mod fonts; - #[cfg(feature = "search")] pub mod searcher; @@ -24,19 +20,8 @@ pub static VARIABLES_CSS: &[u8] = include_bytes!("css/variables.css"); pub static FAVICON_PNG: &[u8] = include_bytes!("favicon.png"); pub static FAVICON_SVG: &[u8] = include_bytes!("favicon.svg"); pub static JS: &[u8] = include_bytes!("book.js"); -pub static HIGHLIGHT_JS: &[u8] = include_bytes!("highlight.js"); pub static TOMORROW_NIGHT_CSS: &[u8] = include_bytes!("tomorrow-night.css"); -pub static HIGHLIGHT_CSS: &[u8] = include_bytes!("highlight.css"); pub static AYU_HIGHLIGHT_CSS: &[u8] = include_bytes!("ayu-highlight.css"); -pub static CLIPBOARD_JS: &[u8] = include_bytes!("clipboard.min.js"); -pub static FONT_AWESOME: &[u8] = include_bytes!("FontAwesome/css/font-awesome.min.css"); -pub static FONT_AWESOME_EOT: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.eot"); -pub static FONT_AWESOME_SVG: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.svg"); -pub static FONT_AWESOME_TTF: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.ttf"); -pub static FONT_AWESOME_WOFF: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.woff"); -pub static FONT_AWESOME_WOFF2: &[u8] = - include_bytes!("FontAwesome/fonts/fontawesome-webfont.woff2"); -pub static FONT_AWESOME_OTF: &[u8] = include_bytes!("FontAwesome/fonts/FontAwesome.otf"); /// The `Theme` struct should be used instead of the static variables because /// the `new()` method will look if the user has a theme directory in their @@ -59,11 +44,8 @@ pub struct Theme { pub favicon_png: Option>, pub favicon_svg: Option>, pub js: Vec, - pub highlight_css: Vec, pub tomorrow_night_css: Vec, pub ayu_highlight_css: Vec, - pub highlight_js: Vec, - pub clipboard_js: Vec, } impl Theme { @@ -93,9 +75,6 @@ impl Theme { theme_dir.join("css/variables.css"), &mut theme.variables_css, ), - (theme_dir.join("highlight.js"), &mut theme.highlight_js), - (theme_dir.join("clipboard.min.js"), &mut theme.clipboard_js), - (theme_dir.join("highlight.css"), &mut theme.highlight_css), ( theme_dir.join("tomorrow-night.css"), &mut theme.tomorrow_night_css, @@ -183,11 +162,8 @@ impl Default for Theme { favicon_png: Some(FAVICON_PNG.to_owned()), favicon_svg: Some(FAVICON_SVG.to_owned()), js: JS.to_owned(), - highlight_css: HIGHLIGHT_CSS.to_owned(), tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(), ayu_highlight_css: AYU_HIGHLIGHT_CSS.to_owned(), - highlight_js: HIGHLIGHT_JS.to_owned(), - clipboard_js: CLIPBOARD_JS.to_owned(), } } } @@ -273,11 +249,8 @@ mod tests { favicon_png: Some(Vec::new()), favicon_svg: Some(Vec::new()), js: Vec::new(), - highlight_css: Vec::new(), tomorrow_night_css: Vec::new(), ayu_highlight_css: Vec::new(), - highlight_js: Vec::new(), - clipboard_js: Vec::new(), }; assert_eq!(got, empty); diff --git a/vendor/mdbook/src/theme/searcher/mod.rs b/vendor/mdbook/src/theme/searcher/mod.rs index d5029db..59eda8a 100644 --- a/vendor/mdbook/src/theme/searcher/mod.rs +++ b/vendor/mdbook/src/theme/searcher/mod.rs @@ -2,5 +2,3 @@ //! the "search" cargo feature is disabled. pub static JS: &[u8] = include_bytes!("searcher.js"); -pub static MARK_JS: &[u8] = include_bytes!("mark.min.js"); -pub static ELASTICLUNR_JS: &[u8] = include_bytes!("elasticlunr.min.js");