/anysome

カテゴリ問わずのAwesomeリスト | Awesome list that included any categories.

Primary LanguageMDXCreative Commons Zero v1.0 UniversalCC0-1.0

Anysome

ジャンルを問わないAwesomeリスト。

Why Anysome?

Awesomeリストを知っていますか? カテゴリー別でAwesomeなアプリやツールをリスト化しているリポジトリで、 Awesomeは「素晴らしい」「最高」という意味を持っています。

しかし、Awesomeは単純であるが故にいくつかの問題があります。

  • リポジトリやカテゴリーが多すぎて網羅できない
  • 探しにくい
  • 簡潔すぎる概要
  • 終わったプロジェクトが記載されていて、その旨が書かれていない

Anysomeはこれらの問題を解決するために作られました。

  • 解説ページの作成
  • 多言語化に対応
  • 検索機能 (解説ページやその他テキスト)
  • タグ機能
  • 並び替え
  • 表示の変更
  • 項目のメタデータ追加

技術選定・ツール

Anysomeには大量のライブラリやツールを使用しています。 全てを導入する必要はありませんし、ほとんどはパッケージのインストールと共に導入できます。 VSCodeを使っていれば、拡張機能を自動でインストールできます。

言語・フレームワーク

  • Node.js
    JavaScriptの実行環境。npmやyarn、pnpmを使用するなら必須。
  • TypeScript
    JavaScriptの上位互換であり、型を持つ。
  • pnpm
    ストレージにやさしく、高速で、npmやyarnよりも厳格なパッケージマネージャー。 bunの方が高速だが、一部の開発支援ツールはbunに対応していない。
  • Astro
  • Astro (VSCode)
  • Astro (Open VSX)
    SSGで右に出る者無し。特定のUIフレームワークに縛られる必要もない。 裏でViteを使用していて、Viteの機能を利用できる。
  • Svelte
  • Svelte (VSCode)
  • Svelte (Open VSX)
    バンドルサイズが3KB以下。構文はReactよりシンプルでAstroの構文と近い。
  • MDX
  • MDX (VSCode)
  • MDX (Open VSX)
    Markdown内でJSXのようなコンポーネントを使える言語。タグ内でもMarkdownの構文は使える。
  • UnoCSS
  • UnoCSS (VSCode)
  • UnoCSS (Open VSX)
    TailwindCSSとある程度互換性があって、リセットCSSが強制的につかない。
  • SASS
  • SASS (VSCode)
  • SASS (Open VSX)
    セミコロンや波括弧を省略する構文が特徴的で楽。
  • Stylus
  • Stylus (VSCode)
    SASSの基本的な構文と互換性があり、様々な書き方ができる自由な構文を持つ。

ツール

  • Fontsource
    フォントを外部から読み込まない。フォントの最適化が楽。
  • Iconify
  • Astro Icon
    コンポーネントとして呼び出すだけで使えるし、キャッシュや最適化が自動。
  • Autoprefixer
    生成されるCSSにベンダープレフィックスを自動で追加する。
  • PostCSS Preset Env
    CSSの新機能を難なく使えるようにする(実装されていなくても)。
  • Pagefind
    JSのみで検索機能を実装する。WASMがRustで書かれているので速いし、バンドルサイズも大きくない。
  • Giscus
    GitHub Discussionsをコメント画面として追加する。すべてをGitHubに依存できる。

開発環境・開発支援ツール

推奨ツール