commit
287a8b90fe
12 changed files with 1162 additions and 0 deletions
-
24.gitignore
-
67README.md
-
13index.html
-
870package-lock.json
-
18package.json
-
1public/vite.svg
-
9src/counter.ts
-
24src/main.ts
-
96src/style.css
-
1src/typescript.svg
-
13syllabus.html
-
26tsconfig.json
@ -0,0 +1,24 @@ |
|||
# Logs |
|||
logs |
|||
*.log |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
pnpm-debug.log* |
|||
lerna-debug.log* |
|||
|
|||
node_modules |
|||
dist |
|||
dist-ssr |
|||
*.local |
|||
|
|||
# Editor directories and files |
|||
.vscode/* |
|||
!.vscode/extensions.json |
|||
.idea |
|||
.DS_Store |
|||
*.suo |
|||
*.ntvs* |
|||
*.njsproj |
|||
*.sln |
|||
*.sw? |
|||
@ -0,0 +1,67 @@ |
|||
# 김준희의 수업 웹사이트 개발 과제 |
|||
|
|||
마감시간은 12월 25일. 기본적인 웹개발 개념을 배우는 게 목적입니다. |
|||
|
|||
# 초기화 |
|||
|
|||
불명확한 부분이 있으면 반드시 질문하는 것을 권장합니다. |
|||
|
|||
## 프로그램 설치 |
|||
|
|||
다음 프로그램들을 설치하세요: |
|||
|
|||
- [NodeJS](https://nodejs.org) |
|||
- [Git](https://git-scm.org) |
|||
- [Visual Studio Code](https://code.visualstudio.com/) |
|||
|
|||
운영체제마다 설치 과정이 다를 것입니다. |
|||
|
|||
## 이 프로젝트를 복사하기 |
|||
|
|||
Windows 사용자의 경우, 본 과제는 Git Bash 환경에서 수행하는 것을 권장합니다. |
|||
|
|||
Git라는 버전 관리 시스템을 사용하며, 프로젝트를 저장하는 디렉토리 다음 |
|||
명력을 입력하세요 (디렉토리라는 개념을 모르시다면 반드시 질문해 주세요): |
|||
|
|||
```bash |
|||
# Git 서버에서 다운로드 |
|||
git clone https://git.junickim.me/junikimm717/lfs-site |
|||
# 생성된 다이랙토리에 이동하여 필수 패키지 설치 |
|||
cd lfs-site |
|||
npm install |
|||
# 초기화할 때는 새로운 브랜치를 만드세요. 브렌치 명은 해당되는 이름으로 지어주면 됩니다. |
|||
git branch site-edits |
|||
# site-edits 브랜치로 이동하세요. |
|||
git checkout site-edits. |
|||
``` |
|||
|
|||
## 개발용 서버 작동하기 |
|||
|
|||
위에서 이동했던 같은 디렉토리에서 다음 명령을 입력하세요: |
|||
|
|||
```bash |
|||
npm run dev |
|||
# http://localhost:5173 를 브라우저에다가 입력하세요. |
|||
``` |
|||
|
|||
# 커밋 |
|||
|
|||
코드 편집을 어느 정도 했을 때 그 편집 기록을 커밋하고 Git 서버에 공유하는 |
|||
걸 추천합니다. |
|||
|
|||
```bash |
|||
# 현재 디렉토리에 있는 편집 기록을 추가하기. |
|||
git add . |
|||
# 편집 기록을 커밋하기 (커밋 설명 메시지를 남겨두세요) |
|||
git commit -m "some new changes I made" |
|||
``` |
|||
|
|||
브랜치를 처음 공유한다면: |
|||
```bash |
|||
git push -u origin {브랜치 명} |
|||
``` |
|||
|
|||
그 외에는: |
|||
```bash |
|||
git push |
|||
``` |
|||
@ -0,0 +1,13 @@ |
|||
<!doctype html> |
|||
<html lang="en"> |
|||
<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>{제목}</title> |
|||
</head> |
|||
<body> |
|||
<div id="app"></div> |
|||
<script type="module" src="/src/main.ts"></script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,870 @@ |
|||
{ |
|||
"name": "course-site", |
|||
"version": "0.0.0", |
|||
"lockfileVersion": 3, |
|||
"requires": true, |
|||
"packages": { |
|||
"": { |
|||
"name": "course-site", |
|||
"version": "0.0.0", |
|||
"devDependencies": { |
|||
"typescript": "~5.9.3", |
|||
"vite": "npm:rolldown-vite@7.2.5" |
|||
} |
|||
}, |
|||
"node_modules/@emnapi/core": { |
|||
"version": "1.7.1", |
|||
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", |
|||
"integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"@emnapi/wasi-threads": "1.1.0", |
|||
"tslib": "^2.4.0" |
|||
} |
|||
}, |
|||
"node_modules/@emnapi/runtime": { |
|||
"version": "1.7.1", |
|||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", |
|||
"integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"tslib": "^2.4.0" |
|||
} |
|||
}, |
|||
"node_modules/@emnapi/wasi-threads": { |
|||
"version": "1.1.0", |
|||
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", |
|||
"integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"tslib": "^2.4.0" |
|||
} |
|||
}, |
|||
"node_modules/@napi-rs/wasm-runtime": { |
|||
"version": "1.1.0", |
|||
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.0.tgz", |
|||
"integrity": "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"@emnapi/core": "^1.7.1", |
|||
"@emnapi/runtime": "^1.7.1", |
|||
"@tybys/wasm-util": "^0.10.1" |
|||
} |
|||
}, |
|||
"node_modules/@oxc-project/runtime": { |
|||
"version": "0.97.0", |
|||
"resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.97.0.tgz", |
|||
"integrity": "sha512-yH0zw7z+jEws4dZ4IUKoix5Lh3yhqIJWF9Dc8PWvhpo7U7O+lJrv7ZZL4BeRO0la8LBQFwcCewtLBnVV7hPe/w==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@oxc-project/types": { |
|||
"version": "0.97.0", |
|||
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.97.0.tgz", |
|||
"integrity": "sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"funding": { |
|||
"url": "https://github.com/sponsors/Boshen" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-android-arm64": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"android" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-darwin-arm64": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"darwin" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-darwin-x64": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"darwin" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-freebsd-x64": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"freebsd" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-linux-arm-gnueabihf": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw==", |
|||
"cpu": [ |
|||
"arm" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-linux-arm64-gnu": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-linux-arm64-musl": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-linux-x64-gnu": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-linux-x64-musl": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-openharmony-arm64": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"openharmony" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-wasm32-wasi": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg==", |
|||
"cpu": [ |
|||
"wasm32" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"@napi-rs/wasm-runtime": "^1.0.7" |
|||
}, |
|||
"engines": { |
|||
"node": ">=14.0.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-win32-arm64-msvc": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"win32" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-win32-ia32-msvc": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg==", |
|||
"cpu": [ |
|||
"ia32" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"win32" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/binding-win32-x64-msvc": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"win32" |
|||
], |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
} |
|||
}, |
|||
"node_modules/@rolldown/pluginutils": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", |
|||
"dev": true, |
|||
"license": "MIT" |
|||
}, |
|||
"node_modules/@tybys/wasm-util": { |
|||
"version": "0.10.1", |
|||
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", |
|||
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"dependencies": { |
|||
"tslib": "^2.4.0" |
|||
} |
|||
}, |
|||
"node_modules/detect-libc": { |
|||
"version": "2.1.2", |
|||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", |
|||
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", |
|||
"dev": true, |
|||
"license": "Apache-2.0", |
|||
"engines": { |
|||
"node": ">=8" |
|||
} |
|||
}, |
|||
"node_modules/fdir": { |
|||
"version": "6.5.0", |
|||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", |
|||
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"engines": { |
|||
"node": ">=12.0.0" |
|||
}, |
|||
"peerDependencies": { |
|||
"picomatch": "^3 || ^4" |
|||
}, |
|||
"peerDependenciesMeta": { |
|||
"picomatch": { |
|||
"optional": true |
|||
} |
|||
} |
|||
}, |
|||
"node_modules/fsevents": { |
|||
"version": "2.3.3", |
|||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", |
|||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", |
|||
"dev": true, |
|||
"hasInstallScript": true, |
|||
"license": "MIT", |
|||
"optional": true, |
|||
"os": [ |
|||
"darwin" |
|||
], |
|||
"engines": { |
|||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", |
|||
"integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"dependencies": { |
|||
"detect-libc": "^2.0.3" |
|||
}, |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
}, |
|||
"optionalDependencies": { |
|||
"lightningcss-android-arm64": "1.30.2", |
|||
"lightningcss-darwin-arm64": "1.30.2", |
|||
"lightningcss-darwin-x64": "1.30.2", |
|||
"lightningcss-freebsd-x64": "1.30.2", |
|||
"lightningcss-linux-arm-gnueabihf": "1.30.2", |
|||
"lightningcss-linux-arm64-gnu": "1.30.2", |
|||
"lightningcss-linux-arm64-musl": "1.30.2", |
|||
"lightningcss-linux-x64-gnu": "1.30.2", |
|||
"lightningcss-linux-x64-musl": "1.30.2", |
|||
"lightningcss-win32-arm64-msvc": "1.30.2", |
|||
"lightningcss-win32-x64-msvc": "1.30.2" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-android-arm64": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", |
|||
"integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"android" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-darwin-arm64": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", |
|||
"integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"darwin" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-darwin-x64": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", |
|||
"integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"darwin" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-freebsd-x64": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", |
|||
"integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"freebsd" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-linux-arm-gnueabihf": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", |
|||
"integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", |
|||
"cpu": [ |
|||
"arm" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-linux-arm64-gnu": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", |
|||
"integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-linux-arm64-musl": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", |
|||
"integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-linux-x64-gnu": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", |
|||
"integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-linux-x64-musl": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", |
|||
"integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"linux" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-win32-arm64-msvc": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", |
|||
"integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", |
|||
"cpu": [ |
|||
"arm64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"win32" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/lightningcss-win32-x64-msvc": { |
|||
"version": "1.30.2", |
|||
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", |
|||
"integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", |
|||
"cpu": [ |
|||
"x64" |
|||
], |
|||
"dev": true, |
|||
"license": "MPL-2.0", |
|||
"optional": true, |
|||
"os": [ |
|||
"win32" |
|||
], |
|||
"engines": { |
|||
"node": ">= 12.0.0" |
|||
}, |
|||
"funding": { |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/parcel" |
|||
} |
|||
}, |
|||
"node_modules/nanoid": { |
|||
"version": "3.3.11", |
|||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", |
|||
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", |
|||
"dev": true, |
|||
"funding": [ |
|||
{ |
|||
"type": "github", |
|||
"url": "https://github.com/sponsors/ai" |
|||
} |
|||
], |
|||
"license": "MIT", |
|||
"bin": { |
|||
"nanoid": "bin/nanoid.cjs" |
|||
}, |
|||
"engines": { |
|||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" |
|||
} |
|||
}, |
|||
"node_modules/picocolors": { |
|||
"version": "1.1.1", |
|||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", |
|||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", |
|||
"dev": true, |
|||
"license": "ISC" |
|||
}, |
|||
"node_modules/picomatch": { |
|||
"version": "4.0.3", |
|||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", |
|||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"engines": { |
|||
"node": ">=12" |
|||
}, |
|||
"funding": { |
|||
"url": "https://github.com/sponsors/jonschlinkert" |
|||
} |
|||
}, |
|||
"node_modules/postcss": { |
|||
"version": "8.5.6", |
|||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", |
|||
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", |
|||
"dev": true, |
|||
"funding": [ |
|||
{ |
|||
"type": "opencollective", |
|||
"url": "https://opencollective.com/postcss/" |
|||
}, |
|||
{ |
|||
"type": "tidelift", |
|||
"url": "https://tidelift.com/funding/github/npm/postcss" |
|||
}, |
|||
{ |
|||
"type": "github", |
|||
"url": "https://github.com/sponsors/ai" |
|||
} |
|||
], |
|||
"license": "MIT", |
|||
"dependencies": { |
|||
"nanoid": "^3.3.11", |
|||
"picocolors": "^1.1.1", |
|||
"source-map-js": "^1.2.1" |
|||
}, |
|||
"engines": { |
|||
"node": "^10 || ^12 || >=14" |
|||
} |
|||
}, |
|||
"node_modules/rolldown": { |
|||
"version": "1.0.0-beta.50", |
|||
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.50.tgz", |
|||
"integrity": "sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"dependencies": { |
|||
"@oxc-project/types": "=0.97.0", |
|||
"@rolldown/pluginutils": "1.0.0-beta.50" |
|||
}, |
|||
"bin": { |
|||
"rolldown": "bin/cli.mjs" |
|||
}, |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
}, |
|||
"optionalDependencies": { |
|||
"@rolldown/binding-android-arm64": "1.0.0-beta.50", |
|||
"@rolldown/binding-darwin-arm64": "1.0.0-beta.50", |
|||
"@rolldown/binding-darwin-x64": "1.0.0-beta.50", |
|||
"@rolldown/binding-freebsd-x64": "1.0.0-beta.50", |
|||
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.50", |
|||
"@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.50", |
|||
"@rolldown/binding-linux-arm64-musl": "1.0.0-beta.50", |
|||
"@rolldown/binding-linux-x64-gnu": "1.0.0-beta.50", |
|||
"@rolldown/binding-linux-x64-musl": "1.0.0-beta.50", |
|||
"@rolldown/binding-openharmony-arm64": "1.0.0-beta.50", |
|||
"@rolldown/binding-wasm32-wasi": "1.0.0-beta.50", |
|||
"@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.50", |
|||
"@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.50", |
|||
"@rolldown/binding-win32-x64-msvc": "1.0.0-beta.50" |
|||
} |
|||
}, |
|||
"node_modules/source-map-js": { |
|||
"version": "1.2.1", |
|||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", |
|||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", |
|||
"dev": true, |
|||
"license": "BSD-3-Clause", |
|||
"engines": { |
|||
"node": ">=0.10.0" |
|||
} |
|||
}, |
|||
"node_modules/tinyglobby": { |
|||
"version": "0.2.15", |
|||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", |
|||
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"dependencies": { |
|||
"fdir": "^6.5.0", |
|||
"picomatch": "^4.0.3" |
|||
}, |
|||
"engines": { |
|||
"node": ">=12.0.0" |
|||
}, |
|||
"funding": { |
|||
"url": "https://github.com/sponsors/SuperchupuDev" |
|||
} |
|||
}, |
|||
"node_modules/tslib": { |
|||
"version": "2.8.1", |
|||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", |
|||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", |
|||
"dev": true, |
|||
"license": "0BSD", |
|||
"optional": true |
|||
}, |
|||
"node_modules/typescript": { |
|||
"version": "5.9.3", |
|||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", |
|||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", |
|||
"dev": true, |
|||
"license": "Apache-2.0", |
|||
"bin": { |
|||
"tsc": "bin/tsc", |
|||
"tsserver": "bin/tsserver" |
|||
}, |
|||
"engines": { |
|||
"node": ">=14.17" |
|||
} |
|||
}, |
|||
"node_modules/vite": { |
|||
"name": "rolldown-vite", |
|||
"version": "7.2.5", |
|||
"resolved": "https://registry.npmjs.org/rolldown-vite/-/rolldown-vite-7.2.5.tgz", |
|||
"integrity": "sha512-u09tdk/huMiN8xwoiBbig197jKdCamQTtOruSalOzbqGje3jdHiV0njQlAW0YvzoahkirFePNQ4RYlfnRQpXZA==", |
|||
"dev": true, |
|||
"license": "MIT", |
|||
"dependencies": { |
|||
"@oxc-project/runtime": "0.97.0", |
|||
"fdir": "^6.5.0", |
|||
"lightningcss": "^1.30.2", |
|||
"picomatch": "^4.0.3", |
|||
"postcss": "^8.5.6", |
|||
"rolldown": "1.0.0-beta.50", |
|||
"tinyglobby": "^0.2.15" |
|||
}, |
|||
"bin": { |
|||
"vite": "bin/vite.js" |
|||
}, |
|||
"engines": { |
|||
"node": "^20.19.0 || >=22.12.0" |
|||
}, |
|||
"funding": { |
|||
"url": "https://github.com/vitejs/vite?sponsor=1" |
|||
}, |
|||
"optionalDependencies": { |
|||
"fsevents": "~2.3.3" |
|||
}, |
|||
"peerDependencies": { |
|||
"@types/node": "^20.19.0 || >=22.12.0", |
|||
"esbuild": "^0.25.0", |
|||
"jiti": ">=1.21.0", |
|||
"less": "^4.0.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" |
|||
}, |
|||
"peerDependenciesMeta": { |
|||
"@types/node": { |
|||
"optional": true |
|||
}, |
|||
"esbuild": { |
|||
"optional": true |
|||
}, |
|||
"jiti": { |
|||
"optional": true |
|||
}, |
|||
"less": { |
|||
"optional": true |
|||
}, |
|||
"sass": { |
|||
"optional": true |
|||
}, |
|||
"sass-embedded": { |
|||
"optional": true |
|||
}, |
|||
"stylus": { |
|||
"optional": true |
|||
}, |
|||
"sugarss": { |
|||
"optional": true |
|||
}, |
|||
"terser": { |
|||
"optional": true |
|||
}, |
|||
"tsx": { |
|||
"optional": true |
|||
}, |
|||
"yaml": { |
|||
"optional": true |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
{ |
|||
"name": "course-site", |
|||
"private": true, |
|||
"version": "0.0.0", |
|||
"type": "module", |
|||
"scripts": { |
|||
"dev": "vite", |
|||
"build": "tsc && vite build", |
|||
"preview": "vite preview" |
|||
}, |
|||
"devDependencies": { |
|||
"typescript": "~5.9.3", |
|||
"vite": "npm:rolldown-vite@7.2.5" |
|||
}, |
|||
"overrides": { |
|||
"vite": "npm:rolldown-vite@7.2.5" |
|||
} |
|||
} |
|||
@ -0,0 +1 @@ |
|||
<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> |
|||
@ -0,0 +1,9 @@ |
|||
export function setupCounter(element: HTMLButtonElement) { |
|||
let counter = 0 |
|||
const setCounter = (count: number) => { |
|||
counter = count |
|||
element.innerHTML = `count is ${counter}` |
|||
} |
|||
element.addEventListener('click', () => setCounter(counter + 1)) |
|||
setCounter(0) |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
import './style.css' |
|||
import typescriptLogo from './typescript.svg' |
|||
import viteLogo from '/vite.svg' |
|||
import { setupCounter } from './counter.ts' |
|||
|
|||
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> |
|||
`
|
|||
|
|||
setupCounter(document.querySelector<HTMLButtonElement>('#counter')!) |
|||
@ -0,0 +1,96 @@ |
|||
:root { |
|||
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; |
|||
line-height: 1.5; |
|||
font-weight: 400; |
|||
|
|||
color-scheme: light dark; |
|||
color: rgba(255, 255, 255, 0.87); |
|||
background-color: #242424; |
|||
|
|||
font-synthesis: none; |
|||
text-rendering: optimizeLegibility; |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
|
|||
a { |
|||
font-weight: 500; |
|||
color: #646cff; |
|||
text-decoration: inherit; |
|||
} |
|||
a:hover { |
|||
color: #535bf2; |
|||
} |
|||
|
|||
body { |
|||
margin: 0; |
|||
display: flex; |
|||
place-items: center; |
|||
min-width: 320px; |
|||
min-height: 100vh; |
|||
} |
|||
|
|||
h1 { |
|||
font-size: 3.2em; |
|||
line-height: 1.1; |
|||
} |
|||
|
|||
#app { |
|||
max-width: 1280px; |
|||
margin: 0 auto; |
|||
padding: 2rem; |
|||
text-align: center; |
|||
} |
|||
|
|||
.logo { |
|||
height: 6em; |
|||
padding: 1.5em; |
|||
will-change: filter; |
|||
transition: filter 300ms; |
|||
} |
|||
.logo:hover { |
|||
filter: drop-shadow(0 0 2em #646cffaa); |
|||
} |
|||
.logo.vanilla:hover { |
|||
filter: drop-shadow(0 0 2em #3178c6aa); |
|||
} |
|||
|
|||
.card { |
|||
padding: 2em; |
|||
} |
|||
|
|||
.read-the-docs { |
|||
color: #888; |
|||
} |
|||
|
|||
button { |
|||
border-radius: 8px; |
|||
border: 1px solid transparent; |
|||
padding: 0.6em 1.2em; |
|||
font-size: 1em; |
|||
font-weight: 500; |
|||
font-family: inherit; |
|||
background-color: #1a1a1a; |
|||
cursor: pointer; |
|||
transition: border-color 0.25s; |
|||
} |
|||
button:hover { |
|||
border-color: #646cff; |
|||
} |
|||
button:focus, |
|||
button:focus-visible { |
|||
outline: 4px auto -webkit-focus-ring-color; |
|||
} |
|||
|
|||
@media (prefers-color-scheme: light) { |
|||
:root { |
|||
color: #213547; |
|||
background-color: #ffffff; |
|||
} |
|||
a:hover { |
|||
color: #747bff; |
|||
} |
|||
button { |
|||
background-color: #f9f9f9; |
|||
} |
|||
} |
|||
@ -0,0 +1 @@ |
|||
<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="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="#007ACC" d="M0 128v128h256V0H0z"></path><path fill="#FFF" d="m56.612 128.85l-.081 10.483h33.32v94.68h23.568v-94.68h33.321v-10.28c0-5.69-.122-10.444-.284-10.566c-.122-.162-20.4-.244-44.983-.203l-44.74.122l-.121 10.443Zm149.955-10.742c6.501 1.625 11.459 4.51 16.01 9.224c2.357 2.52 5.851 7.111 6.136 8.208c.08.325-11.053 7.802-17.798 11.988c-.244.162-1.22-.894-2.317-2.52c-3.291-4.795-6.745-6.867-12.028-7.233c-7.76-.528-12.759 3.535-12.718 10.321c0 1.992.284 3.17 1.097 4.795c1.707 3.536 4.876 5.649 14.832 9.956c18.326 7.883 26.168 13.084 31.045 20.48c5.445 8.249 6.664 21.415 2.966 31.208c-4.063 10.646-14.14 17.879-28.323 20.276c-4.388.772-14.79.65-19.504-.203c-10.28-1.828-20.033-6.908-26.047-13.572c-2.357-2.6-6.949-9.387-6.664-9.874c.122-.163 1.178-.813 2.356-1.504c1.138-.65 5.446-3.129 9.509-5.485l7.355-4.267l1.544 2.276c2.154 3.29 6.867 7.801 9.712 9.305c8.167 4.307 19.383 3.698 24.909-1.26c2.357-2.153 3.332-4.388 3.332-7.68c0-2.966-.366-4.266-1.91-6.501c-1.99-2.845-6.054-5.242-17.595-10.24c-13.206-5.69-18.895-9.224-24.096-14.832c-3.007-3.25-5.852-8.452-7.03-12.8c-.975-3.617-1.22-12.678-.447-16.335c2.723-12.76 12.353-21.659 26.25-24.3c4.51-.853 14.994-.528 19.424.569Z"></path></svg> |
|||
@ -0,0 +1,13 @@ |
|||
<!doctype html> |
|||
<html lang="en"> |
|||
<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>{강의계획서 페이지}</title> |
|||
</head> |
|||
<body> |
|||
<div id="app"></div> |
|||
<script type="module" src="/src/main.ts"></script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,26 @@ |
|||
{ |
|||
"compilerOptions": { |
|||
"target": "ES2022", |
|||
"useDefineForClassFields": true, |
|||
"module": "ESNext", |
|||
"lib": ["ES2022", "DOM", "DOM.Iterable"], |
|||
"types": ["vite/client"], |
|||
"skipLibCheck": true, |
|||
|
|||
/* Bundler mode */ |
|||
"moduleResolution": "bundler", |
|||
"allowImportingTsExtensions": true, |
|||
"verbatimModuleSyntax": true, |
|||
"moduleDetection": "force", |
|||
"noEmit": true, |
|||
|
|||
/* Linting */ |
|||
"strict": true, |
|||
"noUnusedLocals": true, |
|||
"noUnusedParameters": true, |
|||
"erasableSyntaxOnly": true, |
|||
"noFallthroughCasesInSwitch": true, |
|||
"noUncheckedSideEffectImports": true |
|||
}, |
|||
"include": ["src"] |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue