mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-17 22:09:53 +00:00
370 lines
15 KiB
Diff
370 lines
15 KiB
Diff
Description: Use local web resources instead of remote ones
|
|
Author: Matthijs van Otterdijk <matthijs@wirevirt.net>
|
|
Author: Ximin Luo <infinity0@debian.org>
|
|
Bug: https://github.com/azerupi/mdBook/issues/271
|
|
Comment:
|
|
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
|
|
---
|
|
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
|
--- a/src/tools/linkchecker/main.rs
|
|
+++ b/src/tools/linkchecker/main.rs
|
|
@@ -321,6 +321,15 @@
|
|
println!("`#{}` pointing to `{}`", fragment, pretty_path.display());
|
|
};
|
|
}
|
|
+ } else if fs::symlink_metadata(&path).is_ok() {
|
|
+ let target = fs::read_link(&path).unwrap();
|
|
+ if target.starts_with("/usr/share") {
|
|
+ // broken symlink to /usr/share, ok for our Debian build
|
|
+ return;
|
|
+ }
|
|
+ *errors = true;
|
|
+ print!("{}:{}: broken link - ", path.display(), i + 1);
|
|
+ println!("{}", path.display());
|
|
} else {
|
|
let pretty_path = path.strip_prefix(root).unwrap_or(&path);
|
|
if !is_exception(file, pretty_path.to_str().unwrap()) {
|
|
--- a/vendor/mdbook/src/theme/index.hbs
|
|
+++ b/vendor/mdbook/src/theme/index.hbs
|
|
@@ -34,10 +34,7 @@
|
|
{{/if}}
|
|
|
|
<!-- Fonts -->
|
|
- <link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css">
|
|
- {{#if copy_fonts}}
|
|
- <link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css">
|
|
- {{/if}}
|
|
+ <link rel="stylesheet" href="{{ path_to_root }}css/font-awesome.min.css">
|
|
|
|
<!-- Highlight.js Stylesheets -->
|
|
<link rel="stylesheet" href="{{ path_to_root }}highlight.css">
|
|
@@ -51,7 +48,7 @@
|
|
|
|
{{#if mathjax_support}}
|
|
<!-- MathJax -->
|
|
- <script async type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
+ <script async type="text/javascript" src="MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
{{/if}}
|
|
</head>
|
|
<body>
|
|
@@ -61,46 +58,6 @@
|
|
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
|
|
</script>
|
|
|
|
- <!-- Work around some values being stored in localStorage wrapped in quotes -->
|
|
- <script type="text/javascript">
|
|
- try {
|
|
- var theme = localStorage.getItem('mdbook-theme');
|
|
- var sidebar = localStorage.getItem('mdbook-sidebar');
|
|
-
|
|
- if (theme.startsWith('"') && theme.endsWith('"')) {
|
|
- localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
|
- }
|
|
-
|
|
- if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
|
- localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
|
- }
|
|
- } catch (e) { }
|
|
- </script>
|
|
-
|
|
- <!-- Set the theme before any content is loaded, prevents flash -->
|
|
- <script type="text/javascript">
|
|
- var theme;
|
|
- try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
|
- if (theme === null || theme === undefined) { theme = default_theme; }
|
|
- var html = document.querySelector('html');
|
|
- html.classList.remove('no-js')
|
|
- html.classList.remove('{{ default_theme }}')
|
|
- html.classList.add(theme);
|
|
- html.classList.add('js');
|
|
- </script>
|
|
-
|
|
- <!-- Hide / unhide sidebar before it is displayed -->
|
|
- <script type="text/javascript">
|
|
- var html = document.querySelector('html');
|
|
- var sidebar = 'hidden';
|
|
- if (document.body.clientWidth >= 1080) {
|
|
- try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
|
- sidebar = sidebar || 'visible';
|
|
- }
|
|
- html.classList.remove('sidebar-visible');
|
|
- html.classList.add("sidebar-" + sidebar);
|
|
- </script>
|
|
-
|
|
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
|
<div class="sidebar-scrollbox">
|
|
{{#toc}}{{/toc}}
|
|
@@ -230,52 +187,6 @@
|
|
</script>
|
|
{{/if}}
|
|
|
|
- {{#if google_analytics}}
|
|
- <!-- Google Analytics Tag -->
|
|
- <script type="text/javascript">
|
|
- var localAddrs = ["localhost", "127.0.0.1", ""];
|
|
-
|
|
- // make sure we don't activate google analytics if the developer is
|
|
- // inspecting the book locally...
|
|
- if (localAddrs.indexOf(document.location.hostname) === -1) {
|
|
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
- })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
-
|
|
- ga('create', '{{google_analytics}}', 'auto');
|
|
- ga('send', 'pageview');
|
|
- }
|
|
- </script>
|
|
- {{/if}}
|
|
-
|
|
- {{#if playground_line_numbers}}
|
|
- <script type="text/javascript">
|
|
- window.playground_line_numbers = true;
|
|
- </script>
|
|
- {{/if}}
|
|
-
|
|
- {{#if playground_copyable}}
|
|
- <script type="text/javascript">
|
|
- window.playground_copyable = true;
|
|
- </script>
|
|
- {{/if}}
|
|
-
|
|
- {{#if playground_js}}
|
|
- <script src="{{ path_to_root }}ace.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}editor.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}mode-rust.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}theme-dawn.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}theme-tomorrow_night.js" type="text/javascript" charset="utf-8"></script>
|
|
- {{/if}}
|
|
-
|
|
- {{#if search_js}}
|
|
- <script src="{{ path_to_root }}elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}mark.min.js" type="text/javascript" charset="utf-8"></script>
|
|
- <script src="{{ path_to_root }}searcher.js" type="text/javascript" charset="utf-8"></script>
|
|
- {{/if}}
|
|
-
|
|
- <script src="{{ path_to_root }}clipboard.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="{{ path_to_root }}highlight.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="{{ path_to_root }}book.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
--- a/vendor/mdbook/src/book/init.rs
|
|
+++ b/vendor/mdbook/src/book/init.rs
|
|
@@ -151,12 +151,6 @@
|
|
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)?;
|
|
-
|
|
Ok(())
|
|
}
|
|
|
|
--- a/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs
|
|
+++ b/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs
|
|
@@ -3,7 +3,7 @@
|
|
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;
|
|
@@ -11,6 +11,7 @@
|
|
use std::collections::HashMap;
|
|
use std::fs::{self, File};
|
|
use std::path::{Path, PathBuf};
|
|
+use std::os::unix::fs::symlink;
|
|
|
|
use crate::utils::fs::get_404_output_file;
|
|
use handlebars::Handlebars;
|
|
@@ -204,80 +205,13 @@
|
|
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,
|
|
- )?;
|
|
- write_file(
|
|
- destination,
|
|
- "FontAwesome/fonts/fontawesome-webfont.ttf",
|
|
- theme::FONT_AWESOME_TTF,
|
|
- )?;
|
|
- write_file(
|
|
- destination,
|
|
- "FontAwesome/fonts/fontawesome-webfont.woff",
|
|
- theme::FONT_AWESOME_WOFF,
|
|
- )?;
|
|
- write_file(
|
|
- destination,
|
|
- "FontAwesome/fonts/fontawesome-webfont.woff2",
|
|
- theme::FONT_AWESOME_WOFF2,
|
|
- )?;
|
|
- write_file(
|
|
- destination,
|
|
- "FontAwesome/fonts/FontAwesome.ttf",
|
|
- theme::FONT_AWESOME_TTF,
|
|
- )?;
|
|
- if html_config.copy_fonts {
|
|
- 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,
|
|
- )?;
|
|
- }
|
|
-
|
|
- 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,
|
|
- )?;
|
|
- }
|
|
+ symlink("/usr/share/fonts-font-awesome/css/font-awesome.min.css", destination.join("css/font-awesome.min.css"))?;
|
|
+ symlink("/usr/share/fonts-font-awesome/fonts", destination.join("fonts"))?;
|
|
+ symlink("/usr/share/javascript/highlight.js/styles/atelier-dune-light.css", destination.join("highlight.css"))?;
|
|
+ symlink("/usr/share/javascript/highlight.js/highlight.js", destination.join("highlight.js"))?;
|
|
+ symlink("/usr/share/javascript/mathjax/MathJax.js", destination.join("MathJax.js"))?;
|
|
|
|
Ok(())
|
|
}
|
|
--- a/vendor/mdbook/src/renderer/html_handlebars/search.rs
|
|
+++ b/vendor/mdbook/src/renderer/html_handlebars/search.rs
|
|
@@ -34,8 +34,6 @@
|
|
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 ✓");
|
|
}
|
|
|
|
--- 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 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
|
|
@@ -57,11 +42,8 @@
|
|
pub favicon_png: Option<Vec<u8>>,
|
|
pub favicon_svg: Option<Vec<u8>>,
|
|
pub js: Vec<u8>,
|
|
- pub highlight_css: Vec<u8>,
|
|
pub tomorrow_night_css: Vec<u8>,
|
|
pub ayu_highlight_css: Vec<u8>,
|
|
- pub highlight_js: Vec<u8>,
|
|
- pub clipboard_js: Vec<u8>,
|
|
}
|
|
|
|
impl Theme {
|
|
@@ -91,9 +73,6 @@
|
|
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,
|
|
@@ -156,11 +135,8 @@
|
|
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(),
|
|
}
|
|
}
|
|
}
|
|
@@ -243,11 +219,8 @@
|
|
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);
|
|
--- 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");
|