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
This commit is contained in:
parent
cc63d4c61b
commit
e5bbbca33e
29 changed files with 186 additions and 43 deletions
|
@ -16,6 +16,7 @@ use getopts;
|
|||
use testing;
|
||||
|
||||
use html::escape::Escape;
|
||||
use html::markdown;
|
||||
use html::markdown::{MarkdownWithToc, find_testable_code, reset_headers};
|
||||
use test::Collector;
|
||||
|
||||
|
@ -84,6 +85,11 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches) -> int
|
|||
}
|
||||
|
||||
let input_str = load_or_return!(input, 1, 2);
|
||||
let playground = matches.opt_str("markdown-playground-url");
|
||||
if playground.is_some() {
|
||||
markdown::playground_krate.replace(Some(None));
|
||||
}
|
||||
let playground = playground.unwrap_or("".to_string());
|
||||
|
||||
let (in_header, before_content, after_content) =
|
||||
match (load_external_files(matches.opt_strs("markdown-in-header")
|
||||
|
@ -148,6 +154,9 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches) -> int
|
|||
{before_content}
|
||||
<h1 class="title">{title}</h1>
|
||||
{text}
|
||||
<script type="text/javascript">
|
||||
window.playgroundUrl = "{playground}";
|
||||
</script>
|
||||
{after_content}
|
||||
</body>
|
||||
</html>"#,
|
||||
|
@ -156,7 +165,9 @@ pub fn render(input: &str, mut output: Path, matches: &getopts::Matches) -> int
|
|||
in_header = in_header,
|
||||
before_content = before_content,
|
||||
text = MarkdownWithToc(text),
|
||||
after_content = after_content);
|
||||
after_content = after_content,
|
||||
playground = playground,
|
||||
);
|
||||
|
||||
match err {
|
||||
Err(e) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue