diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml new file mode 100644 index 0000000..550040a --- /dev/null +++ b/.github/workflows/readme.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: Generate READMEs + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + DENO_DIR: deno_cache + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Git Checkout Deno Module + uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + - name: Set up Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.x + - name: Cache Deno dependencies + uses: actions/cache@v3 + with: + key: ${{ hashFiles('resources/generate/deno.lock') }} + path: ${{ env.DENO_DIR }} + - name: Update READMEs + working-directory: resources/generate + run: ./main.ts + - name: Push changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "chore: re-generate README sections" diff --git a/.gitignore b/.gitignore index c2658d7..c680308 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +deno_cache/ node_modules/ diff --git a/README.md b/README.md index 5799134..3d1ca5f 100644 --- a/README.md +++ b/README.md @@ -894,7 +894,10 @@ the [style guide](https://github.com/catppuccin/catppuccin/blob/main/docs/style- Catppuccin is available for various apps and in different formats. Here is a list of them: -
👾 Code Editors + + +
+👾 Code Editors & IDEs - [Binary Ninja](https://github.com/catppuccin/binary-ninja) - [Cutter](https://github.com/catppuccin/cutter) @@ -902,7 +905,6 @@ Catppuccin is available for various apps and in different formats. Here is a lis - [Geany](https://github.com/catppuccin/geany) - [Gedit](https://github.com/catppuccin/gedit) - [Helix](https://github.com/catppuccin/helix) -- [Insomnia](https://github.com/catppuccin/insomnia) - [JetBrains](https://github.com/catppuccin/jetbrains) - [Kakoune](https://github.com/catppuccin/kakoune) - [Lapce](https://github.com/catppuccin/lapce) @@ -910,213 +912,206 @@ Catppuccin is available for various apps and in different formats. Here is a lis - [Neovim](https://github.com/catppuccin/nvim) - [Notepad++](https://github.com/catppuccin/notepad-plus-plus) - [Nova](https://github.com/catppuccin/nova) -- [Spyder](https://github.com/catppuccin/spyder) +- [spyder](https://github.com/catppuccin/spyder) - [Sublime Text](https://github.com/catppuccin/sublime-text) -- [Unreal Engine](https://github.com/catppuccin/unreal-engine) - [Vim](https://github.com/catppuccin/vim) -- [Visual Studio Code](https://github.com/catppuccin/vscode) - [Visual Studio](https://github.com/catppuccin/visual-studio) +- [Visual Studio Code](https://github.com/catppuccin/vscode) - [Xcode](https://github.com/catppuccin/xcode) - [Xed](https://github.com/catppuccin/xed)
- -
💭 Development +
+💭 Development tools - [CodeMirror](https://github.com/catppuccin/codemirror) - [egui](https://github.com/catppuccin/egui) +- [Highlight.js](https://github.com/catppuccin/highlightjs) +- [Insomnia](https://github.com/catppuccin/insomnia) - [Matplotlib](https://github.com/catppuccin/matplotlib) - [mdBook](https://github.com/catppuccin/mdBook) -- [Palette](https://github.com/catppuccin/palette) - [Tailwind CSS](https://github.com/catppuccin/tailwindcss) -- [Template](https://github.com/catppuccin/template) -- [Toolbox](https://github.com/catppuccin/toolbox) +- [Unreal Engine](https://github.com/catppuccin/unreal-engine) +- [Vercel](https://github.com/catppuccin/vercel)
+
+📚 Libraries -
🔧 System +- [Go](https://github.com/catppuccin/go) +- [Pantone](https://github.com/catppuccin/pantone) +- [Python](https://github.com/catppuccin/python) +- [Rust](https://github.com/catppuccin/rust) +- [UI](https://github.com/catppuccin/ui) + +
+
+🐚 CLI tools -- [Alfred](https://github.com/catppuccin/alfred) - [bat](https://github.com/catppuccin/bat) -- [bemenu](https://github.com/catppuccin/bemenu) - [bottom](https://github.com/catppuccin/bottom) -- [btop](https://github.com/catppuccin/btop) -- [CAVA](https://github.com/catppuccin/cava) +- [Btop++](https://github.com/catppuccin/btop) +- [C.A.V.A.](https://github.com/catppuccin/cava) +- [Fish](https://github.com/catppuccin/fish) +- [fzf](https://github.com/catppuccin/fzf) +- [GitUI](https://github.com/catppuccin/gitui) +- [Glamour](https://github.com/catppuccin/glamour) +- [k9s](https://github.com/catppuccin/k9s) +- [Lazygit](https://github.com/catppuccin/lazygit) +- [Midning Commander](https://github.com/catppuccin/mc) +- [NeoMutt](https://github.com/catppuccin/neomutt) +- [Newsboat](https://github.com/catppuccin/newsboat) +- [sc-im](https://github.com/catppuccin/sc-im) +- [tmux](https://github.com/catppuccin/tmux) +- [Zellij](https://github.com/catppuccin/zellij) +- [zsh-syntax-highlighting](https://github.com/catppuccin/zsh-syntax-highlighting) + +
+
+🌱 Terminals + +- [Alacritty](https://github.com/catppuccin/alacritty) +- [Black Box](https://github.com/catppuccin/blackbox) +- [Blink](https://github.com/catppuccin/blink) +- [Contour](https://github.com/catppuccin/contour) +- [CRT: cool-retro-term](https://github.com/catppuccin/crt) +- [foot](https://github.com/catppuccin/foot) +- [GNOME Terminal](https://github.com/catppuccin/gnome-terminal) +- [Hyper](https://github.com/catppuccin/hyper) +- [iTerm2](https://github.com/catppuccin/iterm) +- [Kitty](https://github.com/catppuccin/kitty) +- [Konsole](https://github.com/catppuccin/konsole) +- [QTerminal](https://github.com/catppuccin/qterminal) +- [st](https://github.com/catppuccin/st) +- [Tabby](https://github.com/catppuccin/tabby) +- [Terminal.app](https://github.com/catppuccin/Terminal.app) +- [Terminator](https://github.com/catppuccin/terminator) +- [Termux](https://github.com/catppuccin/termux) +- [Tilix](https://github.com/catppuccin/tilix) +- [tym](https://github.com/catppuccin/tym) +- [Urxvt](https://github.com/catppuccin/urxvt) +- [Warp](https://github.com/catppuccin/warp) +- [WezTerm](https://github.com/catppuccin/wezterm) +- [Windows Terminal](https://github.com/catppuccin/windows-terminal) +- [Xfce4 Terminal](https://github.com/catppuccin/xfce4-terminal) +- [Zutty](https://github.com/catppuccin/zutty) + +
+
+🔧 System + +- [Base16](https://github.com/catppuccin/base16) - [Conky](https://github.com/catppuccin/conky) - [Cursors](https://github.com/catppuccin/cursors) -- [Dmenu](https://github.com/catppuccin/dmenu) +- [dmenu](https://github.com/catppuccin/dmenu) - [Dunst](https://github.com/catppuccin/dunst) +- [fcitx5](https://github.com/catppuccin/fcitx5) - [FlorisBoard](https://github.com/catppuccin/floris-board) -- [fzf](https://github.com/catppuccin/fzf) -- [Glamour](https://github.com/catppuccin/glamour) - [GRUB](https://github.com/catppuccin/grub) - [GTK](https://github.com/catppuccin/gtk) - [Hyprland](https://github.com/catppuccin/hyprland) -- [i3 & sway](https://github.com/catppuccin/i3) +- [i3/sway](https://github.com/catppuccin/i3) - [KDE](https://github.com/catppuccin/kde) - [Kvantum](https://github.com/catppuccin/Kvantum) -- [LXQt](https://github.com/catppuccin/lxqt) +- [LxQT](https://github.com/catppuccin/lxqt) - [Mako](https://github.com/catppuccin/mako) -- [Midnight Commander](https://github.com/catppuccin/mc) - [Openbox](https://github.com/catppuccin/openbox) - [Papirus Folders](https://github.com/catppuccin/papirus-folders) - [Plank](https://github.com/catppuccin/plank) - [Plymouth](https://github.com/catppuccin/plymouth) - [Polybar](https://github.com/catppuccin/polybar) - [qt5ct](https://github.com/catppuccin/qt5ct) -- [Regolith](https://github.com/catppuccin/regolith) +- [Rboard](https://github.com/catppuccin/rboard) +- [Regolith Desktop](https://github.com/catppuccin/regolith) - [Rofi](https://github.com/catppuccin/rofi) - [SDDM](https://github.com/catppuccin/sddm) -- [TTY](https://github.com/catppuccin/tty) +- [tty](https://github.com/catppuccin/tty) - [Ulauncher](https://github.com/catppuccin/ulauncher) -- [Wallpapers](https://github.com/catppuccin/wallpapers) -- [Waybar](https://github.com/catppuccin/waybar) +- [waybar](https://github.com/catppuccin/waybar) +- [Windows Files](https://github.com/catppuccin/windows-files) - [Xresources](https://github.com/catppuccin/xresources) -- [Rboard](https://github.com/catppuccin/rboard) - -
- -
🐚 Shells - -- [Fish](https://github.com/catppuccin/fish) -- [zsh-syntax-highlighting](https://github.com/catppuccin/zsh-syntax-highlighting) - -
- -
🤓 Productivity - -- [Bento](https://github.com/catppuccin/bento) -- [Codeberg](https://github.com/catppuccin/codeberg) -- [Foliate](https://github.com/catppuccin/foliate) -- [GitHub](https://github.com/catppuccin/github) -- [GitUI](https://github.com/catppuccin/gitui) -- [k9s](https://github.com/catppuccin/k9s) -- [Lazygit](https://github.com/catppuccin/lazygit) -- [NeoMutt](https://github.com/catppuccin/neomutt) -- [OBS](https://github.com/catppuccin/obs) -- [Proton](https://github.com/catppuccin/proton) -- [qBittorrent](https://github.com/catppuccin/qbittorrent) -- [sc-im](https://github.com/catppuccin/sc-im) -- [ShareX](https://github.com/catppuccin/sharex) -- [SolveSpace](https://github.com/catppuccin/solvespace) -- [Sumatra PDF](https://github.com/catppuccin/sumatra-pdf) -- [Tutanota](https://github.com/catppuccin/tutanota) -- [Vercel](https://github.com/catppuccin/vercel) -- [Wikiwand](https://github.com/catppuccin/wikiwand) -- [Zathura](https://github.com/catppuccin/zathura) - -
- -
🌈 Leisure - -- [BitBurner](https://github.com/catppuccin/bitburner) -- [Blockbench](https://github.com/catppuccin/blockbench) -- [Dwarf Fortress](https://github.com/catppuccin/dwarf-fortress) -- [Home Assistant](https://github.com/catppuccin/home-assistant) -- [Last.fm](https://github.com/catppuccin/lastfm) -- [Minecraft](https://github.com/catppuccin/minecraft) -- [Modrinth](https://github.com/catppuccin/modrinth) -- [Newsboat](https://github.com/catppuccin/newsboat) -- [Prism Launcher](https://github.com/catppuccin/prismlauncher) -- [PyRadio](https://github.com/catppuccin/pyradio) -- [Spicetify](https://github.com/catppuccin/spicetify) -- [Spotify Player](https://github.com/catppuccin/spotify-player) -- [Spotify-TUI](https://github.com/catppuccin/spotify-tui) -- [Stable Diffusion Web UI](https://github.com/catppuccin/stable-diffusion-web-ui) -- [Steam](https://github.com/catppuccin/steam) -- [ULTRAKILL](https://github.com/catppuccin/ultrakill) -- [YouTube Music](https://github.com/catppuccin/youtubemusic)
+
+🏄 Browsers -
🖥️ Browsers - -- [Chrome](https://github.com/catppuccin/chrome) - [Firefox](https://github.com/catppuccin/firefox) -- [Vivaldi](https://github.com/catppuccin/vivaldi) +- [Google Chrome](https://github.com/catppuccin/chrome) - [qutebrowser](https://github.com/catppuccin/qutebrowser) +- [Vivaldi](https://github.com/catppuccin/vivaldi)
- -
🔎 Search engines - -- [Brave Search](https://github.com/catppuccin/brave-search) -- [DuckDuckGo](https://github.com/catppuccin/duckduckgo) -- [Whoogle](https://github.com/catppuccin/whoogle) -- [SearXNG](https://github.com/catppuccin/searxng) -- [Startpage](https://github.com/catppuccin/startpage) - -
- -
🧩 Extensions +
+🧩 Browser Extensions - [Dark Reader](https://github.com/catppuccin/dark-reader) +- [Nighttab](https://github.com/catppuccin/nighttab) - [Noir](https://github.com/catppuccin/noir) - [Sidebery](https://github.com/catppuccin/sidebery) - [Vimium](https://github.com/catppuccin/vimium) -- [Nighttab](https://github.com/catppuccin/nighttab)
+
+🔎 Search Engines + +- [SearXNG](https://github.com/catppuccin/SearXNG) +- [Startpage](https://github.com/catppuccin/startpage) +- [Whoogle](https://github.com/catppuccin/whoogle) -
💬 Messaging +
+
+💬 Messaging -- [Aliucord](https://github.com/catppuccin/Aliucord) (Discord on Android) +- [Aliucord](https://github.com/catppuccin/aliucord) - [Cinny](https://github.com/catppuccin/cinny) - [Discord](https://github.com/catppuccin/discord) - [Element](https://github.com/catppuccin/element) -- [Enmity](https://github.com/catppuccin/enmity) (Discord on iOS) +- [Enmity](https://github.com/catppuccin/enmity) - [HexChat](https://github.com/catppuccin/hexchat) - [Mattermost](https://github.com/catppuccin/mattermost) - [Revolt](https://github.com/catppuccin/revolt) - [Slack](https://github.com/catppuccin/slack) - [Telegram](https://github.com/catppuccin/telegram) +- [The Lounge](https://github.com/catppuccin/thelounge)
+
+📝 Note taking -
📝 Note-taking - -- [Anki](https://github.com/catppuccin/anki) - [Joplin](https://github.com/catppuccin/joplin) - [Obsidian](https://github.com/catppuccin/obsidian) - [Remnote](https://github.com/catppuccin/remnote)
+
+🗂️ Productivity -
🌱 Terminals - -- [Alacritty](https://github.com/catppuccin/alacritty) -- [Black Box](https://github.com/catppuccin/blackbox) -- [Contour](https://github.com/catppuccin/contour) -- [CRT](https://github.com/catppuccin/crt) -- [Fcitx5](https://github.com/catppuccin/fcitx5) -- [Foot](https://github.com/catppuccin/foot) -- [Gnome Terminal](https://github.com/catppuccin/gnome-terminal) -- [Hyper](https://github.com/catppuccin/hyper) -- [iTerm](https://github.com/catppuccin/iterm) -- [Kitty](https://github.com/catppuccin/kitty) -- [Konsole](https://github.com/catppuccin/konsole) -- [QTerminal](https://github.com/catppuccin/qterminal) -- [St](https://github.com/catppuccin/st) -- [Tabby](https://github.com/catppuccin/tabby) -- [Terminal.app](https://github.com/catppuccin/Terminal.app) -- [Terminator](https://github.com/catppuccin/terminator) -- [Termux](https://github.com/catppuccin/termux) -- [Tilix](https://github.com/catppuccin/tilix) -- [Tmux](https://github.com/catppuccin/tmux) -- [Tym](https://github.com/catppuccin/tym) -- [Urxvt](https://github.com/catppuccin/urxvt) -- [Warp](https://github.com/catppuccin/warp) -- [WezTerm](https://github.com/catppuccin/wezterm) -- [Windows Terminal](https://github.com/catppuccin/windows-terminal) -- [Xfce4 Terminal](https://github.com/catppuccin/xfce4-terminal) -- [Zellij](https://github.com/catppuccin/zellij) -- [Zutty](https://github.com/catppuccin/zutty) +- [Alfred](https://github.com/catppuccin/alfred) +- [Anki](https://github.com/catppuccin/anki) +- [Bento](https://github.com/catppuccin/bento) +- [Brave Search](https://github.com/catppuccin/brave-search) +- [Codeberg](https://github.com/catppuccin/codeberg) +- [DeepL](https://github.com/catppuccin/deepl) +- [DuckDuckGo](https://github.com/catppuccin/duckduckgo) +- [Foliate](https://github.com/catppuccin/foliate) +- [GitHub](https://github.com/catppuccin/github) +- [ichi.moe](https://github.com/catppuccin/ichi.moe) +- [Mailspring](https://github.com/catppuccin/mailspring) +- [OBS Studio](https://github.com/catppuccin/obs) +- [Proton](https://github.com/catppuccin/proton) +- [qBittorrent](https://github.com/catppuccin/qbittorrent) +- [ShareX](https://github.com/catppuccin/sharex) +- [SolveSpace](https://github.com/catppuccin/solvespace) +- [SumatraPDF](https://github.com/catppuccin/sumatra-pdf) +- [Thunderbird](https://github.com/catppuccin/thunderbird) +- [Tutanota](https://github.com/catppuccin/tutanota) +- [WikiWand](https://github.com/catppuccin/wikiwand) +- [Zathura](https://github.com/catppuccin/zathura)
+
+✨ Social -
✨ Social - -- [AniList](https://github.com/catppuccin/anilist) - [Elk](https://github.com/catppuccin/elk) - [GitHub Readme Stats](https://github.com/catppuccin/github-readme-stats) - [GitHub Readme Tech Stack](https://github.com/catppuccin/github-readme-tech-stack) @@ -1124,14 +1119,42 @@ Catppuccin is available for various apps and in different formats. Here is a lis - [Infinity for Reddit](https://github.com/catppuccin/infinity) - [Invidious](https://github.com/catppuccin/invidious) - [Libreddit](https://github.com/catppuccin/libreddit) -- [Mailspring](https://github.com/catppuccin/mailspring) -- [Monkeytype](https://github.com/catppuccin/monkeytype) +- [Mastodon](https://github.com/catppuccin/mastodon) - [Nitter](https://github.com/catppuccin/nitter) - [Reddit](https://github.com/catppuccin/reddit) -- [Thunderbird](https://github.com/catppuccin/thunderbird) - [YouTube](https://github.com/catppuccin/youtube)
+
+🌈 Leisure + +- [Amfora](https://github.com/catppuccin/amfora) +- [AniList](https://github.com/catppuccin/anilist) +- [Home Assistant](https://github.com/catppuccin/home-assistant) +- [Last.fm](https://github.com/catppuccin/lastfm) +- [monkeytype](https://github.com/catppuccin/monkeytype) +- [PyRadio](https://github.com/catppuccin/pyradio) +- [Spicetify](https://github.com/catppuccin/spicetify) +- [spotify-player](https://github.com/catppuccin/spotify-player) +- [spotify-tui](https://github.com/catppuccin/spotify-tui) +- [Stable Diffusion WebUI](https://github.com/catppuccin/stable-diffusion-web-ui) +- [Steam](https://github.com/catppuccin/steam) +- [YouTube Music](https://github.com/catppuccin/youtubemusic) + +
+
+🎮 Games + +- [BitBurner](https://github.com/catppuccin/bitburner) +- [Blockbench](https://github.com/catppuccin/blockbench) +- [Dwarf Fortress](https://github.com/catppuccin/dwarf-fortress) +- [Minecraft](https://github.com/catppuccin/minecraft) +- [Modrinth](https://github.com/catppuccin/modrinth) +- [Prism Launcher](https://github.com/catppuccin/prismlauncher) +- [ULTRAKILL](https://github.com/catppuccin/ultrakill) + +
+   @@ -1144,9 +1167,11 @@ Catppuccin is available for various apps and in different formats. Here is a lis If you're making an application or tool using our palette, please let us know by adding it below! -- 🌟 [flotes.app](https://flotes.app/) - A free note-taking app enhanced with flashcard features -- 🌟 [AnuPpuccin](https://github.com/AnubisNekhet/AnuPpuccin) - Highly customisable theme - for [Obsidian](https://obsidian.md/) + + +- [flotes.app](https://flotes.app/) - A free note-taking app enhanced with flashcard features +- [AnuPpuccin](https://github.com/AnubisNekhet/AnuPpuccin) - Highly customizable theme for [Obsidian](https://obsidian.md) +   diff --git a/resources/generate/deno.json b/resources/generate/deno.json new file mode 100644 index 0000000..f8a8104 --- /dev/null +++ b/resources/generate/deno.json @@ -0,0 +1,3 @@ +{ + "lock": "deno.lock" +} diff --git a/resources/generate/deno.lock b/resources/generate/deno.lock new file mode 100644 index 0000000..05b7546 --- /dev/null +++ b/resources/generate/deno.lock @@ -0,0 +1,112 @@ +{ + "version": "2", + "remote": { + "https://deno.land/std@0.172.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.172.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.172.0/bytes/bytes_list.ts": "b4cbdfd2c263a13e8a904b12d082f6177ea97d9297274a4be134e989450dfa6a", + "https://deno.land/std@0.172.0/bytes/concat.ts": "d26d6f3d7922e6d663dacfcd357563b7bf4a380ce5b9c2bbe0c8586662f25ce2", + "https://deno.land/std@0.172.0/bytes/copy.ts": "939d89e302a9761dcf1d9c937c7711174ed74c59eef40a1e4569a05c9de88219", + "https://deno.land/std@0.172.0/encoding/_yaml/dumper/dumper.ts": "49053c293a2250b33f2efc0ce3973280c6dc3bc0b41397af3863b5f03340e01b", + "https://deno.land/std@0.172.0/encoding/_yaml/dumper/dumper_state.ts": "975a3702752a29251c5746206507dfebbfede60dd2c0dec161dc22633fbc6085", + "https://deno.land/std@0.172.0/encoding/_yaml/error.ts": "e60ab51d7c0253cf0d1cf7d445202e8e3da5c77aae0032071ba7400121c281b4", + "https://deno.land/std@0.172.0/encoding/_yaml/loader/loader.ts": "6c59f60faaf78d73db0e016293f4bfed19e6356d7064230d07d6b68a65a1df5d", + "https://deno.land/std@0.172.0/encoding/_yaml/loader/loader_state.ts": "fcc82fcdf167acb0e9e5e32b32682e58b45f2d44210bf685794797ccb5621232", + "https://deno.land/std@0.172.0/encoding/_yaml/mark.ts": "0027d6f62a70a6c64b85bd1751ddf1646ea97edcefbf5bea1706d5e519f4e34f", + "https://deno.land/std@0.172.0/encoding/_yaml/parse.ts": "63e79582e07145ca1d3205d1ac72b82bf5ce14159dabae195abe7e36de8111bd", + "https://deno.land/std@0.172.0/encoding/_yaml/schema.ts": "0833c75c59bf72c8a8f96f6c0615bcd98d23fdd9b076657f42b5c1a4f9d972b0", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/core.ts": "366f56673336ba24f5723c04319efcc7471be5f55d5f8d95c9b4a38ec233d4c6", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/default.ts": "96e9ed6ead36f53a0832c542fc9b8cca7f8b4a67c1c8424e1423a39ee7154db7", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/extended.ts": "f9bd75c79ebdfb92a8e167488b6bde7113a31b8fabe20ad7eed0904fba11bcd2", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/failsafe.ts": "cddcbf0258bbe0cd77ca10e2f5aec13439f50d4068f96aab08ca2d64496dabe8", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/json.ts": "c86905dfb1b6c4633750bfbb5bd529a30be5c08287ab7eb6694390b40e276487", + "https://deno.land/std@0.172.0/encoding/_yaml/schema/mod.ts": "051f93dd97a15aaad2da62bd24627e8fd2f02fb026d21567d924b720d606f078", + "https://deno.land/std@0.172.0/encoding/_yaml/state.ts": "ef03d55ec235d48dcfbecc0ab3ade90bfae69a61094846e08003421c2cf5cfc6", + "https://deno.land/std@0.172.0/encoding/_yaml/stringify.ts": "426b73e4dbaeed26ed855add3862786d7e374bd4c59e5e1bd9a6fcd5082be3c7", + "https://deno.land/std@0.172.0/encoding/_yaml/type.ts": "5ded5472a0f17a219ac3b0e90d96dc8472a68654a40258a31e03a6c6297b6788", + "https://deno.land/std@0.172.0/encoding/_yaml/type/binary.ts": "935d39794420ac3718d26716192239de6a53566c6f2ba5010e8ed26936b94a89", + "https://deno.land/std@0.172.0/encoding/_yaml/type/bool.ts": "1c99cfbaa94b022575b636a73e1549569b26fc6bbff2cd5e539aa77b49bdf303", + "https://deno.land/std@0.172.0/encoding/_yaml/type/float.ts": "f60ad19b27050add694bfc255b7efef27103f047861aa657823ff3f6853bad11", + "https://deno.land/std@0.172.0/encoding/_yaml/type/function.ts": "65a37f6bef43ef141854ee48a1058d9c9c4c80ed6eed6cd35608329a6957e27a", + "https://deno.land/std@0.172.0/encoding/_yaml/type/int.ts": "892f59bb7b2dbd64dd9b643c17441af95c0b962ad027e454cb84a68864787b86", + "https://deno.land/std@0.172.0/encoding/_yaml/type/map.ts": "92e647a6aec0dc184ea4b039a77a15883b54da754311189c595b43f6aaa50030", + "https://deno.land/std@0.172.0/encoding/_yaml/type/merge.ts": "8192bf3e4d637f32567917f48bb276043da9cf729cf594e5ec191f7cd229337e", + "https://deno.land/std@0.172.0/encoding/_yaml/type/mod.ts": "060e2b3d38725094b77ea3a3f05fc7e671fced8e67ca18e525be98c4aa8f4bbb", + "https://deno.land/std@0.172.0/encoding/_yaml/type/nil.ts": "606e8f0c44d73117c81abec822f89ef81e40f712258c74f186baa1af659b8887", + "https://deno.land/std@0.172.0/encoding/_yaml/type/omap.ts": "fbd5da9970c211335ff7c8fa11e9c5e9256e568d52418ac237d1538c5cb0d5e6", + "https://deno.land/std@0.172.0/encoding/_yaml/type/pairs.ts": "ea487a44c0ae64d8d952779fa1cb5fa0a12f32a0b5d3d1e8c1f06f446448427c", + "https://deno.land/std@0.172.0/encoding/_yaml/type/regexp.ts": "672000d22a1062d61577d30b218c28f5cb1d039a7a60079fdde6a4e558d5ca51", + "https://deno.land/std@0.172.0/encoding/_yaml/type/seq.ts": "39b28f7c7aa41263c5c42cab9d184f03555e9ba19493766afc0c0c325a9ac49f", + "https://deno.land/std@0.172.0/encoding/_yaml/type/set.ts": "0e30a9f750306b514c8ae9869d1ac2548d57beab55b33e85ea9673ca0a08264c", + "https://deno.land/std@0.172.0/encoding/_yaml/type/str.ts": "a67a3c6e429d95041399e964015511779b1130ea5889fa257c48457bd3446e31", + "https://deno.land/std@0.172.0/encoding/_yaml/type/timestamp.ts": "706ea80a76a73e48efaeb400ace087da1f927647b53ad6f754f4e06d51af087f", + "https://deno.land/std@0.172.0/encoding/_yaml/type/undefined.ts": "94a316ca450597ccbc6750cbd79097ad0d5f3a019797eed3c841a040c29540ba", + "https://deno.land/std@0.172.0/encoding/_yaml/utils.ts": "26b311f0d42a7ce025060bd6320a68b50e52fd24a839581eb31734cd48e20393", + "https://deno.land/std@0.172.0/encoding/yaml.ts": "02571d1bbbcfd7c5647789cee872ecf9c1c470e1b1a40948ed219fb661e19d87", + "https://deno.land/std@0.172.0/io/buf_reader.ts": "90a7adcb3638d8e1361695cdf844d58bcd97c41711dc6f9f8acc0626ebe097f5", + "https://deno.land/std@0.172.0/io/buf_writer.ts": "759c69d304b04d2909976f2a03a24a107276fbd81ed13593c5c2d43d104b52f3", + "https://deno.land/std@0.172.0/io/buffer.ts": "24abd4a65403ca3fdffcb6d3f985b0285adfd785f1311ce681708a21126776ad", + "https://deno.land/std@0.172.0/io/read_delim.ts": "7e102c66f00a118fa1e1ccd4abb080496f43766686907fd8b9522fdf85443586", + "https://deno.land/std@0.172.0/io/read_lines.ts": "baee9e35034f2fdfccf63bc24b7e3cb45aa1c1c5de26d178f7bcbc572e87772f", + "https://deno.land/std@0.172.0/io/read_string_delim.ts": "46eb0c9db3547caf8c759631effa200bbe48924f9b34f41edc627bde36cee52d", + "https://deno.land/std@0.172.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.172.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.172.0/path/_util.ts": "86c2375a996c1931b2f2ac71fefd5ddf0cf0e579fa4ab12d3e4c552d4223b8d8", + "https://deno.land/std@0.172.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.172.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.172.0/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", + "https://deno.land/std@0.172.0/path/posix.ts": "0874b341c2c6968ca38d323338b8b295ea1dae10fa872a768d812e2e7d634789", + "https://deno.land/std@0.172.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.172.0/path/win32.ts": "672942919dd66ce1b8c224e77d3447e2ad8254eaff13fe6946420a9f78fa141e", + "https://deno.land/std@0.172.0/types.d.ts": "220ed56662a0bd393ba5d124aa6ae2ad36a00d2fcbc0e8666a65f4606aaa9784", + "https://esm.sh/ajv@8.12.0": "594b01900aff1e27d4c419046dd09ac30290281839e784253f53b66f47898108", + "https://esm.sh/v106/ajv@8.12.0/deno/ajv.js": "23854337afccdad144d7f2f1f165dc7361882a8cd5644e7e56ec311697f80cc6", + "https://esm.sh/v106/ajv@8.12.0/dist/ajv.d.ts": "e2efa41fff63778572ae1d04dc9d62048684aa8aad6edd0218e562402ea9e0ec", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/codegen/code.d.ts": "2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/codegen/index.d.ts": "9785e1199bae7389a92831c1f732fa72fc6f34a9c3f8948a5acfc8451e72f833", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/codegen/scope.d.ts": "4ad65126bd23e1b8fe40f5375b812676694dccc232060a53bff52ac416aef059", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/errors.d.ts": "65c56e41c3ad2867c1c179e7cb8fd4fcbb4cdaa172e2cc5242fbbfab4be089c0", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/index.d.ts": "dc63e8445111329e56e443e63cc892632015ddbfa76170e4959b4d876535285e", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/ref_error.d.ts": "b5e33c3fb8302173827cb3ee68d45c9ff45d2e8ec2a9b347ede1f0b5e00ccdf3", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/resolve.d.ts": "23d18dca3d3b9b1c85cffc826914219e39db265aa3bd2eb1259cdce013a4a94a", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/rules.d.ts": "18e085a67ae0ea81f7d4539e8f682f0b9b150b12af9e66f7760a03356aec507f", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/util.d.ts": "3acaa483c7cf47fc5ced1473b830ec37a8f0d40238f3d96246657c970e13e6c7", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/validate/dataType.d.ts": "4f56c2ba7307d8d5749dd4b60fadab04dce7d69838e129d04c3837cb397ce5bf", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/validate/index.d.ts": "3e1bff49fa21ad6c11d06b5074fd623443dbd5db8fed3bd78411232401a0313e", + "https://esm.sh/v106/ajv@8.12.0/dist/compile/validate/subschema.d.ts": "79ae0a30e9f503b57d8c698e40f1141de1ff05d36dc9b08bc9b3ed6fe1074f9f", + "https://esm.sh/v106/ajv@8.12.0/dist/core.d.ts": "c0d24ae17225116e4895c1961a957acb2158c3ea3f2164ede7b726fc1112edf7", + "https://esm.sh/v106/ajv@8.12.0/dist/runtime/validation_error.d.ts": "515ba5900e0017f5512f442a31826d4210ac782b9b6fad6dbfcab61b5f8c881f", + "https://esm.sh/v106/ajv@8.12.0/dist/types/index.d.ts": "7fdb4bb0d8c9559e391d89e36061ffb02e30b8b7886c246cffeb793937a5f404", + "https://esm.sh/v106/ajv@8.12.0/dist/types/json-schema.d.ts": "6b6ed4aa017eb6867cef27257379cfe3e16caf628aceae3f0163dbafcaf891ff", + "https://esm.sh/v106/ajv@8.12.0/dist/types/jtd-schema.d.ts": "25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/additionalItems.d.ts": "810dc8272ea4023b647017ee4ff3ababce2a186c48a1e371e0fb631ed5bf9499", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/additionalProperties.d.ts": "93eafd639403aca489d2a2bd26fb89b46a855a271fa3685df23d3f3cfd6c7781", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/anyOf.d.ts": "3bcf9e93173ce018235392adf8ac6b9d4173b632d2fbd74e083f58c5e8dda50d", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/contains.d.ts": "e271ef23f0eecaa3bc3241429c25694aab4e47d96b8bd564d68e077ca2155251", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/dependencies.d.ts": "4da778139fb84dce56f1bb4ef757c17d891a9e3f0f5cff5b835ebde09ac1e956", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/if.d.ts": "48955ffe23bd06877c1bbc7f364a9e80f2dae56783fbfb79c16520375c376230", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/index.d.ts": "16bea08752cd2ca1eabbeb11ebddd265f4150cf171c1041e11a0501f35a49d4e", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/items2020.d.ts": "263fb5e5115873391f99a45bab2e975b0483e8a45da95bdecdbec6760c127aa4", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/not.d.ts": "869d7db4971ca299ff238ca0ea8b3d5cd752b449ccb6559790db0c8ad0c5dfbe", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/oneOf.d.ts": "385baa5077f5878b7506ec9192fd7ab686f7fda6276b71b877ecc0424c24badb", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/applicator/propertyNames.d.ts": "2b379d5bc77776abe065fab1e47f84929f6274e0e380c0c1c27a6965e7f4aabc", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/discriminator/index.d.ts": "d6f1fa129cf004b83f2913b3b3094d510e77b421f87ed6ee69f5f89b493fe91b", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/discriminator/types.d.ts": "cdcdcd676aa93fb9822b91569f06178c6cdcbb216f6dab289cc193ac99638838", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/errors.d.ts": "673f52fa2cc7f047ab6f369d12ed82088358174fd58474329d79fa999e3ce635", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/format/format.d.ts": "1fbffe88e41ab623cdd71ef300206298a6780ed9fd1abfd7d63f1892379c7e9a", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/unevaluated/unevaluatedItems.d.ts": "8b9b8c5189417cda763245be14d202e1a199091f1b0b3a0f4c957bdb85ffd044", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts": "4e10c976131382776b03ab8cee68e7764c9bf7db1ab9132066bb0d1f640c03fe", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/const.d.ts": "90985bc6fed39fd595acab2f8f91ce2274b46c9ec7f68d9624d4a677fb206ae8", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/dependentRequired.d.ts": "632b0af8992f86056e5571fbb148835d582332bb613c4e80fdf6719c501483c5", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/enum.d.ts": "15663b84b4d935e1a282269a9ac1072c96d9351c941fa959469cd1ba2419b148", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/index.d.ts": "d05ad2c8e4613c06e314105aaa7b43caa7a373e5f2671c51053bc9160803fbd5", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/limitNumber.d.ts": "3b4220c15eacf28d3732f9df3a2ad0908b9a388dc9d13c35311233f11c28dd36", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/multipleOf.d.ts": "a62b50d44d9c8d0e26b3b42eb90fe87ad1fad683122aa076e6f8d30fb056ad5f", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/pattern.d.ts": "bc7f68367bbd6bdf9ed47aae8590770c7ec7ad6d44c0de11df696162038224b1", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/required.d.ts": "7a14df7f7a58dd22ca4ca449f39cc0168eec566c95d9d7950e5b91da50bf4415", + "https://esm.sh/v106/ajv@8.12.0/dist/vocabularies/validation/uniqueItems.d.ts": "9a9056c3705215ba3289f7ad913e92babeca6e53091aa8095ee85e66ee2bd089", + "https://esm.sh/v106/fast-deep-equal@3.1.3/deno/fast-deep-equal.js": "4695b025e9a792678087d71f58e1fa07e8021b636d22fda8c0320fcff65a3c47", + "https://esm.sh/v106/json-schema-traverse@1.0.0/deno/json-schema-traverse.js": "ff987aaea4950aa9c4eea3ca19c9ec2b3229434e22e711415aa77fb513689a9c", + "https://esm.sh/v106/uri-js@4.4.1/deno/uri-js.js": "cb0fe68d76c29d62c7b79baf964e1b1c6623039faae892514776f0680711fc3e", + "https://esm.sh/v106/uri-js@4.4.1/dist/es5/uri.all.d.ts": "9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825" + } +} \ No newline at end of file diff --git a/resources/generate/deps.ts b/resources/generate/deps.ts new file mode 100644 index 0000000..26a15e6 --- /dev/null +++ b/resources/generate/deps.ts @@ -0,0 +1,7 @@ +export { parse as parseYaml } from "https://deno.land/std@0.172.0/encoding/yaml.ts"; + +import Ajv from "https://esm.sh/ajv@8.12.0"; +import * as path from "https://deno.land/std@0.172.0/path/mod.ts"; +import schema from "../ports.schema.json" assert { type: "json" }; + +export { Ajv, path, schema }; diff --git a/resources/generate/main.ts b/resources/generate/main.ts new file mode 100755 index 0000000..1c19fd1 --- /dev/null +++ b/resources/generate/main.ts @@ -0,0 +1,110 @@ +#!/usr/bin/env -S deno run --allow-env --allow-read --allow-write + +import { Ajv, parseYaml, path, schema } from "./deps.ts"; +import type { Categories, Port, Ports, Showcases } from "./types.d.ts"; + +const root = new URL(".", import.meta.url).pathname; + +type Metadata = { + categories: Categories; + ports: Ports; + showcases: Showcases; +}; + +const ajv = new Ajv(); +const validate = ajv.compile(schema); + +const portsYaml = Deno.readTextFileSync(path.join(root, "../ports.yml")); +const data = parseYaml(portsYaml) as Metadata; + +// throw error if the YAML is invalid +if (!validate(data)) { + console.log(validate.errors); + Deno.exit(1); +} + +export type MappedPort = Port & { html_url: string }; + +const categorized = Object.entries(data.ports).reduce((acc, [slug, port]) => { + !acc[port.category] && (acc[port.category] = []); + acc[port.category].push({ + html_url: `https://github.com/catppuccin/${slug}`, + ...port, + }); + acc[port.category].sort((a, b) => a.name.localeCompare(b.name)); + return acc; +}, {} as Record); + +const portListData = data.categories.map((category) => { + return { + meta: category, + ports: categorized[category.key], + }; +}); + +const updateReadme = ({ + readme, + section, + newContent, +}: { + readme: string; + section: string; + newContent: string; +}): string => { + const preamble = + ""; + const markers = { + start: ``, + end: ``, + }; + + const wrapped = markers.start + "\n" + preamble + "\n" + newContent + "\n" + + markers.end; + + if ( + !( + readmeContent.includes(markers.start) && + readmeContent.includes(markers.end) + ) + ) { + throw new Error("Markers not found in README.md"); + } + + const pre = readme.split(markers.start)[0]; + const end = readme.split(markers.end)[1]; + + return pre + wrapped + end; +}; + +const readmePath = path.join(root, "../../README.md"); +let readmeContent = Deno.readTextFileSync(readmePath); + +const portContent = portListData.map((data) => { + return `
+${data.meta.emoji} ${data.meta.name} + +${data.ports.map((port) => `- [${port.name}](${port.html_url})`).join("\n")} + +
`; +}).join("\n"); + +const showcaseContent = data.showcases.map((showcase) => { + return `- [${showcase.title}](${showcase.link}) - ${showcase.description}`; +}).join("\n"); + +try { + readmeContent = updateReadme({ + readme: readmeContent, + section: "portlist", + newContent: portContent, + }); + readmeContent = updateReadme({ + readme: readmeContent, + section: "showcase", + newContent: showcaseContent, + }); +} catch (e) { + console.log("Failed to update the README:", e); +} finally { + Deno.writeTextFileSync(readmePath, readmeContent); +} diff --git a/resources/generate/types.d.ts b/resources/generate/types.d.ts new file mode 100644 index 0000000..90e2804 --- /dev/null +++ b/resources/generate/types.d.ts @@ -0,0 +1,132 @@ +/* eslint-disable */ +/** + * This file was automatically generated by json-schema-to-typescript. + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, + * and run json-schema-to-typescript to regenerate this file. + */ + +export type Key = + | "browser" + | "browser_extension" + | "cli" + | "code_editor" + | "development" + | "game" + | "leisure" + | "library" + | "messaging" + | "note_taking" + | "productivity" + | "search_engine" + | "social" + | "system" + | "terminal"; +export type Name = string; +export type Emoji = string; +/** + * The categories listed in the README + */ +export type Categories = CategoryItem[]; +/** + * The Name of the software the port is for. + */ +export type Name1 = string; +/** + * The category that fits the port the most + */ +export type Category = + | "browser" + | "browser_extension" + | "cli" + | "code_editor" + | "development" + | "game" + | "leisure" + | "library" + | "messaging" + | "note_taking" + | "productivity" + | "search_engine" + | "social" + | "system" + | "terminal"; +/** + * The platforms the port supports. Either an array of supported operating systems, "agnostic" (indicating support for all platforms), or "userstyle". + */ +export type Platform = OperatingSystems[] | ("agnostic" | "userstyle"); +export type OperatingSystems = + | "android" + | "ios" + | "linux" + | "macos" + | "windows"; +/** + * The fill color for the icon on the website. + */ +export type Color = + | "rosewater" + | "flamingo" + | "pink" + | "mauve" + | "red" + | "maroon" + | "peach" + | "yellow" + | "green" + | "teal" + | "sky" + | "sapphire" + | "blue" + | "lavender" + | "text"; +/** + * The icon to use on the website. This should be the same name as the SVG file on https://simpleicons.org/. If a `.svg` suffix is present, it's taken from the local website repository resources. + */ +export type Icon = string; +/** + * Whether the port is a userstyle + */ +export type Userstyle = boolean; +export type Title = string; +export type Link = string; +export type Link1 = string; +/** + * Each showcase listed in the README + */ +export type Showcases = ShowcaseItem[]; + +export interface PortsSchema { + categories?: Categories; + ports?: Ports; + showcases?: Showcases; +} +export interface CategoryItem { + key: Key; + name: Name; + emoji: Emoji; +} +/** + * All ports in the catppuccin org. + */ +export interface Ports { + [k: string]: Port; +} +/** + * The GitHub repository name of the port. + * + * This interface was referenced by `Ports`'s JSON-Schema definition + * via the `patternProperty` "[A-Za-z0-9_\-]". + */ +export interface Port { + name: Name1; + category: Category; + platform: Platform; + color?: Color; + icon?: Icon; + userstyle?: Userstyle; +} +export interface ShowcaseItem { + title: Title; + link: Link; + description: Link1; +} diff --git a/resources/ports.schema.json b/resources/ports.schema.json index 99af571..e8e0a53 100644 --- a/resources/ports.schema.json +++ b/resources/ports.schema.json @@ -1,117 +1,225 @@ { - "definitions": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://raw.githubusercontent.com/catppuccin/catppuccin/main/resources/ports.schema.json", - "type": "object", - "additionalProperties": false, - "patternProperties": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "additionalProperties": false, + "properties": { + "categories": { + "$id": "#categories", + "title": "Categories", + "description": "The categories listed in the README", + "type": "array", + "items": { + "$id": "#categories/item", + "title": "Category item", + "type": "object", + "required": [ + "key", + "name", + "emoji" + ], + "additionalProperties": false, + "properties": { + "key": { + "$id": "#categories/category/key", + "title": "key", + "type": "string", + "$ref": "#/$defs/category" + }, + "name": { + "$id": "#categories/category/name", + "title": "Name", + "type": "string" + }, + "emoji": { + "$id": "#categories/category/emoji", + "title": "Emoji", + "type": "string" + } + } + } + }, + "ports": { + "$id": "#ports", + "title": "Ports", + "type": "object", + "description": "All ports in the catppuccin org.", + "patternProperties": { "[A-Za-z0-9_\\-]": { - "$id": "#ports/port", - "title": "Port", - "type": "object", - "description": "The GitHub repository name of the port.", - "examples": ["nvim"], - "required": ["category", "name", "platform"], - "properties": { - "name": { - "$id": "#ports/port/name", - "title": "Name", - "description": "The Name of the software the port is for", - "type": "string", - "examples": ["Neovim"] - }, - "category": { - "$id": "#ports/port/category", - "title": "Category", + "$id": "#ports/port", + "title": "Port", + "type": "object", + "description": "The GitHub repository name of the port.", + "examples": [ + "nvim" + ], + "required": [ + "category", + "name", + "platform" + ], + "additionalProperties": false, + "properties": { + "name": { + "$id": "#ports/port/name", + "title": "Name", + "description": "The Name of the software the port is for.", + "type": "string", + "examples": [ + "Neovim" + ] + }, + "category": { + "$id": "#ports/port/category", + "title": "Category", + "description": "The category that fits the port the most", + "$ref": "#/$defs/category" + }, + "platform": { + "$id": "#ports/port/platform", + "title": "Platform", + "description": "The platforms the port supports. Either an array of supported operating systems, \"agnostic\" (indicating support for all platforms), or \"userstyle\".", + "oneOf": [ + { + "type": "array", + "items": { + "$id": "#ports/port/platform/os", + "title": "Operating Systems", "type": "string", "enum": [ - "browser", - "browser_extension", - "cli", - "code_editor", - "development", - "game", - "leisure", - "library", - "messaging", - "note_taking", - "productivity", - "search_engine", - "social", - "system", - "terminal" + "android", + "ios", + "linux", + "macos", + "windows" ], - "examples": ["editor"] - }, - "platform": { - "$id": "#ports/port/platform", - "title": "Platform", - "description": "The platforms the port supports. Either an array of supported operating systems, \"agnostic\" (indicating support for all platforms), or \"userstyle\".", - "oneOf": [ - { - "type": "array", - "items": { - "$id": "#ports/port/platform/os", - "title": "Operating Systems", - "type": "string", - "enum": [ - "android", - "ios", - "linux", - "macos", - "windows" - ], - "examples": [ - ["linux", "macos", "windows"], - ["android", "ios"] - ] - } - }, - { - "type": "string", - "enum": ["agnostic", "userstyle"] - } + "examples": [ + [ + "linux", + "macos", + "windows" + ], + [ + "android", + "ios" + ] ] + } }, - "color": { - "$id": "#ports/port/color", - "title": "Color", - "description": "The fill color for the icon on the website", - "type": "string", - "enum": [ - "rosewater", - "flamingo", - "pink", - "mauve", - "red", - "maroon", - "peach", - "yellow", - "green", - "teal", - "sky", - "sapphire", - "blue", - "lavender", - "text" - ], - "examples": ["pink"] - }, - "icon": { - "$id": "#ports/port/icon", - "title": "Icon", - "description": "The icon to use on the website. This should be the same name as the SVG file on https://simpleicons.org/. If a `.svg` suffix is present, it's taken from the local website repository resources.", - "type": "string", - "examples": ["neovim", "neovim.svg"] - }, - "userstyle": { - "$id": "#ports/port/userstyle", - "title": "Userstyle", - "description": "Whether the port is a userstyle", - "type": "boolean", - "examples": [true] + { + "type": "string", + "enum": [ + "agnostic", + "userstyle" + ] } + ] + }, + "color": { + "$id": "#ports/port/color", + "title": "Color", + "description": "The fill color for the icon on the website.", + "type": "string", + "enum": [ + "rosewater", + "flamingo", + "pink", + "mauve", + "red", + "maroon", + "peach", + "yellow", + "green", + "teal", + "sky", + "sapphire", + "blue", + "lavender", + "text" + ], + "examples": [ + "pink" + ] + }, + "icon": { + "$id": "#ports/port/icon", + "title": "Icon", + "description": "The icon to use on the website. This should be the same name as the SVG file on https://simpleicons.org/. If a `.svg` suffix is present, it's taken from the local website repository resources.", + "type": "string", + "examples": [ + "neovim", + "neovim.svg" + ] + }, + "userstyle": { + "$id": "#ports/port/userstyle", + "title": "Userstyle", + "description": "Whether the port is a userstyle", + "type": "boolean", + "examples": [ + true, + false + ] } + } + } + } + }, + "showcases": { + "$id": "#showcases", + "title": "Showcases", + "type": "array", + "description": "Each showcase listed in the README", + "items": { + "$id": "#showcase/item", + "title": "Showcase item", + "type": "object", + "required": [ + "title", + "link", + "description" + ], + "additionalProperties": false, + "properties": { + "title": { + "$id": "#showcase/showcase/title", + "title": "title", + "type": "string" + }, + "link": { + "$id": "#showcase/showcase/link", + "title": "Link", + "type": "string" + }, + "description": { + "$id": "#showcase/showcase/description", + "title": "Link", + "type": "string" + } } + } + } + }, + "$defs": { + "category": { + "$id": "#category", + "type": "string", + "enum": [ + "browser", + "browser_extension", + "cli", + "code_editor", + "development", + "game", + "leisure", + "library", + "messaging", + "note_taking", + "productivity", + "search_engine", + "social", + "system", + "terminal" + ] } + } } diff --git a/resources/ports.yml b/resources/ports.yml index 1037985..8817aad 100644 --- a/resources/ports.yml +++ b/resources/ports.yml @@ -1,854 +1,911 @@ -alacritty: - name: Alacritty - category: terminal - color: peach - platform: [linux, macos, windows] -alfred: - name: Alfred - category: productivity - color: mauve - platform: [macos] -aliucord: - name: Aliucord - category: messaging - platform: [android] -amfora: - name: Amfora - category: leisure - platform: [linux, macos, windows] -anilist: - name: AniList - category: leisure - platform: userstyle - color: blue -anki: - name: Anki - category: productivity - platform: agnostic - icon: anki.svg - color: blue -base16: - name: Base16 - category: system - platform: agnostic -bat: - name: bat - category: cli - platform: [linux, macos, windows] - icon: bat.svg -bento: - name: Bento - category: productivity - platform: agnostic -binary-ninja: - name: Binary Ninja - category: code_editor - platform: [linux, macos, windows] -bitburner: - name: BitBurner - category: game - platform: [linux, macos, windows] -blackbox: - name: Black Box - category: terminal - platform: [linux] -blink: - name: Blink - category: terminal - platform: [ios] -blockbench: - name: Blockbench - category: game - platform: [linux, macos, windows] -bottom: - name: bottom - category: cli - platform: [linux, macos, windows] -brave-search: - name: Brave Search - category: productivity - platform: userstyle - icon: brave - color: peach -btop: - name: Btop++ - category: cli - platform: [linux, macos] -cava: - name: C.A.V.A. - category: cli - platform: [linux, macos] -chrome: - name: Google Chrome - category: browser - platform: [linux, macos, windows] - icon: googlechrome - color: yellow -cinny: - name: Cinny - category: messaging - platform: [linux] -codeberg: - name: Codeberg - category: productivity - platform: userstyle -codemirror: - name: CodeMirror - category: development - platform: agnostic -conky: - name: Conky - category: system - platform: [linux] -contour: - name: Contour - category: terminal - platform: [linux, macos, windows] -crt: - name: 'CRT: cool-retro-term' - category: terminal - platform: [linux, macos] -cursors: - name: Cursors - category: system - platform: [linux] - icon: cursors.svg -cutter: - name: Cutter - category: code_editor - platform: [linux, macos, windows] -dark-reader: - name: Dark Reader - category: browser_extension - platform: agnostic - icon: darkreader - color: red -deepl: - name: DeepL - category: productivity - platform: userstyle -discord: - name: Discord - category: messaging - platform: [linux, macos, windows] - color: blue -dmenu: - name: dmenu - category: system - platform: [linux] -duckduckgo: - name: DuckDuckGo - category: productivity - platform: userstyle - color: peach -dunst: - name: Dunst - category: system - platform: [linux] -dwarf-fortress: - name: Dwarf Fortress - category: game - platform: [linux, macos, windows] -egui: - name: egui - category: development - platform: [linux, macos, windows] -element: - name: Element - category: messaging - platform: [linux, macos, windows] -elk: - name: Elk - category: social - platform: agnostic -emacs: - name: Emacs - category: code_editor - platform: [linux, macos, windows] - icon: gnuemacs - color: mauve -enmity: - name: Enmity - category: messaging - platform: [ios] -fcitx5: - name: fcitx5 - category: system - platform: [linux] -firefox: - name: Firefox - category: browser - platform: [linux, macos, windows] - color: red -fish: - name: Fish - category: cli - platform: [linux, macos] - icon: fish.svg - color: green -floris-board: - name: FlorisBoard - category: system - platform: [android] -foliate: - name: Foliate - category: productivity - platform: [linux] -foot: - name: foot - category: terminal - platform: [linux] -fzf: - name: fzf - category: cli - platform: [linux, macos] -geany: - name: Geany - category: code_editor - platform: [linux] -gedit: - name: Gedit - category: code_editor - platform: [linux] -github: - name: GitHub - category: productivity - platform: userstyle - color: text -github-readme-stats: - name: GitHub Readme Stats - category: social - platform: agnostic - color: text -github-readme-tech-stack: - name: GitHub Readme Tech Stack - category: social - platform: agnostic - color: text -gitui: - name: GitUI - category: cli - platform: [linux, macos] - icon: gitui.svg -glamour: - name: Glamour - category: cli - platform: [linux, macos] -gnome-terminal: - name: GNOME Terminal - category: terminal - platform: [linux] - color: text - icon: gnometerminal -go: - name: Go - category: library - platform: agnostic -grub: - name: GRUB - category: system - platform: [linux] - icon: gnu - color: text -gtk: - name: GTK - category: system - platform: [linux] - color: green -hacker-news: - name: Hacker News - category: social - platform: userstyle - icon: ycombinator -helix: - name: Helix - category: code_editor - platform: [linux, macos, windows] -hexchat: - name: HexChat - category: messaging - platform: [linux, windows] - icon: hexchat.svg - color: peach -highlightjs: - name: Highlight.js - category: development - platform: agnostic -home-assistant: - name: Home Assistant - category: leisure - platform: agnostic - icon: homeassistant -hyper: - name: Hyper - category: terminal - platform: [linux, macos, windows] - color: text -hyprland: - name: Hyprland - category: system - platform: [linux] -i3: - name: i3/sway - category: system - platform: [linux] - color: text - icon: i3wm.svg -ichi.moe: - name: ichi.moe - category: productivity - platform: userstyle -infinity: - name: Infinity for Reddit - category: social - platform: [android] - icon: reddit - color: peach -insomnia: - name: Insomnia - category: development - platform: [android] - color: blue -invidious: - name: Invidious - category: social - platform: userstyle - icon: youtube - color: red -iterm: - name: iTerm2 - category: terminal - platform: [macos] - icon: iterm2 - color: green -jetbrains: - name: JetBrains - category: code_editor - platform: [linux, macos, windows] - color: text -joplin: - name: joplin - category: note_taking - platform: [linux, macos, windows] - color: blue -k9s: - name: k9s - category: cli - platform: [linux, macos] - icon: kubernetes - color: blue -Kvantum: - name: Kvantum - category: system - platform: [linux] -kakoune: - name: Kakoune - category: code_editor - platform: [linux, macos] -kde: - name: KDE - category: system - platform: [linux] - color: blue -kitty: - name: Kitty - category: terminal - platform: [linux, macos] - icon: kitty.svg - color: green -konsole: - name: Konsole - category: terminal - platform: [linux] - icon: kde - color: blue -lapce: - name: Lapce - category: code_editor - platform: [linux, macos, windows] -lastfm: - name: Last.fm - category: leisure - platform: userstyle - icon: lastdotfm - color: red -lazygit: - name: Lazygit - category: cli - platform: [linux, macos] - color: green -libreddit: - name: Libreddit - category: social - platform: userstyle - icon: reddit - color: peach -lxqt: - name: LxQT - category: system - platform: [linux] - icon: lxqt.svg - color: sky -mailspring: - name: Mailspring - category: productivity - platform: [linux, macos, windows] -mako: - name: Mako - category: system - platform: [linux] -mastodon: - name: Mastodon - category: social - platform: userstyle -matplotlib: - name: Matplotlib - category: development - platform: agnostic -mattermost: - name: Mattermost - category: messaging - platform: agnostic -mc: - name: Midning Commander - category: cli - platform: [linux, macos] -mdBook: - name: mdBook - category: development - platform: agnostic - icon: mdbook -micro: - name: Micro - category: code_editor - platform: [linux, macos, windows] - icon: micro.svg -minecraft: - name: Minecraft - category: game - platform: [linux, macos, windows] -modrinth: - name: Modrinth - category: game - platform: userstyle - color: green -monkeytype: - name: monkeytype - category: leisure - platform: userstyle - icon: monkeytype.svg - color: text -neomutt: - name: NeoMutt - category: cli - platform: [linux, macos] -newsboat: - name: Newsboat - category: cli - platform: [linux, macos] -nighttab: - name: Nighttab - category: browser_extension - platform: agnostic -nitter: - name: Nitter - category: social - platform: userstyle - icon: twitter - color: blue -noir: - name: Noir - category: browser_extension - platform: [ios] -notepad-plus-plus: - name: Notepad++ - category: code_editor - platform: [windows] - icon: notepadplusplus - color: green -nova: - name: Nova - category: code_editor - platform: [macos] -nvim: - name: Neovim - category: code_editor - platform: [linux, macos, windows] - icon: neovim - color: green -obs: - name: OBS Studio - category: productivity - platform: [linux, macos, windows] - icon: obsstudio -obsidian: - name: Obsidian - category: note_taking - platform: [linux, macos, windows] - color: mauve -openbox: - name: Openbox - category: system - platform: [linux] -pantone: - name: Pantone - category: library - platform: agnostic -papirus-folders: - name: Papirus Folders - category: system - platform: [linux] - icon: folders.svg -plank: - name: Plank - category: system - platform: [linux] -plymouth: - name: Plymouth - category: system - platform: [linux] -polybar: - name: Polybar - category: system - platform: [linux] -prismlauncher: - name: Prism Launcher - category: game - platform: [linux, macos, windows] -proton: - name: Proton - category: productivity - platform: userstyle - icon: protonmail - color: lavender -pyradio: - name: PyRadio - category: leisure - platform: [linux, macos, windows] -python: - name: Python - category: library - platform: agnostic -qbittorrent: - name: qBittorrent - category: productivity - platform: [linux, macos, windows] -qt5ct: - name: qt5ct - category: system - platform: [linux] -qutebrowser: - name: qutebrowser - category: browser - platform: [linux, macos, windows] - icon: qutebrowser.svg -qterminal: - name: QTerminal - category: terminal - platform: [linux] - icon: lxqt.svg - color: sky -rboard: - name: Rboard - category: system - platform: [android] - color: blue - icon: gboard.svg -reddit: - name: Reddit - category: social - platform: userstyle - color: red - icon: reddit -regolith: - name: Regolith Desktop - category: system - platform: [linux] -remnote: - name: Remnote - category: note_taking - platform: agnostic -revolt: - name: Revolt - category: messaging - platform: [linux, macos, windows] - icon: revoltdotchat -rofi: - name: Rofi - category: system - platform: [linux] -rust: - name: Rust - category: library - platform: agnostic -sc-im: - name: sc-im - category: cli - platform: [linux, macos] -sddm: - name: SDDM - category: system - platform: [linux] -SearXNG: - name: SearXNG - category: search_engine - platform: userstyle -sharex: - name: ShareX - category: productivity - platform: [windows] -sidebery: - name: Sidebery - category: browser_extension - platform: agnostic -slack: - name: Slack - category: messaging - platform: agnostic -solvespace: - name: SolveSpace - category: productivity - platform: [linux] -spicetify: - name: Spicetify - category: leisure - platform: [linux, macos, windows] - color: green - icon: spotify -spotify-player: - name: spotify-player - category: leisure - platform: [linux, macos, windows] - color: green - icon: spotify -spotify-tui: - name: spotify-tui - category: leisure - platform: [linux, macos, windows] - color: green - icon: spotify -spyder: - name: spyder - category: code_editor - platform: [linux, macos, windows] - icon: spyderide - color: red -st: - name: st - category: terminal - platform: [linux] -stable-diffusion-web-ui: - name: Stable Diffusion WebUI - category: leisure - platform: userstyle -startpage: - name: Startpage - category: search_engine - platform: agnostic -steam: - name: Steam - category: leisure - platform: [linux, macos, windows] - color: blue -sublime-text: - name: Sublime Text - category: code_editor - platform: [linux, macos, windows] - color: yellow - icon: sublimetext -sumatra-pdf: - name: SumatraPDF - category: productivity - platform: [windows] -tabby: - name: Tabby - category: terminal - platform: [linux, macos, windows] -tailwindcss: - name: Tailwind CSS - category: development - platform: agnostic - color: sky -telegram: - name: Telegram - category: messaging - platform: agnostic - color: blue -terminator: - name: Terminator - category: terminal - platform: [linux] -Terminal.app: - name: Terminal.app - category: terminal - platform: [macos] -termux: - name: Termux - category: terminal - platform: [android] -thelounge: - name: The Lounge - category: messaging - platform: agnostic -thunderbird: - name: Thunderbird - category: productivity - platform: [linux, macos, windows] - color: blue -tilix: - name: Tilix - category: terminal - platform: [linux] -tmux: - name: tmux - category: cli - platform: [linux, macos] - color: green -tty: - name: tty - category: system - platform: [linux] -tutanota: - name: Tutanota - category: productivity - platform: userstyle - color: red -tym: - name: tym - category: terminal - platform: [linux] -ui: - name: UI - category: library - platform: agnostic - icon: react - color: sky -ulauncher: - name: Ulauncher - category: system - platform: [linux] -ultrakill: - name: ULTRAKILL - category: game - platform: [linux, macos, windows] -unreal-engine: - name: Unreal Engine - category: development - platform: [linux, macos, windows] - icon: unrealengine - color: blue -urxvt: - name: Urxvt - category: terminal - platform: [linux] -vercel: - name: Vercel - category: development - platform: userstyle -vim: - name: Vim - category: code_editor - platform: [linux, macos, windows] - color: green -vimium: - name: Vimium - category: browser_extension - platform: agnostic -visual-studio: - name: Visual Studio - category: code_editor - platform: [windows] - icon: visualstudio -vivaldi: - name: Vivaldi - category: browser - platform: [linux, macos, windows] - color: peach -vscode: - name: Visual Studio Code - category: code_editor - platform: [linux, macos, windows] - color: blue - icon: visualstudiocode -warp: - name: Warp - category: terminal - platform: [macos] -waybar: - name: waybar - category: system - platform: [linux] -wezterm: - name: WezTerm - category: terminal - platform: [linux, macos, windows] - icon: wezterm.svg -whoogle: - name: Whoogle - category: search_engine - platform: userstyle -wikiwand: - name: WikiWand - category: productivity - platform: userstyle - icon: wikipedia -windows-files: - name: Windows Files - category: system - platform: [windows] - icon: windows-files.svg - color: yellow -windows-terminal: - name: Windows Terminal - category: terminal - platform: [windows] - icon: windowsterminal - color: text -xcode: - name: Xcode - category: code_editor - platform: [macos] - color: blue -xfce4-terminal: - name: Xfce4 Terminal - category: terminal - platform: [linux] - icon: xfce.svg -xed: - name: Xed - category: code_editor - platform: [linux] -xresources: - name: Xresources - category: system - platform: [linux] - icon: xdotorg -youtube: - name: YouTube - category: social - platform: userstyle - color: red -youtubemusic: - name: YouTube Music - category: leisure - platform: userstyle - color: red -zathura: - name: Zathura - category: productivity - platform: [linux] - icon: zathura.svg -zellij: - name: Zellij - category: cli - platform: [linux, macos] - icon: zellij.svg -zsh-syntax-highlighting: - name: zsh-syntax-highlighting - category: cli - platform: [linux, macos] -zutty: - name: Zutty - category: terminal - platform: [linux] -# yaml-language-server: $schema=https://raw.githubusercontent.com/catppuccin/catppuccin/main/resources/ports.schema.json +categories: + - key: code_editor + name: Code Editors & IDEs + emoji: 👾 + - key: development + name: Development tools + emoji: 💭 + - key: library + name: Libraries + emoji: 📚 + - key: cli + name: CLI tools + emoji: 🐚 + - key: terminal + name: Terminals + emoji: 🌱 + - key: system + name: System + emoji: 🔧 + - key: browser + name: Browsers + emoji: 🏄 + - key: browser_extension + name: Browser Extensions + emoji: 🧩 + - key: search_engine + name: Search Engines + emoji: 🔎 + - key: messaging + name: Messaging + emoji: 💬 + - key: note_taking + name: Note taking + emoji: 📝 + - key: productivity + name: Productivity + emoji: 🗂️ + - key: social + name: Social + emoji: ✨ + - key: leisure + name: Leisure + emoji: 🌈 + - key: game + name: Games + emoji: 🎮 + +ports: + alacritty: + name: Alacritty + category: terminal + color: peach + platform: [linux, macos, windows] + alfred: + name: Alfred + category: productivity + color: mauve + platform: [macos] + aliucord: + name: Aliucord + category: messaging + platform: [android] + amfora: + name: Amfora + category: leisure + platform: [linux, macos, windows] + anilist: + name: AniList + category: leisure + platform: userstyle + color: blue + anki: + name: Anki + category: productivity + platform: agnostic + icon: anki.svg + color: blue + base16: + name: Base16 + category: system + platform: agnostic + bat: + name: bat + category: cli + platform: [linux, macos, windows] + icon: bat.svg + bento: + name: Bento + category: productivity + platform: agnostic + binary-ninja: + name: Binary Ninja + category: code_editor + platform: [linux, macos, windows] + bitburner: + name: BitBurner + category: game + platform: [linux, macos, windows] + blackbox: + name: Black Box + category: terminal + platform: [linux] + blink: + name: Blink + category: terminal + platform: [ios] + blockbench: + name: Blockbench + category: game + platform: [linux, macos, windows] + bottom: + name: bottom + category: cli + platform: [linux, macos, windows] + brave-search: + name: Brave Search + category: productivity + platform: userstyle + icon: brave + color: peach + btop: + name: Btop++ + category: cli + platform: [linux, macos] + cava: + name: C.A.V.A. + category: cli + platform: [linux, macos] + chrome: + name: Google Chrome + category: browser + platform: [linux, macos, windows] + icon: googlechrome + color: yellow + cinny: + name: Cinny + category: messaging + platform: [linux] + codeberg: + name: Codeberg + category: productivity + platform: userstyle + codemirror: + name: CodeMirror + category: development + platform: agnostic + conky: + name: Conky + category: system + platform: [linux] + contour: + name: Contour + category: terminal + platform: [linux, macos, windows] + crt: + name: 'CRT: cool-retro-term' + category: terminal + platform: [linux, macos] + cursors: + name: Cursors + category: system + platform: [linux] + icon: cursors.svg + cutter: + name: Cutter + category: code_editor + platform: [linux, macos, windows] + dark-reader: + name: Dark Reader + category: browser_extension + platform: agnostic + icon: darkreader + color: red + deepl: + name: DeepL + category: productivity + platform: userstyle + discord: + name: Discord + category: messaging + platform: [linux, macos, windows] + color: blue + dmenu: + name: dmenu + category: system + platform: [linux] + duckduckgo: + name: DuckDuckGo + category: productivity + platform: userstyle + color: peach + dunst: + name: Dunst + category: system + platform: [linux] + dwarf-fortress: + name: Dwarf Fortress + category: game + platform: [linux, macos, windows] + egui: + name: egui + category: development + platform: [linux, macos, windows] + element: + name: Element + category: messaging + platform: [linux, macos, windows] + elk: + name: Elk + category: social + platform: agnostic + emacs: + name: Emacs + category: code_editor + platform: [linux, macos, windows] + icon: gnuemacs + color: mauve + enmity: + name: Enmity + category: messaging + platform: [ios] + fcitx5: + name: fcitx5 + category: system + platform: [linux] + firefox: + name: Firefox + category: browser + platform: [linux, macos, windows] + color: red + fish: + name: Fish + category: cli + platform: [linux, macos] + icon: fish.svg + color: green + floris-board: + name: FlorisBoard + category: system + platform: [android] + foliate: + name: Foliate + category: productivity + platform: [linux] + foot: + name: foot + category: terminal + platform: [linux] + fzf: + name: fzf + category: cli + platform: [linux, macos] + geany: + name: Geany + category: code_editor + platform: [linux] + gedit: + name: Gedit + category: code_editor + platform: [linux] + github: + name: GitHub + category: productivity + platform: userstyle + color: text + github-readme-stats: + name: GitHub Readme Stats + category: social + platform: agnostic + color: text + github-readme-tech-stack: + name: GitHub Readme Tech Stack + category: social + platform: agnostic + color: text + gitui: + name: GitUI + category: cli + platform: [linux, macos] + icon: gitui.svg + glamour: + name: Glamour + category: cli + platform: [linux, macos] + gnome-terminal: + name: GNOME Terminal + category: terminal + platform: [linux] + color: text + icon: gnometerminal + go: + name: Go + category: library + platform: agnostic + grub: + name: GRUB + category: system + platform: [linux] + icon: gnu + color: text + gtk: + name: GTK + category: system + platform: [linux] + color: green + hacker-news: + name: Hacker News + category: social + platform: userstyle + icon: ycombinator + helix: + name: Helix + category: code_editor + platform: [linux, macos, windows] + hexchat: + name: HexChat + category: messaging + platform: [linux, windows] + icon: hexchat.svg + color: peach + highlightjs: + name: Highlight.js + category: development + platform: agnostic + home-assistant: + name: Home Assistant + category: leisure + platform: agnostic + icon: homeassistant + hyper: + name: Hyper + category: terminal + platform: [linux, macos, windows] + color: text + hyprland: + name: Hyprland + category: system + platform: [linux] + i3: + name: i3/sway + category: system + platform: [linux] + color: text + icon: i3wm.svg + ichi.moe: + name: ichi.moe + category: productivity + platform: userstyle + infinity: + name: Infinity for Reddit + category: social + platform: [android] + icon: reddit + color: peach + insomnia: + name: Insomnia + category: development + platform: [android] + color: blue + invidious: + name: Invidious + category: social + platform: userstyle + icon: youtube + color: red + iterm: + name: iTerm2 + category: terminal + platform: [macos] + icon: iterm2 + color: green + jetbrains: + name: JetBrains + category: code_editor + platform: [linux, macos, windows] + color: text + joplin: + name: Joplin + category: note_taking + platform: [linux, macos, windows] + color: blue + k9s: + name: k9s + category: cli + platform: [linux, macos] + icon: kubernetes + color: blue + Kvantum: + name: Kvantum + category: system + platform: [linux] + kakoune: + name: Kakoune + category: code_editor + platform: [linux, macos] + kde: + name: KDE + category: system + platform: [linux] + color: blue + kitty: + name: Kitty + category: terminal + platform: [linux, macos] + icon: kitty.svg + color: green + konsole: + name: Konsole + category: terminal + platform: [linux] + icon: kde + color: blue + lapce: + name: Lapce + category: code_editor + platform: [linux, macos, windows] + lastfm: + name: Last.fm + category: leisure + platform: userstyle + icon: lastdotfm + color: red + lazygit: + name: Lazygit + category: cli + platform: [linux, macos] + color: green + libreddit: + name: Libreddit + category: social + platform: userstyle + icon: reddit + color: peach + lxqt: + name: LxQT + category: system + platform: [linux] + icon: lxqt.svg + color: sky + mailspring: + name: Mailspring + category: productivity + platform: [linux, macos, windows] + mako: + name: Mako + category: system + platform: [linux] + mastodon: + name: Mastodon + category: social + platform: userstyle + matplotlib: + name: Matplotlib + category: development + platform: agnostic + mattermost: + name: Mattermost + category: messaging + platform: agnostic + mc: + name: Midning Commander + category: cli + platform: [linux, macos] + mdBook: + name: mdBook + category: development + platform: agnostic + icon: mdbook + micro: + name: Micro + category: code_editor + platform: [linux, macos, windows] + icon: micro.svg + minecraft: + name: Minecraft + category: game + platform: [linux, macos, windows] + modrinth: + name: Modrinth + category: game + platform: userstyle + color: green + monkeytype: + name: monkeytype + category: leisure + platform: userstyle + icon: monkeytype.svg + color: text + neomutt: + name: NeoMutt + category: cli + platform: [linux, macos] + newsboat: + name: Newsboat + category: cli + platform: [linux, macos] + nighttab: + name: Nighttab + category: browser_extension + platform: agnostic + nitter: + name: Nitter + category: social + platform: userstyle + icon: twitter + color: blue + noir: + name: Noir + category: browser_extension + platform: [ios] + notepad-plus-plus: + name: Notepad++ + category: code_editor + platform: [windows] + icon: notepadplusplus + color: green + nova: + name: Nova + category: code_editor + platform: [macos] + nvim: + name: Neovim + category: code_editor + platform: [linux, macos, windows] + icon: neovim + color: green + obs: + name: OBS Studio + category: productivity + platform: [linux, macos, windows] + icon: obsstudio + obsidian: + name: Obsidian + category: note_taking + platform: [linux, macos, windows] + color: mauve + openbox: + name: Openbox + category: system + platform: [linux] + pantone: + name: Pantone + category: library + platform: agnostic + papirus-folders: + name: Papirus Folders + category: system + platform: [linux] + icon: folders.svg + plank: + name: Plank + category: system + platform: [linux] + plymouth: + name: Plymouth + category: system + platform: [linux] + polybar: + name: Polybar + category: system + platform: [linux] + prismlauncher: + name: Prism Launcher + category: game + platform: [linux, macos, windows] + proton: + name: Proton + category: productivity + platform: userstyle + icon: protonmail + color: lavender + pyradio: + name: PyRadio + category: leisure + platform: [linux, macos, windows] + python: + name: Python + category: library + platform: agnostic + qbittorrent: + name: qBittorrent + category: productivity + platform: [linux, macos, windows] + qt5ct: + name: qt5ct + category: system + platform: [linux] + qutebrowser: + name: qutebrowser + category: browser + platform: [linux, macos, windows] + icon: qutebrowser.svg + qterminal: + name: QTerminal + category: terminal + platform: [linux] + icon: lxqt.svg + color: sky + rboard: + name: Rboard + category: system + platform: [android] + color: blue + icon: gboard.svg + reddit: + name: Reddit + category: social + platform: userstyle + color: red + icon: reddit + regolith: + name: Regolith Desktop + category: system + platform: [linux] + remnote: + name: Remnote + category: note_taking + platform: agnostic + revolt: + name: Revolt + category: messaging + platform: [linux, macos, windows] + icon: revoltdotchat + rofi: + name: Rofi + category: system + platform: [linux] + rust: + name: Rust + category: library + platform: agnostic + sc-im: + name: sc-im + category: cli + platform: [linux, macos] + sddm: + name: SDDM + category: system + platform: [linux] + SearXNG: + name: SearXNG + category: search_engine + platform: userstyle + sharex: + name: ShareX + category: productivity + platform: [windows] + sidebery: + name: Sidebery + category: browser_extension + platform: agnostic + slack: + name: Slack + category: messaging + platform: agnostic + solvespace: + name: SolveSpace + category: productivity + platform: [linux] + spicetify: + name: Spicetify + category: leisure + platform: [linux, macos, windows] + color: green + icon: spotify + spotify-player: + name: spotify-player + category: leisure + platform: [linux, macos, windows] + color: green + icon: spotify + spotify-tui: + name: spotify-tui + category: leisure + platform: [linux, macos, windows] + color: green + icon: spotify + spyder: + name: spyder + category: code_editor + platform: [linux, macos, windows] + icon: spyderide + color: red + st: + name: st + category: terminal + platform: [linux] + stable-diffusion-web-ui: + name: Stable Diffusion WebUI + category: leisure + platform: userstyle + startpage: + name: Startpage + category: search_engine + platform: agnostic + steam: + name: Steam + category: leisure + platform: [linux, macos, windows] + color: blue + sublime-text: + name: Sublime Text + category: code_editor + platform: [linux, macos, windows] + color: yellow + icon: sublimetext + sumatra-pdf: + name: SumatraPDF + category: productivity + platform: [windows] + tabby: + name: Tabby + category: terminal + platform: [linux, macos, windows] + tailwindcss: + name: Tailwind CSS + category: development + platform: agnostic + color: sky + telegram: + name: Telegram + category: messaging + platform: agnostic + color: blue + terminator: + name: Terminator + category: terminal + platform: [linux] + Terminal.app: + name: Terminal.app + category: terminal + platform: [macos] + termux: + name: Termux + category: terminal + platform: [android] + thelounge: + name: The Lounge + category: messaging + platform: agnostic + thunderbird: + name: Thunderbird + category: productivity + platform: [linux, macos, windows] + color: blue + tilix: + name: Tilix + category: terminal + platform: [linux] + tmux: + name: tmux + category: cli + platform: [linux, macos] + color: green + tty: + name: tty + category: system + platform: [linux] + tutanota: + name: Tutanota + category: productivity + platform: userstyle + color: red + tym: + name: tym + category: terminal + platform: [linux] + ui: + name: UI + category: library + platform: agnostic + icon: react + color: sky + ulauncher: + name: Ulauncher + category: system + platform: [linux] + ultrakill: + name: ULTRAKILL + category: game + platform: [linux, macos, windows] + unreal-engine: + name: Unreal Engine + category: development + platform: [linux, macos, windows] + icon: unrealengine + color: blue + urxvt: + name: Urxvt + category: terminal + platform: [linux] + vercel: + name: Vercel + category: development + platform: userstyle + vim: + name: Vim + category: code_editor + platform: [linux, macos, windows] + color: green + vimium: + name: Vimium + category: browser_extension + platform: agnostic + visual-studio: + name: Visual Studio + category: code_editor + platform: [windows] + icon: visualstudio + vivaldi: + name: Vivaldi + category: browser + platform: [linux, macos, windows] + color: peach + vscode: + name: Visual Studio Code + category: code_editor + platform: [linux, macos, windows] + color: blue + icon: visualstudiocode + warp: + name: Warp + category: terminal + platform: [macos] + waybar: + name: waybar + category: system + platform: [linux] + wezterm: + name: WezTerm + category: terminal + platform: [linux, macos, windows] + icon: wezterm.svg + whoogle: + name: Whoogle + category: search_engine + platform: userstyle + wikiwand: + name: WikiWand + category: productivity + platform: userstyle + icon: wikipedia + windows-files: + name: Windows Files + category: system + platform: [windows] + icon: windows-files.svg + color: yellow + windows-terminal: + name: Windows Terminal + category: terminal + platform: [windows] + icon: windowsterminal + color: text + xcode: + name: Xcode + category: code_editor + platform: [macos] + color: blue + xfce4-terminal: + name: Xfce4 Terminal + category: terminal + platform: [linux] + icon: xfce.svg + xed: + name: Xed + category: code_editor + platform: [linux] + xresources: + name: Xresources + category: system + platform: [linux] + icon: xdotorg + youtube: + name: YouTube + category: social + platform: userstyle + color: red + youtubemusic: + name: YouTube Music + category: leisure + platform: userstyle + color: red + zathura: + name: Zathura + category: productivity + platform: [linux] + icon: zathura.svg + zellij: + name: Zellij + category: cli + platform: [linux, macos] + icon: zellij.svg + zsh-syntax-highlighting: + name: zsh-syntax-highlighting + category: cli + platform: [linux, macos] + zutty: + name: Zutty + category: terminal + platform: [linux] + +showcases: + - title: flotes.app + description: A free note-taking app enhanced with flashcard features + link: https://flotes.app/ + - title: AnuPpuccin + description: Highly customizable theme for [Obsidian](https://obsidian.md) + link: https://github.com/AnubisNekhet/AnuPpuccin + +# yaml-language-server: $schema=./ports.schema.json