diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index 5aed37edbd420..e6275c2091e2d 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -469,10 +469,8 @@ pub fn run(mut krate: clean::Crate,
clean::NameValue(ref x, ref s)
if "html_playground_url" == *x => {
markdown::PLAYGROUND.with(|slot| {
- if slot.borrow().is_none() {
- let name = krate.name.clone();
- *slot.borrow_mut() = Some((Some(name), s.clone()));
- }
+ let name = krate.name.clone();
+ *slot.borrow_mut() = Some((Some(name), s.clone()));
});
}
clean::NameValue(ref x, ref s)
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index ee395e0616b81..3af7c20c1336e 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -162,6 +162,10 @@ pub fn opts() -> Vec {
unstable(optmulti("Z", "",
"internal and debugging options (only on nightly build)", "FLAG")),
stable(optopt("", "sysroot", "Override the system root", "PATH")),
+ stable(optopt("", "playground-url",
+ "URL to send code snippets to, may be reset by --markdown-playground-url \
+ or `#![doc(html_playground_url=...)]`",
+ "URL")),
]
}
@@ -230,6 +234,10 @@ pub fn main_args(args: &[String]) -> isize {
}
};
+ if let Some(playground) = matches.opt_str("playground-url") {
+ html::markdown::PLAYGROUND.with(|s| { *s.borrow_mut() = Some((None, playground)); });
+ }
+
let test_args = matches.opt_strs("test-args");
let test_args: Vec = test_args.iter()
.flat_map(|s| s.split_whitespace())