diff --git a/docs/file-scrapers.md b/docs/file-scrapers.md
index b800a09d66..ff434d6dd3 100644
--- a/docs/file-scrapers.md
+++ b/docs/file-scrapers.md
@@ -62,7 +62,7 @@ bsdtar --extract --file - --directory=docs/erlang\~$VERSION/
## es-toolkit
```sh
-git clone https://github.com/toss/es-toolkit docs/es_toolkit
+git clone --branch v$RELEASE https://github.com/toss/es-toolkit docs/es_toolkit
```
## Gnu
diff --git a/lib/docs/filters/octave/clean_html.rb b/lib/docs/filters/octave/clean_html.rb
index 835a9406cb..bbf31c3ef4 100644
--- a/lib/docs/filters/octave/clean_html.rb
+++ b/lib/docs/filters/octave/clean_html.rb
@@ -12,6 +12,8 @@ def root
def other
css('.header', 'hr').remove
+ css('.nav-panel').remove
+ css('.copiable-link').remove
css('.footnote > h3').each do |node|
node.name = 'h5'
diff --git a/lib/docs/filters/octave/entries.rb b/lib/docs/filters/octave/entries.rb
index ea4c37f4b9..4d4e57dc0a 100644
--- a/lib/docs/filters/octave/entries.rb
+++ b/lib/docs/filters/octave/entries.rb
@@ -2,7 +2,7 @@ module Docs
class Octave
class EntriesFilter < Docs::EntriesFilter
def get_name
- at_css('h1').content.sub(/(A?[0-9.]+ )/, '')
+ at_css('h1').content.sub(/(A?[0-9.]+¶ )/, '')
end
def get_type
diff --git a/lib/docs/scrapers/bun.rb b/lib/docs/scrapers/bun.rb
index 441aa72d6e..44c5d41c84 100644
--- a/lib/docs/scrapers/bun.rb
+++ b/lib/docs/scrapers/bun.rb
@@ -7,7 +7,7 @@ class Bun < UrlScraper
home: 'https://leafletjs.com/',
code: 'https://github.com/oven-sh/bun'
}
- self.release = '1.3.10'
+ self.release = '1.3.12'
self.base_url = "https://bun.com/docs/"
self.root_path = 'installation'
diff --git a/lib/docs/scrapers/es_toolkit.rb b/lib/docs/scrapers/es_toolkit.rb
index b8dfedd567..0b5f26bba2 100644
--- a/lib/docs/scrapers/es_toolkit.rb
+++ b/lib/docs/scrapers/es_toolkit.rb
@@ -7,10 +7,10 @@ class EsToolkit < FileScraper
code: "https://github.com/toss/es-toolkit",
home: "https://es-toolkit.slash.page",
}
- self.release = '1.42.0'
+ self.release = '1.45.1'
options[:attribution] = <<-HTML
- © 2024-2025, Viva Republica
+ © 2024-2026, Viva Republica
Licensed under the MIT License.
HTML
diff --git a/lib/docs/scrapers/eslint.rb b/lib/docs/scrapers/eslint.rb
index 0ec2fe5e86..d93320d274 100644
--- a/lib/docs/scrapers/eslint.rb
+++ b/lib/docs/scrapers/eslint.rb
@@ -2,7 +2,7 @@ module Docs
class Eslint < UrlScraper
self.name = 'ESLint'
self.type = 'simple'
- self.release = '10.0.2'
+ self.release = '10.2.0'
self.base_url = 'https://eslint.org/docs/latest/'
self.root_path = '/'
self.links = {
diff --git a/lib/docs/scrapers/julia.rb b/lib/docs/scrapers/julia.rb
index dc8d78a984..50f0337a97 100644
--- a/lib/docs/scrapers/julia.rb
+++ b/lib/docs/scrapers/julia.rb
@@ -7,10 +7,21 @@ class Julia < UrlScraper
options[:attribution] = <<-HTML
- © 2009–2024 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
+ © 2009–2026 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
HTML
+ version '1.12' do
+ self.release = '1.12.6'
+ self.base_url = "https://docs.julialang.org/en/v#{version}/"
+ self.type = 'julia'
+
+ html_filters.push 'julia/entries', 'julia/clean_html'
+
+ options[:container] = '.docs-main'
+ options[:only_patterns] = [/\Amanual\//, /\Abase\//, /\Astdlib\//]
+ end
+
version '1.11' do
self.release = '1.11.2'
self.base_url = "https://docs.julialang.org/en/v#{version}/"
diff --git a/lib/docs/scrapers/lodash.rb b/lib/docs/scrapers/lodash.rb
index bce625e615..d8c9f1f143 100644
--- a/lib/docs/scrapers/lodash.rb
+++ b/lib/docs/scrapers/lodash.rb
@@ -19,7 +19,7 @@ class Lodash < UrlScraper
HTML
version '4' do
- self.release = '4.17.10'
+ self.release = '4.18.1'
self.base_url = "https://lodash.com/docs/#{release}"
end
diff --git a/lib/docs/scrapers/matplotlib.rb b/lib/docs/scrapers/matplotlib.rb
index 5e30998c2b..5e2447a31e 100644
--- a/lib/docs/scrapers/matplotlib.rb
+++ b/lib/docs/scrapers/matplotlib.rb
@@ -16,12 +16,12 @@ class Matplotlib < UrlScraper
options[:skip] = %w(api_changes.html tutorial.html faq.html)
options[:attribution] = <<-HTML
- © 2012–2023 Matplotlib Development Team. All rights reserved.
+ © 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
HTML
version do
- self.release = '3.9.2'
+ self.release = '3.10.8'
self.base_urls = [
"https://matplotlib.org/stable/api/",
"https://matplotlib.org/stable/mpl_toolkits/mplot3d/",
@@ -29,6 +29,15 @@ class Matplotlib < UrlScraper
]
end
+ version '3.9' do
+ self.release = '3.9.3'
+ self.base_urls = [
+ "https://matplotlib.org/#{release}/api/",
+ "https://matplotlib.org/#{release}/mpl_toolkits/mplot3d/",
+ "https://matplotlib.org/#{release}/mpl_toolkits/axes_grid/api/"
+ ]
+ end
+
version '3.8' do
self.release = '3.8.4'
self.base_urls = [
diff --git a/lib/docs/scrapers/mdn/javascript.rb b/lib/docs/scrapers/mdn/javascript.rb
index e7bdf3309b..292eb14707 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 = '2026-03-16'
+ # release = '2026-04-14'
self.name = 'JavaScript'
self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference'
self.links = {
diff --git a/lib/docs/scrapers/octave.rb b/lib/docs/scrapers/octave.rb
index ee798d58dc..83a9bad8c2 100644
--- a/lib/docs/scrapers/octave.rb
+++ b/lib/docs/scrapers/octave.rb
@@ -10,6 +10,8 @@ class Octave < UrlScraper
html_filters.push 'octave/clean_html', 'octave/entries', 'title'
+ options[:container] = 'body > div[id], body > .contents'
+
options[:skip] = %w(
Copying.html
Preface.html
@@ -23,19 +25,24 @@ class Octave < UrlScraper
options[:root_title] = 'GNU Octave'
options[:attribution] = <<-HTML
- © 1996–2025 The Octave Project Developers
+ © 1996–2026 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 '11' do
+ self.release = '11.1.0'
+ self.base_url = "https://docs.octave.org/v#{self.release}/"
+ end
+
version '10' do
- self.release = '10.1.0'
+ self.release = '10.3.0'
self.base_url = "https://docs.octave.org/v#{self.release}/"
end
version '9' do
- self.release = '9.2.0'
+ self.release = '9.4.0'
self.base_url = "https://docs.octave.org/v#{self.release}/"
end
diff --git a/lib/docs/scrapers/openlayers.rb b/lib/docs/scrapers/openlayers.rb
index b9bf9d347a..3d08fae679 100644
--- a/lib/docs/scrapers/openlayers.rb
+++ b/lib/docs/scrapers/openlayers.rb
@@ -3,7 +3,7 @@ class Openlayers < UrlScraper
self.name = 'OpenLayers'
self.type = 'openlayers'
self.slug = 'openlayers'
- self.release = '10.6.1'
+ self.release = '10.8.0'
self.base_url = "https://openlayers.org/en/latest/apidoc/"
self.links = {
home: 'https://openlayers.org/',
diff --git a/lib/docs/scrapers/playwright.rb b/lib/docs/scrapers/playwright.rb
index 1f35033201..0877ce5c96 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.58.2'
+ self.release = '1.59.1'
self.base_url = 'https://playwright.dev/docs/'
self.root_path = 'intro'
self.links = {
@@ -16,7 +16,7 @@ class Playwright < UrlScraper
# https://github.com/microsoft/playwright/blob/main/LICENSE
options[:attribution] = <<-HTML
- © 2025 Microsoft
+ © 2026 Microsoft
Licensed under the Apache License, Version 2.0.
HTML
diff --git a/lib/docs/scrapers/prettier.rb b/lib/docs/scrapers/prettier.rb
index 3d52fd6459..80bf39022c 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.7.4'
+ self.release = '3.8.2'
self.base_url = 'https://prettier.io/docs/'
self.links = {
home: 'https://prettier.io/',
diff --git a/lib/docs/scrapers/sqlite.rb b/lib/docs/scrapers/sqlite.rb
index 3db98c8deb..07d3daf33f 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.51.1'
+ self.release = '3.53.0'
self.base_url = 'https://sqlite.org/'
self.root_path = 'docs.html'
self.initial_paths = %w(keyword_index.html)
diff --git a/lib/docs/scrapers/zig.rb b/lib/docs/scrapers/zig.rb
index 2f31658e4e..4a36509ccd 100644
--- a/lib/docs/scrapers/zig.rb
+++ b/lib/docs/scrapers/zig.rb
@@ -2,7 +2,7 @@ module Docs
class Zig < UrlScraper
self.name = 'Zig'
self.type = 'simple'
- self.release = '0.15.2'
+ self.release = '0.16.0'
self.base_url = "https://ziglang.org/documentation/#{self.release}/"
self.links = {
home: 'https://ziglang.org/',
@@ -13,7 +13,7 @@ class Zig < UrlScraper
options[:follow_links] = false
options[:attribution] = <<-HTML
- © 2015–2025, Zig contributors
+ © 2015–2026, Zig contributors
Licensed under the MIT License.
HTML