From 14d8d3cf9b48f411b88bb039ed0fffa533c2bca9 Mon Sep 17 00:00:00 2001 From: Emmanuel Touzery Date: Fri, 2 May 2025 08:43:26 +0200 Subject: [PATCH 01/68] switch neovim plugin link to a newer maintained plugin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f4c733d81c..d4f45f2480 100644 --- a/README.md +++ b/README.md @@ -188,7 +188,7 @@ Made something cool? Feel free to open a PR to add a new row to this table! You | [girishji/devdocs.vim](https://github.com/girishji/devdocs.vim) | Vim plugin & TUI (browse inside Vim) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/girishji/devdocs.vim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/girishji/devdocs.vim?logo=github&label) | | [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/romainl/vim-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/romainl/vim-devdocs?logo=github&label) | | [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/waiting-for-dev/vim-www?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/waiting-for-dev/vim-www?logo=github&label) | -| [luckasRanarison/nvim-devdocs](https://github.com/luckasRanarison/nvim-devdocs) | Neovim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/luckasRanarison/nvim-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/luckasRanarison/nvim-devdocs?logo=github&label) | +| [emmanueltouzery/apidocs.nvim](https://github.com/emmanueltouzery/apidocs.nvim) | Neovim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/emmanueltouzery/apidocs.nvim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/emmanueltouzery/apidocs.nvim?logo=github&label) | | [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/toiletbril/dedoc?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/toiletbril/dedoc?logo=github&label) | | [Raycast Devdocs](https://www.raycast.com/djpowers/devdocs) | Raycast extension | Unavailable | Unavailable | | [chrisgrieser/alfred-docs-searches](https://github.com/chrisgrieser/alfred-docs-searches) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/chrisgrieser/alfred-docs-searches?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/chrisgrieser/alfred-docs-searches?logo=github&label) | From a8214b3711d4becfa009ee1511be13a9ca984588 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 15:28:22 +0000 Subject: [PATCH 02/68] Update ruby/setup-ruby action to v1.238.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de9243bf62..072f224f1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0 + uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index 8bb9246f39..a59c5ea3af 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0 + uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c8b1d9e9c0..7701208c06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0 + uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From 78dc05494d9136a0053c33820d16d49cc550dd7f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 May 2025 22:23:49 +0000 Subject: [PATCH 03/68] Update ruby/setup-ruby action to v1.239.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 072f224f1f..ab3a2ef32a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 + uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index a59c5ea3af..6146884b35 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 + uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7701208c06..e58bce0b96 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0 + uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From c0f79d6826acb825c6e0beca33d0914343a49c37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 May 2025 03:38:44 +0000 Subject: [PATCH 04/68] Update dependency ruby to v3.4.4 --- .ruby-version | 2 +- .tool-versions | 2 +- Gemfile | 2 +- Gemfile.lock | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.ruby-version b/.ruby-version index 6cb9d3dd0d..f9892605c7 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.4.3 +3.4.4 diff --git a/.tool-versions b/.tool-versions index a72ead61f3..ca745c6d6d 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -ruby 3.4.3 +ruby 3.4.4 diff --git a/Gemfile b/Gemfile index 21c75e07a3..cbe55ccf8a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' -ruby '3.4.3' +ruby '3.4.4' gem 'activesupport', require: false gem 'html-pipeline' diff --git a/Gemfile.lock b/Gemfile.lock index a80e6f6103..d5b5392d7f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -191,7 +191,7 @@ DEPENDENCIES yajl-ruby RUBY VERSION - ruby 3.4.3p32 + ruby 3.4.4p34 BUNDLED WITH 2.4.6 From eece649f0816bbe91795958de690028f0611ab06 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 07:19:05 +0000 Subject: [PATCH 05/68] Update ruby Docker tag to v3.4.4 --- Dockerfile | 2 +- Dockerfile-alpine | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5a85b1e4eb..2d8a9fee8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.4.3 +FROM ruby:3.4.4 ENV LANG=C.UTF-8 ENV ENABLE_SERVICE_WORKER=true diff --git a/Dockerfile-alpine b/Dockerfile-alpine index 7075f4c508..6af65c2eb5 100644 --- a/Dockerfile-alpine +++ b/Dockerfile-alpine @@ -1,4 +1,4 @@ -FROM ruby:3.4.3-alpine +FROM ruby:3.4.4-alpine ENV LANG=C.UTF-8 ENV ENABLE_SERVICE_WORKER=true From b35dc57a65d650800697ca3ffff9a2c1deed0a8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 16:04:12 +0000 Subject: [PATCH 06/68] Update ruby/setup-ruby action to v1.240.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ab3a2ef32a..2577808724 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 + uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index 6146884b35..08c9c95b31 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 + uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e58bce0b96..005081f63d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1.239.0 + uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From 0fde144e7a07522a124bf07d00041cb3c4cbc782 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 23:45:14 +0000 Subject: [PATCH 07/68] Update ruby/setup-ruby action to v1.241.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2577808724..14018c3243 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 + uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index 08c9c95b31..e31c90ea70 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 + uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 005081f63d..bf0f564d9a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 + uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From ade1961b723f012308ce924c404c42fc1ea21fdd Mon Sep 17 00:00:00 2001 From: dorimon Date: Sat, 17 May 2025 17:32:36 +0300 Subject: [PATCH 08/68] Add vertx docs --- lib/docs/filters/vertx/clean_html.rb | 40 +++++++++++++++++++++++++ lib/docs/filters/vertx/entries.rb | 43 +++++++++++++++++++++++++++ lib/docs/scrapers/vertx.rb | 25 ++++++++++++++++ public/icons/docs/vertx/16.png | Bin 0 -> 855 bytes public/icons/docs/vertx/16@2x.png | Bin 0 -> 2081 bytes 5 files changed, 108 insertions(+) create mode 100644 lib/docs/filters/vertx/clean_html.rb create mode 100644 lib/docs/filters/vertx/entries.rb create mode 100644 lib/docs/scrapers/vertx.rb create mode 100644 public/icons/docs/vertx/16.png create mode 100644 public/icons/docs/vertx/16@2x.png diff --git a/lib/docs/filters/vertx/clean_html.rb b/lib/docs/filters/vertx/clean_html.rb new file mode 100644 index 0000000000..c52dde05bc --- /dev/null +++ b/lib/docs/filters/vertx/clean_html.rb @@ -0,0 +1,40 @@ +module Docs + class Vertx + class CleanHtmlFilter < Filter + def call + css('hr', 'header', 'nav', '.navbar', '.topbar').remove + xpath('//*[@id="docs-layout"]/div/div[3]').remove + xpath('//*[@id="docs-layout"]/div/div[1]').remove + xpath('//main/div[last()]').remove + xpath('//main/div[1]').remove + xpath('//footer').remove + css('#changelog').remove if root_page? + + # Set id attributes on

instead of an empty + css('h3').each do |node| + anchor = node.at_css('a') + node['id'] = anchor['id'] if anchor && anchor['id'] + end + + # Make proper table headers + css('td.header').each do |node| + node.name = 'th' + end + + # Remove code highlighting + css('pre').each do |node| + node.content = node.content + end + + # ❗ Skip tags with data: URIs + css('img').each do |img| + src = img['src'] + img.remove if src&.start_with?('data:') + end + + doc + end + end + end +end + diff --git a/lib/docs/filters/vertx/entries.rb b/lib/docs/filters/vertx/entries.rb new file mode 100644 index 0000000000..22478c4f3a --- /dev/null +++ b/lib/docs/filters/vertx/entries.rb @@ -0,0 +1,43 @@ +module Docs + class Vertx + class EntriesFilter < Docs::EntriesFilter + # Determines the default name of the page entry + def get_name + node = at_css('h1') + return nil unless node + + result = node.content.strip + result = "v5.0.0 - #{result}" if slug.include?('5.0.0') + result << ' event' if type == 'Events' + result << '()' if node['class'].to_s.include?('function') + result + end + + # Determines the type of the default entry (used for sidebar grouping) + def get_type + return nil if root_page? + + node = at_xpath('/html/body/div/div/div[2]/main/div[1]/div[1]') + node ? node.text.strip : 'Miscellaneous' + end + + # Returns additional entries from subheadings (usually

) + def additional_entries + # return [] if root_page? + # + # css('h2').map do |node| + # name = node.content.strip + # id = node['id'] + # [name, id, type] + # end + [] + end + + # Determines whether to include the default entry for the page + def include_default_entry? + !at_css('.obsolete') + end + end + end +end + diff --git a/lib/docs/scrapers/vertx.rb b/lib/docs/scrapers/vertx.rb new file mode 100644 index 0000000000..be7cd658d8 --- /dev/null +++ b/lib/docs/scrapers/vertx.rb @@ -0,0 +1,25 @@ + +module Docs + class Vertx < UrlScraper + self.type = 'vertx' + self.links = { + home: 'http://vertx.io', + code: 'https://github.com/eclipse-vertx/vert.x' + } + + html_filters.push 'vertx/entries', 'vertx/clean_html' + + self.base_url = 'https://vertx.io/' + self.root_path = 'docs' + options[:attribution] = <<-HTML + by Dor Sahar :) + HTML + + options[:skip_patterns] = [ + /api/, + /apidocs/, + /blog/, + ] + + end +end diff --git a/public/icons/docs/vertx/16.png b/public/icons/docs/vertx/16.png new file mode 100644 index 0000000000000000000000000000000000000000..75de4cd51409bc2fde974ef571233cd1bbecb4d3 GIT binary patch literal 855 zcmV-d1E~CoP)e9N$gTEM0XPO>^x<83n_I&7xYYm&JM;tWkrApf3w5B6^{seUL3; z-=r=2uwFO$|_tVa1k)aiHjb!Un_`^cqnWRCReG4lBu3p^H0gn8}we z5o#i7jZJvVCIcEPxy5j0AM1Nq-vSUUgeK<#H7ccM_~%gvnD0M1!)V_Gsp2G27*SYW zz>as@@T_3O@WY{A#(tY5j+K_(P2AC%My#ldFWg^IYs5M?Aw)He}15X4XA$ z`^rU?x0JKL?Ne@EU&CW>Z$-p#<-&}S;|EWpPHAXOQ@ggB+bA%K`j?#I?5?#1m%5 zW;yz54}Qu5iX>8&nXy^UbqxWqwrw@m_Za%|5?4lMaIs^@d-qYZrV@3^XD@fN<+)~R z>Z@4FhKM>Pk+PgQIzSXe#F1lmGQ+Wteqw%VftEeZG;MDHpr`#51tm!yd9#&m`&x)2 zw+u)Y`iu`;=0fi{o)wO~^d0xSu!+at*-CD134pQRC+TTFMOC^SfQHsIPw#&a3#h6Z z@r08{`Wfw;;KuqYT6Q-9aOkNoIC;3Av)>GoEb{r~t3gVtim0e7!}CSW8;u{UQ>P+g z;(Sal6L4$uO+0(xVY1T;eE!NYX8+2ND)#Yw4|U2?Cd9c|1u^Ee#shP{_@$u>Rg4%T zhA@{Wk+j573<@@7(OCa26UH;@i*Ld>m=}ZD8#^~Hc&e)EVn-rrQKyI}cnJ>|xs@=W h#76V^Xj~n8{{gRyWz#V*HJbnc002ovPDHLkV1hhMnU4Sf literal 0 HcmV?d00001 diff --git a/public/icons/docs/vertx/16@2x.png b/public/icons/docs/vertx/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e7510a59c903861fb2f70a1c150338055e80b8c8 GIT binary patch literal 2081 zcmV++2;TRJP)#UzqHQn6x%q$<&v7%j_P z%2cW>O_`-ijYf$O0g*sJMHU&9ATtizFf0Nh+sxp+c}p+%=8x{_VPImSRop-OoqNxB z?)kp&+$R8cj(qgYT&m(B!A#NU!GOi7S)oE56l8g8x&1fKwA{N_eqKFiv@6cyw4E7Q z(j|=1rzm%{L=HZD&Rng1m2xHm5W@V2n0}An&K`%t%|Qr)^+j zF)V5k<(%r|@e&c`6vLucFwwSb+rW_xfGUdowQ#>C>$$e!fuWkKo&mywh;kiK$Nh3)ou=KJ%W?| z?;wmeTyRY_nJPDq>4Fc9%XZLlDBq(9QG#C#sGUBV%7GOTa1o3#h&drk(~1`Ubo)HA zeKY8=ry@iNUZ=;f3x{&&tGDzDu4zRJfBxZo(v>bo8K8jlN*G(u}p)7?6SdPWlu0IdI6d=+KK$PGW zJkC6CFy~Gl0RpyTp=^Z}@3$NaqYc;Gbs1-j8H88x@yh`-@1IQ7pd7{!#|nNq;N@Tb z6ZOHOtsLIj+N0XBGse*Wj4A>zpbLX2!7B!gzqJb}8 z*;e4<8*8YYJ{lcrlqG1b5hW~{vznIry{OK%BK31WOp@zRlkJaIH{$`UhY)8cKsID0W7(cwx7MjM9J4dvF~UCq>=jt2vx6guX_ws&^3@-Od` zJ1vV!=TdA~u$khg{`@ACrO;vY zn=yv*-@SmoLn~wH8$_VvNGEgeUW)BR<3`zOo3?$&*znrsB)QRsK_mJzX7UJ1c@G_G zss`s6cT-JLy(nSVhW#|J-b24Ls+fP@3J&f#in0_&8$={FrS3CDgn!)kCP()k!^t?2 zN{lwxu1)vn3&&F@{l>oW)tSLlA*WZyy_1 z9|1Vj(n{mfW-^s7fftgka@nzNFN+^v74ac1qRR^o?QCVigKtIVb)3Jbu4JNwcVF6+ zFy6$K)=V2k_2t7EIJ{qUGcm$7FKndL(aoDKKXfv7w{e)rVRfLHd)HFDf*;#7Cjiif zbk3!D?H)ebbfAa+$IcwXjNe`vA7)TW=s4WT#)VstBdMa;UZVPn;Y^!7A*x!%s<4EA zJ++SJHG86)Il)~M+KUqWQpme6HN+nx5S0Te7&M}P_Yf0U_i_Wr4&|{ND{@CKprU_< z8y=n-#R-YzTI%<*?DuP_8l2nkiYSNV{8kTIQb>Fc>&nB+CivdmmXJT%$@p7qsk^p1X-5~Z*B@EQ&h`5kGi3x{ z|H(K)Uvup}mvi>mp%i2O^Z;PA#;r*4-n`9}@*XOdq|pY;R=hvIi8mf!g$^}^Vril^)Oa=CvV&TDf91Jfs=J`vkp~* zqBnq85eZKpJ%DR}eL02p5+}W@jERhC-OCMxewb)}(IYE4f9hy{w%|6t^XOE5@P}_Q z>)9C`-r35+hu((xri?NC{a4G#A1RQjN^@ZQ5ng-Xt!`&<3|6 z#YdYyVawaQP?loL%3YN6Wv2gPBH6y_@s~^!q{pt(RhCK-sP-)aZ^I Date: Sun, 18 May 2025 05:47:45 +0000 Subject: [PATCH 09/68] Update dependency rack to v2.2.15 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d5b5392d7f..fd8600d9ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM byebug (~> 12.0) pry (>= 0.13, < 0.16) racc (1.8.1) - rack (2.2.14) + rack (2.2.15) rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) From 42c87bdd177a45be63ec8f8a16e4fbf60f00d6a3 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 18 May 2025 21:38:55 +0200 Subject: [PATCH 10/68] Update Leaflet documentation (2.0.0-alpha) --- lib/docs/scrapers/leaflet.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/docs/scrapers/leaflet.rb b/lib/docs/scrapers/leaflet.rb index a3e5e50242..dbe0c227b0 100644 --- a/lib/docs/scrapers/leaflet.rb +++ b/lib/docs/scrapers/leaflet.rb @@ -14,11 +14,16 @@ class Leaflet < UrlScraper options[:skip_links] = true options[:attribution] = <<-HTML - © 2010–2022 Vladimir Agafonkin
+ © 2010–2025 Vladimir Agafonkin
© 2010–2011, CloudMade
Maps © OpenStreetMap contributors. HTML + version '2.0' do + self.release = '2.0.0-alpha' + self.base_url = "https://leafletjs.com/reference-2.0.0.html" + end + version '1.9' do self.release = '1.9.4' self.base_url = "https://leafletjs.com/reference.html" From 5a091022ac710f4cb546966a5c5da74e400e08ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 18 May 2025 22:12:06 +0000 Subject: [PATCH 11/68] Update ruby/setup-ruby action to v1.242.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14018c3243..c49801ba96 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 + uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index e31c90ea70..1d4ee9febd 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 + uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf0f564d9a..738bfb062d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@bb0f760b6c925183520ee0bcc9c4a432a7c8c3c6 # v1.241.0 + uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From 19696fb368ef91d25374be44fe55c1dc362446e4 Mon Sep 17 00:00:00 2001 From: dorimon Date: Mon, 19 May 2025 18:59:45 +0300 Subject: [PATCH 12/68] Add version support Remove wierd files --- lib/docs/filters/vertx/clean_html.rb | 3 +-- lib/docs/filters/vertx/entries.rb | 1 - lib/docs/scrapers/vertx.rb | 18 +++++++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/docs/filters/vertx/clean_html.rb b/lib/docs/filters/vertx/clean_html.rb index c52dde05bc..ba488f0cab 100644 --- a/lib/docs/filters/vertx/clean_html.rb +++ b/lib/docs/filters/vertx/clean_html.rb @@ -2,12 +2,11 @@ module Docs class Vertx class CleanHtmlFilter < Filter def call - css('hr', 'header', 'nav', '.navbar', '.topbar').remove + css('footer', 'hr', 'header', 'nav', '.navbar', '.topbar', '.bg-bg-warning').remove xpath('//*[@id="docs-layout"]/div/div[3]').remove xpath('//*[@id="docs-layout"]/div/div[1]').remove xpath('//main/div[last()]').remove xpath('//main/div[1]').remove - xpath('//footer').remove css('#changelog').remove if root_page? # Set id attributes on

instead of an empty diff --git a/lib/docs/filters/vertx/entries.rb b/lib/docs/filters/vertx/entries.rb index 22478c4f3a..8155c5d888 100644 --- a/lib/docs/filters/vertx/entries.rb +++ b/lib/docs/filters/vertx/entries.rb @@ -7,7 +7,6 @@ def get_name return nil unless node result = node.content.strip - result = "v5.0.0 - #{result}" if slug.include?('5.0.0') result << ' event' if type == 'Events' result << '()' if node['class'].to_s.include?('function') result diff --git a/lib/docs/scrapers/vertx.rb b/lib/docs/scrapers/vertx.rb index be7cd658d8..5a19a7d87a 100644 --- a/lib/docs/scrapers/vertx.rb +++ b/lib/docs/scrapers/vertx.rb @@ -1,4 +1,3 @@ - module Docs class Vertx < UrlScraper self.type = 'vertx' @@ -9,17 +8,30 @@ class Vertx < UrlScraper html_filters.push 'vertx/entries', 'vertx/clean_html' - self.base_url = 'https://vertx.io/' - self.root_path = 'docs' options[:attribution] = <<-HTML by Dor Sahar :) HTML options[:skip_patterns] = [ /api/, + /5.0.0/, /apidocs/, /blog/, ] + version '5.0.0' do + self.release = '5.0.0' + self.base_url = "https://vertx.io/docs/" + end + + version '4.5.15' do + self.release = '4.5.15' + self.base_url = "https://vertx.io/docs/#{self.version}" + end + + version '3.9.16' do + self.release = '4.5.15' + self.base_url = "https://vertx.io/docs/#{self.version}" + end end end From 01aca6cccc1963c24dfcb4e644be612ad95120bb Mon Sep 17 00:00:00 2001 From: dorimon Date: Mon, 19 May 2025 19:09:51 +0300 Subject: [PATCH 13/68] Add SOURCE for icon and credis --- lib/docs/scrapers/vertx.rb | 4 +++- public/icons/docs/vertx/SOURCE | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 public/icons/docs/vertx/SOURCE diff --git a/lib/docs/scrapers/vertx.rb b/lib/docs/scrapers/vertx.rb index 5a19a7d87a..5986720293 100644 --- a/lib/docs/scrapers/vertx.rb +++ b/lib/docs/scrapers/vertx.rb @@ -9,7 +9,9 @@ class Vertx < UrlScraper html_filters.push 'vertx/entries', 'vertx/clean_html' options[:attribution] = <<-HTML - by Dor Sahar :) + © 2025 Eclipse Vert.x™
+ Eclipse Vert.x™ is open source and dual-licensed under the Eclipse Public License 2.0 and the Apache License 2.0.
+ Website design by Michel Krämer. HTML options[:skip_patterns] = [ diff --git a/public/icons/docs/vertx/SOURCE b/public/icons/docs/vertx/SOURCE new file mode 100644 index 0000000000..81ae591749 --- /dev/null +++ b/public/icons/docs/vertx/SOURCE @@ -0,0 +1 @@ +https://avatars.githubusercontent.com/u/8124623?s=200&v=4 From 03454d6573709f66528f8e0dc3e4c81f6a1e83d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 20:37:22 +0000 Subject: [PATCH 14/68] Update ruby/setup-ruby action to v1.243.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c49801ba96..f22e74bc13 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 + uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index 1d4ee9febd..d16b89dce2 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 + uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 738bfb062d..554cfe2982 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 + uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From 84ae0b91cc40afed62ed1145c0e950dbc57beaea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 11:48:31 +0000 Subject: [PATCH 15/68] Update ruby/setup-ruby action to v1.244.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f22e74bc13..c9d4ed4fba 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 + uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index d16b89dce2..471f54cd9e 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 + uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 554cfe2982..6e7d36baff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@c95ae3725f6ebdd095f2bd19caed7ebc14435ba5 # v1.243.0 + uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From ee318ec06135367d72d2d38cfd671fe5c1aa6176 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 May 2025 07:01:02 +0000 Subject: [PATCH 16/68] Update dependency rack to v2.2.16 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fd8600d9ef..fee98e847c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM byebug (~> 12.0) pry (>= 0.13, < 0.16) racc (1.8.1) - rack (2.2.15) + rack (2.2.16) rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) From e6d8941486c445952da8eb21f753118f501b9c84 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Wed, 28 May 2025 20:56:41 +0200 Subject: [PATCH 17/68] Update Vert.x documentation --- assets/javascripts/news.json | 4 ++++ lib/docs/filters/vertx/clean_html.rb | 1 + lib/docs/scrapers/vertx.rb | 19 +++++++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index b6c061b01e..3ddc39a516 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,4 +1,8 @@ [ + [ + "2025-05-28", + "New documentation:
Vert.x" + ], [ "2025-02-23", "New documentation: Three.js" diff --git a/lib/docs/filters/vertx/clean_html.rb b/lib/docs/filters/vertx/clean_html.rb index ba488f0cab..786383f6a4 100644 --- a/lib/docs/filters/vertx/clean_html.rb +++ b/lib/docs/filters/vertx/clean_html.rb @@ -22,6 +22,7 @@ def call # Remove code highlighting css('pre').each do |node| + node['data-language'] = node.at_css('code')['data-lang'] if node.at_css('code') node.content = node.content end diff --git a/lib/docs/scrapers/vertx.rb b/lib/docs/scrapers/vertx.rb index 5986720293..8163098087 100644 --- a/lib/docs/scrapers/vertx.rb +++ b/lib/docs/scrapers/vertx.rb @@ -1,5 +1,7 @@ module Docs class Vertx < UrlScraper + self.name = 'Vert.x' + self.slug = 'vertx' self.type = 'vertx' self.links = { home: 'http://vertx.io', @@ -21,19 +23,24 @@ class Vertx < UrlScraper /blog/, ] - version '5.0.0' do + version '5' do self.release = '5.0.0' self.base_url = "https://vertx.io/docs/" end - version '4.5.15' do + version '4' do self.release = '4.5.15' - self.base_url = "https://vertx.io/docs/#{self.version}" + self.base_url = "https://vertx.io/docs/#{self.release}" end - version '3.9.16' do - self.release = '4.5.15' - self.base_url = "https://vertx.io/docs/#{self.version}" + version '3' do + self.release = '3.9.16' + self.base_url = "https://vertx.io/docs/#{self.release}" + end + + def get_latest_version(opts) + doc = fetch_doc('https://repo1.maven.org/maven2/io/vertx/vertx-stack-manager/maven-metadata.xml', opts) + doc.css('version')[-1].text end end end From 739b6242b1b955c7df2419f240bd3592b01244e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 May 2025 11:23:18 +0000 Subject: [PATCH 18/68] Update dependency rake to v13.3.0 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fee98e847c..65d0c358e9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,7 +85,7 @@ GEM rack-ssl-enforcer (0.2.9) rack-test (2.2.0) rack (>= 1.3) - rake (13.2.1) + rake (13.3.0) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) From 3794bf6f550cddede068f9f5abf541aa411db2c6 Mon Sep 17 00:00:00 2001 From: spamguy Date: Thu, 29 May 2025 11:50:19 -0700 Subject: [PATCH 19/68] Change where GitHub scraper gets its JSON. Fix Koa, Q, Sanctuary, and Lua/nginx imports --- lib/docs/filters/github/clean_html.rb | 5 +++++ lib/docs/filters/nginx_lua_module/entries.rb | 4 ++-- lib/docs/filters/sanctuary_def/entries.rb | 4 +++- .../filters/sanctuary_type_classes/clean_html.rb | 5 ----- lib/docs/filters/sanctuary_type_classes/entries.rb | 4 ++-- lib/docs/scrapers/github.rb | 8 +++++++- lib/docs/scrapers/koa.rb | 4 ++-- lib/docs/scrapers/nginx_lua_module.rb | 12 +++++++----- lib/docs/scrapers/q.rb | 4 ++-- 9 files changed, 30 insertions(+), 20 deletions(-) diff --git a/lib/docs/filters/github/clean_html.rb b/lib/docs/filters/github/clean_html.rb index 4d6da24027..a97f2c3a12 100644 --- a/lib/docs/filters/github/clean_html.rb +++ b/lib/docs/filters/github/clean_html.rb @@ -2,6 +2,11 @@ module Docs class Github class CleanHtmlFilter < Filter def call + # Remove h1 wrapper to render it correctly. + css('.markdown-heading h1').each do |node| + node.parent.replace(node) + end + css('.anchor').each do |node| node.parent['id'] = node['href'].remove('#') node.remove diff --git a/lib/docs/filters/nginx_lua_module/entries.rb b/lib/docs/filters/nginx_lua_module/entries.rb index e4b1285658..70094b9213 100644 --- a/lib/docs/filters/nginx_lua_module/entries.rb +++ b/lib/docs/filters/nginx_lua_module/entries.rb @@ -4,11 +4,11 @@ class EntriesFilter < Docs::EntriesFilter def additional_entries entries = [] - css('#directives + ul > li > a').each do |node| + css('h2:contains("Directives") + ul > li > a').each do |node| entries << [node.content, node['href'].remove('#'), 'Directives'] end - css('#nginx-api-for-lua + ul > li > a').each do |node| + css('h2:contains("Nginx API for Lua") + ul > li > a').each do |node| next if node.content == 'Introduction' entries << [node.content, node['href'].remove('#'), 'Nginx API for Lua'] end diff --git a/lib/docs/filters/sanctuary_def/entries.rb b/lib/docs/filters/sanctuary_def/entries.rb index 5226be07c2..25487e557a 100644 --- a/lib/docs/filters/sanctuary_def/entries.rb +++ b/lib/docs/filters/sanctuary_def/entries.rb @@ -39,8 +39,10 @@ def additional_entries when "h3" type = node.text when "h4" + # Parent
's ID set in github/clean_html. + id = node.parent.attributes["id"].value name = node.text.split(' :: ')[0] - id = node.attributes["id"].value + entries << [name, id, type] end end diff --git a/lib/docs/filters/sanctuary_type_classes/clean_html.rb b/lib/docs/filters/sanctuary_type_classes/clean_html.rb index 247dbb39a9..491aa351ac 100644 --- a/lib/docs/filters/sanctuary_type_classes/clean_html.rb +++ b/lib/docs/filters/sanctuary_type_classes/clean_html.rb @@ -8,11 +8,6 @@ def call node.name = 'h3' } - # correct and unify link ids - css('h3').each { |node| - node.attributes["id"].value = node.text.split(' :: ')[0] - } - doc end end diff --git a/lib/docs/filters/sanctuary_type_classes/entries.rb b/lib/docs/filters/sanctuary_type_classes/entries.rb index 8f4e051674..c9ee1aca0d 100644 --- a/lib/docs/filters/sanctuary_type_classes/entries.rb +++ b/lib/docs/filters/sanctuary_type_classes/entries.rb @@ -38,9 +38,9 @@ def additional_entries case node.name when "h2" type = node.text - if node.attributes["id"].value == "type-class-hierarchy" + if node.parent.attributes["id"]&.value == "type-class-hierarchy" name = node.text - id = node.attributes["id"].value + id = node.parent.attributes["id"].value entries << [name, id, type] end when "h4" diff --git a/lib/docs/scrapers/github.rb b/lib/docs/scrapers/github.rb index e5b48edbf6..dcadcec865 100644 --- a/lib/docs/scrapers/github.rb +++ b/lib/docs/scrapers/github.rb @@ -16,7 +16,13 @@ def process_response?(response) end def parse(response) - parsed = JSON.parse(response.response_body) + embedded_json = response + .response_body + .match(/react-app\.embeddedData">(.+?)<\/script>/) + &.captures + &.first + parsed = JSON.parse(embedded_json) + [parsed['payload']['blob']['richText'], parsed['title']] end end diff --git a/lib/docs/scrapers/koa.rb b/lib/docs/scrapers/koa.rb index 94592b8cbb..f16b1061da 100644 --- a/lib/docs/scrapers/koa.rb +++ b/lib/docs/scrapers/koa.rb @@ -2,7 +2,7 @@ module Docs class Koa < Github - self.base_url = 'https://github.com/koajs/koa/tree/master/docs' + self.base_url = 'https://github.com/koajs/koa/blob/master/docs' self.release = '2.15.0' self.root_path = 'api/index.md' @@ -26,7 +26,7 @@ class Koa < Github html_filters.push 'koa/clean_html', 'koa/entries' - options[:skip] = %w[middleware.gif] + options[:skip_patterns] = [/\.gif/] options[:trailing_slash] = false options[:container] = '.markdown-body' diff --git a/lib/docs/scrapers/nginx_lua_module.rb b/lib/docs/scrapers/nginx_lua_module.rb index 9fcbab00ae..d704c38931 100644 --- a/lib/docs/scrapers/nginx_lua_module.rb +++ b/lib/docs/scrapers/nginx_lua_module.rb @@ -2,8 +2,9 @@ module Docs class NginxLuaModule < Github self.name = 'nginx / Lua Module' self.slug = 'nginx_lua_module' - self.release = '0.10.13' - self.base_url = "https://github.com/openresty/lua-nginx-module/tree/v#{self.release}/" + self.release = '0.10.28' + self.base_url = "https://github.com/openresty/lua-nginx-module/blob/v#{self.release}/" + self.root_path = 'README.markdown' self.links = { code: 'https://github.com/openresty/lua-nginx-module' } @@ -11,13 +12,14 @@ class NginxLuaModule < Github html_filters.push 'nginx_lua_module/clean_html', 'nginx_lua_module/entries', 'title' options[:root_title] = 'ngx_http_lua_module' - options[:container] = '#readme > article' - + options[:container] = '.markdown-body' + options[:max_image_size] = 256_000 options[:attribution] = <<-HTML © 2009–2017 Xiaozhe Wang (chaoslawful)
- © 2009–2018 Yichun "agentzh" Zhang (章亦春), OpenResty Inc.
+ © 2009–2019 Yichun "agentzh" Zhang (章亦春), OpenResty Inc.
Licensed under the BSD License. HTML + options[:skip_patterns] = [/\.png/] def get_latest_version(opts) tags = get_github_tags('openresty', 'lua-nginx-module', opts) diff --git a/lib/docs/scrapers/q.rb b/lib/docs/scrapers/q.rb index a4c449c02d..0ba0cfa937 100644 --- a/lib/docs/scrapers/q.rb +++ b/lib/docs/scrapers/q.rb @@ -1,5 +1,5 @@ module Docs - class Q < Github + class Q < UrlScraper self.name = 'Q' self.release = '1.5.1' self.base_url = 'https://github.com/kriskowal/q/wiki/' @@ -16,7 +16,7 @@ class Q < Github options[:skip_links] = true options[:attribution] = <<-HTML - © 2009–2017 Kristopher Michael Kowal
+ © 2009–2018 Kristopher Michael Kowal
Licensed under the MIT License. HTML From f4e2ebd23b8268ef8433a0d78e858fa767022a66 Mon Sep 17 00:00:00 2001 From: Yikai Zhao Date: Sat, 31 May 2025 11:15:26 +0800 Subject: [PATCH 20/68] Update pytorch scraper, include various 2.x versions 1. Various 2.x versions are included separately. Pytorch versions are not backward compatible, it has different compatibilities between CUDA etc, so people may use specific versions for a extended period of time. 2. Removed the type replacement table for `get_type`. Instead, get the type from breadcrumbs directly. IMO this produces better results that matches the index in the original website (the left side menu in docs.python.org). Also, the `TYPE_REPLACEMENT` table was opiniated and hard to maintain across versions. 3. Always include default entry (removed `include_default_entry?` function). I don't see the downside of this. Previously some pages are missing because of this (e.g. torchrun https://docs.pytorch.org/docs/1.13/elastic/run.html) --- lib/docs/filters/pytorch/entries.rb | 80 +---------------------------- lib/docs/scrapers/pytorch.rb | 46 +++++++++++++++-- 2 files changed, 43 insertions(+), 83 deletions(-) diff --git a/lib/docs/filters/pytorch/entries.rb b/lib/docs/filters/pytorch/entries.rb index b337edbb9b..37e26e3129 100644 --- a/lib/docs/filters/pytorch/entries.rb +++ b/lib/docs/filters/pytorch/entries.rb @@ -1,73 +1,6 @@ module Docs class Pytorch class EntriesFilter < Docs::EntriesFilter - TYPE_REPLACEMENTS = { - "torch.Tensor" => "Tensor", - "torch.nn" => "Neuro Network", - "Probability distributions - torch.distributions" => "Probability Distributions", - "torch" => "Torch", - "Quantization" => "Quantization", - "torch.optim" => "Optimization", - "torch.Storage" => "Storage", - "torch.nn.functional" => "NN Functions", - "torch.cuda" => "CUDA", - "Torch Distributed Elastic" => "Distributed Elastic", - "torch.fx" => "FX", - "TorchScript" => "Torch Script", - "torch.onnx" => "ONNX", - "Distributed communication package - torch.distributed" => "Distributed Communication", - "Automatic differentiation package - torch.autograd" => "Automatic Differentiation", - "torch.linalg" => "Linear Algebra", - "Distributed Checkpoint - torch.distributed.checkpoint" => "Distributed Checkpoint", - "Distributed RPC Framework" => "Distributed RPC", - "torch.special" => "SciPy-like Special", - "torch.package" => "Package", - "torch.backends" => "Backends", - "FullyShardedDataParallel" => "Fully Sharded Data Parallel", - "torch.sparse" => "Sparse Tensors", - "torch.export" => "Traced Graph Export", - "torch.fft" => "Discrete Fourier Transforms", - "torch.utils.data" => "Datasets and Data Loaders", - "torch.monitor" => "Monitor", - "Automatic Mixed Precision package - torch.amp" => "Automatic Mixed Precision", - "torch.utils.tensorboard" => "Tensorboard", - "torch.profiler" => "Profiler", - "torch.mps" => "MPS", - "DDP Communication Hooks" => "DDP Communication Hooks", - "Benchmark Utils - torch.utils.benchmark" => "Benchmark Utils", - "torch.nn.init" => "Parameter Initializations", - "Tensor Parallelism - torch.distributed.tensor.parallel" => "Tensor Parallelism", - "torch.func" => "JAX-like Function Transforms", - "Distributed Optimizers" => "Distributed Optimizers", - "torch.signal" => "SciPy-like Signal", - "torch.futures" => "Miscellaneous", - "torch.utils.cpp_extension" => "Miscellaneous", - "torch.overrides" => "Miscellaneous", - "Generic Join Context Manager" => "Miscellaneous", - "torch.hub" => "Miscellaneous", - "torch.cpu" => "Miscellaneous", - "torch.random" => "Miscellaneous", - "torch.compiler" => "Miscellaneous", - "Pipeline Parallelism" => "Miscellaneous", - "Named Tensors" => "Miscellaneous", - "Multiprocessing package - torch.multiprocessing" => "Miscellaneous", - "torch.utils" => "Miscellaneous", - "torch.library" => "Miscellaneous", - "Tensor Attributes" => "Miscellaneous", - "torch.testing" => "Miscellaneous", - "torch.nested" => "Miscellaneous", - "Understanding CUDA Memory Usage" => "Miscellaneous", - "torch.utils.dlpack" => "Miscellaneous", - "torch.utils.checkpoint" => "Miscellaneous", - "torch.__config__" => "Miscellaneous", - "Type Info" => "Miscellaneous", - "torch.utils.model_zoo" => "Miscellaneous", - "torch.utils.mobile_optimizer" => "Miscellaneous", - "torch._logging" => "Miscellaneous", - "torch.masked" => "Miscellaneous", - "torch.utils.bottleneck" => "Miscellaneous" - } - def get_breadcrumbs css('.pytorch-breadcrumbs > li').map { |node| node.content.delete_suffix(' >').strip @@ -75,18 +8,11 @@ def get_breadcrumbs end def get_name - b = get_breadcrumbs - b[(b[1] == 'torch' ? 2 : 1)..].join('.') + get_breadcrumbs[-1] end def get_type - t = get_breadcrumbs[1] - TYPE_REPLACEMENTS.fetch(t, t) - end - - def include_default_entry? - # Only include API entries to simplify and unify the list - return name.start_with?('torch.') + get_breadcrumbs[1] end def additional_entries @@ -108,8 +34,6 @@ def additional_entries entries << [id + '()', id] when 'py class', 'py attribute', 'py property' entries << [id, id] - when 'footnote brackets', 'field-list simple' - next end end diff --git a/lib/docs/scrapers/pytorch.rb b/lib/docs/scrapers/pytorch.rb index ae79ec36ac..cfa1d51010 100644 --- a/lib/docs/scrapers/pytorch.rb +++ b/lib/docs/scrapers/pytorch.rb @@ -12,20 +12,56 @@ class Pytorch < UrlScraper options[:skip] = ['cpp_index.html', 'deploy.html', 'packages.html', 'py-modindex.html', 'genindex.html'] options[:skip_patterns] = [/\Acommunity/, /\A_modules/, /\Anotes/, /\Aorg\/pytorch\//] + options[:max_image_size] = 1_000_000 options[:attribution] = <<-HTML - © 2024, PyTorch Contributors
+ © 2025, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file. HTML - version '2' do + version '2.7' do + self.release = '2.7' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.6' do + self.release = '2.6' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.5' do + self.release = '2.5' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.4' do + self.release = '2.4' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.3' do + self.release = '2.3' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.2' do + self.release = '2.2' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.1' do self.release = '2.1' - self.base_url = "https://pytorch.org/docs/#{release}/" + self.base_url = "https://docs.pytorch.org/docs/#{release}/" + end + + version '2.0' do + self.release = '2.0' + self.base_url = "https://docs.pytorch.org/docs/#{release}/" end - version '1' do + version '1.13' do self.release = '1.13' - self.base_url = "https://pytorch.org/docs/#{release}/" + self.base_url = "https://docs.pytorch.org/docs/#{release}/" end def get_latest_version(opts) From caf8dda169dfb33faad25865cd6dffe07228ca05 Mon Sep 17 00:00:00 2001 From: Yikai Zhao Date: Sat, 31 May 2025 14:18:37 +0800 Subject: [PATCH 21/68] numpy: add new version 2.1 and 2.2 --- lib/docs/scrapers/numpy.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/docs/scrapers/numpy.rb b/lib/docs/scrapers/numpy.rb index 6ecca0a87e..a679caaae2 100644 --- a/lib/docs/scrapers/numpy.rb +++ b/lib/docs/scrapers/numpy.rb @@ -1,4 +1,8 @@ module Docs + # Requires downloading the documents to local disk first. + # Go to https://numpy.org/doc/, click "HTML+zip" to download + # (example url: https://numpy.org/doc/2.2/numpy-html.zip), + # then extract into "docs/numpy~#{version}/" class Numpy < FileScraper self.name = 'NumPy' self.type = 'sphinx' @@ -26,6 +30,18 @@ class Numpy < FileScraper Licensed under the 3-clause BSD License. HTML + version '2.2' do + self.release = '2.2' + self.base_url = "https://numpy.org/doc/#{self.version}/" + options[:container] = nil + end + + version '2.1' do + self.release = '2.1' + self.base_url = "https://numpy.org/doc/#{self.version}/" + options[:container] = nil + end + version '2.0' do self.release = '2.0.1' self.base_url = "https://numpy.org/doc/#{self.version}/" From 754285081d012660223ce97005625d44e7d00e8d Mon Sep 17 00:00:00 2001 From: Yikai Zhao Date: Sat, 31 May 2025 14:22:15 +0800 Subject: [PATCH 22/68] update logo --- public/icons/docs/numpy/16.png | Bin 834 -> 1121 bytes public/icons/docs/numpy/16@2x.png | Bin 2309 -> 2161 bytes public/icons/docs/numpy/SOURCE | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/public/icons/docs/numpy/16.png b/public/icons/docs/numpy/16.png index ca5252ef09439cf556307a9867f05e67b5791b28..a24fcb151b3c1aa81046730e88a86b703eee22e4 100644 GIT binary patch literal 1121 zcmX9+e^3-<82*;)4g?tqMebDe2sjbM2!^PJW(1DA{mCdoBZSk!DbT1BAa{qD6PlBA zy`@GNdyzhRl zUHR7V&<&vop>T>c7r;A0eL^&_CZ?>}123bEEZ`7oFd@`<3ZVrEH9kVfo{CU_N9eUy zgrciEzS^CIP*CVDwlEI>2oZ22f>0MkSUh92DAQg{x+OJ7AgdR%g3O9C<&n?{h4jdb zh*=SnUOBgCoE7~5wthMcSrsN=$}6KrrASa{LFPn=$fVbg6on84+U)~?8Wb@tN_3r^ zd(=;Pd<-ZGa*p6dI z$Vr7ik=3%reHVgYlJQEE02?{2%?B72=}=+7!#Pwosut&X?yPhNmeSjNfKeSfF?IMR z=ag9|l>3*v07VRJti#VZFgj)Dr1unx?DoEns&7mF}V zG%B1rJ(;vistqUJ*)Qk1M;KvcdNOC1K$o&hmTDiAlU_B>2{^qK3YWc!vbART)tVm| zyKm=^0&bbl#w>LMsv@*3;Is;fabVgmsiLCaEcjH#<$nP@Kn|8v^XfD(v;dP)6y>zN z2Tly?t}Dn_PZC_)yDsk_2y@_RK@fF&h>m`@CH|FbLv)a)WpTEY&}2?7EuKAYvfOCe zXufA#>&}jnk5V zcrR+|$1>P0NyNH0Z{*MaJW*dEmqrHNTZ;Smzli8#6Vr}BoMFcL*Q|DKu`hB}!*ku4 zVc*TQXl;DSnavAK2OL*KlrvUyud)2w82AXTqqw}_$J#Brs4eej45?{7WzH_tkK1^D zKhN{!wm%;1uPEos`7*w&Yjcj@WGpDRHCU7`OIc zt#WmryWS*RTqp?VighW6WA?p%ToaocXNz0AC;f;nj7c`>4z?$JcxdKHbIhhreMigS zK-%EovHFIi|IRO@%vOf%U9bOs-KNM5>o-4dh`JU3K`j5QX<}ghz$#aAbV6Q&`%2oC zUV4phr1X>KTk%^nUmUs=QDxa(Lp=^$f7*0c2wW_=WElN3pxJn#GUMfpo91V|Zy%^S z`1hkHCD*dVuPdo{-cnAvRX{PYHE6_uhr1nJWzZ8knWAM nzZN&%?n-w~E^5OJ`nJ7#6cU-=d12&y9}EdmdHLqP9RB40oeu*2 literal 834 zcmV-I1HJr-P)cR*S2pL)v?pWw)67BL2Nr^oOIW=ZDVZD{6CztchCgCcGV01bp7=| zGyLJvnvL_Gtls|pGc`Lt{a?+FXP>Fsan&#YkfpT8T&M=bagI5+~n&lJa zuu{1whL#;V1Fa!=ZP>H-rbPxZ`|C~D%|FmFEDSjjUwr^U1OQ1%Rg#d|#3JUe=0v0? zOTC4ZiSttHg5jZ`(Lq)l8;gL*gI)rWNoaIlueoUKb|}pr02Gf9AOge&1ypM4tgwfh zM%g$Cv6x~)8-N29K>=09%7S*dXyP`g$m=GX`lR64kvK#^nmu;cz}&HWnFc0gPEi{MDpSm=+k zgp3sea^w&dQEAWFY2L0AGb@IoY`@TpC7T@-2K_p7*kL=dyh$@j4h%1Ca-koATF)pr zbVlnzA=^x>JT~C_?%>|m(G%2BF^XEN80={rNBx;R8eUxIQ~-@43b;-Mh*2^0k0RF#Rt_Xym#Abb!pKIn&iXUJ%CMSkDFB~#ZPIIpnnIHXy}i3b1o_KS0uRaGg$ ze^phjHn+UCqU6@sSIxPlcIRb#mp%8W9=ZI(g};3A^|kj#004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv0RI600RN!9r;`8x z2l`1wK~z}7jaO@Ml+_u2p7ZS`3lX8VfQGS^OUDLUxr6913D+b7UdC*Q9UKv>RuHFZ zt^5 zjIIg*Ao7@5Ib+>4zh8Hgs3bTU03e*PLbavYv9JA)#}J9w3`}5jiQt#f8UR+k)-uuO zx<5B?%0Z0hu(L^?It9HJABaC*w_)*#(Lgf+%!O1adbHkG6sh+C0D94DWf}zi9fCUq zn-V1mP^V-+g4|v}K;$ul$e(?qBWPs!qN)>lp-@M$A?^bKS^I2FDTmX%p$7lP`o!`~4d09_Uz4eVb)4YUqW)8UhuN}N)@#zHc z)CE3c?ge-~iLt5k6c4)=+r60iQ{Ams^`_8C0424@g6!_xU})|IQAp62rkKfhK!7W$ zHSTe1UFDp2Gp$(>ZM-;-&QlO7NsUR0h9EF$rvMjHt84Y^vz>@G-90aE1Y+RyNm?K- zGM3Fy8bW{zpxqOnalFAc0Qgo-G*A?6%Ljo2?en@l*WDrD6@eY8`3*KX_z?+aGT}xP8&Nd2ck1nbc=Wjo}soR|5zFaIMrTa9iKm^RG8-F77F+s?Q7M zUtDZtwhDFzp(@u4?A%}Z?avU2n3Xe1rUiU~yGT@myp+IzmHuKap6>7OtZ&#@JWy0$ z?+cwC_jRs$sQDcLU$epseel27@Z_vh(|=PNoI3f^rGBDZ9uM>xUu{EpR!?c|v7oxU zR{4zYKFBUj#E2kJ06rJ+YAlB5-#oVKI3f|d;-$vR{UNTio>~Y0(S4}lv0}Hdx-D?I z28(?(TLg{cnunU-C2=(XYlZ(>;NiVb%y}glpG>8AX|!pX0V5RsT!DF6IP2$y6q21ti}S$-4~#E=D0Y%_qL zq_p)pyus&lZY=9*so?`hx9_R>s0B6QrvL!uQD^lZn&$e9xtmrugB(wi0#2o!C4lLg zl1gxs<;Qf&8j`my`$0>=khTN}<{Jka>GK-OzA=3#%A*b<5mOeP@wDGD4Tkt0$q9)@ zH9{j&y7YQd9KbO%1Td^F6DkM>?49YuLs0?>`G#0oKC{p%pZO>$EhcbLHW+hcCe-4f zmG%S9x}M(in+!%;0!Y%4*;smS>y!+yWk*mVPexvuzQ(8U#C{38UF%(cqW$A_wc)Gw zb;ZVc2C2rb#LE*-rq$LI2EDs*fw^G>J98dr_*YSkz}lYn^Ed9Rn74n*)XT<~RX1(E zY=ZB1CX4@soE-u>0D%MzxpCF~@8`0RWx0laYKRz}v(|ePRI47`5kuwyd?2_x_+BXD^ja&+rpF9!!`jn30gpL@krFyl+(KM z9zNgQx43rwobApPogJms&DUHPp8m4qnBC+!CTL3_H^*U7$+EN>2vH@|J z7Nqu9%&$M)+Z8K|wwC1o@8Z`TqXPz94=^7pzu@F+JlHlt1KGhPy#3qnbjZUt3Gw0M z?{IZXqDR(UIeGE{hjtgiQi6Gz#wzP3_fL9(h=6EovnU!b=P8J=ak!;O&vR zUn*_NqjDVJrzEb$P@B#`8a9C@W%WsV!KlsPJ-?cJ;8dq~L)>bOYjHd^3N*a9 zd;nIzAT^jPG5tNa7ICBxNa(b}?>)~h?`iM6X>WM$Tghfb9C?0z9KeAgVaY4msjkCs zO&Yggm*b#fw1P9#w@3NEGj`4!W6h31dNl{zcYmnl%_-ZNqu-ve>cPXa0>*cc#Kg44 zI-3^?Okv?nuMf@d8FF5Bs7L@?cI(&zRD`|JWSgv_o#Ee1Tk4)#(B@fthop~?PR$&9 zlNg?bj(Zl5^r?R>!eNhTT1Ru%D7+54%@#e-^wlvAwiuZ2gJLKYn1aHYULRWCGt_K} zZGxWrqHCb~&>c&@_!8u1^b(B>oGO`_Yx(_u`(~aKxbsx!;YXS}CfKr@r*8-FR%hOr n-S6CRWjBy{s~_cFo?QP2<~h=2%(K~u00000NkvXXu0mjfEjA2W literal 2309 zcmV+g3HtVlP)2rp^V=d1si0g_+ErUd~ zdumUQ+RkWPHwzW1D0oi|w^ST%cB2U%1@FZHtaLm|^cnsTAO+Eiv9X(*m!(TT#ewGx zy4}A;t2q=wP9XpWXomTP(p@&P9kiXU5DM4L4f6&Ky8t~SFsX8Qfq6D`yMC#aG+(F< zVjpQj4f@f=LGP>WnGS#Sbicaw?Dbz>o?E+Wy)*7?bf#$PnTiGATw?J76?GtLkT4OB zRL!e%k%ynp;DXT>DzjTr^O|Xuk45HUgBGpJ#%YGk7BIlg0l?B>p1$cqN*ZnksOq7=T#}jAQ_!$N~Il6W#?mG`SIF z2*+?ImB$xLwF&_c&CWiu_2d0C#i8LQoaMP6-C|?B)Jt@Em{V@=)H83rwaV>~%qxf^3pzk3LoV~K*&!T|KKH8Eajw6KeeZknN_^yr%lxA&moB=D zh5{7=CX`C5>3|Z@Kmg#82(p5SCx)BuAU4{b)>(YQ%3VZH?hH>B(Jun1vTo!P2?s3q z#(sD>9?n(+#S7dUOj&4zhNWwyp`?OvA{8o3>eTy#rPEu>VL^)E$Z|Tqu#N|J2M{Vk zBw2I2rQbuj?SHY?7lNs#QiHLZa%d;pO!gYT50<(01BdnqmY!(0Ax^1r2vD@1UH`Z0b3fKE)TDtz0@{yJpa&> zTHov8$+fevF&prKGv_IxON$1OqbMK<{qCkd>EaKtl!SeRP}PM;23xpy?5GWu0(4hj zEp8ABavS%hf(p-p$-IwtYa3jIkdDu9VzIx6jKKY;E+ie8t26c*z~CskXlrkQZ+q|- z4C@{A>jsl1;c$O5)+e==>!Rt@M4)6kB!q~MRVhsjVVX39rIXud-7MH*UA1#$7*Qe@ zg+Mq63LuCQLi9fo~m4O19G(ym*o00;n4#B}cB3NAnEEdapBw$5%ITR+_U=Z}A; zf8?1@)$@$mw8qi-O(dUaz3I{cgbbO2M+I>gpK|d#P$6g*Fcx$=nTZ*j*#ag*@sTqR z7`P=65f% zF_s5AXp5m^MV_WX%iL}W3u#tBM9`RaQ}`n(3(wlvTfP#srBt^$D{>*sAumEPFhNA^ z8J()&_KV&JG4!6tZse)0BM2SC(r^tAp6;P7K(LLC$vo%#t8yvJY_n#HQpyL+1rSWT zlX*R{arP}m#?ZWrNNIbHB6mPiu z6U_h+q+k`Lg}u_Q^*at^0}x14b>hwU-f=e#N1bJ0*0ASoY=#*mfG93HVF&}SId*qg z&}F0ufC{s)C@gMbEzm^lOCSP);;~(sSqLxw>Z^}GV4rfyo5uhid3@`{aHmP#_db2) zs2B8P1x+}@WDSLD&;F2(ba!b)8%0%R+J7z2Km3GxRZF9h2*`_yEJB8?Sa%r&!ALyI zp%h`la|YFTRWUdo$uN!?Iw{Avq$bM#w6pip4}I>4X@;}=XWFClTh%NljXJBbSZ`P^ zmLX52kPgG~(FV5BP6z@)APEQnDPnzX;p>uM!gH4U8z=Xhmwc_n4k;ArNu!QB*)0rE z)JLWZW7}P$dZEpT0D@KA9XI><;Q`V#~el*_qwp_Tj~~y*>Ed4riz=jHm5u zfb!dQ{|r)_s{$b5AX4rbZSb_HlZ80RVtpX4qLDfD2o1|!XgKUNSm@1g=cR9NM|GP| z?T)7ReE5P{kpUF3k0C%G@AuMg<2mVd_h0op$LG)e!lmxcS)=Ywe|fNJb)922)4heZ zbKou!5{fj2V^z?qgF)%GDh0a8Pc8P>G|N0fs$wBgWB?GA-UINbaX`9f^_n-`vx+z2 zfTvdS+4J+|>%;6~A Date: Sun, 1 Jun 2025 09:01:40 +0200 Subject: [PATCH 23/68] Update Koa documentation (3.0.0) --- lib/docs/scrapers/koa.rb | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/lib/docs/scrapers/koa.rb b/lib/docs/scrapers/koa.rb index f16b1061da..d61201ca80 100644 --- a/lib/docs/scrapers/koa.rb +++ b/lib/docs/scrapers/koa.rb @@ -2,10 +2,6 @@ module Docs class Koa < Github - self.base_url = 'https://github.com/koajs/koa/blob/master/docs' - self.release = '2.15.0' - - self.root_path = 'api/index.md' self.initial_paths = %w[ error-handling faq @@ -30,16 +26,43 @@ class Koa < Github options[:trailing_slash] = false options[:container] = '.markdown-body' - options[:fix_urls] = ->(url) do - url.sub! 'https://koajs.com/#error-handling', Koa.base_url + '/error-handling.md' - url - end + options[:attribution] = <<-HTML © 2020 Koa contributors
Licensed under the MIT License. HTML + version do + self.base_url = 'https://github.com/koajs/koa/blob/v3.0.0/docs' + self.root_path = 'api/index.md' + self.release = '3.0.0' + options[:fix_urls] = ->(url) do + url.sub! 'https://koajs.com/#error-handling', self.base_url + '/error-handling.md' + url + end + end + + version '2' do + self.base_url = 'https://github.com/koajs/koa/blob/v2.16.1/docs' + self.root_path = 'api/index.md' + self.release = '2.16.1' + options[:fix_urls] = ->(url) do + url.sub! 'https://koajs.com/#error-handling', self.base_url + '/error-handling.md' + url + end + end + + version '1' do + self.base_url = 'https://github.com/koajs/koa/blob/1.7.1/docs' + self.root_path = 'api/index.md' + self.release = '1.7.1' + options[:fix_urls] = ->(url) do + url.sub! 'https://koajs.com/#error-handling', self.base_url + '/error-handling.md' + url + end + end + def get_latest_version(opts) get_npm_version('koa', opts) end From 23ffcc3a83b1a8f610e29511b61cecf7dcf79a7f Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 09:26:01 +0200 Subject: [PATCH 24/68] pytorch: add redirects --- lib/app.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/app.rb b/lib/app.rb index 89fe6cf0a3..675936fbac 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -376,6 +376,8 @@ def modern_browser?(browser) 'angular~1.3' => 'angularjs~1.3', 'angular~1.2' => 'angularjs~1.2', 'codeigniter~3.0' => 'codeigniter~3', + 'pytorch~1' => 'pytorch~1.13', + 'pytorch~2' => 'pytorch', 'webpack~2' => 'webpack' } From 0dfc7799ecf611a1441b06cda911e49cca2eb541 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 09:52:48 +0200 Subject: [PATCH 25/68] Update Axios documentation (1.9.0) --- lib/docs/scrapers/axios.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/axios.rb b/lib/docs/scrapers/axios.rb index 6265a9c376..c29b41ba6c 100755 --- a/lib/docs/scrapers/axios.rb +++ b/lib/docs/scrapers/axios.rb @@ -5,7 +5,7 @@ class Axios < UrlScraper home: 'hthttps://axios-http.com/', code: 'https://github.com/axios/axios' } - self.release = '1.7.7' + self.release = '1.9.0' self.base_url = "https://axios-http.com/docs/" self.initial_paths = %w(index intro) options[:skip] = %w(sponsor) From 3bfddfeb01d62eb4a2b55a99cf3d4d88ffeed84e Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 09:58:59 +0200 Subject: [PATCH 26/68] Update Sass documentation (1.89.1) --- lib/docs/scrapers/sass.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/sass.rb b/lib/docs/scrapers/sass.rb index d0c0a93537..1a1296c04c 100644 --- a/lib/docs/scrapers/sass.rb +++ b/lib/docs/scrapers/sass.rb @@ -1,7 +1,7 @@ module Docs class Sass < UrlScraper self.type = 'yard' - self.release = '1.85.0' + self.release = '1.89.1' self.base_url = 'https://sass-lang.com/documentation' self.root_path = 'index.html' self.links = { From 8771abc223efa42a16ab7e1b07fa1a80b16a755f Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:02:00 +0200 Subject: [PATCH 27/68] Update Octave documentation (10.1.0) --- lib/docs/scrapers/octave.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/docs/scrapers/octave.rb b/lib/docs/scrapers/octave.rb index 085d6fd804..ee798d58dc 100644 --- a/lib/docs/scrapers/octave.rb +++ b/lib/docs/scrapers/octave.rb @@ -4,8 +4,8 @@ class Octave < UrlScraper self.type = 'octave' self.root_path = 'index.html' self.links = { - home: 'http://www.octave.org/', - code: 'http://www.octave.org/hg/octave' + home: 'https://www.octave.org/', + code: 'https://www.octave.org/hg/octave' } html_filters.push 'octave/clean_html', 'octave/entries', 'title' @@ -23,12 +23,17 @@ class Octave < UrlScraper options[:root_title] = 'GNU Octave' options[:attribution] = <<-HTML - © 1996–2023 The Octave Project Developers
+ © 1996–2025 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. HTML + version '10' do + self.release = '10.1.0' + self.base_url = "https://docs.octave.org/v#{self.release}/" + end + version '9' do self.release = '9.2.0' self.base_url = "https://docs.octave.org/v#{self.release}/" From a6e3849c2c556c2b512a37ec8b4ad9d446888e95 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:02:15 +0200 Subject: [PATCH 28/68] Update Rust documentation (1.87.0) --- lib/docs/scrapers/rust.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/rust.rb b/lib/docs/scrapers/rust.rb index 21de1602c1..e53c8548a0 100644 --- a/lib/docs/scrapers/rust.rb +++ b/lib/docs/scrapers/rust.rb @@ -3,7 +3,7 @@ module Docs class Rust < UrlScraper self.type = 'rust' - self.release = '1.86.0' + self.release = '1.87.0' self.base_url = 'https://doc.rust-lang.org/' self.root_path = 'book/index.html' self.initial_paths = %w( From c336a0eaec8a0a623f1c543e415211371bacbd97 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:07:00 +0200 Subject: [PATCH 29/68] Update Kubectl documentation (1.33.1) --- lib/docs/scrapers/kubectl.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/docs/scrapers/kubectl.rb b/lib/docs/scrapers/kubectl.rb index 732b5211f1..62b556862c 100644 --- a/lib/docs/scrapers/kubectl.rb +++ b/lib/docs/scrapers/kubectl.rb @@ -14,13 +14,13 @@ class Kubectl < UrlScraper options[:container] = '#page-content-wrapper' options[:attribution] = <<-HTML - © 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
- Copyright © 2024 The Linux Foundation ®. All rights reserved. + © 2025 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
+ Copyright © 2025 The Linux Foundation ®. All rights reserved. HTML # latest version has a special URL that does not include the version identifier version do - self.release = "1.31.2" + self.release = "1.33.1" self.base_url = "https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands" end From 2560e37df64ac8e2e80085f0df4dad8d9545f63d Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:07:29 +0200 Subject: [PATCH 30/68] Update Kubernetes documentation (1.33.1) --- lib/docs/scrapers/kubernetes.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/docs/scrapers/kubernetes.rb b/lib/docs/scrapers/kubernetes.rb index 39cefac7cb..d012c15f2e 100644 --- a/lib/docs/scrapers/kubernetes.rb +++ b/lib/docs/scrapers/kubernetes.rb @@ -14,13 +14,13 @@ class Kubernetes < UrlScraper options[:container] = '.td-content' options[:attribution] = <<-HTML - © 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
- Copyright © 2024 The Linux Foundation ®. All rights reserved. + © 2025 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
+ Copyright © 2025 The Linux Foundation ®. All rights reserved. HTML # latest version has a special URL that does not include the version identifier version do - self.release = "1.31.2" + self.release = "1.33.1" self.base_url = "https://kubernetes.io/docs/reference/kubernetes-api/" end From d134b9f64589af55137b3aaaabc0d07d1e53ef1d Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:08:25 +0200 Subject: [PATCH 31/68] Update PointCloudLibrary documentation (1.15.0) --- lib/docs/scrapers/point_cloud_library.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/point_cloud_library.rb b/lib/docs/scrapers/point_cloud_library.rb index 2fdc609de5..7c49965497 100644 --- a/lib/docs/scrapers/point_cloud_library.rb +++ b/lib/docs/scrapers/point_cloud_library.rb @@ -9,7 +9,7 @@ class PointCloudLibrary < UrlScraper self.initial_paths = [ "https://pointclouds.org/documentation/hierarchy.html" ] - self.release = '1.13.0' + self.release = '1.15.0' self.links = { home: 'https://pointclouds.org/', From c71b811e8e53e0e628f9fa00c2bf9f78b71b24ff Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 10:13:04 +0200 Subject: [PATCH 32/68] Update Node.js documentation (24.1.0) --- lib/docs/scrapers/node.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/docs/scrapers/node.rb b/lib/docs/scrapers/node.rb index d8dc6cb484..ea9af21225 100644 --- a/lib/docs/scrapers/node.rb +++ b/lib/docs/scrapers/node.rb @@ -24,10 +24,15 @@ class Node < UrlScraper HTML version do - self.release = '22.3.0' + self.release = '24.1.0' self.base_url = 'https://nodejs.org/api/' end + version '22 LTS' do + self.release = '22.16.0' + self.base_url = 'https://nodejs.org/dist/latest-v22.x/docs/api/' + end + version '20 LTS' do self.release = '20.15.01' self.base_url = 'https://nodejs.org/dist/latest-v20.x/docs/api/' From 0b5689ac6f899715c85d58ee5ec9a71e1ea812a6 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:15:01 +0200 Subject: [PATCH 33/68] Update Web APIs documentation --- assets/stylesheets/global/_classes.scss | 5 +++++ assets/stylesheets/pages/_mdn.scss | 10 ++++++++-- lib/docs/scrapers/mdn/dom.rb | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/assets/stylesheets/global/_classes.scss b/assets/stylesheets/global/_classes.scss index 9e6b933279..3321ff8fba 100644 --- a/assets/stylesheets/global/_classes.scss +++ b/assets/stylesheets/global/_classes.scss @@ -133,6 +133,11 @@ border-color: var(--noteRedBorder); } +%note-gray, %label-gray { + background: var(--boxBackground); + border: 1px solid var(--boxBorder); +} + // // External links // diff --git a/assets/stylesheets/pages/_mdn.scss b/assets/stylesheets/pages/_mdn.scss index 9155df4534..1bc6b8d831 100644 --- a/assets/stylesheets/pages/_mdn.scss +++ b/assets/stylesheets/pages/_mdn.scss @@ -28,12 +28,18 @@ p > code, li > code { @extend %label; } - details { @extend %box; } + details { @extend %note; @extend %box; } + details.baseline-indicator.not { @extend %note; @extend %note-gray; } + details.baseline-indicator.low { @extend %note; @extend %note-blue; } + details.baseline-indicator.high { @extend %note; @extend %note-green; } summary > div { display: inline; } + summary .status-title { font-weight: bold; } > .note, .notecard, // MDN 2021 - .notice, + .notice { + @extend %note; @extend %note-blue; + } .warning, .overheadIndicator, .blockIndicator, diff --git a/lib/docs/scrapers/mdn/dom.rb b/lib/docs/scrapers/mdn/dom.rb index 322d65d03f..88facbeda9 100644 --- a/lib/docs/scrapers/mdn/dom.rb +++ b/lib/docs/scrapers/mdn/dom.rb @@ -1,6 +1,6 @@ module Docs class Dom < Mdn - # release = '2025-01-30' + # release = '2025-06-01' self.name = 'Web APIs' self.slug = 'dom' self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/API' From 778474845a65fb4bf3aff30d1fac3ad23711d91d Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:21:13 +0200 Subject: [PATCH 34/68] Update JavaScript documentation --- lib/docs/scrapers/mdn/javascript.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/mdn/javascript.rb b/lib/docs/scrapers/mdn/javascript.rb index 28268b8112..28c0808cee 100644 --- a/lib/docs/scrapers/mdn/javascript.rb +++ b/lib/docs/scrapers/mdn/javascript.rb @@ -3,7 +3,7 @@ class Javascript < Mdn prepend FixInternalUrlsBehavior prepend FixRedirectionsBehavior - # release = '2025-04-15' + # release = '2025-06-01' self.name = 'JavaScript' self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference' self.links = { From b864fb10df5ea913c710a7d05f8cfbb87317c483 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:29:12 +0200 Subject: [PATCH 35/68] Update CSS documentation --- lib/docs/scrapers/mdn/css.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/mdn/css.rb b/lib/docs/scrapers/mdn/css.rb index 42ace85097..5247481579 100644 --- a/lib/docs/scrapers/mdn/css.rb +++ b/lib/docs/scrapers/mdn/css.rb @@ -1,6 +1,6 @@ module Docs class Css < Mdn - # release = '2024-11-17' + # release = '2025-06-01' self.name = 'CSS' self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/CSS' self.root_path = '/Reference' From 6797b57aedc398b12e1820afa4a1505bcd65f7b0 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:50:33 +0200 Subject: [PATCH 36/68] Update HTML documentation () --- lib/docs/filters/html/entries.rb | 19 ++++++++++--------- lib/docs/scrapers/mdn/html.rb | 8 +------- lib/docs/scrapers/mdn/mdn.rb | 2 +- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/lib/docs/filters/html/entries.rb b/lib/docs/filters/html/entries.rb index b018d9087d..1dcf397a06 100644 --- a/lib/docs/filters/html/entries.rb +++ b/lib/docs/filters/html/entries.rb @@ -5,21 +5,22 @@ class EntriesFilter < Docs::EntriesFilter def get_name name = super - name.sub!('Element.', '').try(:downcase!) - name.sub!('Global attributes.', '').try(:concat, ' (attribute)') + name.sub!('Guides.', '') + name.sub!('How to.', '') + name.sub!('Reference.Elements.', '').try(:downcase!) + name.sub!('Reference.Attributes.', '').try(:concat, ' (attribute)') + name.sub!('Reference.Global attributes.', '').try(:concat, ' (attribute)') name.sub!(/input\.([-\w]+)/, 'input type="\1"') name end def get_type - return 'Miscellaneous' if slug.include?('CORS') || slug.include?('Using') - if at_css('.deprecated', '.non-standard', '.obsolete') - 'Obsolete' - elsif slug.start_with?('Global_attr') - 'Attributes' - elsif slug.start_with?('Element/') - 'Elements' + 'Obsolete' + elsif slug.start_with?('Guides/') + 'Guides' + elsif slug.start_with?('Reference/') + slug.split('/').drop(1).first.sub(/_/, ' ') else 'Miscellaneous' end diff --git a/lib/docs/scrapers/mdn/html.rb b/lib/docs/scrapers/mdn/html.rb index 70b75917ac..fcec226ed5 100644 --- a/lib/docs/scrapers/mdn/html.rb +++ b/lib/docs/scrapers/mdn/html.rb @@ -2,7 +2,7 @@ module Docs class Html < Mdn prepend FixInternalUrlsBehavior - # release = '2024-08-20' + # release = '2025-06-01' self.name = 'HTML' self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/HTML' self.links = { @@ -22,11 +22,5 @@ class Html < Mdn '/Element/h5' => '/Element/Heading_Elements', '/Element/h6' => '/Element/Heading_Elements', '/Global_attributes/data-%2A' => '/Global_attributes/data-*' } - - options[:fix_urls] = ->(url) do - url.sub! 'https://developer.mozilla.org/en-US/docs/HTML/', "#{Html.base_url}/" unless url.include?('Content_categories') - url - end - end end diff --git a/lib/docs/scrapers/mdn/mdn.rb b/lib/docs/scrapers/mdn/mdn.rb index ebc482e7cc..c574345992 100644 --- a/lib/docs/scrapers/mdn/mdn.rb +++ b/lib/docs/scrapers/mdn/mdn.rb @@ -18,7 +18,7 @@ class Mdn < UrlScraper } options[:attribution] = <<-HTML - © 2005–2024 MDN contributors.
+ © 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later. HTML From de218ca78209255993240ec69f6ea4d110a4acb6 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:54:01 +0200 Subject: [PATCH 37/68] Update Perl documentation (5.40.2) --- lib/docs/scrapers/perl.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/docs/scrapers/perl.rb b/lib/docs/scrapers/perl.rb index 6c9febb338..e28f4076ae 100644 --- a/lib/docs/scrapers/perl.rb +++ b/lib/docs/scrapers/perl.rb @@ -19,11 +19,16 @@ class Perl < UrlScraper options[:skip_patterns] = [/\Afunctions/, /\Avariables/, /\.pdf/, /delta/] options[:attribution] = <<-HTML - © 1993–2023 Larry Wall and others
+ © 1993–2025 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation. HTML + version '5.40' do + self.release = '5.40.2' + self.base_url = "https://perldoc.perl.org/#{release}/" + end + version '5.38' do self.release = '5.38.0' self.base_url = "https://perldoc.perl.org/#{release}/" From 24a9cbbc324cddabfee452b4d566af5e6e9fcc3c Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:56:35 +0200 Subject: [PATCH 38/68] Update SQLite documentation (3.50.0) --- lib/docs/scrapers/sqlite.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/sqlite.rb b/lib/docs/scrapers/sqlite.rb index 7de3e57f12..c7a4cd36df 100644 --- a/lib/docs/scrapers/sqlite.rb +++ b/lib/docs/scrapers/sqlite.rb @@ -2,7 +2,7 @@ module Docs class Sqlite < UrlScraper self.name = 'SQLite' self.type = 'sqlite' - self.release = '3.49.1' + self.release = '3.50.0' self.base_url = 'https://sqlite.org/' self.root_path = 'docs.html' self.initial_paths = %w(keyword_index.html) From db68e27b900da5fac64390cfef028e9546ad4125 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 11:59:54 +0200 Subject: [PATCH 39/68] Update Jekyll documentation (4.4.1) --- lib/docs/scrapers/jekyll.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/jekyll.rb b/lib/docs/scrapers/jekyll.rb index 1c0534ebe8..d105e3523f 100644 --- a/lib/docs/scrapers/jekyll.rb +++ b/lib/docs/scrapers/jekyll.rb @@ -23,12 +23,12 @@ class Jekyll < UrlScraper } options[:attribution] = <<-HTML - © 2020 Jekyll Core Team and contributors
+ © 2025 Jekyll Core Team and contributors
Licensed under the MIT license. HTML version '4' do - self.release = '4.2.0' + self.release = '4.4.1' end version '3' do From 896f8e0a023f6481e51d1845291ae86aa3a10296 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 12:25:54 +0200 Subject: [PATCH 40/68] Update PostgreSQL documentation (17.5) --- lib/docs/scrapers/postgresql.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/postgresql.rb b/lib/docs/scrapers/postgresql.rb index e54cc8a513..6ce5bbf8aa 100644 --- a/lib/docs/scrapers/postgresql.rb +++ b/lib/docs/scrapers/postgresql.rb @@ -17,6 +17,7 @@ class Postgresql < UrlScraper options[:title] = false options[:root_title] = 'PostgreSQL' options[:follow_links] = ->(filter) { filter.initial_page? } + options[:rate_limit] = 200 options[:skip] = %w( index.html @@ -51,12 +52,12 @@ class Postgresql < UrlScraper /\Aunsupported-features/ ] options[:attribution] = <<-HTML - © 1996–2024 The PostgreSQL Global Development Group
+ © 1996–2025 The PostgreSQL Global Development Group
Licensed under the PostgreSQL License. HTML version '17' do - self.release = '17.1' + self.release = '17.5' self.base_url = "https://www.postgresql.org/docs/#{version}/" end From 1dc15574d4bbe7676ffb06176dd3bc484916d856 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 18:51:18 +0200 Subject: [PATCH 41/68] Update Svelte documentation (5.33.11) --- lib/docs/scrapers/svelte.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/svelte.rb b/lib/docs/scrapers/svelte.rb index aac8738920..537c2cc063 100644 --- a/lib/docs/scrapers/svelte.rb +++ b/lib/docs/scrapers/svelte.rb @@ -13,7 +13,7 @@ class Svelte < UrlScraper # https://github.com/sveltejs/svelte/blob/master/LICENSE.md options[:attribution] = <<-HTML - © 2016–2024 Rich Harris and contributors
+ © 2016–2025 Rich Harris and contributors
Licensed under the MIT License. HTML @@ -21,7 +21,7 @@ class Svelte < UrlScraper html_filters.push 'svelte/entries', 'svelte/clean_html' version do - self.release = '5.2.3' + self.release = '5.33.11' end version '4' do From 786a238d5e238d1fdb0226f88bf5d29c8f788695 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 20:40:32 +0200 Subject: [PATCH 42/68] Update QUnit documentation (2.24.1) --- lib/docs/filters/qunit/entries.rb | 3 ++- lib/docs/scrapers/qunit.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/docs/filters/qunit/entries.rb b/lib/docs/filters/qunit/entries.rb index 43de1c5af8..fa4541c45b 100644 --- a/lib/docs/filters/qunit/entries.rb +++ b/lib/docs/filters/qunit/entries.rb @@ -8,7 +8,8 @@ class EntriesFilter < Docs::EntriesFilter 'assert' => '2. Assertions', 'callbacks' => '3. Callback events', 'config' => '4. Configuration', - 'extension' => '5. Extension interface' + 'extension' => '5. Extension interface', + 'reporters' => '6. Reporters', } def get_name at_css('h1').content diff --git a/lib/docs/scrapers/qunit.rb b/lib/docs/scrapers/qunit.rb index ff13fbdb7b..125605e373 100644 --- a/lib/docs/scrapers/qunit.rb +++ b/lib/docs/scrapers/qunit.rb @@ -4,7 +4,7 @@ module Docs class Qunit < UrlScraper self.name = 'QUnit' self.type = 'qunit' - self.release = '2.21.0' + self.release = '2.24.1' self.base_url = 'https://qunitjs.com/api/' self.root_path = '/' self.links = { From afc9e535c1012b2299fe46b4c12666537f052a0b Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sun, 1 Jun 2025 20:57:09 +0200 Subject: [PATCH 43/68] Update Express documentation (5.1.0) --- lib/docs/filters/express/clean_html.rb | 6 +++--- lib/docs/scrapers/express.rb | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/docs/filters/express/clean_html.rb b/lib/docs/filters/express/clean_html.rb index 01a6390972..eeb98f1d50 100644 --- a/lib/docs/filters/express/clean_html.rb +++ b/lib/docs/filters/express/clean_html.rb @@ -7,14 +7,14 @@ def call i += 1 while n && n = n.previous_element at_css('h1')['data-level'] = i - @doc = at_css('#api-doc, .content') + @doc = at_css('#api-doc, main, .content') + + css('nav').remove # aria-labelledby="sidebar-heading" css('section', 'div.highlighter-rouge').each do |node| node.before(node.children).remove end - @doc = at_css('#page-doc') unless root_page? - if root_page? at_css('h1').remove css('> header', '#menu').remove diff --git a/lib/docs/scrapers/express.rb b/lib/docs/scrapers/express.rb index 724b771ff8..ff6514b5fb 100644 --- a/lib/docs/scrapers/express.rb +++ b/lib/docs/scrapers/express.rb @@ -2,9 +2,7 @@ module Docs class Express < UrlScraper self.name = 'Express' self.type = 'express' - self.release = '4.21.2' self.base_url = 'https://expressjs.com/en/' - self.root_path = '4x/api.html' self.initial_paths = %w( starter/installing.html guide/routing.html @@ -29,6 +27,16 @@ class Express < UrlScraper Licensed under the Creative Commons Attribution-ShareAlike License v3.0. HTML + version do + self.release = '5.1.0' + self.root_path = '5x/api.html' + end + + version '4' do + self.release = '4.21.2' + self.root_path = '4x/api.html' + end + def get_latest_version(opts) get_npm_version('express', opts) end From 93c3c572a4ddfd535bfaa202326771e8d430d92a Mon Sep 17 00:00:00 2001 From: Adam Doppelt Date: Mon, 2 Jun 2025 15:51:15 -0700 Subject: [PATCH 44/68] es-toolkit scraper --- docs/file-scrapers.md | 6 ++ lib/docs/scrapers/es_toolkit.rb | 87 +++++++++++++++++++++++++ public/icons/docs/es_toolkit/16.png | Bin 0 -> 450 bytes public/icons/docs/es_toolkit/16@2x.png | Bin 0 -> 752 bytes public/icons/docs/es_toolkit/SOURCE | 1 + 5 files changed, 94 insertions(+) create mode 100644 lib/docs/scrapers/es_toolkit.rb create mode 100644 public/icons/docs/es_toolkit/16.png create mode 100644 public/icons/docs/es_toolkit/16@2x.png create mode 100644 public/icons/docs/es_toolkit/SOURCE diff --git a/docs/file-scrapers.md b/docs/file-scrapers.md index 7a6e0a5f5f..133b621b9b 100644 --- a/docs/file-scrapers.md +++ b/docs/file-scrapers.md @@ -59,6 +59,12 @@ curl -L https://github.com/erlang/otp/releases/download/OTP-$RELEASE/otp_doc_htm bsdtar --extract --file - --directory=docs/erlang\~$VERSION/ ``` +## es-toolkit + +```sh +git clone https://github.com/toss/es-toolkit docs/es_toolkit +``` + ## Gnu ### Bash diff --git a/lib/docs/scrapers/es_toolkit.rb b/lib/docs/scrapers/es_toolkit.rb new file mode 100644 index 0000000000..943faef0a4 --- /dev/null +++ b/lib/docs/scrapers/es_toolkit.rb @@ -0,0 +1,87 @@ +module Docs + class EsToolkit < FileScraper + self.name = "es-toolkit" + self.slug = "es_toolkit" + self.type = "simple" + self.links = { + code: "https://github.com/toss/es-toolkit", + home: "https://es-toolkit.slash.page", + } + + options[:attribution] = <<-HTML + © 2024-2025, Viva Republica
+ Licensed under the MIT License. + HTML + + def get_latest_version(opts) + get_github_tags("toss", "es-toolkit", opts).first["name"] + end + + def build_pages(&block) + internal("docs/intro.md", path: "index", &block) + Dir.chdir(source_directory) do + Dir["docs/reference/**/*.md"] + end.each { internal(_1, &block) } + end + + protected + + def internal(filename, path: nil, &block) + path ||= filename[%r{docs/reference/(.*/.*).md$}, 1] + + # calculate name/type + if path != "index" + name = filename[%r{([^/]+).md$}, 1] + type = path.split("/")[0..-2] + type = type.map(&:capitalize).join(" ") + # really bad way to sort + type = type.gsub(/^(Compat|Error)\b/, "~ \\1") + else + name = type = nil + end + + # now yield + entries = [Entry.new(name, path, type)] + output = render(filename) + store_path = "#{path}.html" + yield({entries:, output:, path:, store_path:}) + end + + # render/style HTML + def render(filename) + s = md.render(request_one(filename).body) + + # kill all links, they don't work + s.gsub!(%r{(.*?)}, "\\1") + + # syntax highlighting + s.gsub!(%r{
}, "
")
+
+      # h3 => h4
+      s.gsub!(%r{(}, "\\14>")
+
+      # manually add attribution
+      s += <<~HTML
+        
+

+ #{options[:attribution]} +
+ + #{self.class.links[:home]} + +

+
+ HTML + s + end + + def md + @md ||= Redcarpet::Markdown.new( + Redcarpet::Render::HTML, + autolink: true, + fenced_code_blocks: true, + tables: true + ) + end + end +end diff --git a/public/icons/docs/es_toolkit/16.png b/public/icons/docs/es_toolkit/16.png new file mode 100644 index 0000000000000000000000000000000000000000..d63aff1c359d25b91120b893c23e5a8843e9989d GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UA6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDI0I6bN5HFasE6@fg!Ib3f?!xfDz5mR9Adj=aBeEDMD+t1jr_?^%0|nVj zJbhi+U$QZY@W@pA9@PU1P4ske43W5;{O5cF*9-{{v4owKUR{6ZZ8eH%nECs9Z~A-* z{k>DtTUJf@x$a=)>zV4(KKhT_PaEa}mR6=F+6F*|!JoZVpa4W@$jwj5OsmAA!4RV1{*AYuKn)sj8%i>BQ;SOya|_V) b7#dj_SwQsY{aca^)WhKE>gTe~DWM4f0C$_o literal 0 HcmV?d00001 diff --git a/public/icons/docs/es_toolkit/16@2x.png b/public/icons/docs/es_toolkit/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..40dff7a352707bf6d9cb8ec4036015ccabd8a76f GIT binary patch literal 752 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk@BpAX3RW(4IWRD z45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1O92lobSF##3sa?SX>q zC7!;n>@V4vM0k{T>D*{#U|`(u>Eak-aXR_W`389d!yXP+9iIR1_fMUcR8ijVJympd zQ+;tb*IxZ=I;qv!fvvu*r=M1aUh`IGy+8YK!MDfX|NsBVdO^hCcJ8lT&+qkrn7;bl z%fG8{?dUwqaF@k!qQz75{Vl<*-?yBb`J>%Y;4as*m*(GU^OmLw0^+-v zj{ToselP6H6T5=G!;#Xf?f?I;`!3IF6IEM&^!@+;|JUF6^Z)Dh|Nm!7tPB6^bn#=t z%eSrjB_$-{_WcYlYHVzL`s$DJJ2nN;@|n1=k_MPUv5AD-v87e^;iD?et)3z|NrYt zrlkJ)wf|0T@CUy4H_N8~6Zil3a?kt!^=fVP|NqxkuRnhv;m43)_c#4D--_zP2M(P1`Qf*`7@KHw z&f_KTe(V=|d1t$kr9@O6=cZYaGevYBJWS%9wcC99NBhIiZ{JxJ|K4b2ky85}Sb4q9e0Gv2YQ~&?~ literal 0 HcmV?d00001 diff --git a/public/icons/docs/es_toolkit/SOURCE b/public/icons/docs/es_toolkit/SOURCE new file mode 100644 index 0000000000..90444ebb34 --- /dev/null +++ b/public/icons/docs/es_toolkit/SOURCE @@ -0,0 +1 @@ +https://es-toolkit.slash.page/favicon-100x100.png From 45833e2a9bef973753e6af3e0f6ce130b0f71025 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 04:58:05 +0000 Subject: [PATCH 45/68] Update dependency rack to v2.2.17 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 65d0c358e9..8f6c1c7dca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM byebug (~> 12.0) pry (>= 0.13, < 0.16) racc (1.8.1) - rack (2.2.16) + rack (2.2.17) rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) From 90fed11831d019314ff40d5ac5006ded1215817c Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Wed, 4 Jun 2025 20:03:48 +0200 Subject: [PATCH 46/68] es-toolkit: use U+2063 INVISIBLE SEPARATOR --- lib/docs/scrapers/es_toolkit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/es_toolkit.rb b/lib/docs/scrapers/es_toolkit.rb index 943faef0a4..4b84aa51a9 100644 --- a/lib/docs/scrapers/es_toolkit.rb +++ b/lib/docs/scrapers/es_toolkit.rb @@ -35,7 +35,7 @@ def internal(filename, path: nil, &block) type = path.split("/")[0..-2] type = type.map(&:capitalize).join(" ") # really bad way to sort - type = type.gsub(/^(Compat|Error)\b/, "~ \\1") + type = type.gsub(/^(Compat|Error)\b/, "\u2063\\1") # U+2063 INVISIBLE SEPARATOR else name = type = nil end From 52a9a3da3a1582cb5522a8f3ee8023db7ff1eae5 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Wed, 4 Jun 2025 20:03:59 +0200 Subject: [PATCH 47/68] es-toolkit: attribution link --- lib/docs/scrapers/es_toolkit.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/es_toolkit.rb b/lib/docs/scrapers/es_toolkit.rb index 4b84aa51a9..85079723a0 100644 --- a/lib/docs/scrapers/es_toolkit.rb +++ b/lib/docs/scrapers/es_toolkit.rb @@ -61,13 +61,14 @@ def render(filename) s.gsub!(%r{(}, "\\14>") # manually add attribution + link = "#{self.class.links[:home]}#{filename.gsub(/^docs/,'').gsub(/md$/,'html')}" s += <<~HTML From 58c4ef986418bdfb5153c38738d0ed0469d88439 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Wed, 4 Jun 2025 20:04:22 +0200 Subject: [PATCH 48/68] es-toolkit: add news --- assets/javascripts/news.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index 3ddc39a516..6679b04f5c 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,4 +1,8 @@ [ + [ + "2025-06-04", + "New documentation: es-toolkit" + ], [ "2025-05-28", "New documentation: Vert.x" From fe827b3da367b500f42413faab603babb37107ee Mon Sep 17 00:00:00 2001 From: spamguy Date: Tue, 3 Jun 2025 15:29:03 -0700 Subject: [PATCH 49/68] Implement Zsh scraper --- lib/docs/filters/zsh/clean_html.rb | 20 ++++++++++++++ lib/docs/filters/zsh/entries.rb | 41 +++++++++++++++++++++++++++++ lib/docs/scrapers/zsh.rb | 33 +++++++++++++++++++++++ public/icons/docs/zsh/16.png | Bin 0 -> 687 bytes public/icons/docs/zsh/16@2x.png | Bin 0 -> 1206 bytes public/icons/docs/zsh/SOURCE | 2 ++ 6 files changed, 96 insertions(+) create mode 100644 lib/docs/filters/zsh/clean_html.rb create mode 100644 lib/docs/filters/zsh/entries.rb create mode 100644 lib/docs/scrapers/zsh.rb create mode 100644 public/icons/docs/zsh/16.png create mode 100644 public/icons/docs/zsh/16@2x.png create mode 100644 public/icons/docs/zsh/SOURCE diff --git a/lib/docs/filters/zsh/clean_html.rb b/lib/docs/filters/zsh/clean_html.rb new file mode 100644 index 0000000000..43d65e045c --- /dev/null +++ b/lib/docs/filters/zsh/clean_html.rb @@ -0,0 +1,20 @@ +module Docs + class Zsh + class CleanHtmlFilter < Filter + def call + css('table.header', 'table.menu', 'hr').remove + + # Remove indices from headers. + css('h1', 'h2', 'h3').each do |node| + node.content = node.content.match(/^[\d\.]* (.*)$/)&.captures&.first + end + + css('h2.section ~ a').each do |node| + node.next_element['id'] = node['name'] + end + + doc + end + end + end +end diff --git a/lib/docs/filters/zsh/entries.rb b/lib/docs/filters/zsh/entries.rb new file mode 100644 index 0000000000..e6bc07305e --- /dev/null +++ b/lib/docs/filters/zsh/entries.rb @@ -0,0 +1,41 @@ +module Docs + class Zsh + class EntriesFilter < Docs::EntriesFilter + def get_name + extract_header_text(at_css('h1.chapter').content) + end + + def additional_entries + entries = [] + + css('h2.section').each do |node| + type = get_type + + # Linkable anchor sits above

. + a = node.xpath('preceding-sibling::a').last + header_text = extract_header_text(node.content) + + if type == 'Zsh Modules' + module_name = header_text.match(/The (zsh\/.*) Module/)&.captures&.first + header_text = module_name if module_name.present? + end + + entries << [header_text, a['name'], type] if header_text != 'Description' + end + + entries + end + + def get_type + extract_header_text(at_css('h1.chapter').content) + end + + private + + # Extracts text from a string, dropping indices preceding it. + def extract_header_text(str) + str.match(/^[\d\.]* (.*)$/)&.captures&.first + end + end + end +end diff --git a/lib/docs/scrapers/zsh.rb b/lib/docs/scrapers/zsh.rb new file mode 100644 index 0000000000..82423d34f2 --- /dev/null +++ b/lib/docs/scrapers/zsh.rb @@ -0,0 +1,33 @@ +module Docs + class Zsh < UrlScraper + self.type = 'zsh' + self.release = '5.9.0' + self.base_url = 'https://zsh.sourceforge.io/Doc/Release/' + self.root_path = 'index.html' + self.links = { + home: 'https://zsh.sourceforge.io/', + code: 'https://sourceforge.net/p/zsh/web/ci/master/tree/', + } + + options[:skip] = %w( + zsh_toc.html + zsh_abt.html + The-Z-Shell-Manual.html + Introduction.html + ) + options[:skip_patterns] = [/-Index.html/] + + html_filters.push 'zsh/entries', 'zsh/clean_html' + + options[:attribution] = <<-HTML + The Z Shell is copyright © 1992–2017 Paul Falstad, Richard Coleman, + Zoltán Hidvégi, Andrew Main, Peter Stephenson, Sven Wischnowsky, and others.
+ Licensed under the MIT License. + HTML + + def get_latest_version(opts) + body = fetch('https://zsh.sourceforge.io/Doc/Release', opts) + body.scan(/, Zsh version ([0-9.]+)/)[0][0][0...-1] + end + end +end diff --git a/public/icons/docs/zsh/16.png b/public/icons/docs/zsh/16.png new file mode 100644 index 0000000000000000000000000000000000000000..05dc56e07e77cd0c22fff897d23390b270292ef1 GIT binary patch literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lf;0X`wF|AFA|-(TlXeBZw2&&y|jKfeF5f6M=We}5d_^(oKm%hbltWnuq5 zfBgUV&)50Azph{WGO7N@zAc~fJbvH3@qNpRpC=CdJbCa_rsJ2+;?He)-#0G)zH{CG z|Nnknzw~X@?0?_B{(1H6>&&+A>*jwd4*D{s;qQmHe?PwaI;;KXiT$7Qy?@`i{&i-@ zx0SR1{rvHDPUr83cmF)R`zgcr&+|uL7f=1Rc*^(n3x1wG`v1?LZ)+EPN;dx7lJ)1+ z^Z&np|Jbqm+sc{WR?q&neA>@5hyT2M`tR4z|Ns8|ef#R~tLJ||eejG-Gza>Tv%n*= zn1O-sFbFdq&tH)O6qG1&jVKAuPb(=;EJ|evNX*PD(erZ+Q83jr)HC|Mhj|-N&9>AC z&ooa@Ed~xChm}E!k(GfF$npYWX($^M;u?(1U~wiO+mMk790O56c4j*ZSUd~J27v@1 z2I+^kOkFcXkY-6 zeR=hp#i?64RX}Eyr;B5VMsRY1f~e8R;r|Fg*DBg)5h?HGVGr`h}OLx5xJZ)3P+4 zXJXUBuJM>{EBp41uaC!1AuueRjZHk9)!baHe23Q~Muvb5TxZ>s-W&tD$kWx&Wt~$( F69D&l8(;tc literal 0 HcmV?d00001 diff --git a/public/icons/docs/zsh/16@2x.png b/public/icons/docs/zsh/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..014d7ab78a835b47ea610fada2e2a929fbfb06b4 GIT binary patch literal 1206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@f)XXJ5hcO-X(i=}MX3w{iJ5sNdVa1U3Z{C7 zdPcwZFmD5@*_ImNnda%K#lQjNurf$7vNA9NSzbUa4P}E|qru1w76-YQV0J5OE3=IrGvM;ZGvp97tr;34rIn~p}F~r0B?bP@jkx-Fi`>i({-;M236HuJG zK+`br;t~6gCpp+|hy|=X)%7W$*HEQHwYQU#GtkLZ+r`AOM?_KRppa%$nAtL~3vF96 zf>x_GuparOK8uap`~BUrw6bUC?mTur=%=o-TXl+hUH|jC`+w8k-6?Jp6g(!R8@1!! z9UhGnygUlWgT$*&N=a;#b1EzUxxCMHb!&o)%e>cH)Asze?)<*#<95l-VpBtwL~b%! z^Vwf+W463O{9m1aZ?qp)C3>)aTgNt!X+Hl(fj^udEH`Xhr~2}eXw$voovQr2`?kmM ze)!+*%5?Lxu9)MJnR~0d|9tM4oGH?M`pD!DegCYM1Sna52rFH;O=-sk=~8jVPwjP2 zj14ywZ7h;iQi|tWxB8*+gDo|#E>E7V^?!AQdsqE0mn%^+Qpr409=j&UF>uvpp6m0BE|bkuS0pLZ`Figo@k?_aUc*@pS`<*N7F%c_sNEAdWj`}3Or`-M6?=AZK4 zT;^w)G<1B@^-Z#?V6EV?VU6Q_ep~k5MZQ4R-5-;={;bF}F;HUCT))|O+q=;J{}%hs z$XPP)y4qCBuUBtpN2c)$qJac{3e?jAGm6 zx-Gg@L>L$pu5UEoFD!FT<^G+en`$?e>VLG$Jr#TG&6dLZhZ(rLyAx9wG?!;?z7sh) z;5{P%Mh6v+xiED|wfX7KK5o~gnb` zc8u}G)60VG_djm^eRiZ^bc+bW1WMaf;?$3Rt zO(%BzpSXgF!K1ToQ_-!p!Z&w(yy)tXdVca$=H&2~{7Nr&nPqxyxwy{S{KIm4H&FVX b!TyKcyum@)P5I<1Q0DV=^>bP0l+XkK0jK0J literal 0 HcmV?d00001 diff --git a/public/icons/docs/zsh/SOURCE b/public/icons/docs/zsh/SOURCE new file mode 100644 index 0000000000..70cc4aeed8 --- /dev/null +++ b/public/icons/docs/zsh/SOURCE @@ -0,0 +1,2 @@ +https://sourceforge.net/p/zsh/web/ci/master/tree/favicon.png + From 5d59c2f63d8207070ed43836cad1d310d3b09d6e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 23:14:24 +0000 Subject: [PATCH 50/68] Update ruby/setup-ruby action to v1.245.0 --- .github/workflows/build.yml | 2 +- .github/workflows/schedule-doc-report.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c9d4ed4fba..0955358272 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 + uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests diff --git a/.github/workflows/schedule-doc-report.yml b/.github/workflows/schedule-doc-report.yml index 471f54cd9e..6bce275a66 100644 --- a/.github/workflows/schedule-doc-report.yml +++ b/.github/workflows/schedule-doc-report.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 - name: Set up Ruby - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 + uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Generate report diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6e7d36baff..89a56c13e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Ruby - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 + uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests From ba2f450bdec60822309732d6b4ccae3ec95ec2e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:47:34 +0000 Subject: [PATCH 51/68] Update dependency terser to v1.2.6 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8f6c1c7dca..cd22f745b6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,7 +130,7 @@ GEM strings-ansi (0.2.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - terser (1.2.5) + terser (1.2.6) execjs (>= 0.3.0, < 3) thin (1.8.2) daemons (~> 1.0, >= 1.0.9) From 2b035804da5a215af86da454e38a49e2e1fdcc1b Mon Sep 17 00:00:00 2001 From: Alex Bepple Date: Fri, 20 Jun 2025 19:00:59 +0200 Subject: [PATCH 52/68] (ramda) $! make docs generatable again --- lib/docs/filters/ramda/entries.rb | 4 +++- lib/docs/scrapers/ramda.rb | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/docs/filters/ramda/entries.rb b/lib/docs/filters/ramda/entries.rb index dcab3c0137..ab85371f8a 100644 --- a/lib/docs/filters/ramda/entries.rb +++ b/lib/docs/filters/ramda/entries.rb @@ -3,7 +3,9 @@ class Ramda class EntriesFilter < Docs::EntriesFilter def additional_entries css('ul.toc li').map do |node| - ["R.#{node['data-name']}", node['data-name'], node['data-category'].sub('Relaction', 'Relation')] + # As of 2025-06-20, `data-category` attribute is missing on https://ramdajs.com/ for Ramda versions < 0.29.0. + # This results in missing type for entries – and docs cannot be generated. + ["R.#{node['data-name']}", node['data-name'], node['data-category']] end end end diff --git a/lib/docs/scrapers/ramda.rb b/lib/docs/scrapers/ramda.rb index 897b227f21..abf7dde9ba 100644 --- a/lib/docs/scrapers/ramda.rb +++ b/lib/docs/scrapers/ramda.rb @@ -1,7 +1,7 @@ module Docs class Ramda < UrlScraper self.type = 'ramda' - self.release = '0.27.0' + self.release = '0.29.0' self.base_url = "https://ramdajs.com/#{release}/docs/" self.links = { home: 'http://ramdajs.com/', @@ -12,7 +12,7 @@ class Ramda < UrlScraper options[:title] = 'Ramda' options[:attribution] = <<-HTML - © 2013–2020 Scott Sauyet and Michael Hurley
+ © 2013–2024 Scott Sauyet and Michael Hurley
Licensed under the MIT License. HTML From 3111ac2e1016a5b79e89af9e8e4b6cf23d86a84b Mon Sep 17 00:00:00 2001 From: Alex Bepple Date: Fri, 20 Jun 2025 19:08:44 +0200 Subject: [PATCH 53/68] (ramda) $! correctly determine latest version --- lib/docs/scrapers/ramda.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/docs/scrapers/ramda.rb b/lib/docs/scrapers/ramda.rb index abf7dde9ba..d69cc0e964 100644 --- a/lib/docs/scrapers/ramda.rb +++ b/lib/docs/scrapers/ramda.rb @@ -17,8 +17,7 @@ class Ramda < UrlScraper HTML def get_latest_version(opts) - doc = fetch_doc('https://ramdajs.com/docs/', opts) - doc.at_css('.navbar-brand > .version').content[1..-1] + get_npm_version('ramda', opts) end end end From d413aab015d5cdc2936fbf9c85043ab866f338e7 Mon Sep 17 00:00:00 2001 From: Alex Bepple Date: Fri, 20 Jun 2025 19:55:36 +0200 Subject: [PATCH 54/68] (ramda) $ specify the only 2 versions that make sense --- lib/docs/scrapers/ramda.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/ramda.rb b/lib/docs/scrapers/ramda.rb index d69cc0e964..03494eb77d 100644 --- a/lib/docs/scrapers/ramda.rb +++ b/lib/docs/scrapers/ramda.rb @@ -1,8 +1,6 @@ module Docs class Ramda < UrlScraper self.type = 'ramda' - self.release = '0.29.0' - self.base_url = "https://ramdajs.com/#{release}/docs/" self.links = { home: 'http://ramdajs.com/', code: 'https://github.com/ramda/ramda/' @@ -16,6 +14,16 @@ class Ramda < UrlScraper Licensed under the MIT License. HTML + version '0.30' do + self.release = '0.30.1' + self.base_url = "https://ramdajs.com/#{release}/docs/" + end + + version '0.29' do + self.release = '0.29.1' + self.base_url = "https://ramdajs.com/#{release}/docs/" + end + def get_latest_version(opts) get_npm_version('ramda', opts) end From 54d3b88bb18528a912d3a6b403401cc188c83049 Mon Sep 17 00:00:00 2001 From: spamguy Date: Fri, 13 Jun 2025 12:46:28 -0700 Subject: [PATCH 55/68] Add entries for function calls and operators --- lib/docs/filters/zsh/entries.rb | 43 +++++++++++++++++++++++++++++---- lib/docs/scrapers/zsh.rb | 2 +- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/docs/filters/zsh/entries.rb b/lib/docs/filters/zsh/entries.rb index e6bc07305e..02e7dc9602 100644 --- a/lib/docs/filters/zsh/entries.rb +++ b/lib/docs/filters/zsh/entries.rb @@ -7,20 +7,53 @@ def get_name def additional_entries entries = [] - + used_fns = [] + css('h2.section').each do |node| type = get_type - # Linkable anchor sits above

. a = node.xpath('preceding-sibling::a').last header_text = extract_header_text(node.content) - if type == 'Zsh Modules' - module_name = header_text.match(/The (zsh\/.*) Module/)&.captures&.first + case type + when 'Zsh Modules' + module_name = header_text.match(/The (zsh\/.* Module)/)&.captures&.first header_text = module_name if module_name.present? + when 'Calendar Function System' + header_text << ' (Calendar)' end - entries << [header_text, a['name'], type] if header_text != 'Description' + entries << [header_text, a['name'], type] unless header_text.start_with?('Description') + end + + # Functions are documented within
elements. + # Names are wrapped in
, details within
. + #
can also contain anchors for the next function. + doc.css('> dl').each do |node| + type = get_type + fn_names = node.css('> dt') + node.css('dd a[name]').each_with_index do |anchor, i| + if fn_names[i].present? && anchor['name'].present? + fn_names[i]['id'] = anchor['name'] + + # Groups of functions are sometimes comma-delimited. + # Strip arguments, flags, etc. from function name. + # Skip flag-only headers. + fn_names[i].inner_html.split(', ').each do |fn| + fn.gsub!(/<(?:tt|var)>(.+?)<\/(?:tt|var)>/, '\1') + fn = fn.split(' ').first + fn.gsub!(/(?:[\[\(]).*(?:[\]\)]).*$/, '') + + # Add context for operators. + fn << " (#{type})" if fn.length == 1 + + if fn.present? && !fn.match?(/^[\-\[]/) && !used_fns.include?(fn) + used_fns << fn + entries << [fn, anchor['name'], type] + end + end + end + end end entries diff --git a/lib/docs/scrapers/zsh.rb b/lib/docs/scrapers/zsh.rb index 82423d34f2..b4705960b3 100644 --- a/lib/docs/scrapers/zsh.rb +++ b/lib/docs/scrapers/zsh.rb @@ -27,7 +27,7 @@ class Zsh < UrlScraper def get_latest_version(opts) body = fetch('https://zsh.sourceforge.io/Doc/Release', opts) - body.scan(/, Zsh version ([0-9.]+)/)[0][0][0...-1] + body.scan(/Zsh version ([0-9.]+)/)[0][0] end end end From b29a3c8c28500bd8bccd5fd36ac27d279aa6fde0 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 27 Jun 2025 21:27:39 +0200 Subject: [PATCH 56/68] zsh: add news entry --- assets/javascripts/news.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index 3ddc39a516..2c5c71680c 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,4 +1,8 @@ [ + [ + "2025-06-27", + "New documentation: Zsh" + ], [ "2025-05-28", "New documentation: Vert.x" From 57a9f0ccbb0099985725e67556353e5772357792 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 27 Jun 2025 21:33:50 +0200 Subject: [PATCH 57/68] Update Ramda documentation (0.31.3) --- lib/docs/scrapers/ramda.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/docs/scrapers/ramda.rb b/lib/docs/scrapers/ramda.rb index 03494eb77d..09a367f6df 100644 --- a/lib/docs/scrapers/ramda.rb +++ b/lib/docs/scrapers/ramda.rb @@ -10,17 +10,12 @@ class Ramda < UrlScraper options[:title] = 'Ramda' options[:attribution] = <<-HTML - © 2013–2024 Scott Sauyet and Michael Hurley
+ © 2013–2025 Scott Sauyet and Michael Hurley
Licensed under the MIT License. HTML - version '0.30' do - self.release = '0.30.1' - self.base_url = "https://ramdajs.com/#{release}/docs/" - end - - version '0.29' do - self.release = '0.29.1' + version do + self.release = '0.31.3' self.base_url = "https://ramdajs.com/#{release}/docs/" end From 2a2c11bd108287c1c055a538c1f2579839ba0c91 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 27 Jun 2025 21:50:05 +0200 Subject: [PATCH 58/68] Update Rust documentation (1.88.0) Fixes #2510. --- lib/docs/filters/rust/entries.rb | 6 ++++-- lib/docs/scrapers/rust.rb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/docs/filters/rust/entries.rb b/lib/docs/filters/rust/entries.rb index db795cb75b..31fa47ba9a 100644 --- a/lib/docs/filters/rust/entries.rb +++ b/lib/docs/filters/rust/entries.rb @@ -4,8 +4,10 @@ class EntriesFilter < Docs::EntriesFilter def get_name if slug.start_with?('book') || slug.start_with?('reference') - name = at_css("#sidebar a[href='#{File.basename(slug)}']") - name ? name.content : 'Introduction' + name = at_css("h2", "h1") + ch1 = slug[/ch(\d+)-(\d+)/, 1] + ch2 = slug[/ch(\d+)-(\d+)/, 2] + name ? "#{ch1}.#{ch2}. #{name.content}" : 'Introduction' elsif slug == 'error-index' 'Compiler Errors' else diff --git a/lib/docs/scrapers/rust.rb b/lib/docs/scrapers/rust.rb index e53c8548a0..8ccdaea376 100644 --- a/lib/docs/scrapers/rust.rb +++ b/lib/docs/scrapers/rust.rb @@ -3,7 +3,7 @@ module Docs class Rust < UrlScraper self.type = 'rust' - self.release = '1.87.0' + self.release = '1.88.0' self.base_url = 'https://doc.rust-lang.org/' self.root_path = 'book/index.html' self.initial_paths = %w( From 0fbfafc865f22ebacbd49cc8293a050056a81817 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:38:24 +0200 Subject: [PATCH 59/68] Update nginx documentation (1.29.0) --- lib/docs/scrapers/nginx.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/nginx.rb b/lib/docs/scrapers/nginx.rb index 3e401c6362..e7af592414 100644 --- a/lib/docs/scrapers/nginx.rb +++ b/lib/docs/scrapers/nginx.rb @@ -2,7 +2,7 @@ module Docs class Nginx < UrlScraper self.name = 'nginx' self.type = 'nginx' - self.release = '1.27.1' + self.release = '1.29.0' self.base_url = 'https://nginx.org/en/docs/' self.links = { home: 'https://nginx.org/', @@ -23,7 +23,7 @@ class Nginx < UrlScraper # http://nginx.org/LICENSE options[:attribution] = <<-HTML © 2002-2021 Igor Sysoev
- © 2011-2024 Nginx, Inc.
+ © 2011-2025 Nginx, Inc.
Licensed under the BSD License. HTML From 25ac4ef5b6ce41749bc7c3fedce614cac6a124d5 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:40:08 +0200 Subject: [PATCH 60/68] Update Vite documentation (7.0.0) --- lib/docs/scrapers/vite.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/docs/scrapers/vite.rb b/lib/docs/scrapers/vite.rb index ee26d8b9c6..c02b85d894 100644 --- a/lib/docs/scrapers/vite.rb +++ b/lib/docs/scrapers/vite.rb @@ -22,10 +22,15 @@ class Vite < UrlScraper html_filters.push 'vite/entries', 'vite/clean_html' version do - self.release = '6.3.2' + self.release = '7.0.0' self.base_url = 'https://vite.dev/' end + version '6' do + self.release = '6.3.5' + self.base_url = 'https://v6.vite.dev/' + end + version '5' do self.release = '5.4.11' self.base_url = 'https://v5.vite.dev/' From 21927ee529bf5aa2ae46d71c753254a333dc8b9c Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:41:21 +0200 Subject: [PATCH 61/68] Update Playwright documentation (1.53.2) --- lib/docs/scrapers/playwright.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/playwright.rb b/lib/docs/scrapers/playwright.rb index 57f908a4b2..8726f2f0b6 100644 --- a/lib/docs/scrapers/playwright.rb +++ b/lib/docs/scrapers/playwright.rb @@ -2,7 +2,7 @@ module Docs class Playwright < UrlScraper self.name = 'Playwright' self.type = 'simple' - self.release = '1.52.0' + self.release = '1.53.2' self.base_url = 'https://playwright.dev/docs/' self.root_path = 'intro' self.links = { From 63e0ed3b141b5dad40483ba6743e7bbb7523e614 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:44:19 +0200 Subject: [PATCH 62/68] Update Astro documentation (5.10.2) --- lib/docs/scrapers/astro.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/astro.rb b/lib/docs/scrapers/astro.rb index ef2e3e6a7b..40c496e15e 100644 --- a/lib/docs/scrapers/astro.rb +++ b/lib/docs/scrapers/astro.rb @@ -16,7 +16,7 @@ class Astro < UrlScraper options[:skip_patterns] = [/tutorial/, /getting-started/] - self.release = '4.14.2' + self.release = '5.10.2' self.base_url = 'https://docs.astro.build/en/' self.initial_paths = %w(install-and-setup/) From 9117c2d2d3521d23c10b6840a44552c70164d810 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:51:03 +0200 Subject: [PATCH 63/68] Update Git documentation (2.50.0) --- lib/docs/scrapers/git.rb | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/docs/scrapers/git.rb b/lib/docs/scrapers/git.rb index a3a0fff89b..ae04f9bc2b 100644 --- a/lib/docs/scrapers/git.rb +++ b/lib/docs/scrapers/git.rb @@ -1,9 +1,37 @@ module Docs class Git < UrlScraper self.type = 'git' - self.release = '2.48.1' + self.release = '2.50.0' self.base_url = 'https://git-scm.com/docs' - self.initial_paths = %w(/git.html) + self.initial_paths = %w( + /git.html + /git-archimport.html + /git-cherry.html + /git-citool.html + /git-column.html + /git-cvsexportcommit.html + /git-for-each-repo.html + /git-get-tar-commit-id.html + /git-http-fetch.html + /git-http-push.html + /git-merge-file.html + /git-merge-index.html + /git-merge-one-file.html + /git-merge-tree.html + /git-mktree.html + /git-p4.html + /git-pack-redundant.html + /git-quiltimport.html + /git-replay.html + /git-sh-i18n.html + /git-sh-i18n--envsubst.html + /git-sh-setup.html + /git-show-index.html + /git-unpack-file.html + /git-verify-commit.html + /gitformat-index.html + /scalar.html + ) self.links = { home: 'https://git-scm.com/', code: 'https://github.com/git/git' @@ -16,9 +44,9 @@ class Git < UrlScraper options[:skip] = %w(/howto-index.html) # https://github.com/git/git?tab=License-1-ov-file#readme - # NOT https://github.com/git/git-scm.com/blob/main/MIT-LICENSE.txt + # NOT https://github.com/git/git-scm.com/blob/gh-pages/MIT-LICENSE.txt options[:attribution] = <<-HTML - © 2005–2024 Linus Torvalds and others
+ © 2005–2025 Linus Torvalds and others
Licensed under the GNU General Public License version 2. HTML From 03bd6a05bd5cc0572b4baa81d6789ed58f597c4f Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 18:52:09 +0200 Subject: [PATCH 64/68] Update Prettier documentation (3.6.2) --- lib/docs/scrapers/prettier.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/prettier.rb b/lib/docs/scrapers/prettier.rb index 5e6e0757a2..888a042582 100644 --- a/lib/docs/scrapers/prettier.rb +++ b/lib/docs/scrapers/prettier.rb @@ -2,7 +2,7 @@ module Docs class Prettier < UrlScraper self.name = 'Prettier' self.type = 'simple' - self.release = '3.5.3' + self.release = '3.6.2' self.base_url = 'https://prettier.io/docs/' self.links = { home: 'https://prettier.io/', From 0848782f676081bd24f2563f66aa7aa913e281cf Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 1 Jul 2025 19:14:18 +0200 Subject: [PATCH 65/68] Update Python documentation (3.13.5) --- lib/docs/scrapers/python.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/docs/scrapers/python.rb b/lib/docs/scrapers/python.rb index 781b0df9a2..fa4ca6dbe8 100644 --- a/lib/docs/scrapers/python.rb +++ b/lib/docs/scrapers/python.rb @@ -28,7 +28,7 @@ class Python < UrlScraper HTML version '3.13' do - self.release = '3.13.2' + self.release = '3.13.5' self.base_url = "https://docs.python.org/#{self.version}/" html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html' From c05928e89f303a34ce22897119532551226a2815 Mon Sep 17 00:00:00 2001 From: spamguy Date: Fri, 27 Jun 2025 12:01:51 -0700 Subject: [PATCH 66/68] Add Tailwind CSS v4 and revise v3 --- lib/docs/filters/tailwindcss/clean_html.rb | 73 +++++++++++++++------- lib/docs/filters/tailwindcss/entries.rb | 25 ++++++-- lib/docs/scrapers/tailwindcss.rb | 67 +++++++++++++------- 3 files changed, 114 insertions(+), 51 deletions(-) diff --git a/lib/docs/filters/tailwindcss/clean_html.rb b/lib/docs/filters/tailwindcss/clean_html.rb index 9815cf090a..bdab80b912 100644 --- a/lib/docs/filters/tailwindcss/clean_html.rb +++ b/lib/docs/filters/tailwindcss/clean_html.rb @@ -2,26 +2,38 @@ module Docs class Tailwindcss class CleanHtmlFilter < Filter def call + # Move h1 out of wrapper. + css('h1').each do |node| + doc.prepend_child(node) + end + # Remove main page headers (top level sticky) - css('#__next > .sticky').remove + css('#__next > .sticky', 'div.fixed.inset-x-0.top-0').remove # And anything absolutely positioned (fancy floating navigation elements we don't care about) - css('#__next .absolute').remove + css('#__next .absolute', '.fixed').remove # Remove the left-navigation we scraped css('nav').remove css('svg').remove if root_page? - # Remove the duplicate category name at the top of the page - redundant - at_css('header#header > div:first-child > p:first-child').remove - # Remove the right navigation sidebar - at_css('header#header').parent.css('> div:has(h5:contains("On this page"))').remove + css('header#header', 'p[data-section]').each do |node| + node.parent.css('> div:has(h5:contains("On this page"))').remove # v3 + + node.parent.parent.css('div.max-xl\\:hidden').remove # v4 + end + + # Remove the duplicate category name at the top of the page - redundant + css( + 'header#header > div:first-child > p:first-child', # v3 + 'p[data-section]' # v4 + ).remove # Remove footer + prev/next navigation - at_css('footer').remove + css('footer', '.row-start-5').remove # Handle long lists of class reference that otherwise span several scrolled pages - if class_reference = at_css('#class-reference') + if class_reference = at_css('#class-reference', '#quick-reference') reference_container = class_reference.parent classes_container = reference_container.children.reject{ |child| child == class_reference }.first @@ -33,7 +45,7 @@ def call end # Remove border color preview column as it isn't displayed anyway - if result[:path] == "border-color" and class_reference = at_css('#class-reference') + if result[:path] == "border-color" and class_reference = at_css('#class-reference', '#quick-reference') class_reference.parent.css("thead th:nth-child(3)").remove class_reference.parent.css("tbody td:nth-child(3)").remove end @@ -59,29 +71,48 @@ def call end # Remove buttons to expand lists - those are already expanded and the button is useless - css('div > button:contains("Show all classes")').each do |node| + css( + 'div > button:contains("Show all classes")', + 'div > button:contains("Show more")' + ).each do |node| node.parent.remove end # Remove class examples - not part of devdocs styleguide? (similar to bootstrap) # Refer to https://github.com/freeCodeCamp/devdocs/pull/1534#pullrequestreview-649818936 - css('.not-prose').each do |node| - if node.parent.children.length == 1 - node.parent.remove - else - node.remove - end - end + css('.mt-4.-mb-3', 'figure', 'svg', '.flex.space-x-2').remove - # Properly format code examples + # Properly format code examples. css('pre > code:first-child').each do |node| - node.parent['data-language'] = node['class'][/language-(\w+)/, 1] if node['class'] and node['class'][/language-(\w+)/] - node.parent.content = node.parent.content + # v4 doesn't provide language context, so it must be inferred imperfectly. + node.parent['data-language'] = + if node.content.include?('function') + 'jsx' + elsif node.content.include?(" (https://github.com/damms005/devdocs/commit/8c9fbd859b71a2525b94a35ea994393ce2b6fedb#commitcomment-50091018) + # Remove weird
(https://github.com/damms005/devdocs/commit/8c9fbd859b71a2525b94a35ea994393ce2b6fedb#commitcomment-50091018) css('hr').remove doc diff --git a/lib/docs/filters/tailwindcss/entries.rb b/lib/docs/filters/tailwindcss/entries.rb index ad0bf7b441..5e95d5a3fb 100644 --- a/lib/docs/filters/tailwindcss/entries.rb +++ b/lib/docs/filters/tailwindcss/entries.rb @@ -3,22 +3,35 @@ class Tailwindcss class EntriesFilter < Docs::EntriesFilter def get_type # We are only interested in children list items - selector = "nav li li a[href='#{result[:path]}']" + - anchor = at_css(selector) - category_list = anchor.ancestors('li')[1] - title = category_list.css('h5') + anchor = at_css(get_selector) + title = + if version == '3' + anchor.ancestors('li')[1].css('h5') + else + anchor.ancestors('ul').last.previous_element + end return title.inner_text end def get_name # We are only interested in children list items - selector = "nav li li a[href='#{result[:path]}']" - item = at_css(selector) + item = at_css(get_selector) return item.inner_text end + + private + + def get_selector + if version == '3' + "nav li li a[href='#{result[:path]}']" + else + "nav li a[href*='#{result[:path]}']" + end + end end end end diff --git a/lib/docs/scrapers/tailwindcss.rb b/lib/docs/scrapers/tailwindcss.rb index 71b84d5f3b..fdf045994c 100644 --- a/lib/docs/scrapers/tailwindcss.rb +++ b/lib/docs/scrapers/tailwindcss.rb @@ -3,9 +3,7 @@ class Tailwindcss < UrlScraper self.name = 'Tailwind CSS' self.type = 'tailwindcss' self.slug = 'tailwindcss' - self.base_url = 'https://tailwindcss.com/docs' self.root_path = '/' - self.release = '3.3.2' self.links = { home: 'https://tailwindcss.com/', code: 'https://github.com/tailwindlabs/tailwindcss' @@ -16,27 +14,6 @@ class Tailwindcss < UrlScraper # Disable the clean text filter which removes empty nodes - we'll do it ourselves more selectively text_filters.replace("clean_text", "tailwindcss/noop") - # Fix redirects from older tailwind 2 docs - options[:fix_urls] = lambda do |url| - if url.include? "installation/" - break "/docs/installation" - end - - if url.end_with? "/breakpoints" - break "/docs/screens#{/#.*$/.match(url)}" - end - if url.end_with? "/adding-base-styles" - break "/docs/adding-custom-styles#adding-base-styles" - end - if url.end_with? "/ring-opacity" - break "/docs/ring-color#changing-the-opacity" - end - - if url.match(/\/colors#?/) - break "/docs/customizing-colors#{/#.*$/.match(url)}" - end - end - options[:skip_patterns] = [ # Skip setup instructions /\/browser-support$/, @@ -49,9 +26,51 @@ class Tailwindcss < UrlScraper #Obtainable from https://github.com/tailwindlabs/tailwindcss/blob/master/LICENSE options[:attribution] = <<-HTML - © 2022 Tailwind Labs Inc. + © Tailwind Labs Inc. HTML + version do + self.release = '4.1.11' + self.base_url = 'https://tailwindcss.com/docs' + + # Fix redirects + options[:fix_urls] = lambda do |url| + if url.include? "installation/" + break "/docs/installation" + end + + if url.end_with? "text-color" + break "/docs/color" + end + end + end + + version '3' do + self.release = '3.4.17' + self.base_url = 'https://v3.tailwindcss.com/docs' + + # Fix redirects from older tailwind 2 docs + options[:fix_urls] = lambda do |url| + if url.include? "installation/" + break "/docs/installation" + end + + if url.end_with? "/breakpoints" + break "/docs/screens#{/#.*$/.match(url)}" + end + if url.end_with? "/adding-base-styles" + break "/docs/adding-custom-styles#adding-base-styles" + end + if url.end_with? "/ring-opacity" + break "/docs/ring-color#changing-the-opacity" + end + + if url.match(/\/colors#?/) + break "/docs/customizing-colors#{/#.*$/.match(url)}" + end + end + end + def get_latest_version(opts) get_latest_github_release('tailwindlabs', 'tailwindcss', opts) end From fc86e6eee9266103567315da197ec9adaba19846 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 4 Jul 2025 10:26:39 +0200 Subject: [PATCH 67/68] Update Perl documentation (5.42.0) --- lib/docs/scrapers/perl.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/docs/scrapers/perl.rb b/lib/docs/scrapers/perl.rb index e28f4076ae..2792132b39 100644 --- a/lib/docs/scrapers/perl.rb +++ b/lib/docs/scrapers/perl.rb @@ -24,6 +24,11 @@ class Perl < UrlScraper The Perl logo is a trademark of the Perl Foundation. HTML + version '5.42' do + self.release = '5.42.0' + self.base_url = "https://perldoc.perl.org/#{release}/" + end + version '5.40' do self.release = '5.40.2' self.base_url = "https://perldoc.perl.org/#{release}/" From 06ce9ee6793faeef3746e2e40a7856b7ba866b94 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 4 Jul 2025 10:35:40 +0200 Subject: [PATCH 68/68] Update pandas documentation (2.3.0) --- lib/docs/scrapers/pandas.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/docs/scrapers/pandas.rb b/lib/docs/scrapers/pandas.rb index c95f75618a..872930d31c 100644 --- a/lib/docs/scrapers/pandas.rb +++ b/lib/docs/scrapers/pandas.rb @@ -11,13 +11,15 @@ class Pandas < FileScraper options[:skip] = %w(internals.html release.html contributing.html whatsnew.html) options[:skip_patterns] = [/whatsnew\//] + # https://github.com/pandas-dev/pandas/blob/main/LICENSE options[:attribution] = <<-HTML - © 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
+ © 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
+ © 2011–2025, Open source contributors
Licensed under the 3-clause BSD License. HTML version '2' do - self.release = '2.2.2' + self.release = '2.3.0' self.base_url = "https://pandas.pydata.org/pandas-docs/version/#{self.release}/" html_filters.push 'pandas/clean_html', 'pandas/entries'