<base href="{{ path_to_root }}">
<link rel="stylesheet" href="book.css">
- <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="{{ favicon }}">
<!-- Font Awesome -->
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="../font-awesome.min.css">
- <link rel="stylesheet" href="highlight.css">
+ <link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<style>
.page-wrapper.has-warning > .nav-chapters {
</style>
<!-- MathJax -->
- <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+ <script type="text/javascript" src="../mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
- <!-- Fetch JQuery from CDN but have a local fallback -->
- <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
- <script>
- if (typeof jQuery == 'undefined') {
- document.write(unescape("%3Cscript src='jquery.js'%3E%3C/script%3E"));
- }
- </script>
+ <script src="../jquery.min.js"></script>
</head>
<body class="light">
<!-- Set the theme before any content is loaded, prevents flash -->
</div>
- <!-- Local fallback for Font Awesome -->
- <script>
- if ($(".fa").css("font-family") !== "FontAwesome") {
- $('<link rel="stylesheet" type="text/css" href="_FontAwesome/css/font-awesome.css">').prependTo('head');
- }
- </script>
-
<!-- Livereload script (if served using the cli tool) -->
{{{livereload}}}
url.starts_with("irc:") || url.starts_with("data:") {
return;
}
+ // Ignore parent URLs, so that the package installation process can
+ // provide a symbolic link later
+ if url.starts_with("../") {
+ return;
+ }
let mut parts = url.splitn(2, "#");
let url = parts.next().unwrap();
let fragment = parts.next();
let mut js = try!(File::create(&theme_dir.join("book.js")));
try!(js.write_all(theme::JS));
- // highlight.css
- let mut highlight_css = try!(File::create(&theme_dir.join("highlight.css")));
- try!(highlight_css.write_all(theme::HIGHLIGHT_CSS));
-
- // highlight.js
- let mut highlight_js = try!(File::create(&theme_dir.join("highlight.js")));
- try!(highlight_js.write_all(theme::HIGHLIGHT_JS));
-
Ok(())
}
try!(book.write_file("book.js", &theme.js));
try!(book.write_file("book.css", &theme.css));
try!(book.write_file("favicon.png", &theme.favicon));
- try!(book.write_file("jquery.js", &theme.jquery));
- try!(book.write_file("highlight.css", &theme.highlight_css));
try!(book.write_file("tomorrow-night.css", &theme.tomorrow_night_css));
- try!(book.write_file("highlight.js", &theme.highlight_js));
- try!(book.write_file("_FontAwesome/css/font-awesome.css", theme::FONT_AWESOME));
- try!(book.write_file("_FontAwesome/fonts/fontawesome-webfont.eot", theme::FONT_AWESOME_EOT));
- try!(book.write_file("_FontAwesome/fonts/fontawesome-webfont.svg", theme::FONT_AWESOME_SVG));
- try!(book.write_file("_FontAwesome/fonts/fontawesome-webfont.ttf", theme::FONT_AWESOME_TTF));
- try!(book.write_file("_FontAwesome/fonts/fontawesome-webfont.woff", theme::FONT_AWESOME_WOFF));
- try!(book.write_file("_FontAwesome/fonts/fontawesome-webfont.woff2", theme::FONT_AWESOME_WOFF2));
- try!(book.write_file("_FontAwesome/fonts/FontAwesome.ttf", theme::FONT_AWESOME_TTF));
// Copy all remaining files
try!(utils::fs::copy_files_except_ext(book.get_src(), book.get_dest(), true, &["md"]));
<base href="{{ path_to_root }}">
<link rel="stylesheet" href="book.css">
- <link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
- <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="{{ favicon }}">
<!-- Font Awesome -->
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="../font-awesome.min.css">
- <link rel="stylesheet" href="highlight.css">
+ <link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<!-- MathJax -->
- <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
- <!-- Fetch JQuery from CDN but have a local fallback -->
- <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
- <script>
- if (typeof jQuery == 'undefined') {
- document.write(unescape("%3Cscript src='jquery.js'%3E%3C/script%3E"));
- }
- </script>
+ <script type="text/javascript" src="../mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
+ <script src="../jquery.min.js"></script>
</head>
<body class="light">
<!-- Set the theme before any content is loaded, prevents flash -->
</div>
- <!-- Local fallback for Font Awesome -->
- <script>
- if ($(".fa").css("font-family") !== "FontAwesome") {
- $('<link rel="stylesheet" type="text/css" href="_FontAwesome/css/font-awesome.css">').prependTo('head');
- }
- </script>
-
<!-- Livereload script (if served using the cli tool) -->
{{{livereload}}}
- <script src="highlight.js"></script>
+ <script src="../highlight.js"></script>
<script src="book.js"></script>
</body>
</html>
pub static CSS: &'static [u8] = include_bytes!("book.css");
pub static FAVICON: &'static [u8] = include_bytes!("favicon.png");
pub static JS: &'static [u8] = include_bytes!("book.js");
-pub static HIGHLIGHT_JS: &'static [u8] = include_bytes!("highlight.js");
pub static TOMORROW_NIGHT_CSS: &'static [u8] = include_bytes!("tomorrow-night.css");
-pub static HIGHLIGHT_CSS: &'static [u8] = include_bytes!("highlight.css");
-pub static JQUERY: &'static [u8] = include_bytes!("jquery-2.1.4.min.js");
-pub static FONT_AWESOME: &'static [u8] = include_bytes!("_FontAwesome/css/font-awesome.min.css");
-pub static FONT_AWESOME_EOT: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.eot");
-pub static FONT_AWESOME_SVG: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.svg");
-pub static FONT_AWESOME_TTF: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.ttf");
-pub static FONT_AWESOME_WOFF: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.woff");
-pub static FONT_AWESOME_WOFF2: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.woff2");
-pub static FONT_AWESOME_OTF: &'static [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 his source folder and use the users theme instead
pub css: Vec<u8>,
pub favicon: Vec<u8>,
pub js: Vec<u8>,
- pub highlight_css: Vec<u8>,
pub tomorrow_night_css: Vec<u8>,
- pub highlight_js: Vec<u8>,
- pub jquery: Vec<u8>,
}
impl Theme {
css: CSS.to_owned(),
favicon: FAVICON.to_owned(),
js: JS.to_owned(),
- highlight_css: HIGHLIGHT_CSS.to_owned(),
tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(),
- highlight_js: HIGHLIGHT_JS.to_owned(),
- jquery: JQUERY.to_owned(),
};
// Check if the given path exists
let _ = f.read_to_end(&mut theme.favicon);
}
- // highlight.js
- if let Ok(mut f) = File::open(&src.join("highlight.js")) {
- theme.highlight_js.clear();
- let _ = f.read_to_end(&mut theme.highlight_js);
- }
-
- // highlight.css
- if let Ok(mut f) = File::open(&src.join("highlight.css")) {
- theme.highlight_css.clear();
- let _ = f.read_to_end(&mut theme.highlight_css);
- }
-
// tomorrow-night.css
if let Ok(mut f) = File::open(&src.join("tomorrow-night.css")) {
theme.tomorrow_night_css.clear();