diff --git a/README.md b/README.md index 0309f1f..194dc0f 100644 --- a/README.md +++ b/README.md @@ -87,8 +87,11 @@ Works on any mostly-static site with no per-site setup: news sites, blogs, docum | Stack Overflow | stackoverflow.com (via Atom feeds) | `question `, `tag `, `user `, `recent` | | Yahoo Finance | finance.yahoo.com | `quote `, `news `, `history `, `lookup `, `markets`, `gainers`, `losers`, `trending` | | YouTube | youtube.com | `video `, `channel ` | +| AWS docs | docs.aws.amazon.com (search via DuckDuckGo) | `guide `, `page `, `cli `, `search ` | +| Google Cloud docs | cloud.google.com (via docs.cloud.google.com, search via DuckDuckGo) | `docs `, `page `, `gcloud `, `search ` | +| Microsoft Learn | learn.microsoft.com (search via its RSS API) | `azure `, `doc `, `cli `, `search ` | -A few of these (X, Stack Overflow, YouTube) read pages that look login-gated or JS-only from the outside, by finding the server-rendered HTML, feed, or inline data the page already ships without a login. Not supported yet: pages that only render with JavaScript, sites behind logins, and sites with hard bot challenges that expose no feed. +A few of these (X, Stack Overflow, YouTube, Microsoft Learn search) read pages that look login-gated or JS-only from the outside, by finding the server-rendered HTML, feed, or inline data the page already ships without a login. AWS and Google Cloud render docs search purely client-side with no feed, so their `search` goes through DuckDuckGo with a baked-in `site:` filter instead. Not supported yet: pages that only render with JavaScript, sites behind logins, and sites with hard bot challenges that expose no feed. Want a website on that list? Open a pull request, or an issue naming the site — see [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/clis/cloud.google.com.json b/clis/cloud.google.com.json new file mode 100644 index 0000000..f2efb78 --- /dev/null +++ b/clis/cloud.google.com.json @@ -0,0 +1,9 @@ +{ + "domain": "cloud.google.com", + "commands": { + "docs": { "open": "https://docs.cloud.google.com/{product}/docs", "args": ["product"] }, + "page": { "open": "https://docs.cloud.google.com/{product}/docs/{page}", "args": ["product", "page"] }, + "gcloud": { "open": "https://docs.cloud.google.com/sdk/gcloud/reference/{command}", "args": ["command"] }, + "search": { "open": "https://html.duckduckgo.com/html/?q=site%3Acloud.google.com+{query}", "args": ["query"] } + } +} diff --git a/clis/docs.aws.amazon.com.json b/clis/docs.aws.amazon.com.json new file mode 100644 index 0000000..b9aec73 --- /dev/null +++ b/clis/docs.aws.amazon.com.json @@ -0,0 +1,9 @@ +{ + "domain": "docs.aws.amazon.com", + "commands": { + "guide": { "open": "https://docs.aws.amazon.com/{service}/latest/userguide/{page}.html", "args": ["service", "page"] }, + "page": { "open": "https://docs.aws.amazon.com/{service}/latest/{guide}/{page}.html", "args": ["service", "guide", "page"] }, + "cli": { "open": "https://docs.aws.amazon.com/cli/latest/reference/{command}/", "args": ["command"] }, + "search": { "open": "https://html.duckduckgo.com/html/?q=site%3Adocs.aws.amazon.com+{query}", "args": ["query"] } + } +} diff --git a/clis/learn.microsoft.com.json b/clis/learn.microsoft.com.json new file mode 100644 index 0000000..7e1e551 --- /dev/null +++ b/clis/learn.microsoft.com.json @@ -0,0 +1,9 @@ +{ + "domain": "learn.microsoft.com", + "commands": { + "azure": { "open": "https://learn.microsoft.com/en-us/azure/{page}", "args": ["page"] }, + "doc": { "open": "https://learn.microsoft.com/en-us/{path}", "args": ["path"] }, + "cli": { "open": "https://learn.microsoft.com/en-us/cli/azure/{command}", "args": ["command"] }, + "search": { "open": "https://learn.microsoft.com/api/search/rss?search={query}&locale=en-us", "args": ["query"] } + } +}