Skip to content

ai-twinkle/ai-twinkle.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

118 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Twinkle AI Official Website

ζ­£ι«”δΈ­ζ–‡ | English

🌐 Official website for Twinkle AI - An open-source Traditional Chinese language model research community (θ‡΄εŠ›ζ–Όζ§‹ε»Ίι–‹ζΊζ­£ι«”δΈ­ζ–‡θͺžθ¨€ζ¨‘εž‹ηš„η ”η©Άη€ΎηΎ€).

This bilingual (Traditional Chinese and English) website showcases Twinkle AI's projects, research, and community initiatives.

Tech Stack

Prerequisites

  • Node.js 18+ or Bun runtime
  • Bun package manager (recommended) - Install Bun

Getting Started

1. Clone the Repository

git clone https://github.com/ai-twinkle/ai-twinkle.github.io.git
cd ai-twinkle.github.io

2. Install Dependencies

To install Bun, please visit to https://bun.com for more details.

Using Bun (recommended):

bun install

Or using npm:

npm install

3. Start Development Server

bun run dev

The site will be available at http://localhost:3000

Development Commands

Command Description
bun run dev Start development server
bun run build Build for production
bun run generate Generate static site
bun run preview Build and preview with Wrangler
bun run deploy Deploy to Cloudflare Workers
bun run lint:es:fix Auto-fix ESLint issues
bun run lint:es:check Check ESLint (fails on warnings)
bun run cf-typegen Generate Cloudflare types

Project Structure

.
β”œβ”€β”€ app/                    # Frontend Nuxt application
β”‚   β”œβ”€β”€ pages/             # File-based routing
β”‚   β”œβ”€β”€ components/        # Vue components
β”‚   β”œβ”€β”€ layouts/           # Page layouts
β”‚   β”œβ”€β”€ plugins/           # Nuxt plugins
β”‚   β”œβ”€β”€ data/              # TypeScript types and data
β”‚   └── assets/css/        # Global CSS
β”œβ”€β”€ server/                # Server-side code (Nitro)
β”‚   β”œβ”€β”€ api/              # API endpoints
β”‚   β”œβ”€β”€ routes/           # Server routes (redirects)
β”‚   └── utils/            # Server utilities
β”œβ”€β”€ i18n/locales/         # Translation files (zh-TW, en)
β”œβ”€β”€ public/               # Static assets
β”œβ”€β”€ nuxt.config.ts        # Nuxt configuration
└── wrangler.jsonc        # Cloudflare Workers config

Contributing

We welcome contributions! Please follow these guidelines:

Git Workflow

This project uses conventional commits enforced by commitlint:

# Commit message format
type(scope): description

# Examples
feat(components): add new hero section
fix(i18n): correct translation keys
docs(readme): update setup instructions

Common types: feat, fix, docs, style, refactor, test, chore

Git Hooks

  • Pre-commit: Runs ESLint on staged files
  • Commit-msg: Validates commit message format

Code Style

  • ESLint with eslint-config-nymph
  • JSDoc comments (without type annotations - use TypeScript types)
  • Run bun run lint:es:fix before committing

Key Features

Internationalization (i18n)

  • Default locale: zh-TW (Traditional Chinese)
  • Secondary locale: en (English)
  • URL strategy: prefix_except_default
    • Chinese: / (no prefix)
    • English: /en

Icon System

The project uses DynamicHeroIcon.vue component that converts PascalCase heroicon names to Nuxt UI format:

  • Input: BeakerIcon β†’ Output: i-heroicons-beaker

Server Routes

  • /github - Redirects to GitHub organization
  • /discord - Redirects to Discord server
  • /huggingface - Redirects to HuggingFace organization
  • API 404s return ASCII cat art via useCat() utility

Deployment

The site is deployed to Cloudflare Workers:

bun run deploy

Configuration is managed in wrangler.jsonc.

License

This project is licensed under the terms specified in the LICENSE file.

Community


Built with ❀️ by the Twinkle AI community

About

🌐 Twinkle AI Official Website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9