diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 7365d8fa..00000000 --- a/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -package.json -package-lock.json -old -out \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 37e7ab5d..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,53 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true - }, - settings: { - react: { - version: 'detect' - } - }, - parserOptions: { - ecmaFeatures: { - jsx: true - }, - ecmaVersion: 12, - sourceType: 'module' - }, - plugins: ['prettier', 'react'], - extends: [ - 'standard', - 'plugin:react/recommended', - 'plugin:@next/next/recommended' - ], - rules: { - 'prettier/prettier': 'error', - 'space-before-function-paren': 'off' - }, - overrides: [ - { - files: ['*.ts', '*.tsx'], - parser: '@typescript-eslint/parser', - extends: ['plugin:@typescript-eslint/recommended'], - plugins: ['@typescript-eslint'], - rules: { - 'react/prop-types': 'off', - 'react/react-in-jsx-scope': 'off', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react', - importNames: ['FC'], - message: 'Please use `React.FC` instead of `FC`.' - } - ] - } - ], - '@next/next/no-img-element': 'off' - } - } - ] -} diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 78175652..df58bdb6 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -28,7 +28,7 @@ jobs: - uses: nwtgck/actions-netlify@v1.2.3 name: deploy to netlify with: - publish-dir: './out' + publish-dir: ./dist github-token: ${{ secrets.GITHUB_TOKEN }} env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} @@ -76,4 +76,4 @@ jobs: - uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./out + publish_dir: ./dist diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 97b885a3..57c9d874 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -30,7 +30,7 @@ jobs: - uses: nwtgck/actions-netlify@v1.0 name: deploy to netlify with: - publish-dir: './out' + publish-dir: ./dist github-token: ${{ secrets.GITHUB_TOKEN }} env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} diff --git a/.gitignore b/.gitignore index 01809a44..016b59ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,35 +1,24 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +# build output +dist/ -# dependencies -/node_modules -/.pnp -.pnp.js -tsconfig.tsbuildinfo - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build +# generated types +.astro/ -# misc -.DS_Store -*.pem +# dependencies +node_modules/ -# debug +# logs npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store -# vercel -.vercel +# jetbrains setting folder +.idea/ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..d0a77842 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged \ No newline at end of file diff --git a/.hygen.js b/.hygen.js deleted file mode 100644 index c102f9e4..00000000 --- a/.hygen.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - templates: `${__dirname}/.hygen` -} diff --git a/.hygen/gen/intro/introduction.ejs.t b/.hygen/gen/intro/introduction.ejs.t deleted file mode 100644 index d7971280..00000000 --- a/.hygen/gen/intro/introduction.ejs.t +++ /dev/null @@ -1,10 +0,0 @@ ---- -to: content/members/<%= name %>.ts ---- -export default { - name: '<%= name %>', - image: '', - twitter: '<%= twitter %>', - github: '<%= github %>', - website: '<%= website %>' -} diff --git a/.hygen/gen/intro/prompt.js b/.hygen/gen/intro/prompt.js deleted file mode 100644 index 124e5d4b..00000000 --- a/.hygen/gen/intro/prompt.js +++ /dev/null @@ -1,28 +0,0 @@ -// see types of prompts: -// https://github.com/enquirer/enquirer/tree/master/examples -// -module.exports = [ - { - type: 'input', - name: 'name', - message: '登録したいお名前を入力してください。', - validate: (answer /* string */) => { - return answer !== '' ? true : '名前は必須項目です。入力してください。' - } - }, - { - type: 'input', - name: 'twitter', - message: 'twitterアカウントのIDを入力してください。' - }, - { - type: 'input', - name: 'github', - message: 'githubアカウント名を入力してください。' - }, - { - type: 'input', - name: 'website', - message: 'websiteのURLを入力してください。' - } -] diff --git a/.lintstagedrc.js b/.lintstagedrc.js new file mode 100644 index 00000000..ada12a25 --- /dev/null +++ b/.lintstagedrc.js @@ -0,0 +1,10 @@ +/** @type {import('lint-staged').Config} */ +export default { + '*.{css,scss,astro}': ['npm run fix:css', 'npm run fix:format'], + '*.{js,cjs,mjs,ts,jsx,tsx,astro}': [ + 'npm run fix:js', + 'npm run fix:format', + () => 'npm run type-check' + ], + '*.{md,html,json,yaml,yml}': ['npm run fix:format'] +} diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 299b9e14..00000000 --- a/.prettierrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "singleQuote": true, - "semi": false, - "trailingComma": "none" -} diff --git a/.prettierrc.mjs b/.prettierrc.mjs new file mode 100644 index 00000000..e4a7dfd4 --- /dev/null +++ b/.prettierrc.mjs @@ -0,0 +1,15 @@ +/** @type {import("prettier").Config} */ +export default { + plugins: ['prettier-plugin-astro'], + semi: false, + singleQuote: true, + trailingComma: 'none', + overrides: [ + { + files: '*.astro', + options: { + parser: 'astro' + } + } + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..dbb09a15 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + "recommendations": [ + "astro-build.astro-vscode", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "stylelint.vscode-stylelint" + ], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..d6422097 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..a2e4c427 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "eslint.validate": [ + "javascript", + "javascriptreact", + "astro", + "typescript", + "typescriptreact" + ], + "stylelint.validate": ["html", "astro"], + "prettier.documentSelectors": ["**/*.astro"], + "[astro]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/README.md b/README.md index 6bb5af4b..5e02a4ea 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,31 @@ -Oysters紹介ページ -==== +# Oysters公式ウェブサイト -メンテナ向け ----- +## メンテナ向け -### 初回インストール +### 開発サーバ起動 -``` -npm install -``` - -### 開発用サーバ起動 & 変更時自動ビルド - -``` -npm run dev -``` +1. Nodejs(v20.16.0)をインストール ([nodenv](https://github.com/nodenv/nodenv)推奨) +2. 以下コマンドを実行し、を開く -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +```sh +$ npm ci +$ npm run dev -## メンバーの追加方法 +> oystersjp.github.io@0.0.1 dev +> astro dev -以下にメンバーの追加手順を記します。 +22:50:09 [types] Generated 0ms -1. `content/members/images`にご自身のプロフィール画像を追加する。 -2. コマンド `npm run add-member` を実行し、質問に沿ってコマンドラインに入力していく。 -3. `content/members` 以下に追加したいメンバーの名前のついたtsファイルが存在しているか内容も含めて確認する。 -4. 別ブランチを切ってコミットし、PRを作成してレビュー依頼する。(誰でもOK) + astro v4.13.1 ready in 95 ms -## 画像の最適化方法について - -[cyrilwanner/next-optimized-images@canary](https://github.com/cyrilwanner/next-optimized-images)を使った画像リサイズ/圧縮ができます。 - -```tsx - - -/** - * 結果: - * - */ +┃ Local http://localhost:4321/ +┃ Network use --host to expose ``` -**注意:** - -- 画像パスは動的に設定できますが、クエリ部分に変数は使用できません。 -- 変換後の画像のサイズがある程度小さい場合は自動的にインライン画像になります(設定で変更可能) - -詳しい使い方は[cyrilwanner/next-optimized-images](https://github.com/cyrilwanner/next-optimized-images)を確認してください。 +### メンバーの追加方法 -Special Thanks ----- +_TODO: 以下にメンバーの追加手順を記します。_ -- [nextjs](https://nextjs.org/) +## Links -- [Hugo](https://gohugo.io/) ※旧サイトで利用 -- [themefisher/meghna-hugo](https://github.com/themefisher/meghna-hugo) -- [themefisher/themefisher-font](https://github.com/themefisher/themefisher-font) +- [astro](https://docs.astro.build) diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 3ee9ad16..00000000 --- a/_config.yml +++ /dev/null @@ -1,2 +0,0 @@ -plugins: - - jekyll-sitemap diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 00000000..e15f264e --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,7 @@ +import { defineConfig } from 'astro/config' +import tailwind from '@astrojs/tailwind' + +// https://astro.build/config +export default defineConfig({ + integrations: [tailwind()] +}) diff --git a/components/About/About.tsx b/components/About/About.tsx deleted file mode 100644 index 66cbaab3..00000000 --- a/components/About/About.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { CSSProperties } from 'react' -import { ABOUT_ITEMS, SLIDES } from './constants' - -const About: React.FC = () => { - const slides = SLIDES.map((filename) => ({ - key: filename, - image: require(`${filename}?width=750&height=500`) - })) - const aboutItems = ABOUT_ITEMS - - return ( - <> -
-
-
-
-
-
- {slides.map((slide, index) => ( - - ))} -
-
-
-
-

若手ものづくり集団 Oysters

-

- Play With - Us!!をモットーに活動する若手(?)エンジニアの集団です。 -

-

- Play With - Us!!には「Oystersはどんなことでも楽しければ目的達成!」という意味が込められています。 -

-
- {aboutItems.map((item) => ( -
-
-
- -
-
-

{item.title}

-

{item.content}

-
-
-
- ))} -
-
-
-
-
-
-
- - ) -} - -export default About diff --git a/components/About/constants.ts b/components/About/constants.ts deleted file mode 100644 index 72368528..00000000 --- a/components/About/constants.ts +++ /dev/null @@ -1,19 +0,0 @@ -export const SLIDES = ['./images/slide/1.jpg', './images/slide/2.jpg'] as const -export const ABOUT_ITEMS = [ - { - title: 'We Are Junior Creators', - content: '50名の若手エンジニアの集いです', - icon: 'tf-ion-laptop' - }, - { - title: 'We Use Slack', - content: 'ワイワイするためのSlackがあります', - icon: 'tf-ion-chatboxes' - }, - { - title: 'We Play Fan Activities', - content: - '(主に) web系のトピックについて話したり、一緒になんか作ったり、モクモクしたりしています', - icon: 'tf-ion-beer' - } -] as const diff --git a/components/About/images/slide/1.jpg b/components/About/images/slide/1.jpg deleted file mode 100644 index b14611b6..00000000 Binary files a/components/About/images/slide/1.jpg and /dev/null differ diff --git a/components/About/images/slide/2.jpg b/components/About/images/slide/2.jpg deleted file mode 100644 index 59cc77da..00000000 Binary files a/components/About/images/slide/2.jpg and /dev/null differ diff --git a/components/About/index.ts b/components/About/index.ts deleted file mode 100644 index 2ea5c719..00000000 --- a/components/About/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/About/About' diff --git a/components/Activities/Activities.tsx b/components/Activities/Activities.tsx deleted file mode 100644 index 3eb0c021..00000000 --- a/components/Activities/Activities.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { activityList } from '@/components/Activities/ActivityList' - -const Activities: React.FC = () => { - return ( -
-
-
-
-
-

活動内容

-
-
-
- {activityList.map((activity) => ( - - ))} -
-
-
- ) -} - -export default Activities diff --git a/components/Activities/ActivityList.ts b/components/Activities/ActivityList.ts deleted file mode 100644 index 7daa3029..00000000 --- a/components/Activities/ActivityList.ts +++ /dev/null @@ -1,13 +0,0 @@ -import LearningTechSkills from '@/content/activities/LearningTechSkills' -import HoldingTechEvents from '@/content/activities/HoldingTechEvents' -import WritingATechBlog from '@/content/activities/WritingATechBlog' -import StreamingAPodcast from '@/content/activities/StreamingAPodcast' -import Activity from '@/types/Activity' - -// note: activityの記事を追加するにはここに要素を追加する -export const activityList: ReadonlyArray = [ - LearningTechSkills, - HoldingTechEvents, - WritingATechBlog, - StreamingAPodcast -] diff --git a/components/Activities/index.ts b/components/Activities/index.ts deleted file mode 100644 index 747f2779..00000000 --- a/components/Activities/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Activities/Activities' diff --git a/components/Contact/Contact.tsx b/components/Contact/Contact.tsx deleted file mode 100644 index 2a8aa071..00000000 --- a/components/Contact/Contact.tsx +++ /dev/null @@ -1,35 +0,0 @@ -const Contact: React.FC = () => ( -
-
-
-
-
-

Oystersの活動に興味がある方へ

-

- 有意義な交流が出来るように、エンジニアリングや個人開発にモチベーションがある人をご招待しています -
- 興味がある方はメンバーの誰か、または{' '} - - @pinkumohikan - {' '} - へご連絡下さい -

- - @pinkumohikan - -
-
-
-
-
-) - -export default Contact diff --git a/components/Contact/index.ts b/components/Contact/index.ts deleted file mode 100644 index c6c92797..00000000 --- a/components/Contact/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Contact/Contact' diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx deleted file mode 100644 index 03960ccc..00000000 --- a/components/Footer/Footer.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import Logo from '@/components/Logo/Logo' -import Link from 'next/link' - -const Footer: React.FC<{ logoText: string }> = (props) => { - const year = new Date().getFullYear() - - return ( -
-
-
-
-
-

- - - - - -

-

- Design And Developed by{' '} - Themefisher Team. -

-

© 2019-{year} Oysters

-
-
-
-
-
- ) -} - -export default Footer diff --git a/components/Footer/index.ts b/components/Footer/index.ts deleted file mode 100644 index 9e31f7fc..00000000 --- a/components/Footer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Footer/Footer' diff --git a/components/Hero/Hero.tsx b/components/Hero/Hero.tsx deleted file mode 100644 index aa2dbecb..00000000 --- a/components/Hero/Hero.tsx +++ /dev/null @@ -1,13 +0,0 @@ -const Hero: React.FC = () => ( -
-
-

Play With Us!!

-

若手ものづくり集団

-
-
-) - -export default Hero diff --git a/components/Hero/index.ts b/components/Hero/index.ts deleted file mode 100644 index 8393c3a1..00000000 --- a/components/Hero/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Hero/Hero' diff --git a/components/Logo/Logo.tsx b/components/Logo/Logo.tsx deleted file mode 100644 index 6ed8eed7..00000000 --- a/components/Logo/Logo.tsx +++ /dev/null @@ -1,12 +0,0 @@ -type Props = Omit, 'src'> - -const Logo: React.FC = (props) => ( - -) - -export default Logo diff --git a/components/Logo/index.ts b/components/Logo/index.ts deleted file mode 100644 index 4a24f667..00000000 --- a/components/Logo/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Logo/Logo' diff --git a/components/Logo/logo.svg b/components/Logo/logo.svg deleted file mode 100644 index 0d67bbe4..00000000 --- a/components/Logo/logo.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/MemberList/MemberList.tsx b/components/MemberList/MemberList.tsx deleted file mode 100644 index 5c48aa24..00000000 --- a/components/MemberList/MemberList.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { Member } from '@/types/Member' -import SocialAccountList from './SocialAccountList' - -export function MemberList({ members }: { members: Member[] }): JSX.Element { - return ( -
-
-
-
-
-

- メンバー -

-
-
-
- - {members.map((member) => ( -
-
- {`${member.name}の画像`} - -
-

- {member.name} -

- -
-
-
- ))} -
-
-
- ) -} - -export default MemberList diff --git a/components/MemberList/SocialAccountList.tsx b/components/MemberList/SocialAccountList.tsx deleted file mode 100644 index f733fec3..00000000 --- a/components/MemberList/SocialAccountList.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { Member } from '@/types/Member' -import { useMemo, useState } from 'react' - -const useSocialAccountLinks = ({ twitter, github, website }: Member) => { - const [links, setLinks] = useState< - Array<{ - href: string - title: string - icon: string - }> - >([]) - - useMemo(() => { - const links = [ - twitter - ? { - href: `https://twitter.com/${twitter}`, - title: 'twitter', - icon: 'tf-ion-social-twitter' - } - : null, - github - ? { - href: `https://github.com/${github}`, - title: 'Github', - icon: 'tf-ion-social-github' - } - : null, - website - ? { - href: website, - title: 'ウェブサイト', - icon: 'tf-ion-ios-world' - } - : null - ].filter((link) => link) - - setLinks(links) - }, [twitter, github, website]) - - return links -} - -export const SocialAccountMemberList: React.FC<{ member: Member }> = ({ - member -}) => { - const socialAccountLinks = useSocialAccountLinks(member) - - if (socialAccountLinks.length === 0) { - return null - } - - return ( -
    - {socialAccountLinks.map((link) => ( -
  • - - - -
  • - ))} -
- ) -} - -export default SocialAccountMemberList diff --git a/components/MemberList/index.ts b/components/MemberList/index.ts deleted file mode 100644 index ea110dbb..00000000 --- a/components/MemberList/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './MemberList' diff --git a/components/Memories/Memories.tsx b/components/Memories/Memories.tsx deleted file mode 100644 index 3b69727e..00000000 --- a/components/Memories/Memories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { memoryList } from './MemoryList' - -const Memories: React.FC = () => { - return ( -
-
-
-
-
-

思い出

-
-
-
- {memoryList.map((memory) => ( -
-
-
- {memory.alt} -
-
-
- ))} -
-
-
- ) -} - -export default Memories diff --git a/components/Memories/MemoryList.ts b/components/Memories/MemoryList.ts deleted file mode 100644 index 6ee40ec5..00000000 --- a/components/Memories/MemoryList.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Memory } from '@/types/Memory' -import { Archery } from '@/content/memories/Archery' -import { Band } from '@/content/memories/Band' -import { Game } from '@/content/memories/Game' -import { Sabage } from '@/content/memories/Sabage' -import { Sunobo } from '@/content/memories/Sunobo' -import { VR } from '@/content/memories/VR' - -export const memoryList: ReadonlyArray = [ - Archery, - Band, - Game, - Sabage, - Sunobo, - VR -] diff --git a/components/Memories/index.ts b/components/Memories/index.ts deleted file mode 100644 index c2870098..00000000 --- a/components/Memories/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Memories/Memories' diff --git a/components/Navbar/Navbar.tsx b/components/Navbar/Navbar.tsx deleted file mode 100644 index c2174410..00000000 --- a/components/Navbar/Navbar.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { useState } from 'react' -import { PAGES } from '@/components/Navbar/constants' -import Logo from '@/components/Logo' -import Link from 'next/link' - -const usePages = (): Array<{ - path: string - title: string - weight: number -}> => { - return [...PAGES].sort((a, b) => (a.weight < b.weight ? -1 : 1)) -} - -const Nav: React.FC = () => { - const pages = usePages() - const [isExpanded, toggleNavigation] = useState(false) - - return ( - - ) -} - -export default Nav diff --git a/components/Navbar/constants.ts b/components/Navbar/constants.ts deleted file mode 100644 index 8ca1f913..00000000 --- a/components/Navbar/constants.ts +++ /dev/null @@ -1,32 +0,0 @@ -export const PAGES = [ - { - path: '/', - title: 'Home', - weight: 0 - }, - { - path: '/#about', - title: 'Oystersとは', - weight: 1 - }, - { - path: '/#team', - title: 'メンバー', - weight: 2 - }, - { - path: '/#activities', - title: '活動内容', - weight: 3 - }, - { - path: '/#products', - title: '作ってきたもの', - weight: 4 - }, - { - path: '/#memories', - title: '思い出', - weight: 5 - } -] as const diff --git a/components/Navbar/index.ts b/components/Navbar/index.ts deleted file mode 100644 index d91a17dd..00000000 --- a/components/Navbar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Navbar/Navbar' diff --git a/components/Products/ProductList.ts b/components/Products/ProductList.ts deleted file mode 100644 index c74e17bc..00000000 --- a/components/Products/ProductList.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { Product } from '@/types/Product' -import { CoinStep } from '@/content/products/CoinStep' -import { PenguinNews } from '@/content/products/PenguinNews' - -// note: productsの記事を追加するにはここに要素を追加する -export const productList: ReadonlyArray = [PenguinNews, CoinStep] diff --git a/components/Products/Products.tsx b/components/Products/Products.tsx deleted file mode 100644 index 4cade68f..00000000 --- a/components/Products/Products.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { productList } from '@/components/Products/ProductList' - -const Products: React.FC = () => { - return ( -
-
-
-
-
-

作ってきたもの

-
-
-
- {productList.map((product) => ( -
-
-
- {product.alt} -
-
-

- {product.title} - {product.url !== null && ( - - {product.title}へ - - - )} -

-

- {product.content} - {product.tags.length !== 0 && ( - - {product.tags.map((tag) => ( - - {tag} - - ))} - - )} -

-
-
-
- ))} -
-
-
- ) -} - -export default Products diff --git a/components/Products/index.ts b/components/Products/index.ts deleted file mode 100644 index feb25ea2..00000000 --- a/components/Products/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from '@/components/Products/Products' diff --git a/content/activities/HoldingTechEvents.ts b/content/activities/HoldingTechEvents.ts deleted file mode 100644 index f9e1a232..00000000 --- a/content/activities/HoldingTechEvents.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Activitiy from '@/types/Activity' - -const HoldingTechEvents: Activitiy = { - title: 'Holding Tech Events', - imagePath: 'images/event.jpg', - alt: '開発合宿の様子', - content: '無限LTや開発合宿などのイベントを開催しています', - linkTitle: 'connpass', - url: 'https://oysters.connpass.com/event/' -} - -export default HoldingTechEvents diff --git a/content/activities/LearningTechSkills.ts b/content/activities/LearningTechSkills.ts deleted file mode 100644 index a20a537f..00000000 --- a/content/activities/LearningTechSkills.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Activitiy from '@/types/Activity' - -const LearningTechSkills: Activitiy = { - title: 'Learning Tech Skills', - imagePath: 'images/study.jpg', - alt: '勉強会の様子', - content: '勉強会、読書会の実施や技術情報の共有をしています', - linkTitle: 'oystersjp/neta-note', - url: - 'https://github.com/oystersjp/neta-note/issues?q=is%3Aclosed+is%3Aissue+label%3Astudy' -} - -export default LearningTechSkills diff --git a/content/activities/StreamingAPodcast.ts b/content/activities/StreamingAPodcast.ts deleted file mode 100644 index 1e102656..00000000 --- a/content/activities/StreamingAPodcast.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Activitiy from '@/types/Activity' - -const StreamingAPodcast: Activitiy = { - title: 'Streaming a Podcast', - imagePath: 'images/podcast.png', - alt: '', - content: '技術のことから暮らしのことまで語っています', - linkTitle: 'Oysters Podcast', - url: '/podcast' -} - -export default StreamingAPodcast diff --git a/content/activities/WritingATechBlog.ts b/content/activities/WritingATechBlog.ts deleted file mode 100644 index a3011b11..00000000 --- a/content/activities/WritingATechBlog.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Activitiy from '@/types/Activity' - -const WritingATechBlog: Activitiy = { - title: 'Writing A Tech Blog', - imagePath: 'images/blog.jpg', - alt: 'パソコンを使用している写真', - content: '日々のアウトプットとしてブログを書いています', - linkTitle: 'はてなブログ グループ', - url: 'https://hatenablog.com/g/8599973812282937084' -} - -export default WritingATechBlog diff --git a/content/activities/images/blog.jpg b/content/activities/images/blog.jpg deleted file mode 100644 index 4ae8d698..00000000 Binary files a/content/activities/images/blog.jpg and /dev/null differ diff --git a/content/activities/images/event.jpg b/content/activities/images/event.jpg deleted file mode 100644 index a3db5eb9..00000000 Binary files a/content/activities/images/event.jpg and /dev/null differ diff --git a/content/activities/images/podcast.jpg b/content/activities/images/podcast.jpg deleted file mode 100644 index a763a7ed..00000000 Binary files a/content/activities/images/podcast.jpg and /dev/null differ diff --git a/content/activities/images/podcast.png b/content/activities/images/podcast.png deleted file mode 100644 index a0e31322..00000000 Binary files a/content/activities/images/podcast.png and /dev/null differ diff --git a/content/activities/images/study.jpg b/content/activities/images/study.jpg deleted file mode 100644 index 64e09f0f..00000000 Binary files a/content/activities/images/study.jpg and /dev/null differ diff --git a/content/members/02.ts b/content/members/02.ts deleted file mode 100644 index 22f23bfd..00000000 --- a/content/members/02.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: '02', - image: 'images/02.jpg', - twitter: 'cocoeyes02', - github: 'cocoeyes02', - website: 'https://cocoeyes02.hatenadiary.jp' -} diff --git a/content/members/akki.ts b/content/members/akki.ts deleted file mode 100644 index ac498645..00000000 --- a/content/members/akki.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - name: 'akki', - image: 'images/akki.jpg' -} diff --git a/content/members/cureseven.ts b/content/members/cureseven.ts deleted file mode 100644 index d57edaa9..00000000 --- a/content/members/cureseven.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: 'cureseven', - image: 'images/cureseven.jpg', - twitter: 'cureseven', - github: 'cureseven', - website: 'http://cureseven.tokyo' -} diff --git a/content/members/hirotaka.ts b/content/members/hirotaka.ts deleted file mode 100644 index ddb6ffd0..00000000 --- a/content/members/hirotaka.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - name: 'hirotaka', - image: 'images/hirotaka.png' -} diff --git a/content/members/images/02.jpg b/content/members/images/02.jpg deleted file mode 100644 index 0d3c34e2..00000000 Binary files a/content/members/images/02.jpg and /dev/null differ diff --git a/content/members/images/akki.jpg b/content/members/images/akki.jpg deleted file mode 100644 index 954ffa59..00000000 Binary files a/content/members/images/akki.jpg and /dev/null differ diff --git a/content/members/images/cureseven.jpg b/content/members/images/cureseven.jpg deleted file mode 100644 index 624668b3..00000000 Binary files a/content/members/images/cureseven.jpg and /dev/null differ diff --git a/content/members/images/hirotaka.png b/content/members/images/hirotaka.png deleted file mode 100644 index 7f9219a8..00000000 Binary files a/content/members/images/hirotaka.png and /dev/null differ diff --git a/content/members/images/klack710.png b/content/members/images/klack710.png deleted file mode 100644 index 99837dfc..00000000 Binary files a/content/members/images/klack710.png and /dev/null differ diff --git a/content/members/images/msm2.jpg b/content/members/images/msm2.jpg deleted file mode 100644 index d8638d9f..00000000 Binary files a/content/members/images/msm2.jpg and /dev/null differ diff --git a/content/members/images/okashoi.png b/content/members/images/okashoi.png deleted file mode 100644 index 7591c795..00000000 Binary files a/content/members/images/okashoi.png and /dev/null differ diff --git a/content/members/images/pinkumohikan.jpg b/content/members/images/pinkumohikan.jpg deleted file mode 100644 index 8c7af871..00000000 Binary files a/content/members/images/pinkumohikan.jpg and /dev/null differ diff --git a/content/members/images/shuzon.png b/content/members/images/shuzon.png deleted file mode 100644 index 37200606..00000000 Binary files a/content/members/images/shuzon.png and /dev/null differ diff --git a/content/members/images/sorarinu.jpg b/content/members/images/sorarinu.jpg deleted file mode 100644 index 5c492beb..00000000 Binary files a/content/members/images/sorarinu.jpg and /dev/null differ diff --git a/content/members/images/yu.jpg b/content/members/images/yu.jpg deleted file mode 100644 index 0a32d99c..00000000 Binary files a/content/members/images/yu.jpg and /dev/null differ diff --git a/content/members/images/zoe.jpg b/content/members/images/zoe.jpg deleted file mode 100644 index 8e2bb68c..00000000 Binary files a/content/members/images/zoe.jpg and /dev/null differ diff --git a/content/members/images/zundamaru.png b/content/members/images/zundamaru.png deleted file mode 100644 index 9fa94bd3..00000000 Binary files a/content/members/images/zundamaru.png and /dev/null differ diff --git a/content/members/klack710.ts b/content/members/klack710.ts deleted file mode 100644 index 4ecd6b06..00000000 --- a/content/members/klack710.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - name: 'klack710', - image: 'images/klack710.png' -} diff --git a/content/members/msm2.ts b/content/members/msm2.ts deleted file mode 100644 index 235b7fca..00000000 --- a/content/members/msm2.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - name: 'msm2', - image: 'images/msm2.jpg' -} diff --git a/content/members/okashoi.ts b/content/members/okashoi.ts deleted file mode 100644 index d41d0660..00000000 --- a/content/members/okashoi.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: 'okashoi', - image: 'images/okashoi.png', - twitter: 'okashoi', - github: 'okashoi', - website: 'https://blog.okashoi.net' -} diff --git a/content/members/pinkumohikan.ts b/content/members/pinkumohikan.ts deleted file mode 100644 index 3aea1f1e..00000000 --- a/content/members/pinkumohikan.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - name: 'pinkumohikan', - image: 'images/pinkumohikan.jpg', - twitter: 'pinkumohikan', - website: 'https://blog.pinkumohikan.com' -} diff --git a/content/members/shuzon.ts b/content/members/shuzon.ts deleted file mode 100644 index bc0b89dd..00000000 --- a/content/members/shuzon.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - name: 'shuzon', - image: 'images/shuzon.png', - github: 'shuzoN', - website: 'https://namu-r21.hatenablog.com' -} diff --git a/content/members/sorarinu.ts b/content/members/sorarinu.ts deleted file mode 100644 index 4359000d..00000000 --- a/content/members/sorarinu.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: 'Sorarinu', - image: 'images/sorarinu.jpg', - twitter: 'int_sorarinu', - github: 'Sorarinu', - website: 'https://sorarinu.dev' -} diff --git a/content/members/yu.ts b/content/members/yu.ts deleted file mode 100644 index f02cca7a..00000000 --- a/content/members/yu.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - name: 'yu', - image: 'images/yu.jpg', - twitter: 'azu369yu', - github: 'Yu0614' -} diff --git a/content/members/zoe.ts b/content/members/zoe.ts deleted file mode 100644 index e1a111eb..00000000 --- a/content/members/zoe.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - name: 'zoe', - image: 'images/zoe.jpg', - twitter: 'for__3', - github: 'IkezoeMakoto', - website: 'https://blog.zoe.tools' -} diff --git a/content/members/zundamaru.ts b/content/members/zundamaru.ts deleted file mode 100644 index c673bff2..00000000 --- a/content/members/zundamaru.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - name: 'zundamaru', - image: 'images/zundamaru.png' -} diff --git a/content/memories/Archery.ts b/content/memories/Archery.ts deleted file mode 100644 index 4556fa84..00000000 --- a/content/memories/Archery.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const Archery: Memory = { - title: 'archery', - imagePath: 'images/archery.jpg', - alt: 'アーチェリーハントを楽しんでいる時の集合写真' -} diff --git a/content/memories/Band.ts b/content/memories/Band.ts deleted file mode 100644 index 41400850..00000000 --- a/content/memories/Band.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const Band: Memory = { - title: 'band', - imagePath: 'images/band.jpg', - alt: 'アコースティックバンドで演奏中の写真' -} diff --git a/content/memories/Game.ts b/content/memories/Game.ts deleted file mode 100644 index f62724c3..00000000 --- a/content/memories/Game.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const Game: Memory = { - title: 'game', - imagePath: 'images/game.jpg', - alt: '開発合宿中にゲームをしている時の写真' -} diff --git a/content/memories/Sabage.ts b/content/memories/Sabage.ts deleted file mode 100644 index 8500a978..00000000 --- a/content/memories/Sabage.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const Sabage: Memory = { - title: 'sabage', - imagePath: 'images/sabage.jpg', - alt: 'サバゲを楽しんでいる時の写真' -} diff --git a/content/memories/Sunobo.ts b/content/memories/Sunobo.ts deleted file mode 100644 index e1e64acd..00000000 --- a/content/memories/Sunobo.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const Sunobo: Memory = { - title: 'sunobo', - imagePath: 'images/sunobo.jpg', - alt: 'スノボを楽しんでいる時の集合写真' -} diff --git a/content/memories/VR.ts b/content/memories/VR.ts deleted file mode 100644 index a3b21769..00000000 --- a/content/memories/VR.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Memory } from '@/types/Memory' - -export const VR: Memory = { - title: 'vr', - imagePath: 'images/vr.jpg', - alt: 'VRでの集合写真' -} diff --git a/content/memories/images/archery.jpg b/content/memories/images/archery.jpg deleted file mode 100644 index 155bb099..00000000 Binary files a/content/memories/images/archery.jpg and /dev/null differ diff --git a/content/memories/images/band.jpg b/content/memories/images/band.jpg deleted file mode 100644 index b503c69e..00000000 Binary files a/content/memories/images/band.jpg and /dev/null differ diff --git a/content/memories/images/game.jpg b/content/memories/images/game.jpg deleted file mode 100644 index 5220aa19..00000000 Binary files a/content/memories/images/game.jpg and /dev/null differ diff --git a/content/memories/images/sabage.jpg b/content/memories/images/sabage.jpg deleted file mode 100644 index 0ddf246b..00000000 Binary files a/content/memories/images/sabage.jpg and /dev/null differ diff --git a/content/memories/images/sunobo.jpg b/content/memories/images/sunobo.jpg deleted file mode 100644 index 6a2fa318..00000000 Binary files a/content/memories/images/sunobo.jpg and /dev/null differ diff --git a/content/memories/images/vr.jpg b/content/memories/images/vr.jpg deleted file mode 100644 index 23bfd693..00000000 Binary files a/content/memories/images/vr.jpg and /dev/null differ diff --git a/content/products/CoinStep.ts b/content/products/CoinStep.ts deleted file mode 100644 index bfe10b58..00000000 --- a/content/products/CoinStep.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { Product } from '@/types/Product' - -export const CoinStep: Product = { - title: 'Coin Step', - imagePath: 'images/coin-step.jpg', - alt: 'Coin Stepの画面', - content: '仮想通貨のヴァーチャルトレードサービス', - tags: ['Go', 'Vue', 'TypeScript'], - url: 'https://coin-step.com/', - linkTitle: 'https://coin-step.com/' -} diff --git a/content/products/PenguinNews.ts b/content/products/PenguinNews.ts deleted file mode 100644 index 40875bf0..00000000 --- a/content/products/PenguinNews.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { Product } from '@/types/Product' - -export const PenguinNews: Product = { - title: 'ペンギンニュース', - imagePath: 'images/pengin-news.jpg', - alt: 'ペンギンニュースの画面', - content: 'まとめサイト', - tags: ['PHP', 'Laravel'], - url: null -} diff --git a/content/products/images/coin-step.jpg b/content/products/images/coin-step.jpg deleted file mode 100644 index 2231ddef..00000000 Binary files a/content/products/images/coin-step.jpg and /dev/null differ diff --git a/content/products/images/pengin-news.jpg b/content/products/images/pengin-news.jpg deleted file mode 100644 index d774cd0a..00000000 Binary files a/content/products/images/pengin-news.jpg and /dev/null differ diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..0dcea49e --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,15 @@ +import eslintPluginAstro from 'eslint-plugin-astro' + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + ...eslintPluginAstro.configs.recommended, + ...eslintPluginAstro.configs['jsx-a11y-strict'], + { + files: ['*.astro'], + parser: 'astro-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'] + } + } +] diff --git a/hooks/useRouterScroll.ts b/hooks/useRouterScroll.ts deleted file mode 100644 index 20893f99..00000000 --- a/hooks/useRouterScroll.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { useRouter } from 'next/router' -import { useEffect } from 'react' - -export const useRouterScroll = ({ - left = 0, - top = 0, - behavior = 'smooth' -}: ScrollToOptions = {}): void => { - const router = useRouter() - useEffect(() => { - const handleHashChangeComplete = (url) => { - if (url === '/') { - window.scrollTo({ left, top, behavior }) - } - } - - router.events.on('hashChangeComplete', handleHashChangeComplete) - return () => { - router.events.off('hashChangeComplete', handleHashChangeComplete) - } - }, [left, top, behavior]) -} diff --git a/lib/googleAnalytics.tsx b/lib/googleAnalytics.tsx deleted file mode 100644 index bf4db6bc..00000000 --- a/lib/googleAnalytics.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import Script from 'next/script' - -const gaMeasurementId = 'G-WM91B782B2' - -export const GoogleAnalytics = (): JSX.Element => ( - <> -