-
Notifications
You must be signed in to change notification settings - Fork 7
๐ชต 1. TypeDoc ๋ฐฐํฌํ๊ธฐ
choiseona edited this page Dec 5, 2024
·
1 revision
- typedoc๋ง ์ค์นํด์ค๋ ๋ฌธ์ ์์ง๋ง ํ๋น์ฝ ๊ฐ์ ๊ธฐํ ์์ฑ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด ์ถ๊ฐ ํ๋ฌ๊ทธ์ธ๋ ์ค์นํด์คฌ์ต๋๋ค.
pnpm add -D typedoc typedoc-plugin-extras
-
name
: ๋ฐฐํฌ ๋งํฌ ์ ๋ชฉ -
out
: TypeDoc ๋ด์ฉ์ด ๋ด๊ฒจ์๋ html, css ๋ฌธ์๊ฐ ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก -
readme
: ๋ฌธ์์ ๋ฉ์ธ ํ์ด์ง๋ก ์ฌ์ฉํ README ํ์ผ ๊ฒฝ๋ก -
favicon
: favicon ์ค์ (typedoc-plugin-extras ํน์ ๊ธฐํ ํ๋ฌ๊ทธ์ธ ์ค์น ํ์) -
plugin
: ์ฌ์ฉํ TypeDoc ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก -
entryPoints
: ๋ฌธ์ํํ TypeScript ํ์ผ๋ค์ ์ง์ ์ ๊ฒฝ๋ก -
exclude
: ๋ฌธ์ํ์์ ์ ์ธํ ํ์ผ/๋๋ ํ ๋ฆฌ ํจํด
{
"name": "Webebeb Team's FE Tools Docs",
"out": "./docs",
"readme": "../README.md",
"favicon": "./public/favicon.ico",
"plugin": ["typedoc-plugin-extras"],
"entryPoints": ["src/utils/index.ts", "src/hooks/index.ts"],
"exclude": ["**/node_modules/**", "**/dist/**"]
}
-
main
๋๋develop
๋ธ๋์น์ push๋ ๋ ์คํ - pnpm๊ณผ Node.js(v18) ํ๊ฒฝ ์ค์ & ์์กด์ฑ ์ค์น
- TypeDoc์ผ๋ก ๋ฌธ์ ๋น๋
- GitHub Pages๋ก ๋ฌธ์ ๋ฐฐํฌ (
./client/docs
โ gh-pages ๋ธ๋์น)
name: Deploy Documentation
on:
push:
branches: ['main', 'develop']
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
cache-dependency-path: './client/pnpm-lock.yaml'
- name: Install dependencies
working-directory: ./client
run: pnpm install
- name: Build documentation
run: pnpm typedoc
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./client/docs
force_orphan: true
commit_message: 'docs: deploy documentation'
- Github pages๋ก ๋ฌธ์ ๋ฐฐํฌ๋ฅผ ์ํ๋ค๋ฉด ๊ผญ๊ผญ ์์ workflow ์ธํ ๊น์ง ์ ํ๋์ด์ผ ํฉ๋๋ค.
- TypeDoc์ด JSDoc ์ฃผ์์ ํ์ฑํ์ฌ ๋ฌธ์ํ ํด์ค๋๋ค.
- ๋ํ vscode์์ ์์ ํ ๋๋ ํด๋น ํจ์์ ๋ง์ฐ์ค ํธ๋ฒ ์ example ๋ฑ์ ๋ฏธ๋ฆฌ ๋ณผ ์ ์์ด ์ ์ฉํฉ๋๋ค.
import { clsx, type ClassValue } from 'clsx';
import { twMerge } from 'tailwind-merge';
/**
* Tailwind CSS ํด๋์ค๋ค์ ๋ณํฉํ๋ ์ ํธ๋ฆฌํฐ ํจ์์
๋๋ค.
*
* - clsx๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด๋ถ ํด๋์ค๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
* - tailwind-merge๋ฅผ ์ฌ์ฉํ์ฌ Tailwind ํด๋์ค ์ถฉ๋์ ํด๊ฒฐํฉ๋๋ค.
*
* @param inputs - ๋ณํฉํ ํด๋์ค๋ค์ ๋ฐฐ์ด. ClassValue ํ์
์ ๋ฌธ์์ด, ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ์ ํฌํจํ ์ ์์ต๋๋ค.
* @returns ๋ณํฉ๋ ํด๋์ค ๋ฌธ์์ด
*
* @example
* ```tsx
* // ๋ฒํผ ์ปดํฌ๋ํธ์์์ ์ฌ์ฉ ์์
* const buttonVariants = cva(
* 'inline-flex items-center justify-center',
* {
* variants: {
* variant: {
* primary: 'bg-violet-500 hover:bg-violet-600',
* // ...
* },
* size: {
* sm: 'h-11 text-2xl',
* // ...
* }
* },
* defaultVariants: {
* variant: 'primary',
* size: 'sm'
* }
* }
* );
*
* const Button = ({ className, variant, size, ...props }) => {
* return (
* <button
* className={cn(
* buttonVariants({ variant, size, className }),
* )}
* {...props}
* />
* );
* };
* ```
*
* @see {@link https://github.com/lukeed/clsx clsx}
* @see {@link https://github.com/dcastil/tailwind-merge tailwind-merge}
* @see {@link https://github.com/shadcn/ui shadcn/ui}
* @category Utils
*/
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
- 1. ๊ฐ๋ฐ ํ๊ฒฝ ์ธํ ๋ฐ ํ๋ก์ ํธ ๋ฌธ์ํ
- 2. ์ค์๊ฐ ํต์
- 3. ์ธํ๋ผ ๋ฐ CI/CD
- 4. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด Canvas ๊ตฌํํ๊ธฐ
- 5. ์บ๋ฒ์ค ๋๊ธฐํ๋ฅผ ์ํ ์์ CRDT ๊ตฌํ๊ธฐ
-
6. ์ปดํฌ๋ํธ ํจํด๋ถํฐ ์น์์ผ๊น์ง, ํจ์จ์ ์ธ FE ์ค๊ณ
- ์ข์ ์ปดํฌ๋ํธ๋ ๋ฌด์์ธ๊ฐ? + Headless Pattern
- ํจ์จ์ ์ธ UI ์ปดํฌ๋ํธ ์คํ์ผ๋ง: Tailwind CSS + cn.ts
- Tailwind CSS๋ก ๋์์ธ ์์คํ ๋ฐ UI ์ปดํฌ๋ํธ ์ธํ
- ์น์์ผ ํด๋ผ์ด์ธํธ ๊ตฌํ๊ธฐ: React ํ๊ฒฝ์์ ํจ์จ์ ์ธ ์น์์ผ ์ํคํ ์ฒ
- ์น์์ผ ํด๋ผ์ด์ธํธ ์ฝ๋ ๋ถ์ ๋ฐ ๊ณต์
- 7. ํธ๋ฌ๋ธ ์ํ ๋ฐ ์ฑ๋ฅ/UX ๊ฐ์
- 1์ฃผ์ฐจ ๊ธฐ์ ๊ณต์
- 2์ฃผ์ฐจ ๋ฐ๋ชจ ๋ฐ์ด
- 3์ฃผ์ฐจ ๋ฐ๋ชจ ๋ฐ์ด
- 4์ฃผ์ฐจ ๋ฐ๋ชจ ๋ฐ์ด
- 5์ฃผ์ฐจ ๋ฐ๋ชจ ๋ฐ์ด
- WEEK 06 ์ฃผ๊ฐ ๊ณํ
- WEEK 06 ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- WEEK 06 ์ฃผ๊ฐ ํ๊ณ