summaryrefslogtreecommitdiff
path: root/cli/tools/doc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/doc.rs')
-rw-r--r--cli/tools/doc.rs45
1 files changed, 45 insertions, 0 deletions
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<String> {
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<String> {
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<String> {
None
}
+
+ fn resolve_external_jsdoc_module(
+ &self,
+ _module: &str,
+ _symbol: Option<&str>,
+ ) -> Option<(String, String)> {
+ None
+ }
}
fn generate_docs_directory(