From 440c0f07c3112d14dd3b359af873155a28865592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Wernst=C3=A5l?= Date: Sun, 16 Aug 2015 15:53:18 +0200 Subject: [PATCH] rustdoc: Added issue tracker option and issue data to clean::Stability --- src/librustdoc/clean/mod.rs | 5 ++++- src/librustdoc/html/render.rs | 11 ++++++++++- src/librustdoc/lib.rs | 5 ++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 04b1f8ee1b1..05be445820d 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2688,7 +2688,8 @@ pub struct Stability { pub feature: String, pub since: String, pub deprecated_since: String, - pub reason: String + pub reason: String, + pub issue: Option } impl Clean for attr::Stability { @@ -2702,6 +2703,7 @@ fn clean(&self, _: &DocContext) -> Stability { |istr| istr.to_string()), reason: self.reason.as_ref().map_or("".to_string(), |interned| interned.to_string()), + issue: self.issue, } } } @@ -2717,6 +2719,7 @@ fn clean(&self, _: &DocContext) -> Stability { |istr| istr.to_string()), reason: self.reason.as_ref().map_or("".to_string(), |interned| interned.to_string()), + issue: self.issue, } } } diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 83e77a5c038..53869e042a8 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -103,6 +103,9 @@ pub struct Context { pub render_redirect_pages: bool, /// All the passes that were run on this crate. pub passes: HashSet, + /// The base-URL of the issue tracker for when an item has been tagged with + /// an issue number. + pub issue_tracker_base_url: Option, } /// Indicates where an external crate can be found. @@ -303,7 +306,8 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { pub fn run(mut krate: clean::Crate, external_html: &ExternalHtml, dst: PathBuf, - passes: HashSet) -> io::Result<()> { + passes: HashSet, + issue_tracker_base_url: Option) -> io::Result<()> { let src_root = match krate.src.parent() { Some(p) => p.to_path_buf(), None => PathBuf::new(), @@ -323,6 +327,7 @@ pub fn run(mut krate: clean::Crate, }, include_sources: true, render_redirect_pages: false, + issue_tracker_base_url: issue_tracker_base_url, }; try!(mkdir(&cx.dst)); @@ -352,6 +357,10 @@ pub fn run(mut krate: clean::Crate, } }); } + clean::NameValue(ref x, ref s) + if "issue_tracker_base_url" == *x => { + cx.issue_tracker_base_url = Some(s.to_string()); + } clean::Word(ref x) if "html_no_source" == *x => { cx.include_sources = false; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 33902363e0a..73b7de45c4a 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -178,6 +178,8 @@ pub fn opts() -> Vec { "FILES"), optopt("", "markdown-playground-url", "URL to send code snippets to", "URL"), + optopt("", "issue-tracker-base-url", + "base URL for issue tracker", "URL"), optflag("", "markdown-no-toc", "don't include table of contents") ) } @@ -284,7 +286,8 @@ pub fn main_args(args: &[String]) -> isize { Some("html") | None => { match html::render::run(krate, &external_html, output.unwrap_or(PathBuf::from("doc")), - passes.into_iter().collect()) { + passes.into_iter().collect(), + matches.opt_str("issue-tracker-base-url")) { Ok(()) => {} Err(e) => panic!("failed to generate documentation: {}", e), } -- GitLab