From 947f1b66cb1d061bf91410abd5d9ccd9d9b38f7b Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 7 Apr 2015 11:23:14 -0700 Subject: [PATCH] book: Emit links to play.rust-lang.org to run examples Had to fix a bug in `--markdown-playground-url` for markdown files in rustdoc as well as adding some necessary JS to the rustbook output as well. Closes #21553 --- src/librustdoc/markdown.rs | 2 +- src/rustbook/build.rs | 9 +++++++++ src/rustbook/javascript.rs | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/librustdoc/markdown.rs b/src/librustdoc/markdown.rs index 8c75364d941..6541564d8e2 100644 --- a/src/librustdoc/markdown.rs +++ b/src/librustdoc/markdown.rs @@ -59,7 +59,7 @@ pub fn render(input: &str, mut output: PathBuf, matches: &getopts::Matches, let input_str = load_or_return!(input, 1, 2); let playground = matches.opt_str("markdown-playground-url"); if playground.is_some() { - markdown::PLAYGROUND_KRATE.with(|s| { *s.borrow_mut() = None; }); + markdown::PLAYGROUND_KRATE.with(|s| { *s.borrow_mut() = Some(None); }); } let playground = playground.unwrap_or("".to_string()); diff --git a/src/rustbook/build.rs b/src/rustbook/build.rs index f06290b27cb..62926c28d71 100644 --- a/src/rustbook/build.rs +++ b/src/rustbook/build.rs @@ -135,6 +135,7 @@ fn render(book: &Book, tgt: &Path) -> CliResult<()> { format!("-o{}", out_path.display()), format!("--html-before-content={}", prelude.display()), format!("--html-after-content={}", postlude.display()), + format!("--markdown-playground-url=http://play.rust-lang.org"), format!("--markdown-css={}", item.path_to_root.join("rust-book.css").display()), "--markdown-no-toc".to_string(), ]; @@ -148,6 +149,14 @@ fn render(book: &Book, tgt: &Path) -> CliResult<()> { // create index.html from the root README try!(fs::copy(&tgt.join("README.html"), &tgt.join("index.html"))); + + // Copy some js for playpen + let mut jquery = try!(File::create(tgt.join("jquery.js"))); + let js = include_bytes!("../librustdoc/html/static/jquery-2.1.0.min.js"); + try!(jquery.write_all(js)); + let mut playpen = try!(File::create(tgt.join("playpen.js"))); + let js = include_bytes!("../librustdoc/html/static/playpen.js"); + try!(playpen.write_all(js)); Ok(()) } diff --git a/src/rustbook/javascript.rs b/src/rustbook/javascript.rs index 6ee8230e9f8..d5483593aa8 100644 --- a/src/rustbook/javascript.rs +++ b/src/rustbook/javascript.rs @@ -71,4 +71,6 @@ document.addEventListener("DOMContentLoaded", function(event) { }); + + "#;