From b1036e4d9c6ce565ed50f88034b598a317f69fbd Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Mon, 12 Aug 2024 12:57:50 -0700 Subject: fix: update deno_doc (#24972) For Better HTML titles and custom JSDoc module resolving --- cli/tools/doc.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'cli/tools/doc.rs') diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index e7eab9b91..ce31c8068 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -301,6 +301,35 @@ impl deno_doc::html::HrefResolver for DocResolver { fn resolve_source(&self, location: &deno_doc::Location) -> Option { Some(location.filename.to_string()) } + + fn resolve_external_jsdoc_module( + &self, + module: &str, + _symbol: Option<&str>, + ) -> Option<(String, String)> { + if let Ok(url) = deno_core::url::Url::parse(module) { + match url.scheme() { + "npm" => { + let res = + deno_semver::npm::NpmPackageReqReference::from_str(module).ok()?; + let name = &res.req().name; + Some(( + format!("https://www.npmjs.com/package/{name}"), + name.to_owned(), + )) + } + "jsr" => { + let res = + deno_semver::jsr::JsrPackageReqReference::from_str(module).ok()?; + let name = &res.req().name; + Some((format!("https://jsr.io/{name}"), name.to_owned())) + } + _ => None, + } + } else { + None + } + } } struct DenoDocResolver(bool); @@ -343,6 +372,14 @@ impl deno_doc::html::HrefResolver for DenoDocResolver { fn resolve_source(&self, _location: &deno_doc::Location) -> Option { None } + + fn resolve_external_jsdoc_module( + &self, + _module: &str, + _symbol: Option<&str>, + ) -> Option<(String, String)> { + None + } } struct NodeDocResolver(bool); @@ -387,6 +424,14 @@ impl deno_doc::html::HrefResolver for NodeDocResolver { fn resolve_source(&self, _location: &deno_doc::Location) -> Option { None } + + fn resolve_external_jsdoc_module( + &self, + _module: &str, + _symbol: Option<&str>, + ) -> Option<(String, String)> { + None + } } fn generate_docs_directory( -- cgit v1.2.3