diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-06-06 09:12:18 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-06-06 20:00:16 -0700 |
| commit | e5bbbca33e11d9e22dbbe32c975f908710d4155c (patch) | |
| tree | 5095bb40b83e840f373b22f9fe62b0228d3a3453 /src/librustdoc/html/render.rs | |
| parent | cc63d4c61bb83fcbcef5ccfffcd9b26b1bf2d20a (diff) | |
| download | rust-e5bbbca33e11d9e22dbbe32c975f908710d4155c.tar.gz rust-e5bbbca33e11d9e22dbbe32c975f908710d4155c.zip | |
rustdoc: Submit examples to play.rust-lang.org
This grows a new option inside of rustdoc to add the ability to submit examples to an external website. If the `--markdown-playground-url` command line option or crate doc attribute `html_playground_url` is present, then examples will have a button on hover to submit the code to the playground specified. This commit enables submission of example code to play.rust-lang.org. The code submitted is that which is tested by rustdoc, not necessarily the exact code shown in the example. Closes #14654
Diffstat (limited to 'src/librustdoc/html/render.rs')
| -rw-r--r-- | src/librustdoc/html/render.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 20d4d677bc0..eab4a2c137a 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -230,6 +230,7 @@ pub fn run(mut krate: clean::Crate, dst: Path) -> io::IoResult<()> { logo: "".to_string(), favicon: "".to_string(), krate: krate.name.clone(), + playground_url: "".to_string(), }, include_sources: true, render_redirect_pages: false, @@ -250,6 +251,14 @@ pub fn run(mut krate: clean::Crate, dst: Path) -> io::IoResult<()> { if "html_logo_url" == x.as_slice() => { cx.layout.logo = s.to_string(); } + clean::NameValue(ref x, ref s) + if "html_playground_url" == x.as_slice() => { + cx.layout.playground_url = s.to_string(); + let name = krate.name.clone(); + if markdown::playground_krate.get().is_none() { + markdown::playground_krate.replace(Some(Some(name))); + } + } clean::Word(ref x) if "html_no_source" == x.as_slice() => { cx.include_sources = false; @@ -450,6 +459,7 @@ fn write_shared(cx: &Context, try!(write(cx.dst.join("jquery.js"), include_bin!("static/jquery-2.1.0.min.js"))); try!(write(cx.dst.join("main.js"), include_bin!("static/main.js"))); + try!(write(cx.dst.join("playpen.js"), include_bin!("static/playpen.js"))); try!(write(cx.dst.join("main.css"), include_bin!("static/main.css"))); try!(write(cx.dst.join("normalize.css"), include_bin!("static/normalize.css"))); @@ -2055,14 +2065,15 @@ impl<'a> fmt::Show for Source<'a> { try!(write!(fmt, "<span id='{0:u}'>{0:1$u}</span>\n", i, cols)); } try!(write!(fmt, "</pre>")); - try!(write!(fmt, "{}", highlight::highlight(s.as_slice(), None))); + try!(write!(fmt, "{}", highlight::highlight(s.as_slice(), None, None))); Ok(()) } } fn item_macro(w: &mut fmt::Formatter, it: &clean::Item, t: &clean::Macro) -> fmt::Result { - try!(w.write(highlight::highlight(t.source.as_slice(), Some("macro")).as_bytes())); + try!(w.write(highlight::highlight(t.source.as_slice(), Some("macro"), + None).as_bytes())); document(w, it) } |
