Merge branch 'origin/main' into ruby_3.1.2

pull/1867/head
Simon Legner 2 years ago
commit 47707f31fc

@ -67,10 +67,11 @@ Follow the following steps to update documentations to their latest version:
2. Check if the license is still correct. If you update `options[:attribution]`, also update the documentation's entry in the array in [`assets/javascripts/templates/pages/about_tmpl.coffee`](../assets/javascripts/templates/pages/about_tmpl.coffee) to match.
3. If the documentation has a custom icon, ensure the icons in <code>public/icons/*your_scraper_name*/</code> are up-to-date. If you pull the updated icon from a place different than the one specified in the `SOURCE` file, make sure to replace the old link with the new one.
4. If `self.links` is defined, check if the urls are still correct.
5. Generate the docs using `thor docs:generate <doc@version>`.
6. Make sure `thor docs:generate` doesn't show errors and that the documentation still works well. Verify locally that everything works and that the categorization of entries is still good. Often, updates will require code changes in the scraper or its filters to tweak some new markup in the source website or to categorize new entries.
7. Repeat steps 5 and 6 for all versions that you updated.
8. Create a PR and make sure to fill the checklist in section B of the PR template (remove the other sections).
5. If the scraper inherits from `FileScraper` rather than `URLScraper`, follow the instructions for that scraper in [`file-scrapers.md`](../docs/file-scrapers.md) to obtain the source material for the scraper.
6. Generate the docs using `thor docs:generate <doc@version>`.
7. Make sure `thor docs:generate` doesn't show errors and that the documentation still works well. Verify locally that everything works and that the categorization of entries is still good. Often, updates will require code changes in the scraper or its filters to tweak some new markup in the source website or to categorize new entries.
8. Repeat steps 5 and 6 for all versions that you updated.
9. Create a PR and make sure to fill the checklist in section B of the PR template (remove the other sections).
## Coding conventions

@ -11,15 +11,15 @@ jobs:
runs-on: ubuntu-20.04
if: github.repository == 'freeCodeCamp/devdocs'
steps:
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # tag=v2.5.0
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6 # v2.6.0
- name: Set up Ruby
uses: ruby/setup-ruby@84dd2abab6ed441bd503503b9adb1f52680f7349 # v1.122.0
uses: ruby/setup-ruby@f60ef1e8084a2e64569f928c3f1cfac6c7e12ad7 # v1.137.2
with:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run tests
run: bundle exec rake
- name: Deploy to Heroku
uses: akhileshns/heroku-deploy@79ef2ae4ff9b897010907016b268fd0f88561820 # tag=v3.12.12
uses: akhileshns/heroku-deploy@5ef17ff17a3fb8e9ad822ae6a61648a3ef9e0c3d # v3.12.13
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "devdocs"

@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-20.04
if: github.repository == 'freeCodeCamp/devdocs'
steps:
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # tag=v2.5.0
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6 # v2.6.0
- name: Set up Ruby
uses: ruby/setup-ruby@84dd2abab6ed441bd503503b9adb1f52680f7349 # v1.122.0
uses: ruby/setup-ruby@f60ef1e8084a2e64569f928c3f1cfac6c7e12ad7 # v1.137.2
with:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Generate report

@ -9,9 +9,9 @@ jobs:
test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # tag=v2.5.0
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6 # v2.6.0
- name: Set up Ruby
uses: ruby/setup-ruby@84dd2abab6ed441bd503503b9adb1f52680f7349 # v1.122.0
uses: ruby/setup-ruby@f60ef1e8084a2e64569f928c3f1cfac6c7e12ad7 # v1.137.2
with:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run tests

@ -1,4 +1,4 @@
Copyright 2013-2022 Thibaut Courouble and other contributors
Copyright 2013-2023 Thibaut Courouble and other contributors
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this

@ -55,7 +55,7 @@ GEM
net-ssh (>= 5.0.0, < 8.0.0)
net-ssh (7.0.1)
newrelic_rpm (8.12.0)
nokogiri (1.13.9)
nokogiri (1.13.10)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
options (2.3.2)
@ -69,8 +69,8 @@ GEM
pry-byebug (3.10.1)
byebug (~> 11.0)
pry (>= 0.13, < 0.15)
racc (1.6.0)
rack (2.2.4)
racc (1.6.1)
rack (2.2.6.2)
rack-protection (3.0.3)
rack
rack-ssl-enforcer (0.2.9)

@ -152,32 +152,32 @@ Contributions are welcome. Please read the [contributing guidelines](./.github/C
## Related Projects
Made something cool? Feel free to open a PR to add a new row to this table!
| Project | Description | Last commit |
|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin to search DevDocs by selection or by input. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/vitorbritto/sublime-devdocs?logo=github&label)](https://github.com/vitorbritto/sublime-devdocs) |
| [Atom plugin](https://atom.io/packages/devdocs) | Atom plugin adding the `doc` command to search DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/masnun/atom-devdocs?logo=github&label)](https://github.com/masnun/atom-devdocs) |
| [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension for searching and viewing DevDocs content. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/gruehle/dev-docs-viewer?logo=github&label)](https://github.com/gruehle/dev-docs-viewer) |
| [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/naquad/devdocs-shell?logo=github&label)](https://github.com/naquad/devdocs-shell) |
| [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Quick Emacs API lookup on DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/skeeto/devdocs-lookup?logo=github&label)](https://github.com/skeeto/devdocs-lookup) |
| [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow for DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/yannickglt/alfred-devdocs?logo=github&label)](https://github.com/yannickglt/alfred-devdocs) |
| [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim search plugin with DevDocs in its defaults. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/waiting-for-dev/vim-www?logo=github&label)](https://github.com/waiting-for-dev/vim-www) |
| [vscode-devdocs for VS Code](https://marketplace.visualstudio.com/items?itemName=akfish.vscode-devdocs) | VS Code plugin to open and search DevDocs inside VS Code. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/akfish/vscode-devdocs?logo=github&label)](https://github.com/akfish/vscode-devdocs) |
| [devdocs for VS Code](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code plugin to open the browser to search selected text on DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/deibit/vscode-devdocs?logo=github&label)](https://github.com/deibit/vscode-devdocs) |
| [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Cross-platform desktop application for DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/egoist/devdocs-desktop?logo=github&label)](https://github.com/egoist/devdocs-desktop) |
| [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Native Linux app that supports DevDocs docsets. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/qwfy/doc-browser?logo=github&label)](https://github.com/qwfy/doc-browser) |
| [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK3 application for DevDocs with search integrated in the headerbar. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/hardpixel/devdocs-desktop?logo=github&label)](https://github.com/hardpixel/devdocs-desktop) |
| [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | Native macOS application for DevDocs. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/dteoh/devdocs-macos?logo=github&label)](https://github.com/dteoh/devdocs-macos) |
| [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application which shows DevDocs in a webview. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/Merith-TK/devdocs_webapp_kotlin?logo=github&label)](https://github.com/Merith-TK/devdocs_webapp_kotlin) |
| [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer for DevDocs | [![Latest GitHub commit](https://img.shields.io/github/last-commit/astoff/devdocs.el?logo=github&label)](https://github.com/astoff/devdocs.el) |
| [DevDocs Tab for VS Code](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension to search displaying DevDocs.io in a tab. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/mohamed3nan/DevDocs-Tab?logo=github&label)](https://github.com/mohamed3nan/DevDocs-Tab) |
| [quickDocs](https://github.com/mdh34/quickDocs) | DevDocs viewer written in Vala/Python. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/mdh34/quickDocs?logo=github&label)](https://github.com/mdh34/quickDocs) |
| [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Look up keyword on DevDocs from Vim. | [![Latest GitHub commit](https://img.shields.io/github/last-commit/romainl/vim-devdocs?logo=github&label)](https://github.com/romainl/vim-devdocs) |
Made something cool? Feel free to open a PR to add a new row to this table! You might want to discover new projects via https://github.com/topics/devdocs.
<!-- table is sorted by description -->
| Project | Description | Last commit | Stars |
| ------------------------------------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/yannickglt/alfred-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/yannickglt/alfred-devdocs?logo=github&label) |
| [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/Merith-TK/devdocs_webapp_kotlin?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/Merith-TK/devdocs_webapp_kotlin?logo=github&label) |
| [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension | ![Latest GitHub commit](https://img.shields.io/github/last-commit/gruehle/dev-docs-viewer?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/gruehle/dev-docs-viewer?logo=github&label) |
| [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Electron application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/egoist/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/egoist/devdocs-desktop?logo=github&label) |
| [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Emacs function | ![Latest GitHub commit](https://img.shields.io/github/last-commit/skeeto/devdocs-lookup?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/skeeto/devdocs-lookup?logo=github&label) |
| [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/astoff/devdocs.el?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/astoff/devdocs.el?logo=github&label) |
| [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration | ![Latest GitHub commit](https://img.shields.io/github/last-commit/naquad/devdocs-shell?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/naquad/devdocs-shell?logo=github&label) |
| [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/hardpixel/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/hardpixel/devdocs-desktop?logo=github&label) |
| [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Linux application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/qwfy/doc-browser?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/qwfy/doc-browser?logo=github&label) |
| [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | macOS application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/dteoh/devdocs-macos?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/dteoh/devdocs-macos?logo=github&label) |
| [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/vitorbritto/sublime-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/vitorbritto/sublime-devdocs?logo=github&label) |
| [mohamed3nan/DevDocs-Tab](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension (view as tab) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mohamed3nan/DevDocs-Tab?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mohamed3nan/DevDocs-Tab?logo=github&label) |
| [deibit/vscode-devdocs](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code extension (open the browser) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/deibit/vscode-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/deibit/vscode-devdocs?logo=github&label) |
| [mdh34/quickDocs](https://github.com/mdh34/quickDocs) | Vala/Python based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mdh34/quickDocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mdh34/quickDocs?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) |
## Copyright / License
Copyright 20132021 Thibaut Courouble and [other contributors](https://github.com/freeCodeCamp/devdocs/graphs/contributors)
Copyright 20132023 Thibaut Courouble and [other contributors](https://github.com/freeCodeCamp/devdocs/graphs/contributors)
This software is licensed under the terms of the Mozilla Public License v2.0. See the [COPYRIGHT](./COPYRIGHT) and [LICENSE](./LICENSE) files.

@ -1,5 +1,5 @@
###
* Copyright 2013-2021 Thibaut Courouble and other contributors
* Copyright 2013-2023 Thibaut Courouble and other contributors
*
* This source code is licensed under the terms of the Mozilla
* Public License, v. 2.0, a copy of which may be obtained at:

@ -61,6 +61,7 @@ class app.models.Entry extends app.Model
'julia': 'jl'
'jquery': '$'
'knockout.js': 'ko'
'kubernetes': 'k8s'
'less': 'ls'
'lodash': '_'
'löve': 'love'

@ -1,4 +1,8 @@
[
[
"2022-12-20",
"New documentations: <a href=\"/qunit/\">QUnit</a>, <a href=\"/wagtail/\">Wagtail</a>"
],
[
"2022-11-04",
"New documentation: <a href=\"/vueuse/\">VueUse</a>"

@ -1,4 +1,9 @@
app.templates.aboutPage = -> """
app.templates.aboutPage = ->
all_docs = app.docs.all().concat(app.disabledDocs.all()...)
# de-duplicate docs by doc.name
docs = []
docs.push doc for doc in all_docs when not (docs.find (d) -> d.name == doc.name)
"""
<nav class="_toc" role="directory">
<h3 class="_toc-title">Table of Contents</h3>
<ul class="_toc-list">
@ -22,7 +27,7 @@ app.templates.aboutPage = -> """
<h2 class="_block-heading" id="copyright">Copyright and License</h2>
<p class="_note">
<strong>Copyright 2013&ndash;2021 Thibaut Courouble and <a href="https://github.com/freeCodeCamp/devdocs/graphs/contributors">other contributors</a></strong><br>
<strong>Copyright 2013&ndash;2023 Thibaut Courouble and <a href="https://github.com/freeCodeCamp/devdocs/graphs/contributors">other contributors</a></strong><br>
This software is licensed under the terms of the Mozilla Public License v2.0.<br>
You may obtain a copy of the source code at <a href="https://github.com/freeCodeCamp/devdocs">github.com/freeCodeCamp/devdocs</a>.<br>
For more information, see the <a href="https://github.com/freeCodeCamp/devdocs/blob/main/COPYRIGHT">COPYRIGHT</a>
@ -61,9 +66,15 @@ app.templates.aboutPage = -> """
<table class="_credits">
<tr>
<th>Documentation
<th>Copyright
<th>License
#{("<tr><td>#{c[0]}<td>&copy; #{c[1]}<td><a href=\"#{c[3]}\">#{c[2]}</a>" for c in credits).join('')}
<th>Copyright/License
<th>Source code
#{(
"<tr>
<td><a href=\"#{doc.links?.home}\">#{doc.name}</a></td>
<td>#{doc.attribution}</td>
<td><a href=\"#{doc.links?.code}\">Source code</a></td>
</tr>" for doc in docs
).join('')}
</table>
</div>
@ -78,927 +89,3 @@ app.templates.aboutPage = -> """
<li>If you have any questions regarding privacy, please email <a href="mailto:privacy@freecodecamp.org">privacy@freecodecamp.org</a>.
</ul>
"""
credits = [
[
'Angular',
'2010-2022 Google, Inc.',
'CC BY',
'https://creativecommons.org/licenses/by/4.0/'
], [
'Angular.js',
'2010-2020 Google, Inc.',
'CC BY 3.0',
'https://creativecommons.org/licenses/by/3.0/'
], [
'Ansible',
'2012-2018 Michael DeHaan<br>&copy; 20182021 Red Hat, Inc.',
'GPLv3',
'https://raw.githubusercontent.com/ansible/ansible/devel/COPYING'
], [
'Apache HTTP Server<br>Apache Pig',
'2018 The Apache Software Foundation<br>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.',
'Apache',
'https://www.apache.org/licenses/LICENSE-2.0'
], [
'Astro',
'2022 withastro',
'MIT',
'https://github.com/withastro/docs/blob/main/LICENSE'
], [
'Async',
'2010-2018 Caolan McMahon',
'MIT',
'https://raw.githubusercontent.com/caolan/async/master/LICENSE'
], [
'Axios',
'2014-present Matt Zabriskie',
'MIT',
'https://raw.githubusercontent.com/axios/axios/main/LICENSE'
], [
'Babel',
'2014-present Sebastian McKenzie',
'MIT',
'https://raw.githubusercontent.com/babel/babel/master/LICENSE'
], [
'Backbone.js',
'2010-2019 Jeremy Ashkenas, DocumentCloud',
'MIT',
'https://raw.githubusercontent.com/jashkenas/backbone/master/LICENSE'
], [
'Bash',
'2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.',
'GFDL',
'https://www.gnu.org/licenses/fdl-1.3.en.html'
], [
'Bluebird',
'2013-2018 Petka Antonov',
'MIT',
'https://raw.githubusercontent.com/petkaantonov/bluebird/master/LICENSE'
], [
'Bootstrap',
'2011-2022 Twitter, Inc.<br>2011-2022 The Bootstrap Authors',
'CC BY',
'https://creativecommons.org/licenses/by/3.0/'
], [
'Bottle',
'2009-2017 Marcel Hellkamp',
'MIT',
'https://raw.githubusercontent.com/bottlepy/bottle/master/LICENSE'
], [
'Bower',
'2018 Bower contributors',
'MIT',
'https://github.com/bower/bower.github.io/blob/1057905c18d899106f91372e6cca7ef54a91d60f/package.json#L20'
], [
'C<br>C++',
'cppreference.com',
'CC BY-SA',
'http://en.cppreference.com/w/Cppreference:Copyright/CC-BY-SA'
], [
'CakePHP',
'2005-present The Cake Software Foundation, Inc.',
'MIT',
'https://raw.githubusercontent.com/cakephp/cakephp/master/LICENSE'
], [
'Chai',
'2017 Chai.js Assertion Library',
'MIT',
'https://raw.githubusercontent.com/chaijs/chai/master/LICENSE'
], [
'Chef&trade;',
'Chef Software, Inc.',
'CC BY',
'https://raw.githubusercontent.com/chef/chef-web-docs-2016/master/LICENSE'
], [
'Clojure',
'Rich Hickey',
'EPL',
'https://github.com/clojure/clojure/blob/master/epl-v10.html'
], [
'CMake',
'2000-2022 Kitware, Inc. and Contributors',
'BSD',
'https://cmake.org/licensing/'
], [
'Codeception',
'2011 Michael Bodnarchuk and contributors',
'MIT',
'https://raw.githubusercontent.com/Codeception/Codeception/master/LICENSE'
], [
'CodeceptJS',
'2015 DavertMik',
'MIT',
'https://raw.githubusercontent.com/Codeception/CodeceptJS/master/LICENSE'
], [
'CodeIgniter',
'2014-2021 British Columbia Institute of Technology',
'MIT',
'https://raw.githubusercontent.com/bcit-ci/CodeIgniter/develop/license.txt'
], [
'CoffeeScript',
'2009-2022 Jeremy Ashkenas',
'MIT',
'https://raw.githubusercontent.com/jashkenas/coffeescript/master/LICENSE'
], [
'Composer',
'Nils Adermann, Jordi Boggiano',
'MIT',
'https://raw.githubusercontent.com/composer/composer/master/LICENSE'
], [
'Cordova',
'2012, 2013, 2015 The Apache Software Foundation',
'Apache',
'https://raw.githubusercontent.com/apache/cordova-docs/master/LICENSE'
], [
'Crystal',
'2012-2022 Manas Technology Solutions',
'Apache',
'https://raw.githubusercontent.com/crystal-lang/crystal/master/LICENSE'
], [
'CSS<br>DOM<br>HTTP<br>HTML<br>JavaScript<br>SVG<br>XPath',
'2005-2022 MDN contributors',
'CC BY-SA',
'https://creativecommons.org/licenses/by-sa/2.5/'
], [
'Cypress',
'2017 Cypress.io',
'MIT',
'https://raw.githubusercontent.com/cypress-io/cypress-documentation/develop/LICENSE.md'
], [
'D',
'1999-2021 The D Language Foundation',
'Boost',
'https://raw.githubusercontent.com/dlang/phobos/master/LICENSE_1_0.txt'
], [
'D3.js',
'2010-2022 Michael Bostock',
'BSD',
'https://raw.githubusercontent.com/d3/d3/master/LICENSE'
], [
'Dart',
'2012 the Dart project authors',
'CC BY-SA',
'https://creativecommons.org/licenses/by-sa/4.0/'
], [
'date-fns',
'2021 Sasha Koss and Lesha Koss',
'MIT',
'https://raw.githubusercontent.com/date-fns/date-fns/main/LICENSE.md'
], [
'Deno',
'20182022 the Deno authors',
'MIT',
'https://raw.githubusercontent.com/denoland/manual/main/LICENSE'
], [
'Django',
'Django Software Foundation and individual contributors',
'BSD',
'https://raw.githubusercontent.com/django/django/master/LICENSE'
], [
'Django REST Framework',
'2011-present Encode OSS Ltd.',
'BSD',
'https://raw.githubusercontent.com/encode/django-rest-framework/master/LICENSE.md'
], [
'Docker',
'2019 Docker, Inc.<br>Docker and the Docker logo are trademarks of Docker, Inc.',
'Apache',
'https://raw.githubusercontent.com/docker/docker.github.io/master/LICENSE'
], [
'Dojo',
'2005-2017 JS Foundation',
'BSD + AFL',
'http://dojotoolkit.org/license.html'
], [
'Drupal',
'2001-2015 by the original authors<br>Drupal is a registered trademark of Dries Buytaert.',
'GPLv2',
'https://api.drupal.org/api/drupal/LICENSE.txt'
],[
'Eigen3',
'Eigen',
'MPL2',
'https://www.mozilla.org/en-US/MPL/2.0/'
], [
'Electron',
'GitHub Inc.',
'MIT',
'https://raw.githubusercontent.com/electron/electron/master/LICENSE'
], [
'Elisp',
'1990-1996, 1998-2022 Free Software Foundation, Inc.',
'GPLv3',
'https://www.gnu.org/licenses/gpl-3.0.html'
], [
'Elixir',
'2012 Plataformatec',
'Apache',
'https://raw.githubusercontent.com/elixir-lang/elixir/master/LICENSE'
], [
'Ember.js',
'2020 Yehuda Katz, Tom Dale and Ember.js contributors',
'MIT',
'https://raw.githubusercontent.com/emberjs/ember.js/master/LICENSE'
], [
'Enzyme',
'2015 Airbnb, Inc.',
'MIT',
'https://raw.githubusercontent.com/airbnb/enzyme/master/LICENSE.md'
], [
'Erlang',
'2010-2022 Ericsson AB',
'Apache',
'https://raw.githubusercontent.com/erlang/otp/maint/LICENSE.txt'
], [
'esbulid',
'2020 Evan Wallace',
'MIT',
'https://raw.githubusercontent.com/evanw/esbuild/blob/master/LICENSE.md'
], [
'ESLint',
'OpenJS Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/eslint/eslint/master/LICENSE'
], [
'Express',
'2017 StrongLoop, IBM, and other expressjs.com contributors.',
'CC BY-SA',
'https://raw.githubusercontent.com/expressjs/expressjs.com/gh-pages/LICENSE.md'
], [
'Falcon',
'2019 by Falcon contributors',
'Apache',
'https://raw.githubusercontent.com/falconry/falcon/master/LICENSE'
], [
'FastAPI',
'2018 Sebastián Ramírez',
'MIT',
'https://github.com/tiangolo/fastapi/blob/master/LICENSE'
], [
'Fish',
'20052009 Axel Liljencrantz, 20092022 fish-shell contributors',
'GPLv2',
'https://fishshell.com/docs/current/license.html'
], [
'Flask',
'2007-2022 Pallets',
'BSD',
'https://github.com/pallets/flask/blob/master/LICENSE.rst'
], [
'GCC<br>GNU Fortran<br>GNU Make',
'Free Software Foundation',
'GFDL',
'https://www.gnu.org/licenses/fdl-1.3.en.html'
], [
'Git',
'2012-2022 Scott Chacon and others',
'MIT',
'https://raw.githubusercontent.com/git/git-scm.com/master/MIT-LICENSE.txt'
], [
'GnuCOBOL',
'Free Software Foundation',
'GFDL',
'https://www.gnu.org/licenses/fdl-1.3.en.html'
], [
'Gnuplot',
'Copyright 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley',
'gnuplot license',
'https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright'
], [
'Go',
'Google, Inc.',
'CC BY',
'https://creativecommons.org/licenses/by/3.0/'
], [
'Godot',
'2014-2022 Juan Linietsky, Ariel Manzur, Godot Engine contributors',
'MIT',
'https://raw.githubusercontent.com/godotengine/godot/master/LICENSE.txt'
], [
'Graphite',
'2008-2012 Chris Davis<br>&copy; 2011-2016 The Graphite Project',
'Apache',
'https://raw.githubusercontent.com/graphite-project/graphite-web/master/LICENSE'
], [
'Groovy',
'2003-2022 The Apache Software Foundation',
'Apache',
'https://github.com/apache/groovy-website/blob/asf-site/LICENSE'
], [
'Grunt',
'GruntJS Team',
'MIT',
'https://github.com/gruntjs/grunt-docs/blob/master/package.json#L10'
], [
'GTK',
'The GNOME Project',
'LGPLv2.1+',
'https://gitlab.gnome.org/GNOME/gtk/-/blob/master/COPYING'
], [
'Handlebars',
'2011-2017 Yehuda Katz',
'MIT',
'https://raw.githubusercontent.com/wycats/handlebars.js/master/LICENSE'
], [
'HAProxy',
'2022 Willy Tarreau, HAProxy contributors',
'GPLv2',
'https://raw.githubusercontent.com/haproxy/haproxy/master/LICENSE'
], [
'Haskell',
'The University of Glasgow',
'BSD',
'https://www.haskell.org/ghc/license'
], [
'Haxe',
'2005-2018 Haxe Foundation',
'MIT',
'https://haxe.org/foundation/open-source.html'
], [
'Homebrew',
'2009-present Homebrew contributors',
'BSD',
'https://raw.githubusercontent.com/Homebrew/brew/master/LICENSE.txt'
], [
'i3',
'2009, Michael Stapelberg and contributors',
'BSD',
'https://raw.githubusercontent.com/i3/i3/next/LICENSE'
], [
'Immutable.js',
'2014present Lee Byron and other contributors',
'BSD',
'https://github.com/immutable-js/immutable-js/blob/main/LICENSE'
], [
'InfluxData',
'2015 InfluxData, Inc.',
'MIT',
'https://github.com/influxdata/docs.influxdata.com/blob/master/LICENSE'
], [
'Jasmine',
'2008-2019 Pivotal Labs',
'MIT',
'https://raw.githubusercontent.com/jasmine/jasmine/main/MIT.LICENSE'
], [
'Jekyll',
'2020 Jekyll Core Team and contributors',
'MIT',
'https://raw.githubusercontent.com/jekyll/jekyll/master/LICENSE'
], [
'Jest',
'2022 Facebook, Inc.',
'MIT',
'https://raw.githubusercontent.com/facebook/jest/master/LICENSE'
], [
'Jinja',
'2007-2021 Pallets',
'BSD',
'https://github.com/pallets/jinja/blob/master/LICENSE.rst'
], [
'jq',
'Stephen Dolan',
'CC-BY-3.0',
'https://github.com/stedolan/jq/blob/master/COPYING#L24-L28'
], [
'jQuery',
'Packt Publishing<br>&copy; jQuery Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/jquery/api.jquery.com/master/LICENSE.txt'
], [
'jQuery Mobile',
'jQuery Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/jquery/api.jquerymobile.com/master/LICENSE.txt'
], [
'jQuery UI',
'jQuery Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/jquery/api.jqueryui.com/master/LICENSE.txt'
], [
'JSDoc',
'2011-2017 the contributors to the JSDoc 3 documentation project',
'CC BY-SA',
'https://raw.githubusercontent.com/jsdoc3/jsdoc3.github.com/master/LICENSE'
], [
'Julia',
'2009-2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors',
'MIT',
'https://raw.githubusercontent.com/JuliaLang/julia/master/LICENSE.md'
], [
'Knockout.js',
'Steven Sanderson, the Knockout.js team, and other contributors',
'MIT',
'https://raw.githubusercontent.com/knockout/knockout/master/LICENSE'
], [
'Koa',
'2020 Koa contributors',
'MIT',
'https://raw.githubusercontent.com/koajs/koa/master/LICENSE'
], [
'Kotlin',
'2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors',
'Apache',
'https://raw.githubusercontent.com/JetBrains/kotlin/master/license/LICENSE.txt'
], [
'Kubernetes',
'2022 The Kubernetes Authors and The Linux Foundation',
'Apache License 2.0',
'https://github.com/kubernetes/kubernetes/blob/master/LICENSE'
], [
'Laravel',
'Taylor Otwell',
'MIT',
'https://raw.githubusercontent.com/laravel/framework/master/LICENSE.txt'
], [
'LaTeX',
'Karl Berry',
'Public Domain',
'https://ctan.org/pkg/latex2e-help-texinfo/'
], [
'Leaflet',
'2010-2022 Vladimir Agafonkin<br>&copy; 2010-2011, CloudMade<br>Maps &copy; OpenStreetMap contributors.',
'BSD',
'https://raw.githubusercontent.com/Leaflet/Leaflet/master/LICENSE'
], [
'Less',
'2009-2020 The Core Less Team',
'CC BY',
'https://creativecommons.org/licenses/by/3.0/'
], [
'Liquid',
'2005, 2006 Tobias Luetke',
'MIT',
'https://raw.githubusercontent.com/Shopify/liquid/master/LICENSE'
], [
'Lo-Dash',
'JS Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/lodash/lodash/master/LICENSE'
], [
'Lua',
'19942020 Lua.org, PUC-Rio',
'MIT',
'http://www.lua.org/license.html'
], [
'LÖVE',
'2006-2020 LÖVE Development Team',
'GFDL',
'http://www.gnu.org/copyleft/fdl.html'
], [
'MariaDB',
'2022 MariaDB',
'CC BY-SA & GFDL',
'https://mariadb.com/kb/en/library/documentation/+license/'
], [
'Marionette.js',
'2017 Muted Solutions, LLC',
'MIT',
'https://mutedsolutions.mit-license.org/'
], [
'Markdown',
'2004 John Gruber',
'BSD',
'https://daringfireball.net/projects/markdown/license'
], [
'Matplotlib',
'2012-2022 Matplotlib Development Team. All rights reserved.',
'Custom',
'https://raw.githubusercontent.com/matplotlib/matplotlib/master/LICENSE/LICENSE'
], [
'Meteor',
'2011-2017 Meteor Development Group, Inc.',
'MIT',
'https://raw.githubusercontent.com/meteor/meteor/master/LICENSE'
], [
'Minitest',
'Ryan Davis, seattle.rb',
'MIT',
'https://github.com/seattlerb/minitest/blob/master/README.rdoc#license'
], [
'Mocha',
'2011-2021 JS Foundation and contributors',
'CC BY',
'https://creativecommons.org/licenses/by/4.0/'
], [
'Modernizr',
'2009-2020 The Modernizr team',
'MIT',
'https://modernizr.com/license/'
], [
'Moment.js<br>Moment.js Timezone',
'JS Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/moment/moment/master/LICENSE'
], [
'Mongoose',
'2010 LearnBoost',
'MIT',
'https://github.com/LearnBoost/mongoose/blob/master/README.md#license'
], [
'nginx',
'2002-2021 Igor Sysoev<br>&copy; 2011-2022 Nginx, Inc.',
'BSD',
'http://nginx.org/LICENSE'
], [
'nginx / Lua Module',
'2009-2017 Xiaozhe Wang (chaoslawful)<br>&copy; 2009-2018 Yichun "agentzh" Zhang (章亦春), OpenResty Inc.',
'BSD',
'https://github.com/openresty/lua-nginx-module#copyright-and-license'
], [
'Nim',
'2006-2021 Andreas Rumpf',
'MIT',
'https://github.com/nim-lang/Nim#license'
], [
'Nix',
'2022 NixOS Contributors',
'LGPLv2.1',
'https://github.com/NixOS/nix#license'
], [
'Node.js',
'Joyent, Inc. and other Node contributors<br>Node.js is a trademark of Joyent, Inc.',
'MIT',
'https://raw.githubusercontent.com/nodejs/node/master/LICENSE'
], [
'Nokogiri',
'20082021 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo, Patrick Mahoney, Yoko Harada, Akinori MUSHA, John Shahid, Lars Kanis',
'MIT',
'https://raw.githubusercontent.com/sparklemotion/nokogiri/master/LICENSE.md'
], [
'npm',
'npm, Inc. and Contributors<br>npm is a trademark of npm, Inc.',
'npm',
'https://raw.githubusercontent.com/npm/npm/master/LICENSE'
], [
'NumPy',
'2005-2022 NumPy Developers',
'BSD',
'https://raw.githubusercontent.com/numpy/numpy/master/LICENSE.txt'
], [
'OCaml',
'1995-2022 INRIA',
'CC BY-SA',
'https://ocaml.org/docs/'
], [
'Octave',
'19962022 The Octave Project Developers',
'Octave',
'https://docs.octave.org/v7.2.0/'
], [
'OpenJDK',
'1993, 2022, Oracle and/or its affiliates. All rights reserved.<br>Licensed under the GNU General Public License, version 2, with the Classpath Exception.<br>Various third party code in OpenJDK is licensed under different licenses.<br>Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.',
'GPLv2',
'http://openjdk.java.net/legal/gplv2+ce.html'
], [
'OpenTSDB',
'2010-2016 The OpenTSDB Authors',
'LGPLv2.1',
'https://raw.githubusercontent.com/OpenTSDB/opentsdb.net/gh-pages/COPYING.LESSER'
], [
'Padrino',
'2010-2020 Padrino',
'MIT',
'https://raw.githubusercontent.com/padrino/padrino-framework/master/padrino/LICENSE.txt'
], [
'pandas',
'2008-2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team',
'BSD',
'https://raw.githubusercontent.com/pydata/pandas/master/LICENSE'
], [
'Perl',
'1993-2021 Larry Wall and others',
'GPLv1',
'https://perldoc.perl.org/index-licence.html'
], [
'Phalcon',
'2011-2017 Phalcon Framework Team',
'CC BY',
'https://docs.phalconphp.com/en/latest/reference/license.html'
], [
'Phaser',
'2016 Richard Davey, Photon Storm Ltd.',
'MIT',
'https://raw.githubusercontent.com/photonstorm/phaser/master/license.txt'
], [
'Phoenix',
'2014 Chris McCord',
'MIT',
'https://raw.githubusercontent.com/phoenixframework/phoenix/master/LICENSE.md'
], [
'PHP',
'1997-2021 The PHP Documentation Group',
'CC BY',
'https://secure.php.net/manual/en/copyright.php'
], [
'PHPUnit',
'2005-2017 Sebastian Bergmann',
'CC BY',
'https://creativecommons.org/licenses/by/3.0/'
], [
'PointCloudLibrary',
'20092012, Willow Garage, Inc.<br>&copy; 2012, Open Perception, Inc.',
'BSD',
'https://raw.githubusercontent.com/PointCloudLibrary/pcl/master/LICENSE.txt'
], [
'Pony',
'2016-2020, The Pony Developers & 2014-2015, Causality Ltd.',
'BSD',
'https://raw.githubusercontent.com/ponylang/ponyc/master/LICENSE'
], [
'PostgreSQL',
'1996-2022 The PostgreSQL Global Development Group<br>&copy; 1994 The Regents of the University of California',
'PostgreSQL',
'https://www.postgresql.org/about/licence/'
], [
'Prettier',
'James Long and contributors',
'MIT',
'https://raw.githubusercontent.com/prettier/prettier/main/LICENSE '
], [
'Puppeteer',
'2021 Google Inc',
'Apache',
'https://raw.githubusercontent.com/puppeteer/puppeteer/master/LICENSE'
], [
'Pygame',
'Pygame Developers',
'LGPLv2.1',
'https://raw.githubusercontent.com/pygame/pygame/master/LICENSE'
], [
'Python',
'2001-2022 Python Software Foundation<br>Python is a trademark of the Python Software Foundation.',
'PSFL',
'https://docs.python.org/3/license.html'
], [
'PyTorch',
'2019 Torch Contributors',
'BSD',
'https://raw.githubusercontent.com/pytorch/pytorch/master/LICENSE'
], [
'Q',
'2009-2017 Kristopher Michael Kowal',
'MIT',
'https://raw.githubusercontent.com/kriskowal/q/master/LICENSE'
], [
'Qt',
'2012-2018 The Qt Company Ltd',
'GFDL',
'https://doc.qt.io/qt-5/licensing.html'
], [
'R',
'19992012 R Foundation for Statistical Computing',
'GPL',
'https://svn.r-project.org/R/trunk/COPYING'
], [
'Ramda',
'2013-2020 Scott Sauyet and Michael Hurley',
'MIT',
'https://raw.githubusercontent.com/ramda/ramda/master/LICENSE.txt'
], [
'React, React Native, Flow, Relay',
'Facebook Inc. and its affiliates',
'MIT',
'https://raw.githubusercontent.com/facebook/react/master/LICENSE'
], [
'React Bootstrap',
'2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff',
'MIT',
'https://raw.githubusercontent.com/react-bootstrap/react-bootstrap/master/LICENSE'
], [
'React Router',
'React Training 2015-2019<br>Remix Software 2020-2022',
'MIT',
'https://raw.githubusercontent.com/remix-run/react-router/main/LICENSE.md'
], [
'ReactiveX',
'ReactiveX contributors',
'Apache',
'https://raw.githubusercontent.com/ReactiveX/reactivex.github.io/develop/LICENSE'
], [
'Redis',
'2009-2020 Salvatore Sanfilippo',
'CC BY-SA',
'https://creativecommons.org/licenses/by-sa/4.0/'
], [
'Redux',
'2015-2022 Dan Abramov',
'MIT',
'https://raw.githubusercontent.com/reactjs/redux/master/LICENSE.md'
], [
'Requests',
'2011-2022 Kenneth Reitz and other contributors',
'Apache',
'https://raw.githubusercontent.com/psf/requests/main/LICENSE'
], [
'RequireJS',
'jQuery Foundation and other contributors',
'MIT',
'https://raw.githubusercontent.com/requirejs/requirejs/master/LICENSE'
], [
'RethinkDB',
'RethinkDB contributors',
'CC BY-SA',
'https://raw.githubusercontent.com/rethinkdb/docs/master/LICENSE'
], [
'Ruby',
'1993-2022 Yukihiro Matsumoto',
'Ruby',
'https://www.ruby-lang.org/en/about/license.txt'
], [
'Ruby on Rails',
'2004-2021 David Heinemeier Hansson<br>Rails, Ruby on Rails, and the Rails logo are trademarks of David Heinemeier Hansson.',
'MIT',
'https://raw.githubusercontent.com/rails/rails/master/activerecord/MIT-LICENSE'
], [
'Rust',
'2010 The Rust Project Developers',
'MIT',
'https://raw.githubusercontent.com/rust-lang/book/master/LICENSE-MIT'
], [
'RxJS',
'2015-2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors',
'Apache',
'https://raw.githubusercontent.com/ReactiveX/rxjs/master/LICENSE.txt'
], [
'Salt Stack',
'2021 SaltStack',
'Apache',
'https://raw.githubusercontent.com/saltstack/salt/develop/LICENSE'
], [
'Sanctuary',
'2020 Sanctuary; 2016 Plaid Technologies, Inc.',
'MIT',
'https://raw.githubusercontent.com/sanctuary-js/sanctuary/master/LICENSE'
], [
'Sass',
'2022 Google Inc.',
'MIT',
'https://raw.githubusercontent.com/sass/sass/main/LICENSE'
], [
'Scala',
'2002-2022 EPFL, with contributions from Lightbend',
'Apache',
'https://www.scala-lang.org/license/'
], [
'scikit-image',
'2019 the scikit-image team',
'BSD',
'https://scikit-image.org/docs/dev/license.html'
], [
'scikit-learn',
'2007-2022 The scikit-learn developers',
'BSD',
'https://raw.githubusercontent.com/scikit-learn/scikit-learn/master/COPYING'
], [
'Sequelize',
'2014—present Sequelize contributors',
'MIT',
'https://raw.githubusercontent.com/sequelize/sequelize/master/LICENSE'
], [
'Sinon',
'2010-2021 Christian Johansen',
'BSD',
'https://raw.githubusercontent.com/sinonjs/sinon/master/LICENSE'
], [
'Socket.io',
'2014-2018 Automattic',
'MIT',
'https://raw.githubusercontent.com/Automattic/socket.io/master/LICENSE'
], [
'Spring Boot',
'2002-2022 Pivotal, Inc. All Rights Reserved.',
'Apache License 2.0',
'https://raw.githubusercontent.com/spring-projects/spring-boot/master/LICENSE.txt'
], [
'SQLite',
'n/a',
'Public Domain',
'https://sqlite.org/copyright.html'
], [
'Statsmodels',
'2009-2012 Statsmodels Developers<br>&copy; 2006-2008 Scipy Developers<br>&copy; 2006 Jonathan E. Taylor',
'BSD',
'https://raw.githubusercontent.com/statsmodels/statsmodels/master/LICENSE.txt'
], [
'Svelte',
'20162022 Rich Harris and contributors',
'MIT',
'https://raw.githubusercontent.com/sveltejs/svelte/master/LICENSE.md'
], [
'Symfony',
'2004-2017 Fabien Potencier',
'MIT',
'https://symfony.com/doc/current/contributing/code/license.html'
], [
'TailwindCSS',
'2022 Tailwind Labs, Inc.',
'MIT',
'https://raw.githubusercontent.com/tailwindlabs/tailwindcss/master/LICENSE'
], [
'Tcl/Tk',
'The Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other parties',
'Tcl/Tk',
'http://tcl.tk/software/tcltk/license.html'
], [
'TensorFlow',
'2022 The TensorFlow Authors',
'CC BY',
'https://creativecommons.org/licenses/by/4.0/'
], [
'Terraform',
'2018 HashiCorp',
'MPL',
'https://raw.githubusercontent.com/hashicorp/terraform-website/master/LICENSE.md'
], [
'Trio',
'2017 Nathaniel J. Smith',
'MIT',
'https://raw.githubusercontent.com/python-trio/trio/master/LICENSE.MIT'
], [
'Twig',
'2009-2020 The Twig Team',
'BSD',
'https://twig.symfony.com/license'
], [
'TypeScript',
'2012-2022 Microsoft',
'Apache',
'https://raw.githubusercontent.com/Microsoft/TypeScript-Handbook/master/LICENSE'
], [
'Underscore.js',
'2009-2021 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors',
'MIT',
'https://raw.githubusercontent.com/jashkenas/underscore/master/LICENSE'
], [
'Vagrant',
'2010-2018 Mitchell Hashimoto',
'MPL',
'https://raw.githubusercontent.com/mitchellh/vagrant/master/website/LICENSE.md'
], [
'Vite',
'2019present, Yuxi (Evan) You and Vite contributors',
'MIT',
'https://github.com/vitejs/vite/blob/main/LICENSE'
], [
'Vitest',
'2021-Present Anthony Fu<br>2021-Present Matias Capeletto<br>',
'MIT',
'https://github.com/vitest-dev/vitest/blob/main/LICENSE'
], [
'Vue Router',
'2013-present Evan You',
'MIT',
'https://raw.githubusercontent.com/vuejs/vue-router/dev/LICENSE'
], [
'Vue.js',
'2013-present Yuxi Evan You',
'MIT',
'https://raw.githubusercontent.com/vuejs/vuejs.org/master/LICENSE'
], [
'Vueuse',
'2019-present Anthony Fu',
'MIT',
'https://raw.githubusercontent.com/vueuse/vueuse/main/LICENSE'
], [
'Vuex',
'2015-present Evan You',
'MIT',
'https://raw.githubusercontent.com/vuejs/vuex/dev/LICENSE'
], [
'Vulkan',
'2014-2017 Khronos Group Inc.<br>Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.',
'CC BY',
'https://creativecommons.org/licenses/by/4.0/'
], [
'webpack',
'JS Foundation and other contributors',
'CC BY',
'https://creativecommons.org/licenses/by/4.0/'
], [
'Werkzeug',
'2007-2022 Pallets',
'BSD',
'https://github.com/pallets/werkzeug/blob/master/LICENSE.rst'
], [
'Wordpress',
'2003-2022 WordPress Foundation',
'GPLv2+',
'https://wordpress.org/about/license/'
], [
'Yarn',
'2016-present Yarn Contributors',
'BSD',
'https://raw.githubusercontent.com/yarnpkg/yarn/master/LICENSE'
], [
'Yii',
'2008-2017 by Yii Software LLC',
'BSD',
'https://raw.githubusercontent.com/yiisoft/yii/master/LICENSE'
], [
'Zig',
'20152022, Zig contributors',
'MIT',
'https://raw.githubusercontent.com/ziglang/zig/master/LICENSE'
]
]

@ -8,7 +8,7 @@ class app.views.RdocPage extends app.views.BasePage
return unless event.target.classList.contains 'method-click-advice'
$.stopEvent(event)
source = $ '.method-source-code', event.target.parentNode.parentNode
source = $ '.method-source-code', event.target.closest('.method-detail')
isShown = source.style.display is 'block'
source.style.display = if isShown then 'none' else 'block'

@ -3,7 +3,7 @@
//= depend_on sprites/docs.json
/*!
* Copyright 2013-2021 Thibaut Courouble and other contributors
* Copyright 2013-2023 Thibaut Courouble and other contributors
*
* This source code is licensed under the terms of the Mozilla
* Public License, v. 2.0, a copy of which may be obtained at:

@ -228,7 +228,7 @@
//
._credits {
width: 100%;
max-width: 100%;
}
//

@ -96,8 +96,6 @@ dd {
+ dt { margin-top: 1em; }
}
dfn, var { font-style: normal; }
abbr, acronym, dfn {
cursor: help;
border-bottom: 1px dotted var(--textColor);

@ -47,6 +47,11 @@
span.descclassname, span.descname { font-family: var(--monoFont) }
}
nav[aria-label="Page navigation"]{
display: flex !important;
justify-content: space-between !important;
}
._sphinx {
@extend %sphinx;
}

@ -23,7 +23,7 @@ and put it in `/path/to/devdocs/docs/`
Or run the following commands in your terminal:
```sh
curl https://storage.googleapis.com/dart-archive/channels/stable/release/$RELEASE/api-docs/dartdocs-gen-api-zip > dartApi.zip; \
curl https://storage.googleapis.com/dart-archive/channels/stable/release/$RELEASE/api-docs/dartdocs-gen-api.zip > dartApi.zip; \
unzip dartApi.zip; mv gen-dartdocs docs/dart~$VERSION
```
@ -65,7 +65,7 @@ Go to https://www.erlang.org/downloads and download the HTML documentation file.
```ah
mkdir --parent docs/erlang\~$VERSION/; \
curl http://erlang.org/download/otp_doc_html_$RELEASE.tar.gz | \
curl -L https://github.com/erlang/otp/releases/download/OTP-$RELEASE/otp_doc_html_$RELEASE.tar.gz | \
bsdtar --extract --file - --directory=docs/erlang\~$VERSION/
```
@ -282,5 +282,5 @@ Download the docs from https://sqlite.org/download.html, unzip it, and rename
it to `/path/to/devdocs/docs/sqlite`
```sh
curl https://sqlite.org/2022/sqlite-doc-3390200.zip | bsdtar --extract --file - --directory=docs/sqlite/ --strip-components=1
curl https://sqlite.org/2022/sqlite-doc-3400000.zip | bsdtar --extract --file - --directory=docs/sqlite/ --strip-components=1
```

@ -16,7 +16,11 @@ module Docs
def as_json
@docs.each_with_object [] do |doc, result|
next unless @store.exist?(doc.meta_path)
result << JSON.parse(@store.read(doc.meta_path))
json = JSON.parse(@store.read(doc.meta_path))
if doc.options[:attribution].is_a?(String)
json[:attribution] = doc.options[:attribution].strip
end
result << json
end
end

@ -2,7 +2,15 @@ module Docs
class Axios
class CleanHtmlFilter < Filter
def call
if root_page?
return '<h1>Axios</h1><p>Promise based HTTP client for the browser and node.js</p><p>Axios is a simple promise based HTTP client for the browser and node.js. Axios provides a simple to use library in a small package with a very extensible interface.</p>'
end
@doc = at_css('main > .body')
css('.links').remove
css('pre').each do |node|
node.content = node.content
node['data-language'] = node['class'][/lang-(\w+)/, 1]
end
doc
end
end

@ -40,21 +40,7 @@ module Docs
css('table[class^=index-] td[valign=top] > a').each_slice(2) do |entry_node, section_node|
entry_name = entry_node.content
page = section_node['href'].split('#')[0]
hash = entry_name
# The Special Parameters page has multiple additional entries which should link to the same paragraph
# Example: the documentation for "$!" is equal to the documentation for "!"
if page == 'special-parameters'
if hash.size > 1 && hash[0] == '$'
hash = hash[1..-1]
end
end
# Construct path to the page which the index links to
entry_path = page + '#' + hash
entry_path = entry_node['href']
entries << [entry_name, entry_path, entry_type]
end

@ -2,11 +2,12 @@ module Docs
class Erlang
class CleanHtmlFilter < Filter
def call
@doc = at_css('#content')
@doc = at_css('#content .innertube:only-child', '#content')
# frontpage
css('center:last-child').remove # copyright
css('.footer').remove # copyright
css('center', '.example').each do |node|
node.before(node.children).remove

@ -13,6 +13,7 @@ module Docs
node.before(node.children).remove
end
css('.line-numbers-wrapper').remove
css('pre.hljs').each do |node|
lang = node['class'][/highlight-(\w+)/, 1]
node['data-language'] = lang if lang
@ -23,6 +24,8 @@ module Docs
css('code', 'p').remove_attr('class')
css('.resource__image', '.resource__domain').remove
doc
end
end

@ -29,8 +29,9 @@ module Docs
node['id'] = node.at_css('.anchor')['name']
end
css('.keyword > b').each do |node|
css('.keyword > b', '.keyword > span').each do |node|
node.content = node.content
node.remove_attribute('style')
end
css('.dropdown').each do |node|

@ -5,6 +5,18 @@ module Docs
@doc = at_css('.contents')
css('.dynheader.closed').remove
css('.permalink').remove
css('.memSeparator').remove
# Change div.fragment to C++ code with syntax highlight
css('div.fragment').each do |node|
node.name = 'pre'
node['data-language'] = 'cpp'
node_content = ""
node.css('div').each do |inner_node|
node_content += inner_node.text + "\n"
end
node.content = node_content
end
doc
end
end

@ -21,6 +21,8 @@ module Docs
node.parent['id'] ||= node['name'] || node['id']
end
css('a[href*="youtube.com"]').remove
css('.highlight').each do |node|
node.name = 'pre'
node.css('.gutter').remove

@ -0,0 +1,17 @@
# frozen_string_literal: true
module Docs
class Qunit
class CleanHtmlFilter < Filter
def call
@doc = at_css('.content[role="main"]')
css('.sidebar').remove
css('pre').each do |node|
node['data-language'] = 'javascript'
node.content = node.content
end
doc
end
end
end
end

@ -0,0 +1,23 @@
# frozen_string_literal: true
module Docs
class Qunit
class EntriesFilter < Docs::EntriesFilter
TYPE_MAPPING = {
'QUnit' => '1. Main methods',
'assert' => '2. Assertions',
'callbacks' => '3. Callback events',
'config' => '4. Configuration',
'extension' => '5. Extension interface'
}
def get_name
at_css('h1').content
end
def get_type
main, *rest = *slug.split('/')
TYPE_MAPPING[main]
end
end
end
end

@ -3,14 +3,20 @@ module Docs
class CleanHtmlFilter < Filter
def call
if root_page?
at_css('ul')['class'] = 'commands'
if root_page?
slug_types = {}
css('article[data-group]').each do |node|
slug_types[node.at_css('a')['href']] = node['data-group']
end
# binding.pry
end
else
title = at_css('h1')
title.after("<pre>#{title.content.strip}</pre>")
title.content = title.content.split(' ').first
end
css('nav', 'aside', 'form', '.anchor-link').remove
css('nav', 'aside', '.page-feedback', '.anchor-link').remove
css('> article', '.article-main', 'pre > code', '.container').each do |node|
node.before(node.children).remove

@ -1,30 +1,510 @@
module Docs
class Redis
class EntriesFilter < Docs::EntriesFilter
def get_name
slug.gsub('-', ' ')
slug.gsub('-', ' ').remove('/')
end
def get_type
case at_css('aside > ul:last-child a').content.strip
when 'DEL' then 'Keys'
when 'APPEND' then 'Strings'
when 'HDEL' then 'Hashes'
when 'BLPOP' then 'Lists'
when 'SADD' then 'Sets'
when 'BZPOPMAX' then 'Sorted Sets'
when 'PSUBSCRIBE' then 'Pub/Sub'
when 'DISCARD' then 'Transactions'
when 'EVAL' then 'Scripting'
when 'AUTH' then 'Connection'
when 'BGREWRITEAOF' then 'Server'
when 'PFADD' then 'HyperLogLog'
when 'CLUSTER ADDSLOTS' then 'Cluster'
when 'GEOADD' then 'Geo'
when 'XACK' then 'Stream'
else 'Miscellaneous'
end
SLUG_NAMES[SLUG_TYPES[slug]]
end
# obtain from https://redis.io/commands/ via lib/docs/filters/redis/clean_html.rb using `binding.pry`
SLUG_TYPES = {
"acl-cat/" => "server",
"acl-deluser/" => "server",
"acl-dryrun/" => "server",
"acl-genpass/" => "server",
"acl-getuser/" => "server",
"acl-list/" => "server",
"acl-load/" => "server",
"acl-log/" => "server",
"acl-save/" => "server",
"acl-setuser/" => "server",
"acl-users/" => "server",
"acl-whoami/" => "server",
"append/" => "string",
"asking/" => "cluster",
"auth/" => "connection",
"bf.add/" => "bf",
"bf.card/" => "bf",
"bf.exists/" => "bf",
"bf.info/" => "bf",
"bf.insert/" => "bf",
"bf.loadchunk/" => "bf",
"bf.madd/" => "bf",
"bf.mexists/" => "bf",
"bf.reserve/" => "bf",
"bf.scandump/" => "bf",
"bgrewriteaof/" => "server",
"bgsave/" => "server",
"bitcount/" => "bitmap",
"bitfield/" => "bitmap",
"bitfield_ro/" => "bitmap",
"bitop/" => "bitmap",
"bitpos/" => "bitmap",
"blmove/" => "list",
"blmpop/" => "list",
"blpop/" => "list",
"brpop/" => "list",
"brpoplpush/" => "list",
"bzmpop/" => "sorted-set",
"bzpopmax/" => "sorted-set",
"bzpopmin/" => "sorted-set",
"cf.add/" => "cf",
"cf.addnx/" => "cf",
"cf.count/" => "cf",
"cf.del/" => "cf",
"cf.exists/" => "cf",
"cf.info/" => "cf",
"cf.insert/" => "cf",
"cf.insertnx/" => "cf",
"cf.loadchunk/" => "cf",
"cf.mexists/" => "cf",
"cf.reserve/" => "cf",
"cf.scandump/" => "cf",
"client-caching/" => "connection",
"client-getname/" => "connection",
"client-getredir/" => "connection",
"client-id/" => "connection",
"client-info/" => "connection",
"client-kill/" => "connection",
"client-list/" => "connection",
"client-no-evict/" => "connection",
"client-pause/" => "connection",
"client-reply/" => "connection",
"client-setname/" => "connection",
"client-tracking/" => "connection",
"client-trackinginfo/" => "connection",
"client-unblock/" => "connection",
"client-unpause/" => "connection",
"cluster-addslots/" => "cluster",
"cluster-addslotsrange/" => "cluster",
"cluster-bumpepoch/" => "cluster",
"cluster-count-failure-reports/" => "cluster",
"cluster-countkeysinslot/" => "cluster",
"cluster-delslots/" => "cluster",
"cluster-delslotsrange/" => "cluster",
"cluster-failover/" => "cluster",
"cluster-flushslots/" => "cluster",
"cluster-forget/" => "cluster",
"cluster-getkeysinslot/" => "cluster",
"cluster-info/" => "cluster",
"cluster-keyslot/" => "cluster",
"cluster-links/" => "cluster",
"cluster-meet/" => "cluster",
"cluster-myid/" => "cluster",
"cluster-nodes/" => "cluster",
"cluster-replicas/" => "cluster",
"cluster-replicate/" => "cluster",
"cluster-reset/" => "cluster",
"cluster-saveconfig/" => "cluster",
"cluster-set-config-epoch/" => "cluster",
"cluster-setslot/" => "cluster",
"cluster-shards/" => "cluster",
"cluster-slaves/" => "cluster",
"cluster-slots/" => "cluster",
"cms.incrby/" => "cms",
"cms.info/" => "cms",
"cms.initbydim/" => "cms",
"cms.initbyprob/" => "cms",
"cms.merge/" => "cms",
"cms.query/" => "cms",
"command/" => "server",
"command-count/" => "server",
"command-docs/" => "server",
"command-getkeys/" => "server",
"command-getkeysandflags/" => "server",
"command-info/" => "server",
"command-list/" => "server",
"config-get/" => "server",
"config-resetstat/" => "server",
"config-rewrite/" => "server",
"config-set/" => "server",
"copy/" => "generic",
"dbsize/" => "server",
"decr/" => "string",
"decrby/" => "string",
"del/" => "generic",
"discard/" => "transactions",
"dump/" => "generic",
"echo/" => "connection",
"eval/" => "scripting",
"eval_ro/" => "scripting",
"evalsha/" => "scripting",
"evalsha_ro/" => "scripting",
"exec/" => "transactions",
"exists/" => "generic",
"expire/" => "generic",
"expireat/" => "generic",
"expiretime/" => "generic",
"failover/" => "server",
"fcall/" => "scripting",
"fcall_ro/" => "scripting",
"flushall/" => "server",
"flushdb/" => "server",
"ft._list/" => "search",
"ft.aggregate/" => "search",
"ft.aliasadd/" => "search",
"ft.aliasdel/" => "search",
"ft.aliasupdate/" => "search",
"ft.alter/" => "search",
"ft.config-get/" => "search",
"ft.config-set/" => "search",
"ft.create/" => "search",
"ft.cursor-del/" => "search",
"ft.cursor-read/" => "search",
"ft.dictadd/" => "search",
"ft.dictdel/" => "search",
"ft.dictdump/" => "search",
"ft.dropindex/" => "search",
"ft.explain/" => "search",
"ft.explaincli/" => "search",
"ft.info/" => "search",
"ft.profile/" => "search",
"ft.search/" => "search",
"ft.spellcheck/" => "search",
"ft.sugadd/" => "suggestion",
"ft.sugdel/" => "suggestion",
"ft.sugget/" => "suggestion",
"ft.suglen/" => "suggestion",
"ft.syndump/" => "search",
"ft.synupdate/" => "search",
"ft.tagvals/" => "search",
"function-delete/" => "scripting",
"function-dump/" => "scripting",
"function-flush/" => "scripting",
"function-kill/" => "scripting",
"function-list/" => "scripting",
"function-load/" => "scripting",
"function-restore/" => "scripting",
"function-stats/" => "scripting",
"geoadd/" => "geo",
"geodist/" => "geo",
"geohash/" => "geo",
"geopos/" => "geo",
"georadius/" => "geo",
"georadius_ro/" => "geo",
"georadiusbymember/" => "geo",
"georadiusbymember_ro/" => "geo",
"geosearch/" => "geo",
"geosearchstore/" => "geo",
"get/" => "string",
"getbit/" => "bitmap",
"getdel/" => "string",
"getex/" => "string",
"getrange/" => "string",
"getset/" => "string",
"graph.config-get/" => "graph",
"graph.config-set/" => "graph",
"graph.delete/" => "graph",
"graph.explain/" => "graph",
"graph.list/" => "graph",
"graph.profile/" => "graph",
"graph.query/" => "graph",
"graph.ro_query/" => "graph",
"graph.slowlog/" => "graph",
"hdel/" => "hash",
"hello/" => "connection",
"hexists/" => "hash",
"hget/" => "hash",
"hgetall/" => "hash",
"hincrby/" => "hash",
"hincrbyfloat/" => "hash",
"hkeys/" => "hash",
"hlen/" => "hash",
"hmget/" => "hash",
"hmset/" => "hash",
"hrandfield/" => "hash",
"hscan/" => "hash",
"hset/" => "hash",
"hsetnx/" => "hash",
"hstrlen/" => "hash",
"hvals/" => "hash",
"incr/" => "string",
"incrby/" => "string",
"incrbyfloat/" => "string",
"info/" => "server",
"json.arrappend/" => "json",
"json.arrindex/" => "json",
"json.arrinsert/" => "json",
"json.arrlen/" => "json",
"json.arrpop/" => "json",
"json.arrtrim/" => "json",
"json.clear/" => "json",
"json.debug/" => "json",
"json.debug-memory/" => "json",
"json.del/" => "json",
"json.forget/" => "json",
"json.get/" => "json",
"json.mget/" => "json",
"json.numincrby/" => "json",
"json.nummultby/" => "json",
"json.objkeys/" => "json",
"json.objlen/" => "json",
"json.resp/" => "json",
"json.set/" => "json",
"json.strappend/" => "json",
"json.strlen/" => "json",
"json.toggle/" => "json",
"json.type/" => "json",
"keys/" => "generic",
"lastsave/" => "server",
"latency-doctor/" => "server",
"latency-graph/" => "server",
"latency-histogram/" => "server",
"latency-history/" => "server",
"latency-latest/" => "server",
"latency-reset/" => "server",
"lcs/" => "string",
"lindex/" => "list",
"linsert/" => "list",
"llen/" => "list",
"lmove/" => "list",
"lmpop/" => "list",
"lolwut/" => "server",
"lpop/" => "list",
"lpos/" => "list",
"lpush/" => "list",
"lpushx/" => "list",
"lrange/" => "list",
"lrem/" => "list",
"lset/" => "list",
"ltrim/" => "list",
"memory-doctor/" => "server",
"memory-malloc-stats/" => "server",
"memory-purge/" => "server",
"memory-stats/" => "server",
"memory-usage/" => "server",
"mget/" => "string",
"migrate/" => "generic",
"module-list/" => "server",
"module-load/" => "server",
"module-loadex/" => "server",
"module-unload/" => "server",
"monitor/" => "server",
"move/" => "generic",
"mset/" => "string",
"msetnx/" => "string",
"multi/" => "transactions",
"object-encoding/" => "generic",
"object-freq/" => "generic",
"object-idletime/" => "generic",
"object-refcount/" => "generic",
"persist/" => "generic",
"pexpire/" => "generic",
"pexpireat/" => "generic",
"pexpiretime/" => "generic",
"pfadd/" => "hyperloglog",
"pfcount/" => "hyperloglog",
"pfdebug/" => "hyperloglog",
"pfmerge/" => "hyperloglog",
"pfselftest/" => "hyperloglog",
"ping/" => "connection",
"psetex/" => "string",
"psubscribe/" => "pubsub",
"psync/" => "server",
"pttl/" => "generic",
"publish/" => "pubsub",
"pubsub-channels/" => "pubsub",
"pubsub-numpat/" => "pubsub",
"pubsub-numsub/" => "pubsub",
"pubsub-shardchannels/" => "pubsub",
"pubsub-shardnumsub/" => "pubsub",
"punsubscribe/" => "pubsub",
"quit/" => "connection",
"randomkey/" => "generic",
"readonly/" => "cluster",
"readwrite/" => "cluster",
"rename/" => "generic",
"renamenx/" => "generic",
"replconf/" => "server",
"replicaof/" => "server",
"reset/" => "connection",
"restore/" => "generic",
"restore-asking/" => "server",
"role/" => "server",
"rpop/" => "list",
"rpoplpush/" => "list",
"rpush/" => "list",
"rpushx/" => "list",
"sadd/" => "set",
"save/" => "server",
"scan/" => "generic",
"scard/" => "set",
"script-debug/" => "scripting",
"script-exists/" => "scripting",
"script-flush/" => "scripting",
"script-kill/" => "scripting",
"script-load/" => "scripting",
"sdiff/" => "set",
"sdiffstore/" => "set",
"select/" => "connection",
"set/" => "string",
"setbit/" => "bitmap",
"setex/" => "string",
"setnx/" => "string",
"setrange/" => "string",
"shutdown/" => "server",
"sinter/" => "set",
"sintercard/" => "set",
"sinterstore/" => "set",
"sismember/" => "set",
"slaveof/" => "server",
"slowlog-get/" => "server",
"slowlog-len/" => "server",
"slowlog-reset/" => "server",
"smembers/" => "set",
"smismember/" => "set",
"smove/" => "set",
"sort/" => "generic",
"sort_ro/" => "generic",
"spop/" => "set",
"spublish/" => "pubsub",
"srandmember/" => "set",
"srem/" => "set",
"sscan/" => "set",
"ssubscribe/" => "pubsub",
"strlen/" => "string",
"subscribe/" => "pubsub",
"substr/" => "string",
"sunion/" => "set",
"sunionstore/" => "set",
"sunsubscribe/" => "pubsub",
"swapdb/" => "server",
"sync/" => "server",
"tdigest.add/" => "tdigest",
"tdigest.byrank/" => "tdigest",
"tdigest.byrevrank/" => "tdigest",
"tdigest.cdf/" => "tdigest",
"tdigest.create/" => "tdigest",
"tdigest.info/" => "tdigest",
"tdigest.max/" => "tdigest",
"tdigest.merge/" => "tdigest",
"tdigest.min/" => "tdigest",
"tdigest.quantile/" => "tdigest",
"tdigest.rank/" => "tdigest",
"tdigest.reset/" => "tdigest",
"tdigest.revrank/" => "tdigest",
"tdigest.trimmed_mean/" => "tdigest",
"time/" => "server",
"topk.add/" => "topk",
"topk.count/" => "topk",
"topk.incrby/" => "topk",
"topk.info/" => "topk",
"topk.list/" => "topk",
"topk.query/" => "topk",
"topk.reserve/" => "topk",
"touch/" => "generic",
"ts.add/" => "timeseries",
"ts.alter/" => "timeseries",
"ts.create/" => "timeseries",
"ts.createrule/" => "timeseries",
"ts.decrby/" => "timeseries",
"ts.del/" => "timeseries",
"ts.deleterule/" => "timeseries",
"ts.get/" => "timeseries",
"ts.incrby/" => "timeseries",
"ts.info/" => "timeseries",
"ts.madd/" => "timeseries",
"ts.mget/" => "timeseries",
"ts.mrange/" => "timeseries",
"ts.mrevrange/" => "timeseries",
"ts.queryindex/" => "timeseries",
"ts.range/" => "timeseries",
"ts.revrange/" => "timeseries",
"ttl/" => "generic",
"type/" => "generic",
"unlink/" => "generic",
"unsubscribe/" => "pubsub",
"unwatch/" => "transactions",
"wait/" => "generic",
"watch/" => "transactions",
"xack/" => "stream",
"xadd/" => "stream",
"xautoclaim/" => "stream",
"xclaim/" => "stream",
"xdel/" => "stream",
"xgroup-create/" => "stream",
"xgroup-createconsumer/" => "stream",
"xgroup-delconsumer/" => "stream",
"xgroup-destroy/" => "stream",
"xgroup-setid/" => "stream",
"xinfo-consumers/" => "stream",
"xinfo-groups/" => "stream",
"xinfo-stream/" => "stream",
"xlen/" => "stream",
"xpending/" => "stream",
"xrange/" => "stream",
"xread/" => "stream",
"xreadgroup/" => "stream",
"xrevrange/" => "stream",
"xsetid/" => "stream",
"xtrim/" => "stream",
"zadd/" => "sorted-set",
"zcard/" => "sorted-set",
"zcount/" => "sorted-set",
"zdiff/" => "sorted-set",
"zdiffstore/" => "sorted-set",
"zincrby/" => "sorted-set",
"zinter/" => "sorted-set",
"zintercard/" => "sorted-set",
"zinterstore/" => "sorted-set",
"zlexcount/" => "sorted-set",
"zmpop/" => "sorted-set",
"zmscore/" => "sorted-set",
"zpopmax/" => "sorted-set",
"zpopmin/" => "sorted-set",
"zrandmember/" => "sorted-set",
"zrange/" => "sorted-set",
"zrangebylex/" => "sorted-set",
"zrangebyscore/" => "sorted-set",
"zrangestore/" => "sorted-set",
"zrank/" => "sorted-set",
"zrem/" => "sorted-set",
"zremrangebylex/" => "sorted-set",
"zremrangebyrank/" => "sorted-set",
"zremrangebyscore/" => "sorted-set",
"zrevrange/" => "sorted-set",
"zrevrangebylex/" => "sorted-set",
"zrevrangebyscore/" => "sorted-set",
"zrevrank/" => "sorted-set",
"zscan/" => "sorted-set",
"zscore/" => "sorted-set",
"zunion/" => "sorted-set",
"zunionstore/" => "sorted-set"
}
SLUG_NAMES = {
"bitmap" => "Core: Bitmap",
"cluster" => "Core: Cluster management",
"connection" => "Core: Connection management",
"generic" => "Core: Generic",
"geo" => "Core: Geospatial indices",
"hash" => "Core: Hash",
"hyperloglog" => "Core: HyperLogLog",
"list" => "Core: List",
"pubsub" => "Core: Pub/Sub",
"scripting" => "Core: Scripting and Functions",
"server" => "Core: Server managment",
"set" => "Core: Set",
"sorted-set:" => "Core: Sorted Set",
"stream" => "Core: Stream",
"string" => "Core: String",
"transactions" => "Core: Transactions",
"bf" => "Stack: Bloom Filter",
"cf" => "Stack: Cuckoo Filter",
"cms" => "Stack: Count-min Sketch",
"graph" => "Stack: Graph",
"json" => "Stack: JSON",
"search" => "Stack: Search",
"suggestion" => "Stack: Auto-Suggest",
"tdigest" => "Stack: T-Digest",
"timeseries" => "Stack: Time Series",
"topk" => "Stack: Top-K",
}
end
end
end

@ -61,6 +61,7 @@ module Docs
next if current_url.host == 'matplotlib.org'
next if current_url.host == 'numpy.org'
next if current_url.host == 'requests.readthedocs.io'
next if current_url.host == 'scikit-learn.org'
next unless node['id'] || node.at_css('code, .classifier')
links = []
links << node.children.last.remove while node.children.last.try(:name) == 'a'

@ -8,7 +8,7 @@ module Docs
end
def get_type
at_css('aside nav .title-text').content.strip
at_css('aside nav .is-active').content.strip
end
def additional_entries

@ -23,12 +23,23 @@ module Docs
# Remove code highlighting
css('.line-numbers-wrapper').remove
css('pre').each do |node|
node.parent.name = 'pre'
node.parent['data-language'] = node.parent['class'][/language-(\w+)/, 1]
node.parent['data-language'] = 'javascript' if node.parent['data-language'][/vue/] # unsupported by prism.js
node.parent.remove_attribute 'class'
node.parent.content = node.content.strip
if version == '3'
css('pre').each do |node|
node.parent.name = 'pre'
node.parent['data-language'] = node.parent['class'][/language-(\w+)/, 1]
node.parent['data-language'] = 'javascript' if node.parent['data-language'][/vue/] # unsupported by prism.js
node.parent.remove_attribute 'class'
node.parent.content = node.content.strip
end
else
css('pre').each do |node|
parent = node.ancestors('figure')[0]
parent.name = 'pre'
parent['data-language'] = parent['class'][/(html|js)/, 1]
parent.remove_attribute 'class'
node.css('br').each{ |br| br.replace "\n" }
parent.content = node.content.strip
end
end
css('.vue-mastery-link').remove

@ -0,0 +1,67 @@
module Docs
class Wagtail
class CleanHtmlFilter < Filter
def call
@doc = at_css('main > section', 'main')
# footer contains links like about,contact us etc which
# are not needed in documentation so removed
doc.search('footer').each do |footer|
footer.remove
end
# aside bar contains the search bar and navigation links
# which are not needed
doc.search('aside').each do |aside|
aside.remove
end
# header contains links which are not needed(see sourch code of Wagtail docs)
doc.search('header').each do |head|
head.remove
end
# nav bar contains the search bar and navigation links(older versions)
# which are not needed
doc.search('nav.wy-nav-side').each do |nav|
nav.remove
end
# removing unimportant links(older versions)
doc.search('nav.wy-nav-top').each do |nav|
nav.remove
end
# removing unimportant links from header of very old versions
doc.search('ul.wy-breadcrumbs').each do |ul|
ul.remove
end
# removing release notes
doc.search('li.toctree-l1').each do |li|
li.remove if li.to_s.include? 'Release notes'
end
# removing release notes(older versions)
doc.search('dl').each do |dl|
dl.remove
end
# removing scripts and style
css('script', 'style', 'link').remove
css('hr').remove
# 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
doc
end
end
end
end

@ -0,0 +1,15 @@
module Docs
class Wagtail
class EntriesFilter < Docs::EntriesFilter
def get_name
# removing the pilcrow sign and returning the heading
at_css('h1').content.strip.remove("\u{00b6}")
end
def get_type
object, method = *slug.split('/')
method ? object : 'Miscellaneous'
end
end
end
end

@ -83,7 +83,13 @@ module Docs
end
version do
self.release = '14.2.0'
self.release = '15.0.0'
self.base_url = 'https://angular.io/'
include Docs::Angular::Since12
end
version '14' do
self.release = '14.2.11'
self.base_url = 'https://angular.io/'
include Docs::Angular::Since12
end

@ -16,7 +16,7 @@ module Docs
options[:skip_patterns] = [/tutorial/]
self.release = '1.6.3'
self.release = '2.0.0'
self.base_url = 'https://docs.astro.build/en/'
self.initial_paths = %w(getting-started/)

@ -5,14 +5,12 @@ module Docs
home: 'hthttps://axios-http.com/',
code: 'https://github.com/axios/axios'
}
self.release = '1.1.3'
self.release = '1.2.1'
self.base_url = "https://axios-http.com/docs/"
self.initial_paths = %w(intro)
self.initial_paths = %w(index intro)
html_filters.push 'axios/entries', 'axios/clean_html'
options[:container] = 'main > .body'
# https://github.com/axios/axios-docs/blob/master/LICENSE
options[:attribution] = <<-HTML
&copy; 2020-present John Jakob "Jake" Sarjeant<br>
@ -22,5 +20,11 @@ module Docs
def get_latest_version(opts)
get_latest_github_release('axios', 'axios', opts)
end
private
def process_response?(response)
true
end
end
end

@ -17,7 +17,7 @@ module Docs
HTML
version '5' do
self.release = '5.2'
self.release = '5.3'
self.base_url = "https://getbootstrap.com/docs/#{self.release}/"
self.root_path = 'getting-started/introduction/'

@ -20,6 +20,11 @@ module Docs
Licensed under the BSD 3-clause License.
HTML
version '3.25' do
self.release = '3.25'
self.base_url = "https://cmake.org/cmake/help/v#{self.version}/"
end
version '3.24' do
self.release = '3.24'
self.base_url = "https://cmake.org/cmake/help/v#{self.version}/"

@ -2,7 +2,7 @@ module Docs
class Crystal < UrlScraper
include MultipleBaseUrls
self.type = 'crystal'
self.release = '1.6.0'
self.release = '1.7.0'
self.base_urls = [
"https://crystal-lang.org/api/#{release}/",
"https://crystal-lang.org/reference/#{release[0..2]}/",
@ -28,7 +28,7 @@ module Docs
HTML
else
<<-HTML
&copy; 2012&ndash;2022 Manas Technology Solutions.<br>
&copy; 2012&ndash;2023 Manas Technology Solutions.<br>
Licensed under the Apache License, Version 2.0.
HTML
end

@ -12,12 +12,12 @@ module Docs
options[:container] = '.markdown-body'
options[:attribution] = <<-HTML
&copy; 2010&ndash;2022 Michael Bostock<br>
&copy; 2010&ndash;2023 Michael Bostock<br>
Licensed under the BSD License.
HTML
version '7' do
self.release = '7.6.1'
self.release = '7.8.1'
self.base_url = 'https://github.com/d3/'
self.root_path = 'd3/blob/master/API.md'

@ -17,11 +17,11 @@ module Docs
options[:attribution] = <<-HTML
&copy; 2012 the Dart project authors<br>
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
Licensed under the BSD 3-Clause "New" or "Revised" License.
HTML
version '2' do
self.release = '2.17.0'
self.release = '2.18.5'
self.base_url = "https://api.dart.dev/stable/#{release}/"
end

@ -42,18 +42,27 @@ module Docs
]
options[:attribution] = <<-HTML
&copy; 2020 Yehuda Katz, Tom Dale and Ember.js contributors<br>
&copy; 2022 Yehuda Katz, Tom Dale and Ember.js contributors<br>
Licensed under the MIT License.
HTML
options[:decode_and_clean_paths] = true # handle paths like @ember/application
version '4' do
self.release = '4.9.0'
self.base_urls = %w[
https://guides.emberjs.com/v4.9.0/
https://api.emberjs.com/ember/4.9/
https://api.emberjs.com/ember-data/4.9/
]
end
version '3' do
self.release = '3.25.0'
self.release = '3.28.0'
self.base_urls = %w[
https://guides.emberjs.com/v3.25.0/
https://api.emberjs.com/ember/3.25/
https://api.emberjs.com/ember-data/3.25/
https://guides.emberjs.com/v3.28.0/
https://api.emberjs.com/ember/3.28/
https://api.emberjs.com/ember-data/3.28/
]
end

@ -36,12 +36,12 @@ module Docs
]
options[:attribution] = <<-HTML
&copy; 2010&ndash;2022 Ericsson AB<br>
&copy; 2010&ndash;2023 Ericsson AB<br>
Licensed under the Apache License, Version 2.0.
HTML
version '25' do
self.release = '25.0'
self.release = '25.2.2'
end
version '24' do

@ -16,7 +16,7 @@ module Docs
Licensed under the MIT License.
HTML
self.release = '0.15.7'
self.release = '0.17.2'
self.base_url = 'https://esbuild.github.io/'
html_filters.push 'esbuild/clean_html', 'esbuild/entries'

@ -2,7 +2,7 @@ module Docs
class Eslint < UrlScraper
self.name = 'ESLint'
self.type = 'simple'
self.release = '8.23.0'
self.release = '8.30.0'
self.base_url = 'https://eslint.org/docs/latest/'
self.root_path = 'user-guide/getting-started'
self.links = {

@ -2,7 +2,7 @@ module Docs
class Fastapi < UrlScraper
self.name = 'FastAPI'
self.type = 'fastapi'
self.release = '0.86.0'
self.release = '0.88.0'
self.base_url = 'https://fastapi.tiangolo.com/'
self.root_path = '/'
self.links = {

@ -12,10 +12,18 @@ module Docs
# https://fishshell.com/docs/current/license.html
options[:attribution] = <<-HTML
&copy; 2022 fish-shell developers<br>
&copy; 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors<br>
Licensed under the GNU General Public License, version 2.
HTML
version '3.6' do
self.release = '3.6.0'
self.base_url = "https://fishshell.com/docs/#{version}/"
options[:skip].concat %w(genindex.html relnotes.html)
html_filters.push 'sphinx/clean_html', 'fish/clean_html_sphinx', 'fish/entries_sphinx'
end
version '3.5' do
self.release = '3.5.0'
self.base_url = "https://fishshell.com/docs/#{version}/"

@ -1,7 +1,7 @@
module Docs
class Git < UrlScraper
self.type = 'git'
self.release = '2.38.0'
self.release = '2.39.0'
self.base_url = 'https://git-scm.com/docs'
self.initial_paths = %w(/git.html)
self.links = {

@ -1,7 +1,7 @@
module Docs
class Go < UrlScraper
self.type = 'go'
self.release = '1.19.0'
self.release = '1.20.0'
self.base_url = 'https://golang.org/pkg/'
self.links = {
home: 'https://golang.org/',

@ -20,6 +20,11 @@ module Docs
Licensed under the GNU General Public License version 2.
HTML
version '2.7' do
self.release = '2.7.0'
self.base_url = "https://docs.haproxy.org/#{self.version}/"
end
version '2.6' do
self.release = '2.6.5'
self.base_url = "https://docs.haproxy.org/#{self.version}/"

@ -2,7 +2,7 @@ module Docs
class Http < Mdn
include MultipleBaseUrls
# release = '2022-09-21'
# release = '2022-11-17'
self.name = 'HTTP'
self.base_urls = [
'https://developer.mozilla.org/en-US/docs/Web/HTTP',
@ -19,7 +19,7 @@ module Docs
filter.current_url.host == 'datatracker.ietf.org' ? '.content' : Docs::Mdn.options[:container]
end
options[:skip_links] = ->(filter) do
filter.current_url.host == 'datatracker.ietf.org' ? true : false
filter.current_url.host == 'datatracker.ietf.org'
end
options[:replace_paths] = { '/Access_control_CORS' => '/CORS' }
options[:fix_urls] = ->(url) do

@ -3,7 +3,7 @@ module Docs
self.name = 'i3'
self.type = 'simple'
self.slug = 'i3'
self.release = '4.21'
self.release = '4.22'
self.base_url = 'https://i3wm.org/docs/userguide.html'
self.links = {
home: 'https://i3wm.org/',

@ -3,7 +3,7 @@ module Docs
self.name = 'Immutable.js'
self.slug = 'immutable'
self.type = 'simple'
self.release = '4.1.0'
self.release = '4.2.1'
self.base_url = "https://immutable-js.com/docs/v#{release}/"
self.links = {
home: 'https://immutable-js.com/',

@ -12,8 +12,8 @@ module Docs
HTML
version '1.8' do
self.release = '1.8.0'
self.base_url = "https://docs.julialang.org/en/v#{release}/"
self.release = '1.8.5'
self.base_url = "https://docs.julialang.org/en/v#{version}/"
self.type = 'julia'
html_filters.push 'julia/entries', 'julia/clean_html'

@ -27,10 +27,15 @@ module Docs
end
options[:attribution] = <<-HTML
&copy; 2010&ndash;2022 JetBrains s.r.o. and Kotlin Programming Language contributors<br>
&copy; 2010&ndash;2023 JetBrains s.r.o. and Kotlin Programming Language contributors<br>
Licensed under the Apache License, Version 2.0.
HTML
version '1.8' do
self.release = '1.8.0'
self.headers = { 'User-Agent' => 'devdocs.io' , 'Cookie' => 'x-ab-test-spring-boot-learning-path=0; userToken=r33dgpe8x3q5vswekg16a' }
end
version '1.7' do
self.release = '1.7.20'
end

@ -7,7 +7,6 @@ module Docs
home: 'https://kubernetes.io/docs/reference/kubectl/',
code: 'https://github.com/kubernetes/kubernetes'
}
self.release = "1.23"
self.base_url = "https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
html_filters.push 'kubectl/entries', 'kubectl/clean_html'
@ -21,7 +20,7 @@ module Docs
# latest version has a special URL that does not include the version identifier
version do
self.release = "1.25"
self.release = "1.26"
self.base_url = "https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
end

@ -20,7 +20,7 @@ module Docs
# latest version has a special URL that does not include the version identifier
version do
self.release = "1.25"
self.release = "1.26"
self.base_url = "https://kubernetes.io/docs/reference/kubernetes-api/"
end

@ -1,6 +1,6 @@
module Docs
class Css < Mdn
# release = '2022-09-06'
# release = '2023-01-06'
self.name = 'CSS'
self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/CSS'
self.root_path = '/Reference'

@ -1,7 +1,7 @@
module Docs
class Dom < Mdn
# release = '2022-04-27'
# release = '2023-01-06'
self.name = 'Web APIs'
self.slug = 'dom'
self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/API'

@ -2,7 +2,7 @@ module Docs
class Html < Mdn
prepend FixInternalUrlsBehavior
# release = '2022-09-06'
# release = '2023-01-06'
self.name = 'HTML'
self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/HTML'

@ -3,7 +3,7 @@ module Docs
prepend FixInternalUrlsBehavior
prepend FixRedirectionsBehavior
# release = '2022-09-06'
# release = '2023-01-06'
self.name = 'JavaScript'
self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference'

@ -13,7 +13,7 @@ module Docs
}
options[:attribution] = <<-HTML
&copy; 2005&ndash;2022 MDN contributors.<br>
&copy; 2005&ndash;2023 MDN contributors.<br>
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
HTML

@ -3,8 +3,6 @@ module Docs
self.name = 'OCaml'
self.type = 'ocaml'
self.root_path = 'index.html'
self.release = '4.14'
self.base_url = "https://v2.ocaml.org/releases/#{self.release}/htmlman/"
self.links = {
home: 'https://ocaml.org/',
code: 'https://github.com/ocaml/ocaml'
@ -26,6 +24,16 @@ module Docs
&copy; 1995-2022 INRIA.
HTML
version '' do
self.release = '5.0'
self.base_url = "https://v2.ocaml.org/releases/#{self.release}/htmlman/"
end
version '4.14' do
self.release = '4.14'
self.base_url = "https://v2.ocaml.org/releases/#{self.release}/htmlman/"
end
def get_latest_version(opts)
get_latest_github_release('ocaml', 'ocaml', opts)
end

@ -5,7 +5,7 @@ module Docs
self.name = 'PHP'
self.type = 'php'
self.release = '8.1.5'
self.release = '8.2'
self.base_url = 'https://www.php.net/manual/en/'
self.root_path = 'index.html'
self.initial_paths = %w(
@ -62,7 +62,7 @@ module Docs
options[:skip_patterns] = [/mysqlnd/, /xdevapi/i]
options[:attribution] = <<-HTML
&copy; 1997&ndash;2021 The PHP Documentation Group<br>
&copy; 1997&ndash;2022 The PHP Documentation Group<br>
Licensed under the Creative Commons Attribution License v3.0 or later.
HTML

@ -9,7 +9,7 @@ module Docs
self.initial_paths = [
"https://pointclouds.org/documentation/hierarchy.html"
]
self.release = '1.12.1'
self.release = '1.13.0'
self.links = {
home: 'https://pointclouds.org/',

@ -2,7 +2,7 @@ module Docs
class Prettier < UrlScraper
self.name = 'Prettier'
self.type = 'simple'
self.release = '2.7.1'
self.release = '2.8.0'
self.base_url = 'https://prettier.io/docs/en/'
self.links = {
home: 'https://prettier.io/',

@ -17,19 +17,19 @@ module Docs
library/sunau.html)
options[:attribution] = <<-HTML
&copy; 2001&ndash;2022 Python Software Foundation<br>
&copy; 2001&ndash;2023 Python Software Foundation<br>
Licensed under the PSF License.
HTML
version '3.11' do
self.release = '3.11.0'
self.release = '3.11.1'
self.base_url = "https://docs.python.org/#{self.version}/"
html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'
end
version '3.10' do
self.release = '3.10.8'
self.release = '3.10.9'
self.base_url = "https://docs.python.org/#{self.version}/"
html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'

@ -0,0 +1,39 @@
# frozen_string_literal: true
module Docs
class Qunit < UrlScraper
self.name = 'QUnit'
self.type = 'qunit'
self.release = '2.19.3'
self.base_url = 'https://api.qunitjs.com/'
self.root_path = '/'
self.links = {
home: 'https://qunitjs.com/',
code: 'https://github.com/qunitjs/qunit'
}
html_filters.push 'qunit/entries', 'qunit/clean_html'
options[:trailing_slash] = false
options[:container] = '.main'
options[:skip_patterns] = [
/deprecated/,
/^QUnit$/,
/^assert$/,
/^callbacks$/,
/^async$/,
/^config$/,
/^extension$/,
]
options[:attribution] = <<-HTML
&copy; OpenJS Foundation and contributors.<br>
Licensed under the MIT license.
HTML
def get_latest_version(opts)
get_npm_version('qunit', opts)
end
end
end

@ -8,10 +8,11 @@ module Docs
self.name = 'Ruby / Minitest'
self.slug = 'minitest'
self.release = '5.11.3'
self.release = '5.17.0'
self.links = {
code: 'https://github.com/seattlerb/minitest'
code: 'https://github.com/minitest/minitest'
}
self.base_url = 'https://docs.seattlerb.org/minitest/'
html_filters.replace 'rdoc/entries', 'minitest/entries'

@ -76,15 +76,15 @@ module Docs
end
version '7.0' do
self.release = '7.0.0'
self.release = '7.0.4'
end
version '6.1' do
self.release = '6.1.4'
self.release = '6.1.7'
end
version '6.0' do
self.release = '6.0.4'
self.release = '6.0.6'
end
version '5.2' do

@ -69,8 +69,12 @@ module Docs
Licensed under their own licenses.
HTML
version '3.2' do
self.release = '3.2.0'
end
version '3.1' do
self.release = '3.1.1'
self.release = '3.1.3'
end
version '3' do

@ -1,7 +1,7 @@
module Docs
class Redis < UrlScraper
self.type = 'redis'
self.release = '6.2.1'
self.release = '7.0.8'
self.base_url = 'https://redis.io/commands'
self.links = {
home: 'https://redis.io/',
@ -10,13 +10,13 @@ module Docs
html_filters.push 'redis/entries', 'redis/clean_html', 'title'
options[:container] = ->(filter) { filter.root_page? ? '#commands' : '.text' }
options[:container] = ->(filter) { filter.root_page? ? '#commands-grid' : 'section' }
options[:title] = false
options[:root_title] = 'Redis'
options[:follow_links] = ->(filter) { filter.root_page? }
options[:attribution] = <<-HTML
&copy; 2009&ndash;2020 Salvatore Sanfilippo<br>
&copy; 2009&ndash;2022 Salvatore Sanfilippo<br>
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
HTML
@ -25,5 +25,13 @@ module Docs
body = body.lines[1..-1].join
body.scan(/Redis ([0-9.]+)/)[0][0]
end
private
def parse(response)
response.body.gsub! '<form', '<pre'
response.body.gsub! '</form', '</pre'
super
end
end
end

@ -14,7 +14,7 @@ module Docs
options[:container] = '.content .container'
options[:attribution] = <<-HTML
&copy; 2010&ndash;2021 Christian Johansen<br>
&copy; 2010&ndash;2022 Christian Johansen<br>
Licensed under the BSD License.
HTML
@ -27,59 +27,29 @@ module Docs
url
end
version '11' do
self.release = '11.1.2'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '10' do
self.release = '10.0.1'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '9' do
self.release = '9.2.2'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '8' do
self.release = '8.1.1'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '7' do
self.release = '7.5.0'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '6' do
self.release = '6.3.5'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '5' do
self.release = '5.1.0'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '4' do
self.release = '4.5.0'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '3' do
self.release = '3.3.0'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
version '2' do
self.release = '2.4.1'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
end
RELEASE_MAPPINGS = {
'15' => '15.0.1',
'14' => '14.0.2',
'13' => '13.0.1',
'12' => '12.0.1',
'11' => '11.1.2',
'10' => '10.0.1',
'9' => '9.2.2.',
'8' => '8.1.1',
'7' => '7.5.0',
'6' => '6.3.5',
'5' => '5.1.0',
'4' => '4.5.0',
'3' => '3.3.0',
'2' => '2.4.1',
'1' => '1.17.7'
}
version '1' do
self.release = '1.17.7'
self.base_url = "https://sinonjs.org/releases/v#{release}/"
RELEASE_MAPPINGS.each do |ver, release|
version ver do
self.release = release
self.base_url = "https://sinonjs.org/releases/v#{ver}/"
end
end
def get_latest_version(opts)

@ -2,7 +2,7 @@ module Docs
class Sqlite < FileScraper
self.name = 'SQLite'
self.type = 'sqlite'
self.release = '3.39.2'
self.release = '3.40.0'
self.base_url = 'https://sqlite.org/'
self.root_path = 'docs.html'
self.initial_paths = %w(keyword_index.html)

@ -1,13 +1,20 @@
require 'yajl/json_gem'
module Docs
class SupportTables < Doc
class SupportTables < Scraper
include Instrumentable
self.name = 'Support Tables'
self.slug = 'browser_support_tables'
self.type = 'support_tables'
self.release = '1.0.30001412'
self.release = '1.0.30001442'
self.base_url = 'https://github.com/Fyrd/caniuse/raw/main/'
# https://github.com/Fyrd/caniuse/blob/main/LICENSE
options[:attribution] = <<-HTML
&copy; 2020 Alexis Deveria<br>
Licensed under the Creative Commons Attribution 4.0 International License.
HTML
def build_pages
url = 'https://github.com/Fyrd/caniuse/raw/main/data.json'
@ -29,7 +36,7 @@ module Docs
index_page = {
path: 'index',
store_path: 'index.html',
output: ERB.new(INDEX_PAGE_ERB).result(binding),
output: ERB.new(INDEX_PAGE_ERB, trim_mode:">").result(binding),
entries: [Entry.new(nil, 'index', nil)]
}
@ -49,7 +56,7 @@ module Docs
page = {
path: feature_id,
store_path: "#{feature_id}.html",
output: ERB.new(PAGE_ERB).result(binding),
output: ERB.new(PAGE_ERB, trim_mode:">").result(binding).split("\n").map(&:strip).join("\n"),
entries: [Entry.new(name, feature_id, type)]
}

@ -17,7 +17,7 @@ module Docs
options[:skip] = %w(team.html plugins/)
self.release = '3.53.0'
self.release = '3.55.0'
self.base_url = 'https://svelte.dev/docs'
html_filters.push 'svelte/entries', 'svelte/clean_html'

@ -4,7 +4,7 @@ module Docs
self.name = 'TypeScript'
self.type = 'typescript'
self.release = '4.8.2'
self.release = '4.9.3'
self.base_urls = [
'https://www.typescriptlang.org/docs/handbook/',
'https://www.typescriptlang.org/'

@ -17,11 +17,19 @@ module Docs
options[:skip] = %w(team.html plugins/)
self.release = '3.2.2'
self.base_url = 'https://vitejs.dev/'
self.initial_paths = %w(guide/)
html_filters.push 'vite/entries', 'vite/clean_html'
version do
self.release = '4.1.1'
self.base_url = 'https://vitejs.dev/'
end
version '3' do
self.release = '3.2.5'
self.base_url = 'https://v3.vitejs.dev/'
end
def get_latest_version(opts)
get_npm_version('vite', opts)
end

@ -16,7 +16,7 @@ module Docs
Licensed under the MIT License.
HTML
self.release = '0.25.1'
self.release = '0.27.1'
self.base_url = 'https://vitest.dev/'
self.initial_paths = %w(guide/)
html_filters.push 'vitest/entries', 'vite/clean_html'

@ -1,6 +1,6 @@
module Docs
class Vue < UrlScraper
self.name = 'Vue.js'
self.name = 'Vue'
self.slug = 'vue'
self.type = 'vue'
self.links = {
@ -19,16 +19,15 @@ module Docs
HTML
version '3' do
self.release = '3.2.41'
self.release = '3.2.47'
self.base_url = 'https://vuejs.org/'
self.initial_paths = %w(guide/introduction.html)
html_filters.push 'vue/entries_v3', 'vue/clean_html'
end
version '2' do
self.release = '2.6.12'
self.base_url = 'https://v2.vuejs.org/'
self.root_path = 'guide/index.html'
self.release = '2.7.14'
self.base_url = 'https://v2.vuejs.org/v2/'
self.initial_paths = %w(api/)
html_filters.push 'vue/entries', 'vue/clean_html'
end
@ -36,7 +35,6 @@ module Docs
version '1' do
self.release = '1.0.28'
self.base_url = 'https://v1.vuejs.org'
self.root_path = '/guide/index.html'
self.initial_paths = %w(/api/index.html)
html_filters.push 'vue/entries', 'vue/clean_html'
end

@ -22,13 +22,13 @@ module Docs
Licensed under the MIT License.
HTML
self.release = '9.4.0'
self.release = '9.10.0'
self.base_url = 'https://vueuse.org/'
self.initial_paths = %w(functions.html)
html_filters.push 'vueuse/entries', 'vite/clean_html', 'vueuse/clean_html'
def get_latest_version(opts)
get_npm_version('vueuse', opts)
get_npm_version('@vueuse/core', opts)
end
end
end

@ -0,0 +1,48 @@
module Docs
class Wagtail < UrlScraper
self.name = 'Wagtail'
self.type = 'sphinx'
self.root_path = 'index.html'
self.links = {
home: 'https://wagtail.org/',
code: 'https://github.com/wagtail/wagtail'
}
# adding filters from lib/docs/filters/wagtail
html_filters.push 'wagtail/entries', 'sphinx/clean_html', 'wagtail/clean_html'
# attributions are seen at the bottom of every page(copyright and license etc. details)
options[:attribution] = <<-HTML
&copy; 2014-present Torchbox Ltd and individual contributors.<br>
All rights are reserved.<br>
Licensed under the BSD License.
HTML
# no one wants to see docs about search or release notes
options[:skip] = %w[search.html]
options[:skip_patterns] = [
%r{\Areleases/}
]
# updating release and base_url for different versions
version do
self.release = '4.1.1'
self.base_url = 'https://docs.wagtail.org/en/stable/'
end
version '3' do
self.release = '3.0.3'
self.base_url = "https://docs.wagtail.org/en/v#{release}/"
end
version '2' do
self.release = '2.16.3'
self.base_url = "https://docs.wagtail.org/en/v#{release}/"
end
# this method will fetch the latest version of wagtail
def get_latest_version(opts)
get_latest_github_release('wagtail', 'wagtail', opts)
end
end
end

@ -36,7 +36,7 @@ module Docs
HTML
version '5' do
self.release = '5.72.0'
self.release = '5.75.0'
self.base_url = 'https://webpack.js.org/'
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1 @@
https://raw.githubusercontent.com/qunitjs/qunitjs.com/main/img/logo.svg

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1 @@
https://github.com/wagtail/wagtail/blob/main/docs/logo.png

@ -3,8 +3,9 @@ require_relative '../../../../lib/docs'
class ManifestTest < MiniTest::Spec
let :doc do
doc = Class.new Docs::Doc
doc = Class.new Docs::Scraper
doc.name = 'TestDoc'
doc.options[:attribution] = 'foo'
doc
end
@ -57,13 +58,13 @@ class ManifestTest < MiniTest::Spec
context "when the doc has a meta file" do
before do
stub(store).exist?(meta_path) { true }
stub(store).read(meta_path) { '{"name":"Test"}' }
stub(store).read(meta_path) { '{"name":"Test", "db_size": 776533}' }
end
it "includes the doc's meta representation" do
json = manifest.as_json
assert_equal 1, json.length
assert_equal 'Test', json[0]['name']
assert_equal "{\"name\"=>\"Test\", \"db_size\"=>776533, :attribution=>\"foo\"}", json[0].to_s
end
end

Loading…
Cancel
Save