Added package repo statistic extraction script
This commit is contained in:
21
bun.lock
21
bun.lock
@@ -3,7 +3,12 @@
|
||||
"workspaces": {
|
||||
"": {
|
||||
"name": "nix-presentation",
|
||||
"dependencies": {
|
||||
"@types/reveal.js": "^5.2.0",
|
||||
"reveal.js": "^5.2.1",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "^1.2.23",
|
||||
"typescript": "~5.9.3",
|
||||
"vite": "^7.1.7",
|
||||
},
|
||||
@@ -106,8 +111,20 @@
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.3", "", { "os": "win32", "cpu": "x64" }, "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA=="],
|
||||
|
||||
"@types/bun": ["@types/bun@1.2.23", "", { "dependencies": { "bun-types": "1.2.23" } }, "sha512-le8ueOY5b6VKYf19xT3McVbXqLqmxzPXHsQT/q9JHgikJ2X22wyTW3g3ohz2ZMnp7dod6aduIiq8A14Xyimm0A=="],
|
||||
|
||||
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
||||
|
||||
"@types/node": ["@types/node@24.6.2", "", { "dependencies": { "undici-types": "~7.13.0" } }, "sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang=="],
|
||||
|
||||
"@types/react": ["@types/react@19.2.0", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA=="],
|
||||
|
||||
"@types/reveal.js": ["@types/reveal.js@5.2.0", "", {}, "sha512-IHO3Nc0YjI4CKQHeK/2U+6SinAJCC8/xiKCIDQnlFCiq02GMag+WrveIszll033zyv/mtXoCnWmYZITUngE2pA=="],
|
||||
|
||||
"bun-types": ["bun-types@1.2.23", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-R9f0hKAZXgFU3mlrA0YpE/fiDvwV0FT9rORApt2aQVWSuJDzZOyB5QLc0N/4HF57CS8IXJ6+L5E4W1bW6NS2Aw=="],
|
||||
|
||||
"csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
|
||||
|
||||
"esbuild": ["esbuild@0.25.10", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.10", "@esbuild/android-arm": "0.25.10", "@esbuild/android-arm64": "0.25.10", "@esbuild/android-x64": "0.25.10", "@esbuild/darwin-arm64": "0.25.10", "@esbuild/darwin-x64": "0.25.10", "@esbuild/freebsd-arm64": "0.25.10", "@esbuild/freebsd-x64": "0.25.10", "@esbuild/linux-arm": "0.25.10", "@esbuild/linux-arm64": "0.25.10", "@esbuild/linux-ia32": "0.25.10", "@esbuild/linux-loong64": "0.25.10", "@esbuild/linux-mips64el": "0.25.10", "@esbuild/linux-ppc64": "0.25.10", "@esbuild/linux-riscv64": "0.25.10", "@esbuild/linux-s390x": "0.25.10", "@esbuild/linux-x64": "0.25.10", "@esbuild/netbsd-arm64": "0.25.10", "@esbuild/netbsd-x64": "0.25.10", "@esbuild/openbsd-arm64": "0.25.10", "@esbuild/openbsd-x64": "0.25.10", "@esbuild/openharmony-arm64": "0.25.10", "@esbuild/sunos-x64": "0.25.10", "@esbuild/win32-arm64": "0.25.10", "@esbuild/win32-ia32": "0.25.10", "@esbuild/win32-x64": "0.25.10" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ=="],
|
||||
|
||||
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
||||
@@ -122,6 +139,8 @@
|
||||
|
||||
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
||||
|
||||
"reveal.js": ["reveal.js@5.2.1", "", {}, "sha512-r7//6mIM5p34hFiDMvYfXgyjXqGRta+/psd9YtytsgRlrpRzFv4RbH76TXd2qD+7ZPZEbpBDhdRhJaFgfQ7zNQ=="],
|
||||
|
||||
"rollup": ["rollup@4.52.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.52.3", "@rollup/rollup-android-arm64": "4.52.3", "@rollup/rollup-darwin-arm64": "4.52.3", "@rollup/rollup-darwin-x64": "4.52.3", "@rollup/rollup-freebsd-arm64": "4.52.3", "@rollup/rollup-freebsd-x64": "4.52.3", "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", "@rollup/rollup-linux-arm-musleabihf": "4.52.3", "@rollup/rollup-linux-arm64-gnu": "4.52.3", "@rollup/rollup-linux-arm64-musl": "4.52.3", "@rollup/rollup-linux-loong64-gnu": "4.52.3", "@rollup/rollup-linux-ppc64-gnu": "4.52.3", "@rollup/rollup-linux-riscv64-gnu": "4.52.3", "@rollup/rollup-linux-riscv64-musl": "4.52.3", "@rollup/rollup-linux-s390x-gnu": "4.52.3", "@rollup/rollup-linux-x64-gnu": "4.52.3", "@rollup/rollup-linux-x64-musl": "4.52.3", "@rollup/rollup-openharmony-arm64": "4.52.3", "@rollup/rollup-win32-arm64-msvc": "4.52.3", "@rollup/rollup-win32-ia32-msvc": "4.52.3", "@rollup/rollup-win32-x64-gnu": "4.52.3", "@rollup/rollup-win32-x64-msvc": "4.52.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A=="],
|
||||
|
||||
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||
@@ -130,6 +149,8 @@
|
||||
|
||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||
|
||||
"undici-types": ["undici-types@7.13.0", "", {}, "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ=="],
|
||||
|
||||
"vite": ["vite@7.1.8", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-oBXvfSHEOL8jF+R9Am7h59Up07kVVGH1NrFGFoEG6bPDZP3tGpQhvkBpy5x7U6+E6wZCu9OihsWgJqDbQIm8LQ=="],
|
||||
}
|
||||
}
|
||||
|
||||
11
devenv.nix
11
devenv.nix
@@ -9,6 +9,17 @@
|
||||
|
||||
# https://devenv.sh/languages/
|
||||
languages = {
|
||||
python = {
|
||||
enable = true;
|
||||
venv = {
|
||||
enable = true;
|
||||
requirements = ''
|
||||
beautifulsoup4==4.14.2
|
||||
soupsieve==2.8
|
||||
typing_extensions==4.15.0
|
||||
'';
|
||||
};
|
||||
};
|
||||
javascript = {
|
||||
enable = true;
|
||||
bun = {
|
||||
|
||||
101
index.html
101
index.html
@@ -1,13 +1,98 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>nix-presentation</title>
|
||||
<link rel="stylesheet" href="/node_modules/reveal.js/dist/reveal.css" />
|
||||
<link rel="stylesheet" href="/node_modules/reveal.js/dist/theme/black.css" />
|
||||
<link rel="stylesheet" href="/node_modules/reveal.js/plugin/highlight/monokai.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
<div class="reveal">
|
||||
<div class="slides">
|
||||
<section>Nick's guide to Nix</section>
|
||||
<section data-auto-animate>
|
||||
<pre
|
||||
data-id="code-animation"
|
||||
><code data-trim data-line-numbers class="language-nix">
|
||||
{
|
||||
description = "System configuration";
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
<section data-auto-animate>
|
||||
<pre
|
||||
data-id="code-animation"
|
||||
><code data-trim data-line-numbers class="language-nix">
|
||||
{
|
||||
description = "System configuration";
|
||||
|
||||
inputs = {
|
||||
|
||||
};
|
||||
|
||||
outputs = { ... }: {
|
||||
|
||||
};
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
<section data-auto-animate>
|
||||
<pre
|
||||
data-id="code-animation"
|
||||
><code data-trim data-line-numbers class="language-nix">
|
||||
{
|
||||
description = "System configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { ... }: {
|
||||
|
||||
};
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
<section data-auto-animate>
|
||||
<pre
|
||||
data-id="code-animation"
|
||||
><code data-trim data-line-numbers class="language-nix">
|
||||
{
|
||||
description = "System configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, ... }@inputs: {
|
||||
|
||||
};
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
<section data-auto-animate>
|
||||
<pre
|
||||
data-id="code-animation"
|
||||
><code data-trim data-line-numbers class="language-nix">
|
||||
{
|
||||
description = "System configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, ... }@inputs: {
|
||||
nixosConfigurations.my-nixos-system = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module" src="src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,7 +9,12 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "^1.2.23",
|
||||
"typescript": "~5.9.3",
|
||||
"vite": "^7.1.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/reveal.js": "^5.2.0",
|
||||
"reveal.js": "^5.2.1"
|
||||
}
|
||||
}
|
||||
|
||||
310
public/packages.csv
Normal file
310
public/packages.csv
Normal file
@@ -0,0 +1,310 @@
|
||||
Name,Packages,Fresh Packages
|
||||
Adélie Linux current,2279,2255
|
||||
AIX Open Source Packages,1011,984
|
||||
AIX Toolbox,607,429
|
||||
AlmaLinux 8,2632,2501
|
||||
AlmaLinux 9,2468,2349
|
||||
Alpine Linux 3.15,5595,5322
|
||||
Alpine Linux 3.16,6044,5764
|
||||
Alpine Linux 3.17,6436,6156
|
||||
Alpine Linux 3.18,6673,6381
|
||||
Alpine Linux 3.19,7404,7082
|
||||
Alpine Linux 3.20,7740,7396
|
||||
Alpine Linux 3.21,8104,7709
|
||||
Alpine Linux 3.22,8419,7989
|
||||
Alpine Linux Edge,11974,11190
|
||||
ALT Linux p9,17701,14547
|
||||
ALT Linux p10,18294,15139
|
||||
ALT Linux p11,19135,15893
|
||||
ALT Sisyphus,20075,16620
|
||||
Amazon Linux 1,2040,1973
|
||||
Amazon Linux 2,2615,2573
|
||||
AOSC,5395,4906
|
||||
Apertis v2023,5535,4390
|
||||
Apertis v2024,5816,4653
|
||||
Apertis v2025,5821,4656
|
||||
Apertis v2026 Development,6711,5313
|
||||
Arch Linux,11641,11163
|
||||
Arch Testing,224,214
|
||||
Arch Linux ARM aarch64,10743,10230
|
||||
ArchPOWER powerpc,3854,3670
|
||||
ArchPOWER powerpc64le,3977,3781
|
||||
ArchPOWER riscv64,3825,3635
|
||||
AUR,79625,40268
|
||||
Artix,6423,5472
|
||||
Artix Testing,88,86
|
||||
BackBox 6,19,13
|
||||
BackBox 7,26,19
|
||||
Baulk,69,63
|
||||
BioArch,5184,5006
|
||||
BlackArch,4534,2584
|
||||
Calculate,54,18
|
||||
Carbs Linux,340,334
|
||||
CentOS 6,2130,2038
|
||||
CentOS 7,2695,2662
|
||||
CentOS 8,2633,2531
|
||||
CentOS Stream 8,2786,2620
|
||||
CentOS Stream 9,2457,2373
|
||||
CentOS Stream 10,2126,2105
|
||||
Chimera Linux,2933,2845
|
||||
Chocolatey,3330,3330
|
||||
Chromebrew,2332,2195
|
||||
ConanCenter,1848,1473
|
||||
CPAN,9694,9694
|
||||
MetaCPAN,9904,9904
|
||||
CRAN,22456,22456
|
||||
crates.io,4698,4698
|
||||
CRUX 3.6,1801,1756
|
||||
CRUX 3.7,2110,2064
|
||||
CRUX 3.8,2141,2090
|
||||
Cygwin,3203,3114
|
||||
Deb Multimedia Unstable,434,362
|
||||
Debian 11,31013,23619
|
||||
Debian 12,34450,25979
|
||||
Debian 12 Backports,957,667
|
||||
Debian 12 Backports sloppy,4,2
|
||||
Debian 13,37690,28389
|
||||
Debian 13 Backports,124,97
|
||||
Debian 14,37748,28347
|
||||
Debian Unstable,39167,29289
|
||||
Debian Experimental,986,709
|
||||
deepin 20,28824,21797
|
||||
deepin 23,10970,9142
|
||||
Devuan 4.0,31025,23624
|
||||
Devuan Unstable,39138,29269
|
||||
distri,534,396
|
||||
ELRepo el8,89,9
|
||||
ELRepo el8 Testing,6,1
|
||||
ELRepo el9,86,9
|
||||
ELRepo el9 Testing,9,1
|
||||
Endless OS 4.0,116,80
|
||||
Endless OS master,100,68
|
||||
EPEL 6,5893,4995
|
||||
EPEL 7,7217,6367
|
||||
EPEL 8,5167,4853
|
||||
EPEL 9,7867,7359
|
||||
EPEL 10,6182,5853
|
||||
EuroLinux 8,2690,2583
|
||||
EuroLinux 9,2401,2330
|
||||
Exherbo,6597,6351
|
||||
F-Droid,3888,430
|
||||
Fedora 37,23796,21011
|
||||
Fedora 38,24040,21300
|
||||
Fedora 39,23997,21555
|
||||
Fedora 40,24344,21907
|
||||
Fedora 41,24324,21912
|
||||
Fedora 42,24135,21851
|
||||
Fedora Rawhide,23109,21096
|
||||
FreeBSD Ports,31922,26992
|
||||
Gentoo,17794,15384
|
||||
Gentoo overlay GURU,1897,1597
|
||||
Gentoo overlay Pentoo,816,699
|
||||
Gentoo Science overlay,552,393
|
||||
glaucus,119,116
|
||||
GNU Elpa,478,478
|
||||
GNU Guix,28668,21435
|
||||
GoboLinux,3659,3246
|
||||
Hackage,18232,18232
|
||||
HaikuPorts master,3366,2922
|
||||
Homebrew,7675,6788
|
||||
Homebrew Casks,2015,2015
|
||||
Homebrew tap Brewsci/bio,316,241
|
||||
HP-UX 11.31,551,528
|
||||
IBM i,260,228
|
||||
IzzyOnDroid,1273,390
|
||||
Kali Linux Bleeding Edge,84,48
|
||||
Kali Linux Rolling,38416,28771
|
||||
KaOS,1758,1726
|
||||
KaOS Build,35,33
|
||||
KDE neon Testing,777,694
|
||||
KDE neon Unstable,818,721
|
||||
KDE neon User,582,547
|
||||
KDE neon User LTS,512,479
|
||||
KISS Community - main,151,151
|
||||
KISS Community - community,386,369
|
||||
Libregamewiki,649,388
|
||||
LiGurOS stable,19403,16794
|
||||
LiGurOS develop,19400,16758
|
||||
LuaRocks,351,351
|
||||
MacPorts,19427,17422
|
||||
Mageia 8,14158,13743
|
||||
Mageia 9,14999,14595
|
||||
Mageia cauldron,16461,16046
|
||||
Manjaro Stable,11958,11287
|
||||
Manjaro Testing,11968,11300
|
||||
Manjaro Unstable,11970,11301
|
||||
MELPA,5962,5962
|
||||
MELPA Stable,3234,3234
|
||||
MidnightBSD mports,5994,5238
|
||||
MPR,781,633
|
||||
MSYS2 clang64,2761,2685
|
||||
MSYS2 clangarm64,2684,2612
|
||||
MSYS2 mingw,2602,2525
|
||||
MSYS2 msys2,545,514
|
||||
MSYS2 ucrt64,2829,2749
|
||||
MX Linux MX-21,651,474
|
||||
MX Linux MX-21 Testing,504,481
|
||||
MX Linux MX-23,428,267
|
||||
MX Linux MX-23 Testing,352,333
|
||||
nixpkgs stable 22.11,79668,63789
|
||||
nixpkgs stable 23.05,83116,66820
|
||||
nixpkgs stable 23.11,88097,71081
|
||||
nixpkgs stable 24.05,96263,78426
|
||||
nixpkgs stable 24.11,100160,80885
|
||||
nixpkgs stable 25.05,105443,84020
|
||||
nixpkgs unstable,107989,85677
|
||||
NOIR Linux Main,238,235
|
||||
Npackd Stable,889,621
|
||||
Npackd Stable64,292,239
|
||||
Npackd Unstable,7,5
|
||||
opam,1183,1183
|
||||
OpenBSD Ports,9757,8838
|
||||
openEuler 20.03-LTS-SP3,3305,3222
|
||||
openEuler 20.03-LTS-SP4,3342,3256
|
||||
openEuler 22.03-LTS,4155,4014
|
||||
openEuler 22.03-LTS-SP1,4187,4034
|
||||
openEuler 22.03-LTS-SP2,4194,4042
|
||||
openEuler 22.03-LTS-SP3,4227,4063
|
||||
openEuler 22.03-LTS-SP4,4237,4061
|
||||
openEuler 23.03,4206,4055
|
||||
openEuler 23.09,4494,4226
|
||||
openEuler 24.03-LTS,4746,4462
|
||||
openEuler 24.03-LTS-SP1,4767,4476
|
||||
openEuler 24.09,4747,4458
|
||||
openEuler 25.03,4863,4572
|
||||
OpenIndiana packages,2555,2452
|
||||
openmamba,5421,5207
|
||||
OpenMandriva 4.3,11798,11475
|
||||
OpenMandriva 5.0,14134,13769
|
||||
OpenMandriva 6.0,14956,14534
|
||||
OpenMandriva Rolling,14960,14538
|
||||
OpenMandriva Cooker,15077,14647
|
||||
OpenPKG,2329,1876
|
||||
openSUSE Leap 15.4,13179,11762
|
||||
openSUSE Leap 15.5,14300,12765
|
||||
openSUSE Leap 15.6,14492,12921
|
||||
openSUSE Tumbleweed,15866,14129
|
||||
openSUSE Education Tumbleweed,343,239
|
||||
openSUSE Emulators Tumbleweed,140,118
|
||||
openSUSE games Tumbleweed,856,756
|
||||
openSUSE graphics Tumbleweed,290,257
|
||||
openSUSE hardware:sdr Tumbleweed,168,129
|
||||
openSUSE multimedia:apps Tumbleweed,345,321
|
||||
openSUSE multimedia:libs Tumbleweed,312,289
|
||||
openSUSE network Tumbleweed,248,217
|
||||
openSUSE science Tumbleweed,895,677
|
||||
openSUSE security Tumbleweed,278,231
|
||||
openSUSE server:irc Tumbleweed,43,40
|
||||
openSUSE shells Tumbleweed,30,27
|
||||
Open VSX,352,352
|
||||
OpenWrt 23.05 x86_64,1688,1281
|
||||
OpenWrt 24.10 x86_64,1757,1324
|
||||
OS4Depot,908,908
|
||||
PackMan openSUSE Tumbleweed,330,275
|
||||
PackMan SLE 12,252,227
|
||||
PackMan SLE 15,73,59
|
||||
pacstall,787,595
|
||||
Parabola,12160,11507
|
||||
Parabola Testing,19,6
|
||||
Pardus 21,31108,23668
|
||||
Pardus 23,123,66
|
||||
Parrot,35081,26395
|
||||
PCLinuxOS,11697,10629
|
||||
Pisi Linux,3101,2995
|
||||
Pisi Linux Contrib,133,108
|
||||
pkgsrc current,17637,15344
|
||||
PLD Linux,12836,11136
|
||||
postmarketOS 22.12,203,45
|
||||
postmarketOS 23.06,199,42
|
||||
postmarketOS 23.12,224,35
|
||||
postmarketOS 24.06,590,39
|
||||
postmarketOS 24.12,578,35
|
||||
postmarketOS master,785,36
|
||||
PTXdist,949,885
|
||||
PureOS amber,28291,21507
|
||||
PureOS byzantium,30645,23446
|
||||
PureOS landing,37379,28215
|
||||
PyPI,20874,20874
|
||||
Raspbian Oldstable,34606,25500
|
||||
Raspbian Stable,38599,28142
|
||||
Raspbian Testing,42870,31226
|
||||
Ravenports,3475,3456
|
||||
ReactOS rapps,188,188
|
||||
RebornOS,364,230
|
||||
Rocky Linux 8,2789,2611
|
||||
Rocky Linux 9,2496,2362
|
||||
Rosa 2021.1,19613,18735
|
||||
Rosa 13,20260,19272
|
||||
RPM Fusion EL 6,71,62
|
||||
RPM Fusion EL 7,125,110
|
||||
RPM Fusion EL 8,106,87
|
||||
RPM Fusion EL 9,60,41
|
||||
RPM Fusion Fedora 39,334,282
|
||||
RPM Fusion Fedora 40,324,273
|
||||
RPM Fusion Fedora 41,318,266
|
||||
RPM Fusion Fedora Rawhide,297,247
|
||||
RPM Sphere,2867,1961
|
||||
RubyGems,4282,4282
|
||||
SageMath stable,369,336
|
||||
SageMath development,367,334
|
||||
Salix 14.2,429,390
|
||||
Scientific Linux 7.x,2906,2745
|
||||
Software Collections,254,248
|
||||
Scoop,4186,3093
|
||||
Side Linux,921,912
|
||||
Siduction,289,35
|
||||
Siduction Experimental,15,6
|
||||
SlackBuilds,9706,8646
|
||||
Slackware 14.2,1315,1284
|
||||
Slackware 15.0,1674,1636
|
||||
Slackware current,1777,1744
|
||||
Slackware64 14.2,1307,1279
|
||||
Slackware64 15.0,1667,1632
|
||||
Slackware64 current,1776,1742
|
||||
Slackwarearm 14.2,1299,1270
|
||||
Slackwarearm 15.0,1636,1607
|
||||
SliTaz Cooking,3702,3229
|
||||
SliTaz Current,779,698
|
||||
SliTaz Next,3456,3162
|
||||
Solus,4613,4498
|
||||
Spack,8484,7086
|
||||
Stackage LTS Haskell,3409,3409
|
||||
Stackage Nightly,3260,3260
|
||||
stal/IX,1105,1076
|
||||
stal/IX dev,1106,1077
|
||||
T2 SDE,6086,5525
|
||||
Tails stable,3,2
|
||||
Tails devel,3,2
|
||||
Termux,2599,2431
|
||||
Termux User Repository,265,212
|
||||
Terra 39,353,270
|
||||
Terra 40,468,351
|
||||
Terra 41,500,335
|
||||
Terra rawhide,511,349
|
||||
Tin Can Linux,80,78
|
||||
Trisquel 10.0,29817,22577
|
||||
Trisquel 10.0 backports,68,64
|
||||
Trisquel 11.0,33260,24925
|
||||
Trisquel 11.0 backports,60,54
|
||||
UBI 8,884,826
|
||||
Ubuntu 14.04,21435,15857
|
||||
Ubuntu 14.04 Backports,108,90
|
||||
Ubuntu 16.04,24908,18589
|
||||
Ubuntu 16.04 Backports,24,21
|
||||
Ubuntu 18.04,28653,21029
|
||||
Ubuntu 18.04 Backports,18,15
|
||||
Ubuntu 20.04,30756,22834
|
||||
Ubuntu 20.04 Backports,21,19
|
||||
Ubuntu 22.04,34140,25188
|
||||
Ubuntu 22.04 Backports,21,20
|
||||
Ubuntu 24.04,36970,27560
|
||||
Ubuntu 24.04 Backports,18,17
|
||||
Ubuntu 25.04,39087,29140
|
||||
Ubuntu 25.04 Backports,3,3
|
||||
Ubuntu 25.10,39153,29111
|
||||
Ubuntu 25.10 Proposed,272,207
|
||||
Vcpkg,2481,1827
|
||||
Void Linux x86_64,8919,8590
|
||||
WakeMeOps,188,179
|
||||
Wikidata,4582,4501
|
||||
YACP,3719,3014
|
||||
|
16538
public/packages_table.html
Normal file
16538
public/packages_table.html
Normal file
File diff suppressed because it is too large
Load Diff
43
public/stats.py
Normal file
43
public/stats.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import csv
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
# Load your HTML (replace this with reading from a file or requests.get().text)
|
||||
with open("packages_table.html", "r", encoding="utf-8") as f:
|
||||
html = f.read()
|
||||
|
||||
soup = BeautifulSoup(html, "html.parser")
|
||||
|
||||
rows: list[tuple[str, str, str]] = []
|
||||
|
||||
for tr in soup.select("tbody > tr"):
|
||||
# 1️⃣ First column: repo name
|
||||
name_tag = tr.select_one("th a")
|
||||
name = name_tag.get_text(strip=True) if name_tag else ""
|
||||
|
||||
# 2️⃣ Second and third columns: prefer span[title], fall back to span text
|
||||
td_tags = tr.select("td")
|
||||
if len(td_tags) >= 2:
|
||||
|
||||
def extract_value(td):
|
||||
span = td.select_one("span")
|
||||
if span:
|
||||
# Prefer title attribute, else text content
|
||||
return span.get("title") or span.get_text(strip=True)
|
||||
# Sometimes there's no <span>, just text inside <a> or <td>
|
||||
return td.get_text(strip=True)
|
||||
|
||||
packages = extract_value(td_tags[0])
|
||||
fresh_packages = extract_value(td_tags[1])
|
||||
else:
|
||||
packages = fresh_packages = ""
|
||||
|
||||
rows.append((name, packages, fresh_packages))
|
||||
|
||||
# Write to CSV
|
||||
with open("packages.csv", "w", newline="", encoding="utf-8") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(["Name", "Packages", "Fresh Packages"])
|
||||
writer.writerows(rows)
|
||||
|
||||
print("✅ Extracted", len(rows), "rows into packages.csv")
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
29
src/main.ts
29
src/main.ts
@@ -1,24 +1,9 @@
|
||||
import './style.css'
|
||||
import typescriptLogo from './typescript.svg'
|
||||
import viteLogo from '/vite.svg'
|
||||
import { setupCounter } from './counter.ts'
|
||||
import Reveal from 'reveal.js'
|
||||
import Markdown from 'reveal.js/plugin/markdown/markdown.esm.js'
|
||||
import RevealHighlight from 'reveal.js/plugin/highlight/highlight.esm.js'
|
||||
|
||||
document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
|
||||
<div>
|
||||
<a href="https://vite.dev" target="_blank">
|
||||
<img src="${viteLogo}" class="logo" alt="Vite logo" />
|
||||
</a>
|
||||
<a href="https://www.typescriptlang.org/" target="_blank">
|
||||
<img src="${typescriptLogo}" class="logo vanilla" alt="TypeScript logo" />
|
||||
</a>
|
||||
<h1>Vite + TypeScript</h1>
|
||||
<div class="card">
|
||||
<button id="counter" type="button"></button>
|
||||
</div>
|
||||
<p class="read-the-docs">
|
||||
Click on the Vite and TypeScript logos to learn more
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
let deck = new Reveal({
|
||||
plugins: [Markdown, RevealHighlight],
|
||||
})
|
||||
|
||||
setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
|
||||
deck.initialize()
|
||||
|
||||
Reference in New Issue
Block a user