Yton
Unified · Split
| @@ -13,7 +13,7 @@ jobs: · 12 unmodified lines | |||
| 13 | steps: | 13 | steps: |
| 14 | - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 | 14 | - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 |
| 15 | - name: Set up Ruby | 15 | - name: Set up Ruby |
| 16 | uses: ruby/setup-ruby@360dc864d5da99d54fcb8e9148c14a84b90d3e88 # v1.165.1 | 16 | uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0 |
| 17 | with: | 17 | with: |
| 18 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically | 18 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically |
| 19 | - name: Run tests | 19 | - name: Run tests |
| @@ -11,7 +11,7 @@ jobs: · 10 unmodified lines | |||
| 11 | steps: | 11 | steps: |
| 12 | - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 | 12 | - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0 |
| 13 | - name: Set up Ruby | 13 | - name: Set up Ruby |
| 14 | uses: ruby/setup-ruby@360dc864d5da99d54fcb8e9148c14a84b90d3e88 # v1.165.1 | 14 | uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0 |
| 15 | with: | 15 | with: |
| 16 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically | 16 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically |
| 17 | - name: Generate report | 17 | - name: Generate report |
| @@ -11,7 +11,7 @@ jobs: · 10 unmodified lines | |||
| 11 | steps: | 11 | steps: |
| 12 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | 12 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| 13 | - name: Set up Ruby | 13 | - name: Set up Ruby |
| 14 | uses: ruby/setup-ruby@360dc864d5da99d54fcb8e9148c14a84b90d3e88 # v1.165.1 | 14 | uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0 |
| 15 | with: | 15 | with: |
| 16 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically | 16 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically |
| 17 | - name: Run tests | 17 | - name: Run tests |
| @@ -1,7 +1,7 @@ | |||
| 1 | GEM | 1 | GEM |
| 2 | remote: https://rubygems.org/ | 2 | remote: https://rubygems.org/ |
| 3 | specs: | 3 | specs: |
| 4 | activesupport (7.1.2) | 4 | activesupport (7.1.3) |
| 5 | base64 | 5 | base64 |
| 6 | bigdecimal | 6 | bigdecimal |
| 7 | concurrent-ruby (~> 1.0, >= 1.0.2) | 7 | concurrent-ruby (~> 1.0, >= 1.0.2) |
| @@ -16,12 +16,12 @@ GEM · 8 unmodified lines | |||
| 16 | erubi (>= 1.0.0) | 16 | erubi (>= 1.0.0) |
| 17 | rack (>= 0.9.0) | 17 | rack (>= 0.9.0) |
| 18 | rouge (>= 1.0.0) | 18 | rouge (>= 1.0.0) |
| 19 | bigdecimal (3.1.5) | 19 | bigdecimal (3.1.6) |
| 20 | browser (5.3.1) | 20 | browser (5.3.1) |
| 21 | byebug (11.1.3) | 21 | byebug (11.1.3) |
| 22 | chunky_png (1.4.0) | 22 | chunky_png (1.4.0) |
| 23 | coderay (1.1.3) | 23 | coderay (1.1.3) |
| 24 | concurrent-ruby (1.2.2) | 24 | concurrent-ruby (1.2.3) |
| 25 | connection_pool (2.4.1) | 25 | connection_pool (2.4.1) |
| 26 | daemons (1.4.1) | 26 | daemons (1.4.1) |
| 27 | drb (2.2.0) | 27 | drb (2.2.0) |
| @@ -30,7 +30,7 @@ GEM · 2 unmodified lines | |||
| 30 | ethon (0.16.0) | 30 | ethon (0.16.0) |
| 31 | ffi (>= 1.15.0) | 31 | ffi (>= 1.15.0) |
| 32 | eventmachine (1.2.7) | 32 | eventmachine (1.2.7) |
| 33 | execjs (2.8.1) | 33 | execjs (2.9.1) |
| 34 | exifr (1.4.0) | 34 | exifr (1.4.0) |
| 35 | ffi (1.15.5) | 35 | ffi (1.15.5) |
| 36 | fspath (3.1.2) | 36 | fspath (3.1.2) |
| @@ -53,7 +53,7 @@ GEM · 16 unmodified lines | |||
| 53 | in_threads (1.6.0) | 53 | in_threads (1.6.0) |
| 54 | method_source (1.0.0) | 54 | method_source (1.0.0) |
| 55 | mini_portile2 (2.8.5) | 55 | mini_portile2 (2.8.5) |
| 56 | minitest (5.21.1) | 56 | minitest (5.22.2) |
| 57 | multi_json (1.15.0) | 57 | multi_json (1.15.0) |
| 58 | mustermann (3.0.0) | 58 | mustermann (3.0.0) |
| 59 | ruby2_keywords (~> 0.0.1) | 59 | ruby2_keywords (~> 0.0.1) |
| @@ -62,7 +62,7 @@ GEM · 2 unmodified lines | |||
| 62 | net-ssh (>= 5.0.0, < 8.0.0) | 62 | net-ssh (>= 5.0.0, < 8.0.0) |
| 63 | net-ssh (7.0.1) | 63 | net-ssh (7.0.1) |
| 64 | newrelic_rpm (8.16.0) | 64 | newrelic_rpm (8.16.0) |
| 65 | nokogiri (1.16.0) | 65 | nokogiri (1.16.2) |
| 66 | mini_portile2 (~> 2.8.2) | 66 | mini_portile2 (~> 2.8.2) |
| 67 | racc (~> 1.4) | 67 | racc (~> 1.4) |
| 68 | options (2.3.2) | 68 | options (2.3.2) |
| @@ -125,7 +125,7 @@ GEM · 56 unmodified lines | |||
| 125 | strings-ansi (0.2.0) | 125 | strings-ansi (0.2.0) |
| 126 | terminal-table (3.0.2) | 126 | terminal-table (3.0.2) |
| 127 | unicode-display_width (>= 1.1.1, < 3) | 127 | unicode-display_width (>= 1.1.1, < 3) |
| 128 | terser (1.1.20) | 128 | terser (1.2.0) |
| 129 | execjs (>= 0.3.0, < 3) | 129 | execjs (>= 0.3.0, < 3) |
| 130 | thin (1.8.2) | 130 | thin (1.8.2) |
| 131 | daemons (~> 1.0, >= 1.0.9) | 131 | daemons (~> 1.0, >= 1.0.9) |
| @@ -176,6 +176,7 @@ Made something cool? Feel free to open a PR to add a new row to this table! You · 175 unmodified lines | |||
| 176 | | [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin |  |  | | 176 | | [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin |  |  | |
| 177 | | [luckasRanarison/nvim-devdocs](https://github.com/luckasRanarison/nvim-devdocs) | Neovim plugin |  |  | | 177 | | [luckasRanarison/nvim-devdocs](https://github.com/luckasRanarison/nvim-devdocs) | Neovim plugin |  |  | |
| 178 | | [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer |  |  | | 178 | | [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer |  |  | |
| 179 | | [Raycast Devdocs](https://www.raycast.com/pomdtr/devdocs) | Raycast extension | Unavailable | Unavailable | | ||
| 179 | 180 | ||
| 180 | ## Copyright / License | 181 | ## Copyright / License |
| 181 | 182 | ||
| @@ -1,8 +1,16 @@ | |||
| 1 | [ | 1 | [ |
| 2 | [ | 2 | [ |
| 3 | "2024-01-24", | 3 | "2024-02-20", |
| 4 | "New documentation: <a href=\"/nextjs/\">Nextjs</a>" | 4 | "New documentation: <a href=\"/nextjs/\">Nextjs</a>" |
| 5 | ], | 5 | ], |
| 6 | [ | ||
| 7 | "2024-01-24", | ||
| 8 | "New documentation: <a href=\"/playwright/\">Playwright</a>" | ||
| 9 | ], | ||
| 10 | [ | ||
| 11 | "2024-01-20", | ||
| 12 | "New documentation: <a href=\"/htmx/\">htmx</a>" | ||
| 13 | ], | ||
| 6 | [ | 14 | [ |
| 7 | "2024-01-12", | 15 | "2024-01-12", |
| 8 | "New documentation: <a href=\"/hammerspoon/\">Hammerspoon</a>" | 16 | "New documentation: <a href=\"/hammerspoon/\">Hammerspoon</a>" |
| @@ -167,8 +167,8 @@ download it, extract it with `dpkg -x $PACKAGE ./` and move `./usr/share/doc/ope · 166 unmodified lines | |||
| 167 | to `path/to/devdocs/docs/openjdk~$VERSION` | 167 | to `path/to/devdocs/docs/openjdk~$VERSION` |
| 168 | 168 | ||
| 169 | ```sh | 169 | ```sh |
| 170 | curl -O http://ftp.at.debian.org/debian/pool/main/o/openjdk-21/openjdk-21-doc_21.0.1+12-3_all.deb | 170 | curl -O http://ftp.at.debian.org/debian/pool/main/o/openjdk-21/openjdk-21-doc_21.0.2+13-2_all.deb |
| 171 | tar xf openjdk-21-doc_21.0.1+12-3_all.deb | 171 | tar xf openjdk-21-doc_21.0.2+13-2_all.deb |
| 172 | tar xf data.tar.xz | 172 | tar xf data.tar.xz |
| 173 | mv ./usr/share/doc/openjdk-21-jre-headless/api/ docs/openjdk~$VERSION | 173 | mv ./usr/share/doc/openjdk-21-jre-headless/api/ docs/openjdk~$VERSION |
| 174 | ``` | 174 | ``` |
| @@ -0,0 +1,13 @@ | |||
| 1 | module Docs | ||
| 2 | class Htmx | ||
| 3 | class CleanHtmlFilter < Filter | ||
| 4 | def call | ||
| 5 | css('.zola-anchor').remove | ||
| 6 | doc.prepend_child("<h1>htmx</h1>") if root_page? | ||
| 7 | css('div:contains("NEWS:")').remove | ||
| 8 | css('h2:contains("sponsors"), #sponsor-table').remove | ||
| 9 | doc | ||
| 10 | end | ||
| 11 | end | ||
| 12 | end | ||
| 13 | end | ||
| @@ -0,0 +1,31 @@ | |||
| 1 | module Docs | ||
| 2 | class Htmx | ||
| 3 | class EntriesFilter < Docs::EntriesFilter | ||
| 4 | def get_name | ||
| 5 | at_css('h1').content | ||
| 6 | end | ||
| 7 | |||
| 8 | def get_type | ||
| 9 | if slug.start_with?('attributes') | ||
| 10 | 'Attributes' | ||
| 11 | elsif slug.start_with?('headers') | ||
| 12 | 'Headers' | ||
| 13 | elsif slug.start_with?('events') | ||
| 14 | 'Events' | ||
| 15 | elsif slug.start_with?('extensions') | ||
| 16 | 'Extensions' | ||
| 17 | else | ||
| 18 | get_name | ||
| 19 | end | ||
| 20 | end | ||
| 21 | |||
| 22 | def additional_entries | ||
| 23 | css('h3[id]:has(code)').each_with_object [] do |node, entries| | ||
| 24 | name = node.at_css('code').content | ||
| 25 | id = node['id'] | ||
| 26 | entries << [name, id] | ||
| 27 | end | ||
| 28 | end | ||
| 29 | end | ||
| 30 | end | ||
| 31 | end | ||
| @@ -3,9 +3,10 @@ module Docs · 2 unmodified lines | |||
| 3 | class CleanHtmlFilter < Filter | 3 | class CleanHtmlFilter < Filter |
| 4 | def call | 4 | def call |
| 5 | css('.zola-anchor').remove | 5 | css('.zola-anchor').remove |
| 6 | doc.prepend_child("<h1>NextJS</h1>") if root_page? | 6 | doc.prepend_child("<h1>NextJS2</h1>") if root_page? |
| 7 | css('div:contains("NEWS:")').remove | 7 | css('div:contains("NEWS:")').remove |
| 8 | css('h2:contains("sponsors"), #sponsor-table').remove | 8 | css('h2:contains("sponsors"), #sponsor-table').remove |
| 9 | css('div.sticky').remove #remove the floating menu | ||
| 9 | doc | 10 | doc |
| 10 | end | 11 | end |
| 11 | end | 12 | end |
| @@ -1,13 +1,29 @@ | |||
| 1 | module Docs | 1 | module Docs |
| 2 | class Nextjs | 2 | class Nextjs |
| 3 | class EntriesFilter < Docs::EntriesFilter | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | def get_name | 4 | def get_name |
| 5 | at_css('h1').content | 5 | name = at_css('h1').content |
| 6 | end | 6 | name.strip! |
| 7 | name | ||
| 8 | end | ||
| 7 | 9 | ||
| 8 | def get_type | 10 | def get_type |
| 9 | get_name | 11 | if subpath.include?('/architecture') |
| 10 | end | 12 | 'Architecture' |
| 13 | elsif subpath.include?('/community') | ||
| 14 | 'Community' | ||
| 15 | elsif subpath.include?('/getting-started') | ||
| 16 | 'Getting Started' | ||
| 17 | elsif subpath.include?('/messages') | ||
| 18 | 'Messages' | ||
| 19 | elsif subpath.include?('/app') | ||
| 20 | 'Using App Router' | ||
| 21 | elsif subpath.include?('/pages') | ||
| 22 | 'Using Pages Router' | ||
| 23 | else | ||
| 24 | get_name | ||
| 11 | end | 25 | end |
| 26 | end | ||
| 12 | end | 27 | end |
| 13 | end | 28 | end |
| 29 | end | ||
| @@ -16,8 +16,10 @@ module Docs · 15 unmodified lines | |||
| 16 | name.remove! ' User Guide' | 16 | name.remove! ' User Guide' |
| 17 | name.remove! ' User\'s manual' | 17 | name.remove! ' User\'s manual' |
| 18 | name.remove! %r{ \-.*} | 18 | name.remove! %r{ \-.*} |
| 19 | name.remove! %r{\Asrc/} | ||
| 20 | name.remove! %r{\Astd/} | ||
| 19 | name.strip! | 21 | name.strip! |
| 20 | name | 22 | name.split("/").last |
| 21 | end | 23 | end |
| 22 | 24 | ||
| 23 | def get_type | 25 | def get_type |
| @@ -54,10 +56,11 @@ module Docs · 30 unmodified lines | |||
| 54 | else | 56 | else |
| 55 | 57 | ||
| 56 | css('.simple-toc-section a, .nested-toc-section a').each do |node| | 58 | css('.simple-toc-section a, .nested-toc-section a').each do |node| |
| 57 | entry_name = node.content | 59 | match = /^`(.*)`|^(\w+)/.match(node.content) |
| 58 | entry_name.gsub!(/,.*/, '') | 60 | entry_name = match[1] || match[2] |
| 61 | |||
| 59 | entry_id = slug + node['href'] | 62 | entry_id = slug + node['href'] |
| 60 | entries << [entry_name, entry_id, name] | 63 | entries << ["#{entry_name} (#{name})", entry_id, name] |
| 61 | end | 64 | end |
| 62 | 65 | ||
| 63 | end | 66 | end |
| @@ -12,6 +12,7 @@ module Docs · 11 unmodified lines | |||
| 12 | end | 12 | end |
| 13 | 13 | ||
| 14 | css('.header .sub-title', 'hr', '.table-tabs').remove | 14 | css('.header .sub-title', 'hr', '.table-tabs').remove |
| 15 | css('.copy').remove | ||
| 15 | 16 | ||
| 16 | # fix ul section that contains summaries or tables | 17 | # fix ul section that contains summaries or tables |
| 17 | css('ul').each do |node| | 18 | css('ul').each do |node| |
| @@ -0,0 +1,29 @@ | |||
| 1 | module Docs | ||
| 2 | class Playwright | ||
| 3 | class CleanHtmlFilter < Filter | ||
| 4 | def call | ||
| 5 | @doc = at_css('.markdown') | ||
| 6 | |||
| 7 | css('x-search').remove | ||
| 8 | css('hr').remove | ||
| 9 | css('font:contains("Added in")').remove | ||
| 10 | css('.list-anchor').remove | ||
| 11 | |||
| 12 | css('.alert').each do |node| | ||
| 13 | node.name = 'blockquote' | ||
| 14 | end | ||
| 15 | |||
| 16 | css('pre').each do |node| | ||
| 17 | node.content = node.css('.token-line').map(&:content).join("\n") | ||
| 18 | node.remove_attribute('style') | ||
| 19 | node['data-language'] = node.content =~ /\A\s*</ ? 'html' : 'javascript' | ||
| 20 | node.ancestors('.theme-code-block').first.replace(node) | ||
| 21 | end | ||
| 22 | |||
| 23 | css('*[class]').remove_attribute('class') | ||
| 24 | |||
| 25 | doc | ||
| 26 | end | ||
| 27 | end | ||
| 28 | end | ||
| 29 | end | ||
| @@ -0,0 +1,23 @@ | |||
| 1 | module Docs | ||
| 2 | class Playwright | ||
| 3 | class EntriesFilter < Docs::EntriesFilter | ||
| 4 | def get_name | ||
| 5 | at_css('h1').children.select(&:text?).map(&:content).join.strip | ||
| 6 | end | ||
| 7 | |||
| 8 | def type | ||
| 9 | type = at_css('.menu__link--active').content | ||
| 10 | return "#{type}: #{name}" if slug.starts_with?('api/') | ||
| 11 | type | ||
| 12 | end | ||
| 13 | |||
| 14 | def additional_entries | ||
| 15 | css('x-search').each_with_object [] do |node, entries| | ||
| 16 | prev = node.previous_element | ||
| 17 | prev = prev.previous_element until prev['id'] | ||
| 18 | entries << [node.text, prev['id']] | ||
| 19 | end | ||
| 20 | end | ||
| 21 | end | ||
| 22 | end | ||
| 23 | end | ||
| @@ -1,57 +1,115 @@ | |||
| 1 | module Docs | 1 | module Docs |
| 2 | class Pytorch | 2 | class Pytorch |
| 3 | class EntriesFilter < Docs::EntriesFilter | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | NAME_REPLACEMENTS = { | 4 | TYPE_REPLACEMENTS = { |
| 5 | "Distributed communication package - torch.distributed" => "torch.distributed" | 5 | "torch.Tensor" => "Tensor", |
| 6 | "torch.nn" => "Neuro Network", | ||
| 7 | "Probability distributions - torch.distributions" => "Probability Distributions", | ||
| 8 | "torch" => "Torch", | ||
| 9 | "Quantization" => "Quantization", | ||
| 10 | "torch.optim" => "Optimization", | ||
| 11 | "torch.Storage" => "Storage", | ||
| 12 | "torch.nn.functional" => "NN Functions", | ||
| 13 | "torch.cuda" => "CUDA", | ||
| 14 | "Torch Distributed Elastic" => "Distributed Elastic", | ||
| 15 | "torch.fx" => "FX", | ||
| 16 | "TorchScript" => "Torch Script", | ||
| 17 | "torch.onnx" => "ONNX", | ||
| 18 | "Distributed communication package - torch.distributed" => "Distributed Communication", | ||
| 19 | "Automatic differentiation package - torch.autograd" => "Automatic Differentiation", | ||
| 20 | "torch.linalg" => "Linear Algebra", | ||
| 21 | "Distributed Checkpoint - torch.distributed.checkpoint" => "Distributed Checkpoint", | ||
| 22 | "Distributed RPC Framework" => "Distributed RPC", | ||
| 23 | "torch.special" => "SciPy-like Special", | ||
| 24 | "torch.package" => "Package", | ||
| 25 | "torch.backends" => "Backends", | ||
| 26 | "FullyShardedDataParallel" => "Fully Sharded Data Parallel", | ||
| 27 | "torch.sparse" => "Sparse Tensors", | ||
| 28 | "torch.export" => "Traced Graph Export", | ||
| 29 | "torch.fft" => "Discrete Fourier Transforms", | ||
| 30 | "torch.utils.data" => "Datasets and Data Loaders", | ||
| 31 | "torch.monitor" => "Monitor", | ||
| 32 | "Automatic Mixed Precision package - torch.amp" => "Automatic Mixed Precision", | ||
| 33 | "torch.utils.tensorboard" => "Tensorboard", | ||
| 34 | "torch.profiler" => "Profiler", | ||
| 35 | "torch.mps" => "MPS", | ||
| 36 | "DDP Communication Hooks" => "DDP Communication Hooks", | ||
| 37 | "Benchmark Utils - torch.utils.benchmark" => "Benchmark Utils", | ||
| 38 | "torch.nn.init" => "Parameter Initializations", | ||
| 39 | "Tensor Parallelism - torch.distributed.tensor.parallel" => "Tensor Parallelism", | ||
| 40 | "torch.func" => "JAX-like Function Transforms", | ||
| 41 | "Distributed Optimizers" => "Distributed Optimizers", | ||
| 42 | "torch.signal" => "SciPy-like Signal", | ||
| 43 | "torch.futures" => "Miscellaneous", | ||
| 44 | "torch.utils.cpp_extension" => "Miscellaneous", | ||
| 45 | "torch.overrides" => "Miscellaneous", | ||
| 46 | "Generic Join Context Manager" => "Miscellaneous", | ||
| 47 | "torch.hub" => "Miscellaneous", | ||
| 48 | "torch.cpu" => "Miscellaneous", | ||
| 49 | "torch.random" => "Miscellaneous", | ||
| 50 | "torch.compiler" => "Miscellaneous", | ||
| 51 | "Pipeline Parallelism" => "Miscellaneous", | ||
| 52 | "Named Tensors" => "Miscellaneous", | ||
| 53 | "Multiprocessing package - torch.multiprocessing" => "Miscellaneous", | ||
| 54 | "torch.utils" => "Miscellaneous", | ||
| 55 | "torch.library" => "Miscellaneous", | ||
| 56 | "Tensor Attributes" => "Miscellaneous", | ||
| 57 | "torch.testing" => "Miscellaneous", | ||
| 58 | "torch.nested" => "Miscellaneous", | ||
| 59 | "Understanding CUDA Memory Usage" => "Miscellaneous", | ||
| 60 | "torch.utils.dlpack" => "Miscellaneous", | ||
| 61 | "torch.utils.checkpoint" => "Miscellaneous", | ||
| 62 | "torch.__config__" => "Miscellaneous", | ||
| 63 | "Type Info" => "Miscellaneous", | ||
| 64 | "torch.utils.model_zoo" => "Miscellaneous", | ||
| 65 | "torch.utils.mobile_optimizer" => "Miscellaneous", | ||
| 66 | "torch._logging" => "Miscellaneous", | ||
| 67 | "torch.masked" => "Miscellaneous", | ||
| 68 | "torch.utils.bottleneck" => "Miscellaneous" | ||
| 6 | } | 69 | } |
| 7 | 70 | ||
| 8 | def get_breadcrumbs() | 71 | def get_breadcrumbs |
| 9 | css('.pytorch-breadcrumbs > li').map { |node| node.content.delete_suffix(' >') } | 72 | css('.pytorch-breadcrumbs > li').map { |
| 73 | |node| node.content.delete_suffix(' >').strip | ||
| 74 | }.reject { |item| item.nil? || item.empty? } | ||
| 10 | end | 75 | end |
| 11 | 76 | ||
| 12 | def get_name | 77 | def get_name |
| 13 | # The id of the container `div.section` indicates the page type. | 78 | b = get_breadcrumbs |
| 14 | # If the id starts with `module-`, then it's an API reference, | 79 | b[(b[1] == 'torch' ? 2 : 1)..].join('.') |
| 15 | # otherwise it is a note or design doc. | ||
| 16 | section_id = at_css('.section[id], section[id]')['id'] | ||
| 17 | if section_id.starts_with? 'module-' | ||
| 18 | section_id.remove('module-') | ||
| 19 | else | ||
| 20 | name = get_breadcrumbs()[1] | ||
| 21 | NAME_REPLACEMENTS.fetch(name, name) | ||
| 22 | end | ||
| 23 | end | 80 | end |
| 24 | 81 | ||
| 25 | def get_type | 82 | def get_type |
| 26 | name | 83 | t = get_breadcrumbs[1] |
| 84 | TYPE_REPLACEMENTS.fetch(t, t) | ||
| 27 | end | 85 | end |
| 28 | 86 | ||
| 29 | def include_default_entry? | 87 | def include_default_entry? |
| 30 | # Only include API references, and ignore notes or design docs | 88 | # Only include API entries to simplify and unify the list |
| 31 | !subpath.start_with? 'generated/' and type.start_with? 'torch' | 89 | return name.start_with?('torch.') |
| 32 | end | 90 | end |
| 33 | 91 | ||
| 34 | def additional_entries | 92 | def additional_entries |
| 35 | return [] if root_page? | 93 | return [] if root_page? |
| 36 | 94 | ||
| 37 | entries = [] | 95 | entries = [] |
| 38 | 96 | css('dl').each do |node| | |
| 39 | css('dt').each do |node| | 97 | dt = node.at_css('dt') |
| 40 | name = node['id'] | 98 | if dt == nil |
| 41 | if name == self.name or name == nil | 99 | next |
| 100 | end | ||
| 101 | id = dt['id'] | ||
| 102 | if id == name or id == nil | ||
| 42 | next | 103 | next |
| 43 | end | 104 | end |
| 44 | 105 | ||
| 45 | case node.parent['class'] | 106 | case node['class'] |
| 46 | when 'method', 'function' | 107 | when 'py method', 'py function' |
| 47 | if node.at_css('code').content.starts_with? 'property ' | 108 | entries << [id + '()', id] |
| 48 | # this instance method is a property, so treat it as an attribute | 109 | when 'py class', 'py attribute', 'py property' |
| 49 | entries << [name, node['id']] | 110 | entries << [id, id] |
| 50 | else | 111 | when 'footnote brackets', 'field-list simple' |
| 51 | entries << [name + '()', node['id']] | 112 | next |
| 52 | end | ||
| 53 | when 'class', 'attribute' | ||
| 54 | entries << [name, node['id']] | ||
| 55 | end | 113 | end |
| 56 | end | 114 | end |
| 57 | 115 | ||
| @@ -4,12 +4,14 @@ module Docs · 3 unmodified lines | |||
| 4 | def get_name | 4 | def get_name |
| 5 | name = at_css('h1').content | 5 | name = at_css('h1').content |
| 6 | name.sub! %r{\s*#\s*}, '' | 6 | name.sub! %r{\s*#\s*}, '' |
| 7 | name.sub! %r{\s*\u200B\s*}, '' | ||
| 7 | name | 8 | name |
| 8 | end | 9 | end |
| 9 | 10 | ||
| 10 | def get_type | 11 | def get_type |
| 11 | name = at_css('h1').content | 12 | name = at_css('h1').content |
| 12 | name.sub! %r{\s*#\s*}, '' | 13 | name.sub! %r{\s*#\s*}, '' |
| 14 | name.sub! %r{\s*\u200B\s*}, '' | ||
| 13 | name | 15 | name |
| 14 | end | 16 | end |
| 15 | 17 | ||
| @@ -34,6 +34,11 @@ module Docs · 33 unmodified lines | |||
| 34 | Licensed under the BSD License. | 34 | Licensed under the BSD License. |
| 35 | HTML | 35 | HTML |
| 36 | 36 | ||
| 37 | version '5.0' do | ||
| 38 | self.release = '5.0' | ||
| 39 | self.base_url = "https://docs.djangoproject.com/en/#{self.version}/" | ||
| 40 | end | ||
| 41 | |||
| 37 | version '4.2' do | 42 | version '4.2' do |
| 38 | self.release = '4.2' | 43 | self.release = '4.2' |
| 39 | self.base_url = "https://docs.djangoproject.com/en/#{self.version}/" | 44 | self.base_url = "https://docs.djangoproject.com/en/#{self.version}/" |
| @@ -16,7 +16,7 @@ module Docs · 15 unmodified lines | |||
| 16 | Licensed under the MIT License. | 16 | Licensed under the MIT License. |
| 17 | HTML | 17 | HTML |
| 18 | 18 | ||
| 19 | self.release = '0.19.11' | 19 | self.release = '0.20.0' |
| 20 | self.base_url = 'https://esbuild.github.io/' | 20 | self.base_url = 'https://esbuild.github.io/' |
| 21 | html_filters.push 'esbuild/clean_html', 'esbuild/entries' | 21 | html_filters.push 'esbuild/clean_html', 'esbuild/entries' |
| 22 | 22 | ||
| @@ -1,7 +1,7 @@ | |||
| 1 | module Docs | 1 | module Docs |
| 2 | class Git < UrlScraper | 2 | class Git < UrlScraper |
| 3 | self.type = 'git' | 3 | self.type = 'git' |
| 4 | self.release = '2.42.0' | 4 | self.release = '2.43.1' |
| 5 | self.base_url = 'https://git-scm.com/docs' | 5 | self.base_url = 'https://git-scm.com/docs' |
| 6 | self.initial_paths = %w(/git.html) | 6 | self.initial_paths = %w(/git.html) |
| 7 | self.links = { | 7 | self.links = { |
| @@ -16,7 +16,7 @@ module Docs · 8 unmodified lines | |||
| 16 | options[:skip] = %w(/howto-index.html) | 16 | options[:skip] = %w(/howto-index.html) |
| 17 | 17 | ||
| 18 | options[:attribution] = <<-HTML | 18 | options[:attribution] = <<-HTML |
| 19 | © 2012–2023 Scott Chacon and others<br> | 19 | © 2012–2024 Scott Chacon and others<br> |
| 20 | Licensed under the MIT License. | 20 | Licensed under the MIT License. |
| 21 | HTML | 21 | HTML |
| 22 | 22 | ||
| @@ -1,7 +1,7 @@ | |||
| 1 | module Docs | 1 | module Docs |
| 2 | class Go < UrlScraper | 2 | class Go < UrlScraper |
| 3 | self.type = 'go' | 3 | self.type = 'go' |
| 4 | self.release = '1.21.5' | 4 | self.release = '1.22.0' |
| 5 | self.base_url = 'https://golang.org/pkg/' | 5 | self.base_url = 'https://golang.org/pkg/' |
| 6 | self.links = { | 6 | self.links = { |
| 7 | home: 'https://golang.org/', | 7 | home: 'https://golang.org/', |
| @@ -20,6 +20,11 @@ module Docs · 19 unmodified lines | |||
| 20 | Licensed under the GNU General Public License version 2. | 20 | Licensed under the GNU General Public License version 2. |
| 21 | HTML | 21 | HTML |
| 22 | 22 | ||
| 23 | version '2.9' do | ||
| 24 | self.release = '2.9.0' | ||
| 25 | self.base_url = "https://docs.haproxy.org/#{self.version}/" | ||
| 26 | end | ||
| 27 | |||
| 23 | version '2.8' do | 28 | version '2.8' do |
| 24 | self.release = '2.8.0' | 29 | self.release = '2.8.0' |
| 25 | self.base_url = "https://docs.haproxy.org/#{self.version}/" | 30 | self.base_url = "https://docs.haproxy.org/#{self.version}/" |
| @@ -0,0 +1,35 @@ | |||
| 1 | module Docs | ||
| 2 | class Htmx < UrlScraper | ||
| 3 | self.name = 'htmx' | ||
| 4 | self.type = 'simple' | ||
| 5 | self.slug = 'htmx' | ||
| 6 | self.links = { | ||
| 7 | home: 'https://htmx.org/', | ||
| 8 | code: 'https://github.com/bigskysoftware/htmx' | ||
| 9 | } | ||
| 10 | self.release = '1.9.10' | ||
| 11 | self.base_url = "https://htmx.org/" | ||
| 12 | self.initial_paths = %w(reference/) | ||
| 13 | |||
| 14 | html_filters.push 'htmx/entries', 'htmx/clean_html' | ||
| 15 | |||
| 16 | options[:trailing_slash] = true | ||
| 17 | options[:container] = '.content' | ||
| 18 | options[:download_images] = false | ||
| 19 | options[:skip_patterns] = [ | ||
| 20 | /\Aessays/, | ||
| 21 | /\Aexamples/, | ||
| 22 | /\Amigration-guide/, | ||
| 23 | /\Aposts/, | ||
| 24 | ] | ||
| 25 | |||
| 26 | # https://github.com/bigskysoftware/htmx/blob/master/LICENSE | ||
| 27 | options[:attribution] = <<-HTML | ||
| 28 | Licensed under the Zero-Clause BSD License. | ||
| 29 | HTML | ||
| 30 | |||
| 31 | def get_latest_version(opts) | ||
| 32 | get_npm_version('htmx.org', opts) | ||
| 33 | end | ||
| 34 | end | ||
| 35 | end | ||
| @@ -20,15 +20,35 @@ module Docs · 19 unmodified lines | |||
| 20 | 20 | ||
| 21 | # latest version has a special URL that does not include the version identifier | 21 | # latest version has a special URL that does not include the version identifier |
| 22 | version do | 22 | version do |
| 23 | self.release = "1.26" | 23 | self.release = "1.29" |
| 24 | self.base_url = "https://kubernetes.io/docs/reference/kubernetes-api/" | 24 | self.base_url = "https://kubernetes.io/docs/reference/kubernetes-api/" |
| 25 | end | 25 | end |
| 26 | 26 | ||
| 27 | version '1.20' do | 27 | version '1.28' do |
| 28 | self.release = "#{version}" | 28 | self.release = "#{version}" |
| 29 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" | 29 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" |
| 30 | end | 30 | end |
| 31 | 31 | ||
| 32 | version '1.27' do | ||
| 33 | self.release = "#{version}" | ||
| 34 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" | ||
| 35 | end | ||
| 36 | |||
| 37 | version '1.26' do | ||
| 38 | self.release = "#{version}" | ||
| 39 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" | ||
| 40 | end | ||
| 41 | |||
| 42 | version '1.25' do | ||
| 43 | self.release = "#{version}" | ||
| 44 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" | ||
| 45 | end | ||
| 46 | |||
| 47 | version '1.24' do | ||
| 48 | self.release = "#{version}" | ||
| 49 | self.base_url = "https://v#{version.sub('.', '-')}.docs.kubernetes.io/docs/reference/kubernetes-api/" | ||
| 50 | end | ||
| 51 | |||
| 32 | def get_latest_version(opts) | 52 | def get_latest_version(opts) |
| 33 | get_latest_github_release('kubernetes', 'kubernetes', opts) | 53 | get_latest_github_release('kubernetes', 'kubernetes', opts) |
| 34 | end | 54 | end |
| @@ -1,7 +1,6 @@ | |||
| 1 | module Docs | 1 | module Docs |
| 2 | class Nim < UrlScraper | 2 | class Nim < UrlScraper |
| 3 | self.type = 'simple' | 3 | self.type = 'simple' |
| 4 | self.release = '1.4.8' | ||
| 5 | self.base_url = 'https://nim-lang.org/docs/' | 4 | self.base_url = 'https://nim-lang.org/docs/' |
| 6 | self.root_path = 'overview.html' | 5 | self.root_path = 'overview.html' |
| 7 | self.links = { | 6 | self.links = { |
| @@ -14,10 +13,18 @@ module Docs · 6 unmodified lines | |||
| 14 | options[:skip] = %w(theindex.html docgen.html tut1.html tut2.html tut3.html tools.html) | 13 | options[:skip] = %w(theindex.html docgen.html tut1.html tut2.html tut3.html tools.html) |
| 15 | 14 | ||
| 16 | options[:attribution] = <<-HTML | 15 | options[:attribution] = <<-HTML |
| 17 | © 2006–2021 Andreas Rumpf<br> | 16 | © 2006–2024 Andreas Rumpf<br> |
| 18 | Licensed under the MIT License. | 17 | Licensed under the MIT License. |
| 19 | HTML | 18 | HTML |
| 20 | 19 | ||
| 20 | version do | ||
| 21 | self.release = '2.0.2' | ||
| 22 | end | ||
| 23 | |||
| 24 | version '1' do | ||
| 25 | self.release = '1.4.8' | ||
| 26 | end | ||
| 27 | |||
| 21 | def get_latest_version(opts) | 28 | def get_latest_version(opts) |
| 22 | doc = fetch_doc('https://nim-lang.org/docs/overview.html', opts) | 29 | doc = fetch_doc('https://nim-lang.org/docs/overview.html', opts) |
| 23 | doc.at_css('.container > .docinfo > tbody > tr:last-child > td').content.strip | 30 | doc.at_css('.container > .docinfo > tbody > tr:last-child > td').content.strip |
| @@ -0,0 +1,27 @@ | |||
| 1 | module Docs | ||
| 2 | class Playwright < UrlScraper | ||
| 3 | self.name = 'Playwright' | ||
| 4 | self.type = 'simple' | ||
| 5 | self.release = '1.41.1' | ||
| 6 | self.base_url = 'https://playwright.dev/docs/' | ||
| 7 | self.root_path = 'intro' | ||
| 8 | self.links = { | ||
| 9 | home: 'https://playwright.dev/', | ||
| 10 | code: 'https://github.com/microsoft/playwright' | ||
| 11 | } | ||
| 12 | |||
| 13 | # Docusaurus like react_native | ||
| 14 | html_filters.push 'playwright/entries', 'playwright/clean_html' | ||
| 15 | options[:download_images] = false | ||
| 16 | |||
| 17 | # https://github.com/microsoft/playwright/blob/main/LICENSE | ||
| 18 | options[:attribution] = <<-HTML | ||
| 19 | © 2024 Microsoft<br> | ||
| 20 | Licensed under the Apache License, Version 2.0. | ||
| 21 | HTML | ||
| 22 | |||
| 23 | def get_latest_version(opts) | ||
| 24 | get_npm_version('@playwright/test', opts) | ||
| 25 | end | ||
| 26 | end | ||
| 27 | end | ||
| @@ -3,7 +3,6 @@ module Docs · 2 unmodified lines | |||
| 3 | self.name = 'PyTorch' | 3 | self.name = 'PyTorch' |
| 4 | self.slug = 'pytorch' | 4 | self.slug = 'pytorch' |
| 5 | self.type = 'sphinx' | 5 | self.type = 'sphinx' |
| 6 | self.force_gzip = true | ||
| 7 | self.links = { | 6 | self.links = { |
| 8 | home: 'https://pytorch.org/', | 7 | home: 'https://pytorch.org/', |
| 9 | code: 'https://github.com/pytorch/pytorch' | 8 | code: 'https://github.com/pytorch/pytorch' |
| @@ -11,13 +10,12 @@ module Docs · 1 unmodified line | |||
| 11 | 10 | ||
| 12 | html_filters.push 'pytorch/entries', 'pytorch/clean_html', 'sphinx/clean_html' | 11 | html_filters.push 'pytorch/entries', 'pytorch/clean_html', 'sphinx/clean_html' |
| 13 | 12 | ||
| 14 | options[:skip] = ['cpp_index.html', 'packages.html', 'py-modindex.html', 'genindex.html'] | 13 | options[:skip] = ['cpp_index.html', 'deploy.html', 'packages.html', 'py-modindex.html', 'genindex.html'] |
| 15 | options[:skip_patterns] = [/\Acommunity/, /\A_modules/, /\Anotes/, /\Aorg\/pytorch\//] | 14 | options[:skip_patterns] = [/\Acommunity/, /\A_modules/, /\Anotes/, /\Aorg\/pytorch\//] |
| 16 | options[:max_image_size] = 256_000 | ||
| 17 | 15 | ||
| 18 | options[:attribution] = <<-HTML | 16 | options[:attribution] = <<-HTML |
| 19 | © 2019-2024 Torch Contributors<br> | 17 | © 2024, PyTorch Contributors<br> |
| 20 | Licensed under the 3-clause BSD License. | 18 | PyTorch has a BSD-style license, as found in the <a href="https://github.com/pytorch/pytorch/blob/main/LICENSE">LICENSE</a> file. |
| 21 | HTML | 19 | HTML |
| 22 | 20 | ||
| 23 | version '2' do | 21 | version '2' do |
| @@ -2,7 +2,7 @@ module Docs · 1 unmodified line | |||
| 2 | class Sqlite < UrlScraper | 2 | class Sqlite < UrlScraper |
| 3 | self.name = 'SQLite' | 3 | self.name = 'SQLite' |
| 4 | self.type = 'sqlite' | 4 | self.type = 'sqlite' |
| 5 | self.release = '3.44.2' | 5 | self.release = '3.45.1' |
| 6 | self.base_url = 'https://sqlite.org/' | 6 | self.base_url = 'https://sqlite.org/' |
| 7 | self.root_path = 'docs.html' | 7 | self.root_path = 'docs.html' |
| 8 | self.initial_paths = %w(keyword_index.html) | 8 | self.initial_paths = %w(keyword_index.html) |
| @@ -9,6 +9,7 @@ module Docs · 8 unmodified lines | |||
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | options[:root_title] = 'Vitest' | 11 | options[:root_title] = 'Vitest' |
| 12 | options[:download_images] = false | ||
| 12 | 13 | ||
| 13 | options[:attribution] = <<-HTML | 14 | options[:attribution] = <<-HTML |
| 14 | © 2021-Present Anthony Fu<br> | 15 | © 2021-Present Anthony Fu<br> |
| @@ -16,7 +17,7 @@ module Docs · 1 unmodified line | |||
| 16 | Licensed under the MIT License. | 17 | Licensed under the MIT License. |
| 17 | HTML | 18 | HTML |
| 18 | 19 | ||
| 19 | self.release = '1.1.3' | 20 | self.release = '1.2.2' |
| 20 | self.base_url = 'https://vitest.dev/' | 21 | self.base_url = 'https://vitest.dev/' |
| 21 | self.initial_paths = %w(guide/) | 22 | self.initial_paths = %w(guide/) |
| 22 | html_filters.push 'vitest/entries', 'vite/clean_html' | 23 | html_filters.push 'vitest/entries', 'vite/clean_html' |
Binary file not shown.
Binary file not shown.
| @@ -0,0 +1 @@ | |||
| 1 | https://github.com/bigskysoftware/htmx/blob/v1.9.10/www/static/img/htmx_logo.2.png | ||
Binary file not shown.
Binary file not shown.
| @@ -0,0 +1 @@ | |||
| 1 | https://playwright.dev/img/playwright-logo.svg | ||
| @@ -0,0 +1,189 @@ | |||
| 1 | <!-- | ||
| 2 | <--- Readme.md Snippet without images Start ---> | ||
| 3 | ## Tech Stack | ||
| 4 | freeCodeCamp/devdocs is built on the following main stack: | ||
| 5 | |||
| 6 | - [New Relic](http://newrelic.com) – Performance Monitoring | ||
| 7 | - [Ruby](https://www.ruby-lang.org) – Languages | ||
| 8 | - [Sinatra](http://www.sinatrarb.com/) – Microframeworks (Backend) | ||
| 9 | - [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) – Languages | ||
| 10 | - [Capybara](http://jnicklas.github.io/capybara/) – Testing Frameworks | ||
| 11 | - [GitHub Actions](https://github.com/features/actions) – Continuous Integration | ||
| 12 | - [Docker](https://www.docker.com/) – Virtual Machine Platforms & Containers | ||
| 13 | |||
| 14 | Full tech stack [here](/techstack.md) | ||
| 15 | |||
| 16 | <--- Readme.md Snippet without images End ---> | ||
| 17 | |||
| 18 | <--- Readme.md Snippet with images Start ---> | ||
| 19 | ## Tech Stack | ||
| 20 | freeCodeCamp/devdocs is built on the following main stack: | ||
| 21 | |||
| 22 | - <img width='25' height='25' src='https://img.stackshare.io/service/103/default_193410db3a7e419c7b436961bf41d733c7346b59.png' alt='New Relic'/> [New Relic](http://newrelic.com) – Performance Monitoring | ||
| 23 | - <img width='25' height='25' src='https://img.stackshare.io/service/989/ruby.png' alt='Ruby'/> [Ruby](https://www.ruby-lang.org) – Languages | ||
| 24 | - <img width='25' height='25' src='https://img.stackshare.io/service/999/logo.png' alt='Sinatra'/> [Sinatra](http://www.sinatrarb.com/) – Microframeworks (Backend) | ||
| 25 | - <img width='25' height='25' src='https://img.stackshare.io/service/1209/javascript.jpeg' alt='JavaScript'/> [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) – Languages | ||
| 26 | - <img width='25' height='25' src='https://img.stackshare.io/service/2595/capybara.png' alt='Capybara'/> [Capybara](http://jnicklas.github.io/capybara/) – Testing Frameworks | ||
| 27 | - <img width='25' height='25' src='https://img.stackshare.io/service/11563/actions.png' alt='GitHub Actions'/> [GitHub Actions](https://github.com/features/actions) – Continuous Integration | ||
| 28 | - <img width='25' height='25' src='https://img.stackshare.io/service/586/n4u37v9t_400x400.png' alt='Docker'/> [Docker](https://www.docker.com/) – Virtual Machine Platforms & Containers | ||
| 29 | |||
| 30 | Full tech stack [here](/techstack.md) | ||
| 31 | |||
| 32 | <--- Readme.md Snippet with images End ---> | ||
| 33 | --> | ||
| 34 | <div align="center"> | ||
| 35 | |||
| 36 | # Tech Stack File | ||
| 37 |  [freeCodeCamp/devdocs](https://github.com/freeCodeCamp/devdocs) | ||
| 38 | <br/><br/> | ||
| 39 | |43<br/>Tools used|01/27/24 <br/>Report generated| | ||
| 40 | |------|------| | ||
| 41 | </div> | ||
| 42 | |||
| 43 | ## <img src='https://img.stackshare.io/languages.svg'/> Languages (3) | ||
| 44 | <table><tr> | ||
| 45 | <td align='center'> | ||
| 46 | <img width='36' height='36' src='https://img.stackshare.io/service/6727/css.png' alt='CSS 3'> | ||
| 47 | <br> | ||
| 48 | <sub><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3">CSS 3</a></sub> | ||
| 49 | <br> | ||
| 50 | <sub></sub> | ||
| 51 | </td> | ||
| 52 | |||
| 53 | <td align='center'> | ||
| 54 | <img width='36' height='36' src='https://img.stackshare.io/service/1209/javascript.jpeg' alt='JavaScript'> | ||
| 55 | <br> | ||
| 56 | <sub><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a></sub> | ||
| 57 | <br> | ||
| 58 | <sub></sub> | ||
| 59 | </td> | ||
| 60 | |||
| 61 | <td align='center'> | ||
| 62 | <img width='36' height='36' src='https://img.stackshare.io/service/989/ruby.png' alt='Ruby'> | ||
| 63 | <br> | ||
| 64 | <sub><a href="https://www.ruby-lang.org">Ruby</a></sub> | ||
| 65 | <br> | ||
| 66 | <sub>v3.3.0</sub> | ||
| 67 | </td> | ||
| 68 | |||
| 69 | </tr> | ||
| 70 | </table> | ||
| 71 | |||
| 72 | ## <img src='https://img.stackshare.io/frameworks.svg'/> Frameworks (1) | ||
| 73 | <table><tr> | ||
| 74 | <td align='center'> | ||
| 75 | <img width='36' height='36' src='https://img.stackshare.io/service/999/logo.png' alt='Sinatra'> | ||
| 76 | <br> | ||
| 77 | <sub><a href="http://www.sinatrarb.com/">Sinatra</a></sub> | ||
| 78 | <br> | ||
| 79 | <sub></sub> | ||
| 80 | </td> | ||
| 81 | |||
| 82 | </tr> | ||
| 83 | </table> | ||
| 84 | |||
| 85 | ## <img src='https://img.stackshare.io/devops.svg'/> DevOps (7) | ||
| 86 | <table><tr> | ||
| 87 | <td align='center'> | ||
| 88 | <img width='36' height='36' src='https://img.stackshare.io/service/2595/capybara.png' alt='Capybara'> | ||
| 89 | <br> | ||
| 90 | <sub><a href="http://jnicklas.github.io/capybara/">Capybara</a></sub> | ||
| 91 | <br> | ||
| 92 | <sub></sub> | ||
| 93 | </td> | ||
| 94 | |||
| 95 | <td align='center'> | ||
| 96 | <img width='36' height='36' src='https://img.stackshare.io/service/586/n4u37v9t_400x400.png' alt='Docker'> | ||
| 97 | <br> | ||
| 98 | <sub><a href="https://www.docker.com/">Docker</a></sub> | ||
| 99 | <br> | ||
| 100 | <sub></sub> | ||
| 101 | </td> | ||
| 102 | |||
| 103 | <td align='center'> | ||
| 104 | <img width='36' height='36' src='https://img.stackshare.io/service/1046/git.png' alt='Git'> | ||
| 105 | <br> | ||
| 106 | <sub><a href="http://git-scm.com/">Git</a></sub> | ||
| 107 | <br> | ||
| 108 | <sub></sub> | ||
| 109 | </td> | ||
| 110 | |||
| 111 | <td align='center'> | ||
| 112 | <img width='36' height='36' src='https://img.stackshare.io/service/11563/actions.png' alt='GitHub Actions'> | ||
| 113 | <br> | ||
| 114 | <sub><a href="https://github.com/features/actions">GitHub Actions</a></sub> | ||
| 115 | <br> | ||
| 116 | <sub></sub> | ||
| 117 | </td> | ||
| 118 | |||
| 119 | <td align='center'> | ||
| 120 | <img width='36' height='36' src='https://img.stackshare.io/service/103/default_193410db3a7e419c7b436961bf41d733c7346b59.png' alt='New Relic'> | ||
| 121 | <br> | ||
| 122 | <sub><a href="http://newrelic.com">New Relic</a></sub> | ||
| 123 | <br> | ||
| 124 | <sub></sub> | ||
| 125 | </td> | ||
| 126 | |||
| 127 | <td align='center'> | ||
| 128 | <img width='36' height='36' src='https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg' alt='RubyGems'> | ||
| 129 | <br> | ||
| 130 | <sub><a href="https://rubygems.org/">RubyGems</a></sub> | ||
| 131 | <br> | ||
| 132 | <sub></sub> | ||
| 133 | </td> | ||
| 134 | |||
| 135 | <td align='center'> | ||
| 136 | <img width='36' height='36' src='https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png' alt='npm'> | ||
| 137 | <br> | ||
| 138 | <sub><a href="https://www.npmjs.com/">npm</a></sub> | ||
| 139 | <br> | ||
| 140 | <sub></sub> | ||
| 141 | </td> | ||
| 142 | |||
| 143 | </tr> | ||
| 144 | </table> | ||
| 145 | |||
| 146 | |||
| 147 | ## <img src='https://img.stackshare.io/group.svg' /> Open source packages (32)</h2> | ||
| 148 | |||
| 149 | ## <img width='24' height='24' src='https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg'/> RubyGems (32) | ||
| 150 | |||
| 151 | |NAME|VERSION|LAST UPDATED|LAST UPDATED BY|LICENSE|VULNERABILITIES| | ||
| 152 | |:------|:------|:------|:------|:------|:------| | ||
| 153 | |[activesupport](https://rubygems.org/activesupport)|v7.1.3|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 154 | |[better_errors](https://rubygems.org/better_errors)|v2.10.1|10/24/13|Thibaut |MIT|N/A| | ||
| 155 | |[browser](https://rubygems.org/browser)|v5.3.1|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 156 | |[chunky_png](https://rubygems.org/chunky_png)|v1.4.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 157 | |[erubi](https://rubygems.org/erubi)|v1.12.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 158 | |[html-pipeline](https://rubygems.org/html-pipeline)|v2.14.3|10/21/18|Thibaut Courouble |MIT|N/A| | ||
| 159 | |[image_optim](https://rubygems.org/image_optim)|v0.31.3|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 160 | |[image_optim_pack](https://rubygems.org/image_optim_pack)|v0.10.1|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 161 | |[minitest](https://rubygems.org/minitest)|v5.21.2|01/03/15|Thibaut |MIT|N/A| | ||
| 162 | |[net-sftp](https://rubygems.org/net-sftp)|v4.0.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 163 | |[newrelic_rpm](https://rubygems.org/newrelic_rpm)|v8.16.0|03/24/18|Thibaut Courouble |Apache-2.0|N/A| | ||
| 164 | |[nokogiri](https://rubygems.org/nokogiri)|v1.16.0|10/21/18|Thibaut Courouble |MIT|N/A| | ||
| 165 | |[progress_bar](https://rubygems.org/progress_bar)|v1.3.3|01/26/14|Thibaut |WTFPL|N/A| | ||
| 166 | |[pry-byebug](https://rubygems.org/pry-byebug)|v3.10.1|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 167 | |[rack](https://rubygems.org/rack)|v2.2.8|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 168 | |[rack-ssl-enforcer](https://rubygems.org/rack-ssl-enforcer)|v0.2.9|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 169 | |[rack-test](https://rubygems.org/rack-test)|v2.1.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 170 | |[rake](https://rubygems.org/rake)|v13.1.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 171 | |[redcarpet](https://rubygems.org/redcarpet)|v3.6.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 172 | |[rr](https://rubygems.org/rr)|v3.1.0|10/24/13|Thibaut |MIT|N/A| | ||
| 173 | |[sass](https://rubygems.org/sass)|v3.7.4|01/13/24|Simon Legner |MIT|N/A| | ||
| 174 | |[selenium-webdriver](https://rubygems.org/selenium-webdriver)|N/A|01/26/14|Thibaut |Apache-2.0|N/A| | ||
| 175 | |[sinatra-contrib](https://rubygems.org/sinatra-contrib)|v3.2.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 176 | |[sprockets](https://rubygems.org/sprockets)|v3.7.2|01/13/24|Simon Legner |MIT|N/A| | ||
| 177 | |[sprockets-helpers](https://rubygems.org/sprockets-helpers)|v1.4.0|01/13/24|Simon Legner |MIT|N/A| | ||
| 178 | |[sprockets-sass](https://rubygems.org/sprockets-sass)|N/A|01/13/24|Simon Legner |MIT|N/A| | ||
| 179 | |[terminal-table](https://rubygems.org/terminal-table)|v3.0.2|10/11/19|Jasper van Merle |MIT|N/A| | ||
| 180 | |[thin](https://rubygems.org/thin)|v1.8.2|11/14/22|Paul Sernatinger |GPL-2.0+,Ruby|N/A| | ||
| 181 | |[thor](https://rubygems.org/thor)|v1.3.0|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 182 | |[tty-pager](https://rubygems.org/tty-pager)|v0.14.0|01/24/16|Thibaut Courouble |MIT|N/A| | ||
| 183 | |[typhoeus](https://rubygems.org/typhoeus)|v1.4.1|11/14/22|Paul Sernatinger |MIT|N/A| | ||
| 184 | |[yajl-ruby](https://rubygems.org/yajl-ruby)|v1.4.3|01/09/24|Nicholas La Roux |MIT|N/A| | ||
| 185 | |||
| 186 | <br/> | ||
| 187 | <div align='center'> | ||
| 188 | |||
| 189 | Generated via [Stack File](https://github.com/marketplace/stack-file) | ||
| @@ -0,0 +1,597 @@ | |||
| 1 | repo_name: freeCodeCamp/devdocs | ||
| 2 | report_id: 281e8991a46b88702952b7b18dd5e2b0 | ||
| 3 | version: 0.1 | ||
| 4 | repo_type: Public | ||
| 5 | timestamp: '2024-01-27T03:50:22+00:00' | ||
| 6 | requested_by: renovate[bot] | ||
| 7 | provider: github | ||
| 8 | branch: main | ||
| 9 | detected_tools_count: 43 | ||
| 10 | tools: | ||
| 11 | - name: CSS 3 | ||
| 12 | description: The latest evolution of the Cascading Style Sheets language | ||
| 13 | website_url: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3 | ||
| 14 | open_source: true | ||
| 15 | hosted_saas: false | ||
| 16 | category: Languages & Frameworks | ||
| 17 | sub_category: Languages | ||
| 18 | image_url: https://img.stackshare.io/service/6727/css.png | ||
| 19 | detection_source_url: https://github.com/freeCodeCamp/devdocs | ||
| 20 | detection_source: Repo Metadata | ||
| 21 | - name: JavaScript | ||
| 22 | description: Lightweight, interpreted, object-oriented language with first-class | ||
| 23 | functions | ||
| 24 | website_url: https://developer.mozilla.org/en-US/docs/Web/JavaScript | ||
| 25 | open_source: true | ||
| 26 | hosted_saas: false | ||
| 27 | category: Languages & Frameworks | ||
| 28 | sub_category: Languages | ||
| 29 | image_url: https://img.stackshare.io/service/1209/javascript.jpeg | ||
| 30 | detection_source_url: https://github.com/freeCodeCamp/devdocs | ||
| 31 | detection_source: Repo Metadata | ||
| 32 | - name: Ruby | ||
| 33 | description: A dynamic, interpreted, open source programming language with a focus | ||
| 34 | on simplicity and productivity | ||
| 35 | website_url: https://www.ruby-lang.org | ||
| 36 | version: 3.3.0 | ||
| 37 | open_source: true | ||
| 38 | hosted_saas: false | ||
| 39 | category: Languages & Frameworks | ||
| 40 | sub_category: Languages | ||
| 41 | image_url: https://img.stackshare.io/service/989/ruby.png | ||
| 42 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 43 | detection_source: Repo Metadata | ||
| 44 | last_updated_by: Thibaut | ||
| 45 | last_updated_on: 2013-10-24 18:25:52.000000000 Z | ||
| 46 | - name: Sinatra | ||
| 47 | description: Classy web-development dressed in a DSL | ||
| 48 | website_url: http://www.sinatrarb.com/ | ||
| 49 | license: MIT | ||
| 50 | open_source: true | ||
| 51 | hosted_saas: false | ||
| 52 | category: Languages & Frameworks | ||
| 53 | sub_category: Microframeworks (Backend) | ||
| 54 | image_url: https://img.stackshare.io/service/999/logo.png | ||
| 55 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 56 | detection_source: Gemfile | ||
| 57 | last_updated_by: Paul Sernatinger | ||
| 58 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 59 | - name: Capybara | ||
| 60 | description: Acceptance test framework for web applications | ||
| 61 | website_url: http://jnicklas.github.io/capybara/ | ||
| 62 | license: MIT | ||
| 63 | open_source: true | ||
| 64 | hosted_saas: false | ||
| 65 | category: Build, Test, Deploy | ||
| 66 | sub_category: Testing Frameworks | ||
| 67 | image_url: https://img.stackshare.io/service/2595/capybara.png | ||
| 68 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 69 | detection_source: Gemfile | ||
| 70 | last_updated_by: Thibaut | ||
| 71 | last_updated_on: 2014-01-26 21:01:54.000000000 Z | ||
| 72 | - name: Docker | ||
| 73 | description: Enterprise Container Platform for High-Velocity Innovation. | ||
| 74 | website_url: https://www.docker.com/ | ||
| 75 | license: Apache-2.0 | ||
| 76 | open_source: true | ||
| 77 | hosted_saas: false | ||
| 78 | category: Build, Test, Deploy | ||
| 79 | sub_category: Virtual Machine Platforms & Containers | ||
| 80 | image_url: https://img.stackshare.io/service/586/n4u37v9t_400x400.png | ||
| 81 | detection_source_url: https://github.com/freeCodeCamp/devdocs | ||
| 82 | detection_source: Repo Metadata | ||
| 83 | - name: Git | ||
| 84 | description: Fast, scalable, distributed revision control system | ||
| 85 | website_url: http://git-scm.com/ | ||
| 86 | open_source: true | ||
| 87 | hosted_saas: false | ||
| 88 | category: Build, Test, Deploy | ||
| 89 | sub_category: Version Control System | ||
| 90 | image_url: https://img.stackshare.io/service/1046/git.png | ||
| 91 | detection_source_url: https://github.com/freeCodeCamp/devdocs | ||
| 92 | detection_source: Repo Metadata | ||
| 93 | - name: GitHub Actions | ||
| 94 | description: Automate your workflow from idea to production | ||
| 95 | website_url: https://github.com/features/actions | ||
| 96 | open_source: false | ||
| 97 | hosted_saas: true | ||
| 98 | category: Build, Test, Deploy | ||
| 99 | sub_category: Continuous Integration | ||
| 100 | image_url: https://img.stackshare.io/service/11563/actions.png | ||
| 101 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/.github/workflows/build.yml | ||
| 102 | detection_source: ".github/workflows/build.yml" | ||
| 103 | last_updated_by: renovate[bot] | ||
| 104 | last_updated_on: 2023-03-25 01:01:01.000000000 Z | ||
| 105 | - name: New Relic | ||
| 106 | description: New Relic is the industry’s largest and most comprehensive cloud-based | ||
| 107 | observability platform. | ||
| 108 | website_url: http://newrelic.com | ||
| 109 | open_source: false | ||
| 110 | hosted_saas: true | ||
| 111 | category: Monitoring | ||
| 112 | sub_category: Performance Monitoring | ||
| 113 | image_url: https://img.stackshare.io/service/103/default_193410db3a7e419c7b436961bf41d733c7346b59.png | ||
| 114 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 115 | detection_source: Gemfile | ||
| 116 | last_updated_by: Thibaut Courouble | ||
| 117 | last_updated_on: 2018-03-24 19:06:19.000000000 Z | ||
| 118 | - name: RubyGems | ||
| 119 | description: Easily download, install, and use ruby software packages on your system | ||
| 120 | website_url: https://rubygems.org/ | ||
| 121 | open_source: false | ||
| 122 | hosted_saas: false | ||
| 123 | category: Build, Test, Deploy | ||
| 124 | sub_category: Package Managers | ||
| 125 | image_url: https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg | ||
| 126 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 127 | detection_source: Gemfile | ||
| 128 | last_updated_by: Thibaut | ||
| 129 | last_updated_on: 2013-10-24 18:25:52.000000000 Z | ||
| 130 | - name: npm | ||
| 131 | description: The package manager for JavaScript. | ||
| 132 | website_url: https://www.npmjs.com/ | ||
| 133 | open_source: false | ||
| 134 | hosted_saas: false | ||
| 135 | category: Build, Test, Deploy | ||
| 136 | sub_category: Front End Package Manager | ||
| 137 | image_url: https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png | ||
| 138 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 139 | detection_source: Gemfile | ||
| 140 | last_updated_by: Thibaut | ||
| 141 | last_updated_on: 2013-10-24 18:25:52.000000000 Z | ||
| 142 | - name: activesupport | ||
| 143 | description: A toolkit of support libraries and Ruby core extensions extracted from | ||
| 144 | the Rails framework | ||
| 145 | package_url: https://rubygems.org/activesupport | ||
| 146 | version: 7.1.3 | ||
| 147 | license: MIT | ||
| 148 | open_source: true | ||
| 149 | hosted_saas: false | ||
| 150 | category: Libraries | ||
| 151 | sub_category: RubyGems Packages | ||
| 152 | image_url: https://img.stackshare.io/package/18817/default_b17f14dbef6c1275120b34d9ec2eff5942499bd5.png | ||
| 153 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 154 | detection_source: Gemfile | ||
| 155 | last_updated_by: Paul Sernatinger | ||
| 156 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 157 | - name: better_errors | ||
| 158 | description: Provides a better error page for Rails and other Rack apps | ||
| 159 | package_url: https://rubygems.org/better_errors | ||
| 160 | version: 2.10.1 | ||
| 161 | license: MIT | ||
| 162 | open_source: true | ||
| 163 | hosted_saas: false | ||
| 164 | category: Libraries | ||
| 165 | sub_category: RubyGems Packages | ||
| 166 | image_url: https://img.stackshare.io/package/19224/default_90da4313847baa579409c050c1ebb8de5a6e0fbc.png | ||
| 167 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 168 | detection_source: Gemfile | ||
| 169 | last_updated_by: Thibaut | ||
| 170 | last_updated_on: 2013-10-24 18:25:52.000000000 Z | ||
| 171 | - name: browser | ||
| 172 | description: Do some browser detection with Ruby | ||
| 173 | package_url: https://rubygems.org/browser | ||
| 174 | version: 5.3.1 | ||
| 175 | license: MIT | ||
| 176 | open_source: true | ||
| 177 | hosted_saas: false | ||
| 178 | category: Libraries | ||
| 179 | sub_category: RubyGems Packages | ||
| 180 | image_url: https://img.stackshare.io/package/19740/default_dd31b4f280886d69f8a43459d55ecc7f1ae44486.png | ||
| 181 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 182 | detection_source: Gemfile | ||
| 183 | last_updated_by: Paul Sernatinger | ||
| 184 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 185 | - name: chunky_png | ||
| 186 | description: This pure Ruby library can read and write PNG images without depending | ||
| 187 | on an external image library, like RMagick | ||
| 188 | package_url: https://rubygems.org/chunky_png | ||
| 189 | version: 1.4.0 | ||
| 190 | license: MIT | ||
| 191 | open_source: true | ||
| 192 | hosted_saas: false | ||
| 193 | category: Libraries | ||
| 194 | sub_category: RubyGems Packages | ||
| 195 | image_url: https://img.stackshare.io/package/19118/default_ab0024f54be625eb1e21abc015158fc74b2e3704.png | ||
| 196 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 197 | detection_source: Gemfile | ||
| 198 | last_updated_by: Paul Sernatinger | ||
| 199 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 200 | - name: erubi | ||
| 201 | description: Erubi is a ERB template engine for ruby | ||
| 202 | package_url: https://rubygems.org/erubi | ||
| 203 | version: 1.12.0 | ||
| 204 | license: MIT | ||
| 205 | open_source: true | ||
| 206 | hosted_saas: false | ||
| 207 | category: Libraries | ||
| 208 | sub_category: RubyGems Packages | ||
| 209 | image_url: https://img.stackshare.io/package/rubygems/image.png | ||
| 210 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 211 | detection_source: Gemfile | ||
| 212 | last_updated_by: Paul Sernatinger | ||
| 213 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 214 | - name: html-pipeline | ||
| 215 | description: GitHub HTML processing filters and utilities | ||
| 216 | package_url: https://rubygems.org/html-pipeline | ||
| 217 | version: 2.14.3 | ||
| 218 | license: MIT | ||
| 219 | open_source: true | ||
| 220 | hosted_saas: false | ||
| 221 | category: Libraries | ||
| 222 | sub_category: RubyGems Packages | ||
| 223 | image_url: https://img.stackshare.io/package/19386/default_b0770ebdd12e1eb479a98261d0175b1714524f87.png | ||
| 224 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 225 | detection_source: Gemfile | ||
| 226 | last_updated_by: Thibaut Courouble | ||
| 227 | last_updated_on: 2018-10-21 22:41:35.000000000 Z | ||
| 228 | - name: image_optim | ||
| 229 | description: Command line tool and ruby interface to optimize | ||
| 230 | package_url: https://rubygems.org/image_optim | ||
| 231 | version: 0.31.3 | ||
| 232 | license: MIT | ||
| 233 | open_source: true | ||
| 234 | hosted_saas: false | ||
| 235 | category: Libraries | ||
| 236 | sub_category: RubyGems Packages | ||
| 237 | image_url: https://img.stackshare.io/package/19798/default_5acb201e8340ca5b337b8c46c2fcaff7aa0db0ec.png | ||
| 238 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 239 | detection_source: Gemfile | ||
| 240 | last_updated_by: Paul Sernatinger | ||
| 241 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 242 | - name: image_optim_pack | ||
| 243 | description: 'Precompiled binaries for image_optim: advpng' | ||
| 244 | package_url: https://rubygems.org/image_optim_pack | ||
| 245 | version: 0.10.1 | ||
| 246 | license: MIT | ||
| 247 | open_source: true | ||
| 248 | hosted_saas: false | ||
| 249 | category: Libraries | ||
| 250 | sub_category: RubyGems Packages | ||
| 251 | image_url: https://img.stackshare.io/package/rubygems/image.png | ||
| 252 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 253 | detection_source: Gemfile | ||
| 254 | last_updated_by: Paul Sernatinger | ||
| 255 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 256 | - name: minitest | ||
| 257 | description: Minitest provides a complete suite of testing facilities supporting | ||
| 258 | TDD, BDD, mocking, and benchmarking | ||
| 259 | package_url: https://rubygems.org/minitest | ||
| 260 | version: 5.21.2 | ||
| 261 | license: MIT | ||
| 262 | open_source: true | ||
| 263 | hosted_saas: false | ||
| 264 | category: Libraries | ||
| 265 | sub_category: RubyGems Packages | ||
| 266 | image_url: https://img.stackshare.io/package/18818/default_f36df1cfa9ff6061d7f9b4879088be8538581c49.png | ||
| 267 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 268 | detection_source: Gemfile | ||
| 269 | last_updated_by: Thibaut | ||
| 270 | last_updated_on: 2015-01-03 15:38:22.000000000 Z | ||
| 271 | - name: net-sftp | ||
| 272 | description: A pure Ruby implementation of the SFTP client protocol | ||
| 273 | package_url: https://rubygems.org/net-sftp | ||
| 274 | version: 4.0.0 | ||
| 275 | license: MIT | ||
| 276 | open_source: true | ||
| 277 | hosted_saas: false | ||
| 278 | category: Libraries | ||
| 279 | sub_category: RubyGems Packages | ||
| 280 | image_url: https://img.stackshare.io/package/19106/default_92b412aaa5197ea1fc2d70a503018e4186714110.png | ||
| 281 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 282 | detection_source: Gemfile | ||
| 283 | last_updated_by: Paul Sernatinger | ||
| 284 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 285 | - name: newrelic_rpm | ||
| 286 | description: New Relic is a performance management system, developed by New Relic, | ||
| 287 | Inc | ||
| 288 | package_url: https://rubygems.org/newrelic_rpm | ||
| 289 | version: 8.16.0 | ||
| 290 | license: Apache-2.0 | ||
| 291 | open_source: true | ||
| 292 | hosted_saas: false | ||
| 293 | category: Libraries | ||
| 294 | sub_category: RubyGems Packages | ||
| 295 | image_url: https://img.stackshare.io/package/19246/default_518f3430d0c3ea4653c591ebd7e75da67f51cfaf.png | ||
| 296 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 297 | detection_source: Gemfile | ||
| 298 | last_updated_by: Thibaut Courouble | ||
| 299 | last_updated_on: 2018-03-24 19:06:19.000000000 Z | ||
| 300 | - name: nokogiri | ||
| 301 | description: Nokogiri | ||
| 302 | package_url: https://rubygems.org/nokogiri | ||
| 303 | version: 1.16.0 | ||
| 304 | license: MIT | ||
| 305 | open_source: true | ||
| 306 | hosted_saas: false | ||
| 307 | category: Libraries | ||
| 308 | sub_category: RubyGems Packages | ||
| 309 | image_url: https://img.stackshare.io/package/18823/default_b8fbb83e23c963442e15398c5b56262cc6267d6f.png | ||
| 310 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 311 | detection_source: Gemfile | ||
| 312 | last_updated_by: Thibaut Courouble | ||
| 313 | last_updated_on: 2018-10-21 22:41:35.000000000 Z | ||
| 314 | - name: progress_bar | ||
| 315 | description: 'Give people feedback about long-running tasks without overloading | ||
| 316 | them with information: Use a progress bar' | ||
| 317 | package_url: https://rubygems.org/progress_bar | ||
| 318 | version: 1.3.3 | ||
| 319 | license: WTFPL | ||
| 320 | open_source: true | ||
| 321 | hosted_saas: false | ||
| 322 | category: Libraries | ||
| 323 | sub_category: RubyGems Packages | ||
| 324 | image_url: https://img.stackshare.io/package/19696/default_2312d4d1847ef96af6bbd57ed9959234ab92321c.png | ||
| 325 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 326 | detection_source: Gemfile | ||
| 327 | last_updated_by: Thibaut | ||
| 328 | last_updated_on: 2014-01-26 21:01:54.000000000 Z | ||
| 329 | - name: pry-byebug | ||
| 330 | description: Combine 'pry' with 'byebug' | ||
| 331 | package_url: https://rubygems.org/pry-byebug | ||
| 332 | version: 3.10.1 | ||
| 333 | license: MIT | ||
| 334 | open_source: true | ||
| 335 | hosted_saas: false | ||
| 336 | category: Libraries | ||
| 337 | sub_category: RubyGems Packages | ||
| 338 | image_url: https://img.stackshare.io/package/18848/default_1c2935fa69cec14d38adad302e002464101cd71f.png | ||
| 339 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 340 | detection_source: Gemfile | ||
| 341 | last_updated_by: Paul Sernatinger | ||
| 342 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 343 | - name: rack | ||
| 344 | description: Rack provides a minimal, modular and adaptable interface for developing | ||
| 345 | web applications in Ruby | ||
| 346 | package_url: https://rubygems.org/rack | ||
| 347 | version: 2.2.8 | ||
| 348 | license: MIT | ||
| 349 | open_source: true | ||
| 350 | hosted_saas: false | ||
| 351 | category: Libraries | ||
| 352 | sub_category: RubyGems Packages | ||
| 353 | image_url: https://img.stackshare.io/package/18839/default_db5cfb0d85d9fd8bfb40a863581417a2a57791ab.png | ||
| 354 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 355 | detection_source: Gemfile | ||
| 356 | last_updated_by: Paul Sernatinger | ||
| 357 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 358 | - name: rack-ssl-enforcer | ||
| 359 | description: Rack::SslEnforcer is a simple Rack middleware to enforce ssl connections | ||
| 360 | package_url: https://rubygems.org/rack-ssl-enforcer | ||
| 361 | version: 0.2.9 | ||
| 362 | license: MIT | ||
| 363 | open_source: true | ||
| 364 | hosted_saas: false | ||
| 365 | category: Libraries | ||
| 366 | sub_category: RubyGems Packages | ||
| 367 | image_url: https://img.stackshare.io/package/rubygems/image.png | ||
| 368 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 369 | detection_source: Gemfile | ||
| 370 | last_updated_by: Paul Sernatinger | ||
| 371 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 372 | - name: rack-test | ||
| 373 | description: Rack::Test is a small, simple testing API for Rack apps | ||
| 374 | package_url: https://rubygems.org/rack-test | ||
| 375 | version: 2.1.0 | ||
| 376 | license: MIT | ||
| 377 | open_source: true | ||
| 378 | hosted_saas: false | ||
| 379 | category: Libraries | ||
| 380 | sub_category: RubyGems Packages | ||
| 381 | image_url: https://img.stackshare.io/package/18845/default_db5cfb0d85d9fd8bfb40a863581417a2a57791ab.png | ||
| 382 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 383 | detection_source: Gemfile | ||
| 384 | last_updated_by: Paul Sernatinger | ||
| 385 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 386 | - name: rake | ||
| 387 | description: Rake is a Make-like program implemented in Ruby | ||
| 388 | package_url: https://rubygems.org/rake | ||
| 389 | version: 13.1.0 | ||
| 390 | license: MIT | ||
| 391 | open_source: true | ||
| 392 | hosted_saas: false | ||
| 393 | category: Libraries | ||
| 394 | sub_category: RubyGems Packages | ||
| 395 | image_url: https://img.stackshare.io/package/18812/default_f582e4648f4682adb72d2b201218cda7f8e894ac.png | ||
| 396 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 397 | detection_source: Gemfile | ||
| 398 | last_updated_by: Paul Sernatinger | ||
| 399 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 400 | - name: redcarpet | ||
| 401 | description: A fast, safe and extensible Markdown to | ||
| 402 | package_url: https://rubygems.org/redcarpet | ||
| 403 | version: 3.6.0 | ||
| 404 | license: MIT | ||
| 405 | open_source: true | ||
| 406 | hosted_saas: false | ||
| 407 | category: Libraries | ||
| 408 | sub_category: RubyGems Packages | ||
| 409 | image_url: https://img.stackshare.io/package/18853/default_b87d202e13d56f87c63181fa49bc5e099c9abaac.png | ||
| 410 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 411 | detection_source: Gemfile | ||
| 412 | last_updated_by: Paul Sernatinger | ||
| 413 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 414 | - name: rr | ||
| 415 | description: RR is a test double framework that features a rich selection of double | ||
| 416 | techniques and a terse syntax | ||
| 417 | package_url: https://rubygems.org/rr | ||
| 418 | version: 3.1.0 | ||
| 419 | license: MIT | ||
| 420 | open_source: true | ||
| 421 | hosted_saas: false | ||
| 422 | category: Libraries | ||
| 423 | sub_category: RubyGems Packages | ||
| 424 | image_url: https://img.stackshare.io/package/18915/default_353d3fd998e68372ebd6d80dbb4c0632f387d091.png | ||
| 425 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 426 | detection_source: Gemfile | ||
| 427 | last_updated_by: Thibaut | ||
| 428 | last_updated_on: 2013-10-24 18:25:52.000000000 Z | ||
| 429 | - name: sass | ||
| 430 | description: Ruby Sass is deprecated! See https://sass-lang.com/ruby-sass for details | ||
| 431 | package_url: https://rubygems.org/sass | ||
| 432 | version: 3.7.4 | ||
| 433 | license: MIT | ||
| 434 | open_source: true | ||
| 435 | hosted_saas: false | ||
| 436 | category: Libraries | ||
| 437 | sub_category: RubyGems Packages | ||
| 438 | image_url: https://img.stackshare.io/package/18882/default_b1cb499f3e62fe773109c989f76e3365fbe49857.png | ||
| 439 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 440 | detection_source: Gemfile | ||
| 441 | last_updated_by: Simon Legner | ||
| 442 | last_updated_on: 2024-01-13 21:26:48.000000000 Z | ||
| 443 | - name: selenium-webdriver | ||
| 444 | description: WebDriver is a tool for writing automated tests of websites | ||
| 445 | package_url: https://rubygems.org/selenium-webdriver | ||
| 446 | license: Apache-2.0 | ||
| 447 | open_source: true | ||
| 448 | hosted_saas: false | ||
| 449 | category: Libraries | ||
| 450 | sub_category: RubyGems Packages | ||
| 451 | image_url: https://img.stackshare.io/package/18901/default_f0ad2b1ffbe10fdd866f9f8e5f812599d9e8085b.png | ||
| 452 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 453 | detection_source: Gemfile | ||
| 454 | last_updated_by: Thibaut | ||
| 455 | last_updated_on: 2014-01-26 21:01:54.000000000 Z | ||
| 456 | - name: sinatra-contrib | ||
| 457 | description: Collection of useful Sinatra extensions | ||
| 458 | package_url: https://rubygems.org/sinatra-contrib | ||
| 459 | version: 3.2.0 | ||
| 460 | license: MIT | ||
| 461 | open_source: true | ||
| 462 | hosted_saas: false | ||
| 463 | category: Libraries | ||
| 464 | sub_category: RubyGems Packages | ||
| 465 | image_url: https://img.stackshare.io/package/19010/default_4361ccfae4dee655802081d8182ddcaebd7a2b3f.png | ||
| 466 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 467 | detection_source: Gemfile | ||
| 468 | last_updated_by: Paul Sernatinger | ||
| 469 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 470 | - name: sprockets | ||
| 471 | description: Sprockets is a Rack-based asset packaging system that concatenates | ||
| 472 | and serves JavaScript | ||
| 473 | package_url: https://rubygems.org/sprockets | ||
| 474 | version: 3.7.2 | ||
| 475 | license: MIT | ||
| 476 | open_source: true | ||
| 477 | hosted_saas: false | ||
| 478 | category: Libraries | ||
| 479 | sub_category: RubyGems Packages | ||
| 480 | image_url: https://img.stackshare.io/package/18932/default_36bbb38c1cd5521e90d6e99982778960b00ec515.png | ||
| 481 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 482 | detection_source: Gemfile | ||
| 483 | last_updated_by: Simon Legner | ||
| 484 | last_updated_on: 2024-01-13 21:26:48.000000000 Z | ||
| 485 | - name: sprockets-helpers | ||
| 486 | description: Asset path helpers for Sprockets 2.x &amp; 3.x applications | ||
| 487 | package_url: https://rubygems.org/sprockets-helpers | ||
| 488 | version: 1.4.0 | ||
| 489 | license: MIT | ||
| 490 | open_source: true | ||
| 491 | hosted_saas: false | ||
| 492 | category: Libraries | ||
| 493 | sub_category: RubyGems Packages | ||
| 494 | image_url: https://img.stackshare.io/package/19732/default_be22d39d0c697424d0da2019daf25b87c93b4c6e.png | ||
| 495 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 496 | detection_source: Gemfile | ||
| 497 | last_updated_by: Simon Legner | ||
| 498 | last_updated_on: 2024-01-13 21:26:48.000000000 Z | ||
| 499 | - name: sprockets-sass | ||
| 500 | description: When using Sprockets 2.0 with Sass you will eventually run into a pretty | ||
| 501 | big issue | ||
| 502 | package_url: https://rubygems.org/sprockets-sass | ||
| 503 | license: MIT | ||
| 504 | open_source: true | ||
| 505 | hosted_saas: false | ||
| 506 | category: Libraries | ||
| 507 | sub_category: RubyGems Packages | ||
| 508 | image_url: https://img.stackshare.io/package/19683/default_5a5984fb57132e73bff841a1ebf058577d3c8cb9.png | ||
| 509 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile | ||
| 510 | detection_source: Gemfile | ||
| 511 | last_updated_by: Simon Legner | ||
| 512 | last_updated_on: 2024-01-13 21:26:48.000000000 Z | ||
| 513 | - name: terminal-table | ||
| 514 | description: Simple, feature rich ascii table generation library | ||
| 515 | package_url: https://rubygems.org/terminal-table | ||
| 516 | version: 3.0.2 | ||
| 517 | license: MIT | ||
| 518 | open_source: true | ||
| 519 | hosted_saas: false | ||
| 520 | category: Libraries | ||
| 521 | sub_category: RubyGems Packages | ||
| 522 | image_url: https://img.stackshare.io/package/18923/default_401820e785202ca0018a36ea3e12ee9a92b3efac.png | ||
| 523 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 524 | detection_source: Gemfile | ||
| 525 | last_updated_by: Jasper van Merle | ||
| 526 | last_updated_on: 2019-10-11 15:55:09.000000000 Z | ||
| 527 | - name: thin | ||
| 528 | description: A thin and fast web server | ||
| 529 | package_url: https://rubygems.org/thin | ||
| 530 | version: 1.8.2 | ||
| 531 | license: GPL-2.0+,Ruby | ||
| 532 | open_source: true | ||
| 533 | hosted_saas: false | ||
| 534 | category: Libraries | ||
| 535 | sub_category: RubyGems Packages | ||
| 536 | image_url: https://img.stackshare.io/package/18900/default_f0ad2b1ffbe10fdd866f9f8e5f812599d9e8085b.png | ||
| 537 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 538 | detection_source: Gemfile | ||
| 539 | last_updated_by: Paul Sernatinger | ||
| 540 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 541 | - name: thor | ||
| 542 | description: Thor is a toolkit for building powerful command-line interfaces | ||
| 543 | package_url: https://rubygems.org/thor | ||
| 544 | version: 1.3.0 | ||
| 545 | license: MIT | ||
| 546 | open_source: true | ||
| 547 | hosted_saas: false | ||
| 548 | category: Libraries | ||
| 549 | sub_category: RubyGems Packages | ||
| 550 | image_url: https://img.stackshare.io/package/18827/default_fa0604c1b3b2c413c942b4fa310935704d314c2f.png | ||
| 551 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 552 | detection_source: Gemfile | ||
| 553 | last_updated_by: Paul Sernatinger | ||
| 554 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 555 | - name: tty-pager | ||
| 556 | description: Terminal output paging in a cross-platform way supporting all major | ||
| 557 | ruby interpreters | ||
| 558 | package_url: https://rubygems.org/tty-pager | ||
| 559 | version: 0.14.0 | ||
| 560 | license: MIT | ||
| 561 | open_source: true | ||
| 562 | hosted_saas: false | ||
| 563 | category: Libraries | ||
| 564 | sub_category: RubyGems Packages | ||
| 565 | image_url: https://img.stackshare.io/package/rubygems/image.png | ||
| 566 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 567 | detection_source: Gemfile | ||
| 568 | last_updated_by: Thibaut Courouble | ||
| 569 | last_updated_on: 2016-01-24 15:03:12.000000000 Z | ||
| 570 | - name: typhoeus | ||
| 571 | description: Like a modern code version of the mythical beast with 100 serpent heads | ||
| 572 | package_url: https://rubygems.org/typhoeus | ||
| 573 | version: 1.4.1 | ||
| 574 | license: MIT | ||
| 575 | open_source: true | ||
| 576 | hosted_saas: false | ||
| 577 | category: Libraries | ||
| 578 | sub_category: RubyGems Packages | ||
| 579 | image_url: https://img.stackshare.io/package/18891/default_b7088ec778267614a78a5a472c67252ec1721d10.png | ||
| 580 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 581 | detection_source: Gemfile | ||
| 582 | last_updated_by: Paul Sernatinger | ||
| 583 | last_updated_on: 2022-11-14 14:30:30.000000000 Z | ||
| 584 | - name: yajl-ruby | ||
| 585 | description: Ruby C bindings to the excellent Yajl JSON stream-based parser library | ||
| 586 | package_url: https://rubygems.org/yajl-ruby | ||
| 587 | version: 1.4.3 | ||
| 588 | license: MIT | ||
| 589 | open_source: true | ||
| 590 | hosted_saas: false | ||
| 591 | category: Libraries | ||
| 592 | sub_category: RubyGems Packages | ||
| 593 | image_url: https://img.stackshare.io/package/18895/default_9386886dd1c6c396a11bd4b49732afb9ec444f8d.png | ||
| 594 | detection_source_url: https://github.com/freeCodeCamp/devdocs/blob/main/Gemfile.lock | ||
| 595 | detection_source: Gemfile | ||
| 596 | last_updated_by: Nicholas La Roux | ||
| 597 | last_updated_on: 2024-01-09 12:48:51.000000000 Z | ||